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