34 #ifndef __MEM_CACHE_INDEXING_POLICIES_SKEWED_ASSOCIATIVE_HH__ 35 #define __MEM_CACHE_INDEXING_POLICIES_SKEWED_ASSOCIATIVE_HH__ 40 #include "params/SkewedAssociative.hh" 175 #endif //__MEM_CACHE_INDEXING_POLICIES_SKEWED_ASSOCIATIVE_HH__ const int NUM_SKEWING_FUNCTIONS
The number of skewing functions implemented.
uint32_t extractSet(const Addr addr, const uint32_t way) const
Apply a skewing function to calculate address' set given a way.
Addr hash(const Addr addr) const
The hash function itself.
A skewed associative indexing policy.
Addr regenerateAddr(const Addr tag, const ReplaceableEntry *entry) const override
Regenerate an entry's address from its tag and assigned set and way.
Addr deskew(const Addr addr, const uint32_t way) const
Address deskewing function (inverse of the skew function) of the given way.
std::vector< ReplaceableEntry * > getPossibleEntries(const Addr addr) const override
Find all possible entries for insertion and replacement of an address.
SkewedAssociative(const Params *p)
Construct and initialize this policy.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const int msbShift
The amount to shift a set index to get its MSB.
Addr skew(const Addr addr, const uint32_t way) const
Address skewing function selection.
SkewedAssociativeParams Params
Convenience typedef.
Addr dehash(const Addr addr) const
Inverse of the hash function.
A replaceable entry is a basic entry in a 2d table-like structure that needs to have replacement func...
A common base class for indexing table locations.
~SkewedAssociative()
Destructor.