36#include "params/BloomFilterBulk.hh"
48 (std::numeric_limits<Addr>::digits -
offsetBits),
49 "Sectors need more bits than available");
90 (part1 << 14) | (part2 << 13) | (part3 << 12) | (part4 << 11) |
91 (part5 << 9) | (part6 << 8) | (part7 << 7) | (part8 << 6) |
92 (part9 << 4) | (part10 << 1) | (part11);
95 Addr remaining_bits =
bits(
addr, std::numeric_limits<Addr>::digits - 1,
97 result = result | remaining_bits;
std::vector< SatCounter8 > filter
The filter itself.
const unsigned offsetBits
Number of LSB bits to ignore from the the addresses.
int hash(Addr addr, int hash_number) const override
Apply the selected the hash functions to an address.
Bulk(const BloomFilterBulkParams &p)
Addr permute(Addr addr) const
Permutes the address to generate its signature.
const int sectorBits
Number of bits used per sector.
The MultiBitSel Bloom Filter associates an address to multiple entries through the use of multiple ha...
const int numHashes
Number of hashes.
static constexpr std::enable_if_t< std::is_integral_v< T >, int > floorLog2(T x)
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.