gem5
v20.1.0.0
|
#include <smmu_v3_caches.hh>
Classes | |
struct | Entry |
Public Member Functions | |
ConfigCache (unsigned numEntries, unsigned _associativity, const std::string &policy) | |
virtual | ~ConfigCache () |
const Entry * | lookup (uint32_t sid, uint32_t ssid, bool updStats=true) |
void | store (const Entry &incoming) |
void | invalidateSSID (uint32_t sid, uint32_t ssid) |
void | invalidateSID (uint32_t sid) |
void | invalidateAll () |
Public Member Functions inherited from SMMUv3BaseCache | |
SMMUv3BaseCache (const std::string &policy_name, uint32_t seed) | |
virtual | ~SMMUv3BaseCache () |
virtual void | regStats (const std::string &name) |
Private Types | |
typedef std::vector< Entry > | Set |
Private Member Functions | |
size_t | pickSetIdx (uint32_t sid, uint32_t ssid) const |
size_t | pickEntryIdxToReplace (const Set &set) |
Private Attributes | |
std::vector< Set > | sets |
size_t | associativity |
Additional Inherited Members | |
Static Protected Member Functions inherited from SMMUv3BaseCache | |
static int | decodePolicyName (const std::string &policy_name) |
Protected Attributes inherited from SMMUv3BaseCache | |
int | replacementPolicy |
size_t | nextToReplace |
Random | random |
uint32_t | useStamp |
Stats::Formula | averageLookups |
Stats::Scalar | totalLookups |
Stats::Formula | averageMisses |
Stats::Scalar | totalMisses |
Stats::Formula | averageUpdates |
Stats::Scalar | totalUpdates |
Stats::Formula | averageHitRate |
Stats::Scalar | insertions |
Definition at line 234 of file smmu_v3_caches.hh.
|
private |
Definition at line 272 of file smmu_v3_caches.hh.
ConfigCache::ConfigCache | ( | unsigned | numEntries, |
unsigned | _associativity, | ||
const std::string & | policy | ||
) |
Definition at line 805 of file smmu_v3_caches.cc.
References associativity, ArmISA::e, fatal, and sets.
|
inlinevirtual |
Definition at line 262 of file smmu_v3_caches.hh.
void ConfigCache::invalidateAll | ( | ) |
Definition at line 915 of file smmu_v3_caches.cc.
References ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
void ConfigCache::invalidateSID | ( | uint32_t | sid | ) |
Definition at line 900 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
void ConfigCache::invalidateSSID | ( | uint32_t | sid, |
uint32_t | ssid | ||
) |
Definition at line 887 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, pickSetIdx(), and sets.
Referenced by SMMUv3::processCommand().
const ConfigCache::Entry * ConfigCache::lookup | ( | uint32_t | sid, |
uint32_t | ssid, | ||
bool | updStats = true |
||
) |
Definition at line 835 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, ConfigCache::Entry::lastUsed, panic, pickSetIdx(), sets, SMMUv3BaseCache::totalLookups, SMMUv3BaseCache::totalMisses, and SMMUv3BaseCache::useStamp.
Referenced by SMMUTranslationProcess::configCacheLookup(), and store().
|
private |
Definition at line 932 of file smmu_v3_caches.cc.
References associativity, ArmISA::i, SMMUv3BaseCache::insertions, SMMUv3BaseCache::nextToReplace, panic, SMMUv3BaseCache::random, Random::random(), SMMUv3BaseCache::replacementPolicy, SMMU_CACHE_REPL_LRU, SMMU_CACHE_REPL_RANDOM, and SMMU_CACHE_REPL_ROUND_ROBIN.
Referenced by store().
|
private |
Definition at line 926 of file smmu_v3_caches.cc.
References sets.
Referenced by invalidateSSID(), lookup(), and store().
void ConfigCache::store | ( | const Entry & | incoming | ) |
Definition at line 867 of file smmu_v3_caches.cc.
References ConfigCache::Entry::lastUsed, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), sets, ConfigCache::Entry::sid, ConfigCache::Entry::ssid, SMMUv3BaseCache::totalUpdates, and ConfigCache::Entry::valid.
Referenced by SMMUTranslationProcess::configCacheUpdate().
|
private |
Definition at line 275 of file smmu_v3_caches.hh.
Referenced by ConfigCache(), and pickEntryIdxToReplace().
|
private |
Definition at line 273 of file smmu_v3_caches.hh.
Referenced by ConfigCache(), invalidateAll(), invalidateSID(), invalidateSSID(), lookup(), pickSetIdx(), and store().