Parallel Hash Computation Using Bitwise Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hash computation methods are inefficient for low-latency applications with high volumes of data, as they often rely on byte-wise iteration and fail to effectively utilize parallel processing capabilities, leading to processing overhead.

Innovation Solution

A method that splits input data into machine word-sized components, performs a bitwise hashing function in parallel using multiple execution units, and multiplies each hash component by a pre-defined constant, allowing for faster hash computation while maintaining high collision avoidance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If byte-wise iterative hashing is used, then traditional hash computation is performed, but processing speed is slow and latency is high

Engineering Contradiction:
Improvehash computation speedVSAvoidprocessing latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The input data is divided into multiple data components, each of machine word size (e.g., 64 bits). Each data component is processed independently and in parallel with corresponding hash components, enabling simultaneous execution of multiple hashing operations rather than sequential byte-wise processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hashing operation transitions from processing data byte-by-byte in a single dimension to processing multiple data components and hash components simultaneously in parallel dimensions. This dimensional expansion allows the processor to leverage multiple execution units working concurrently on different components.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If parallel processing is not utilized, then simple sequential hashing is performed, but processing efficiency is reduced for high volume data

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata volume
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Both the input data and the hash value are segmented into multiple components of machine word size. This segmentation enables the processing system to handle large volumes of data by dividing them into manageable chunks that can be processed in parallel, directly improving productivity for high-volume data scenarios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple hashing operations are merged into a single parallel processing stage. Instead of sequentially processing each byte or word, the system combines multiple data components and hash components and processes them simultaneously using multiple execution units, thereby increasing processing efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If machine word-sized parallel processing is implemented, then hash computation speed increases, but device complexity increases

Engineering Contradiction:
Improvehash computation speedVSAvoidprocessor complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The processor utilizes existing multi-functional execution units that can perform various operations (arithmetic, logical, bitwise) on machine word-sized data. By leveraging these universal execution units already present in modern processors, the system achieves parallel hashing without requiring specialized hardware, thus minimizing the increase in device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system changes the processing parameters from byte-sized operations to machine word-sized operations (e.g., 64 bits). This parameter change allows the existing processor architecture to naturally handle larger data units in parallel, achieving speed improvement while utilizing the processor's inherent capabilities rather than adding complex specialized hardware.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10545758B2Parallel processing of hash functions
Publication Date: 2020.01.28 TSX
  • US10545758B2 patent drawing
  • US10545758B2 patent drawing
  • US10545758B2 patent drawing

AI summary

Input data can be split into data components that can each have a length equal to a machine word size of a processor capable of parallel processing. Hash components can be selected to have a length equal to the length of the data components. A bitwise hashing function can be performed, in which each data component is hashed with a respective different one of the hash components. A representation of the hash components can be output as the hash. The bitwise hashing function can include an exclusive-or operation and a multiplication and can be a modified Fowler-Noll-Vo hashing function, such as a modified FNV-1a function.