Go to the documentation of this file.
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()
const int sectorBits
Number of bits used per sector.
std::enable_if< std::is_integral< T >::value, int >::type floorLog2(T x)
const unsigned offsetBits
Number of LSB bits to ignore from the the addresses.
std::vector< SatCounter > filter
The filter itself.
const int numHashes
Number of hashes.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Addr permute(Addr addr) const
Permutes the address to generate its signature.
Implementation of the bloom filter, as described in "Bulk Disambiguation of Speculative Threads in Mu...
int hash(Addr addr, int hash_number) const override
Apply the selected the hash functions to an address.
The MultiBitSel Bloom Filter associates an address to multiple entries through the use of multiple ha...
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Bulk(const BloomFilterBulkParams *p)
Generated on Wed Sep 30 2020 14:02:07 for gem5 by doxygen 1.8.17