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.
MultiBitSel(const BloomFilterMultiBitSelParams &p)
const int parFilterSize
Size of the filter when doing parallel hashing.
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 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.