Internals of Bloom-FilterΒΆ

This document describes the structure and execution of bloom filter module, implemented as bloomFilter function.

The structure of bloomFilter is described as below. The primitive have two function which are bv-update and bv-check. It takes BRAM or URAM as internal storage for bloom filter vectors. The input hash value is the addressing parameter for updating bloom filter vector and checking the built vector. Chip select is based on the MSBs of hash value, and width select is based on its LSBs. The total storage size is related to the value of 1 << BV_W. Make sure the storage size is less than the maximum storage size of a single SLR, otherwise it will result in placing failure.

Bloom Filter Top Structure

The primitive provides an efficient way to filter redundant data. It can be easily applied on Hash Join primitive to eliminate false shoots in Hash Join Probe, as shown below:

Bloom Filter Performance