gem5
v21.0.1.0
|
#include <smmu_v3_caches.hh>
Classes | |
struct | Entry |
Public Member Functions | |
IPACache (unsigned numEntries, unsigned _associativity, const std::string &policy, Stats::Group *parent) | |
virtual | ~IPACache () |
const Entry * | lookup (Addr ipa, uint16_t vmid, bool updStats=true) |
void | store (const Entry &incoming) |
void | invalidateIPA (Addr ipa, uint16_t vmid) |
void | invalidateIPAA (Addr ipa) |
void | invalidateVMID (uint16_t vmid) |
void | invalidateAll () |
![]() | |
SMMUv3BaseCache (const std::string &policy_name, uint32_t seed, Stats::Group *parent, const std::string &name) | |
virtual | ~SMMUv3BaseCache () |
Private Types | |
typedef std::vector< Entry > | Set |
Private Member Functions | |
size_t | pickSetIdx (Addr ipa, uint16_t vmid) const |
size_t | pickEntryIdxToReplace (const Set &set) |
Private Attributes | |
std::vector< Set > | sets |
size_t | associativity |
Additional Inherited Members | |
![]() | |
static int | decodePolicyName (const std::string &policy_name) |
![]() | |
int | replacementPolicy |
size_t | nextToReplace |
Random | random |
uint32_t | useStamp |
SMMUv3BaseCache::SMMUv3BaseCacheStats | baseCacheStats |
Definition at line 199 of file smmu_v3_caches.hh.
|
private |
Definition at line 230 of file smmu_v3_caches.hh.
IPACache::IPACache | ( | unsigned | numEntries, |
unsigned | _associativity, | ||
const std::string & | policy, | ||
Stats::Group * | parent | ||
) |
Definition at line 627 of file smmu_v3_caches.cc.
References associativity, ArmISA::e, fatal, and sets.
|
inlinevirtual |
Definition at line 219 of file smmu_v3_caches.hh.
void IPACache::invalidateAll | ( | ) |
Definition at line 753 of file smmu_v3_caches.cc.
References ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
void IPACache::invalidateIPA | ( | Addr | ipa, |
uint16_t | vmid | ||
) |
Definition at line 710 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, pickSetIdx(), and sets.
Referenced by SMMUv3::processCommand().
void IPACache::invalidateIPAA | ( | Addr | ipa | ) |
void IPACache::invalidateVMID | ( | uint16_t | vmid | ) |
Definition at line 738 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
const IPACache::Entry * IPACache::lookup | ( | Addr | ipa, |
uint16_t | vmid, | ||
bool | updStats = true |
||
) |
Definition at line 657 of file smmu_v3_caches.cc.
References SMMUv3BaseCache::baseCacheStats, ArmISA::e, ArmISA::i, IPACache::Entry::lastUsed, panic, pickSetIdx(), sets, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalLookups, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalMisses, and SMMUv3BaseCache::useStamp.
Referenced by store(), and SMMUTranslationProcess::translateStage2().
|
private |
Definition at line 770 of file smmu_v3_caches.cc.
References associativity, SMMUv3BaseCache::baseCacheStats, ArmISA::i, SMMUv3BaseCache::SMMUv3BaseCacheStats::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 764 of file smmu_v3_caches.cc.
References sets, and ArmISA::va.
Referenced by invalidateIPA(), lookup(), and store().
void IPACache::store | ( | const Entry & | incoming | ) |
Definition at line 690 of file smmu_v3_caches.cc.
References SMMUv3BaseCache::baseCacheStats, IPACache::Entry::ipa, IPACache::Entry::lastUsed, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), sets, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalUpdates, IPACache::Entry::valid, and IPACache::Entry::vmid.
Referenced by SMMUTranslationProcess::translateStage2().
|
private |
Definition at line 233 of file smmu_v3_caches.hh.
Referenced by IPACache(), and pickEntryIdxToReplace().
|
private |
Definition at line 231 of file smmu_v3_caches.hh.
Referenced by invalidateAll(), invalidateIPA(), invalidateIPAA(), invalidateVMID(), IPACache(), lookup(), pickSetIdx(), and store().