36 #include "params/BloomFilterBulk.hh" 44 (std::numeric_limits<Addr>::digits -
offsetBits),
45 "Sectors need more bits than available");
86 (part1 << 14) | (part2 << 13) | (part3 << 12) | (part4 << 11) |
87 (part5 << 9) | (part6 << 8) | (part7 << 7) | (part8 << 6) |
88 (part9 << 4) | (part10 << 1) | (part11);
91 Addr remaining_bits =
bits(addr, std::numeric_limits<Addr>::digits - 1,
93 result = result | remaining_bits;
101 BloomFilterBulkParams::create()
int hash(Addr addr, int hash_number) const override
Apply the selected the hash functions to an address.
Implementation of the bloom filter, as described in "Bulk Disambiguation of Speculative Threads in Mu...
std::vector< SatCounter > filter
The filter itself.
std::enable_if< std::is_integral< T >::value, int >::type floorLog2(T x)
The MultiBitSel Bloom Filter associates an address to multiple entries through the use of multiple ha...
const unsigned offsetBits
Number of LSB bits to ignore from the the addresses.
Addr permute(Addr addr) const
Permutes the address to generate its signature.
const int sectorBits
Number of bits used per sector.
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...
const int numHashes
Number of hashes.
Bulk(const BloomFilterBulkParams *p)