Bloom Filter Parallel Word Mapping for Cache Miss Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveelement insertion efficiencyVSAvoidcache hit rate
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

2Productivity

If k elements are sequentially encoded or read, then element insertion or query is completed, but cache miss is generated in each fetch

Engineering Contradiction:
Improveencoding speedVSAvoidcache miss time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

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

3Ease of operation

If a Bloom filter uses multiple singleported memory slices, then address mapping is improved, but device complexity increases

Engineering Contradiction:
Improveaddress mapping efficiencyVSAvoidmemory slice configuration
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

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

Data Source

PatentEP3493084B1Method for processing data in bloom filter and bloom filter
Publication Date: 2021.11.03 HUAWEI TECH CO LTD
  • EP3493084B1 patent drawingFigure 1~2
  • EP3493084B1 patent drawingFigure 3
  • EP3493084B1 patent drawingFigure 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.