Bloom Filter Parallel Word Mapping for Cache Miss Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Bloom filters experience high cache miss rates due to access conflicts and sequential encoding/reading of elements, which degrade program performance.
Innovation Solution
The method involves performing hash operations on a key value using multiple hash functions to obtain hash values and addresses that map the key value into a target data block with independent words, allowing for concurrent setting or reading of parameters associated with each address, thereby improving cache efficiency and query speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If k bits are mapped into one word using k hash functions, then element insertion is completed, but access conflict occurs and cache miss rate increases
Solution Approach 1:
The patent divides the bit vector into multiple independent words, with each word containing multiple bits. Instead of mapping all k bits into a single word, the patent segments them across multiple words, allowing parallel access and reducing cache conflicts. This segmentation enables simultaneous reading/writing of multiple words in parallel, improving cache efficiency while maintaining insertion performance.
2Productivity
If k elements are sequentially encoded or read, then element insertion or query is completed, but cache miss is generated in each fetch
Solution Approach 1:
The patent merges multiple bit operations into parallel word-level operations. By organizing the data structure so that multiple bits are grouped into words that can be accessed simultaneously, the patent enables parallel encoding and querying operations. This merging approach allows multiple cache lines to be fetched in parallel rather than sequentially, reducing total access time and improving throughput.
Solution Approach 2:
The patent introduces a new dimensional organization to the traditional Bloom filter bit vector by structuring it as an array of words rather than a flat sequence. This dimensional change enables multi-dimensional access patterns where multiple elements can be processed simultaneously across different word positions, transforming sequential operations into parallel operations and reducing cache miss penalties.
3Ease of operation
If a Bloom filter uses multiple singleported memory slices, then address mapping is improved, but device complexity increases
Solution Approach 1:
The patent creates a unified word-based data structure that serves multiple functions: it enables parallel access for both insertion and query operations, provides natural cache line alignment, and supports efficient address mapping without requiring separate memory slice configurations. This universal word-oriented approach eliminates the need for complex multi-slice memory architectures while maintaining address mapping efficiency.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
Embodiments of the present invention disclose a data processing method for a Bloom filter, and a Bloom filter, and relate to the field of storage technologies, to improve search and storage efficiency of a Bloom filter. The method includes: obtaining a key value; performing a hash operation on the key value separately by using K different hash functions, to obtain K hash values through calculation; obtaining K addresses through calculation based on the K hash values, where each of the K addresses has a one-to-one association with one of K words included in a target data block, and one of the addresses is used to indicate a bit in a word associated with the address; and based on the K addresses, setting a parameter corresponding to a bit that is indicated by each of the addresses and that is in a word associated with the address, or reading a parameter corresponding to a bit that is indicated by each of the K addresses and that is in a word associated with the address, to determine, based on the read parameter, whether the key value belongs to the Bloom filter. The embodiments of the present invention are used in a process of determining whether the key value is in the Bloom filter.