Way Guard [9] has been proven to work efficiently in highly
associative caches. The mechanism implements a counting
bloom filter associated to each cache way. Way Guard works
as follows. First, a hash function is applied to a subset of bits
of the address of the target block. The output of the hash is a
m-bit index that is decoded to access the 2m −1 entry bloom
filter vector. If the bit is set to 1 then the associated cache way
is accessed (both tags and data arrays), otherwise that way is
not searched. Each entry of the bloom filter has associated
an up/down counter (e.g., 3-bit in the original work), that is
decremented each time a cache line whose address maps to
that position is evicted from the cache and increased when the
block is written in the cache. In the original paper, results are
shown for m equal to four times the number of blocks in a
cache. We will refer to this configuration as WayGuard-4×.
This approach requires a decoder with 4 times more outputs
than the already implemented in the cache to index the target
set.