Hardware-Accelerated Bloom Filter Set Membership Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software systems face inefficiencies in quickly determining set membership, particularly in scenarios like software transactional memory systems and web servers, where traditional Bloom filters, although time- and space-efficient, can only confirm the absence of an element from a set and not its presence, necessitating a more effective hardware-supported solution.

Innovation Solution

The implementation of hardware-supported Bloom filters using architected instructions that operate on storage arrays, allowing for efficient insertion and querying of set membership by applying hash functions to determine indices within these arrays, thereby enhancing the determination of set membership with hardware-level support.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional software-implemented Bloom filters are used, then set membership testing can be performed in a time-efficient and space-efficient manner, but the implementation complexity increases and system performance is limited by software execution speed

Engineering Contradiction:
Improveset membership testing speedVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces software-based Bloom filter implementation with hardware-level support using architected instructions. The execution core directly manipulates storage arrays to perform hash function application and bit setting operations, eliminating the need for complex software algorithms and achieving faster set membership testing through hardware acceleration.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The architected instruction set provides universal support for Bloom filter operations across different scenarios. The same instruction mechanism handles both insertion (marking bits as set) and query (checking bit status) operations, making the hardware support adaptable to various set membership testing needs without requiring separate specialized circuits for each function.

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

2Reliability

If Bloom filters are used to determine set membership, then false positives are accepted but false negatives are avoided, but the reliability of positive identification is reduced

Engineering Contradiction:
Improveset membership determination accuracyVSAvoidinformation about element presence
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The hardware-supported Bloom filter implementation maintains the traditional probabilistic nature of Bloom filters where the structure itself serves the dual purpose of both insertion and query operations. The execution core directly manages the storage arrays, and the architected instructions inherently provide the same false positive guarantee as software implementations while achieving faster execution through hardware acceleration.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8788766B2Software-accessible hardware support for determining set membership
Publication Date: 2014.07.22 ORACLE AMERICAN INC
  • US8788766B2 patent drawing
  • US8788766B2 patent drawing
  • US8788766B2 patent drawing

AI summary

A method and processor supporting architected instructions for tracking and determining set membership, such as by implementing Bloom filters are disclosed. The apparatus includes storage arrays (e.g., registers) and an execution core configured to store an indication that a given value is a member of a set, including by executing an architected instruction having an operand specifying the given value, wherein executing comprises applying a hash function to the value to determine an index into one of the storage arrays and setting a bit of the storage array corresponding to the index. An architected query instruction is later executed to determine if a query value is not a member of the set, including by applying the hash function to the query value to determine an index into the storage array and determining whether a bit at the index of the storage array is set.