gem5 v24.0.0.0
|
#include <smmu_v3_caches.hh>
Classes | |
struct | Entry |
Public Member Functions | |
ARMArchTLB (unsigned numEntries, unsigned _associativity, const std::string &policy, statistics::Group *parent) | |
virtual | ~ARMArchTLB () |
const Entry * | lookup (Addr va, uint16_t asid, uint16_t vmid, bool updStats=true) |
void | store (const Entry &incoming) |
void | invalidateVA (Addr va, uint16_t asid, uint16_t vmid) |
void | invalidateVAA (Addr va, uint16_t vmid) |
void | invalidateASID (uint16_t asid, uint16_t vmid) |
void | invalidateVMID (uint16_t vmid) |
void | invalidateAll () |
Public Member Functions inherited from gem5::SMMUv3BaseCache | |
SMMUv3BaseCache (const std::string &policy_name, uint32_t seed, statistics::Group *parent, const std::string &name) | |
virtual | ~SMMUv3BaseCache () |
Private Types | |
typedef std::vector< Entry > | Set |
Private Member Functions | |
size_t | pickSetIdx (Addr va, uint16_t asid, uint16_t vmid) 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 gem5::SMMUv3BaseCache | |
static int | decodePolicyName (const std::string &policy_name) |
Protected Attributes inherited from gem5::SMMUv3BaseCache | |
int | replacementPolicy |
size_t | nextToReplace |
Random | random |
uint32_t | useStamp |
gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats | baseCacheStats |
Definition at line 161 of file smmu_v3_caches.hh.
|
private |
Definition at line 196 of file smmu_v3_caches.hh.
gem5::ARMArchTLB::ARMArchTLB | ( | unsigned | numEntries, |
unsigned | _associativity, | ||
const std::string & | policy, | ||
statistics::Group * | parent ) |
Definition at line 434 of file smmu_v3_caches.cc.
References associativity, gem5::ArmISA::e, fatal, gem5::ArmISA::set, sets, and gem5::ARMArchTLB::Entry::valid.
|
inlinevirtual |
Definition at line 182 of file smmu_v3_caches.hh.
void gem5::ARMArchTLB::invalidateAll | ( | ) |
Definition at line 579 of file smmu_v3_caches.cc.
References gem5::ArmISA::i, gem5::ArmISA::s, gem5::ArmISA::set, and sets.
Referenced by gem5::SMMUv3::processCommand().
void gem5::ARMArchTLB::invalidateASID | ( | uint16_t | asid, |
uint16_t | vmid ) |
Definition at line 549 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, gem5::ArmISA::set, sets, and gem5::ARMArchTLB::Entry::valid.
Referenced by gem5::SMMUv3::processCommand().
void gem5::ARMArchTLB::invalidateVA | ( | Addr | va, |
uint16_t | asid, | ||
uint16_t | vmid ) |
Definition at line 518 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::ArmISA::e, gem5::ArmISA::i, pickSetIdx(), gem5::ArmISA::set, sets, gem5::ArmISA::va, and gem5::ARMArchTLB::Entry::valid.
Referenced by gem5::SMMUv3::processCommand().
void gem5::ARMArchTLB::invalidateVAA | ( | Addr | va, |
uint16_t | vmid ) |
Definition at line 534 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, gem5::ArmISA::set, sets, gem5::ArmISA::va, and gem5::ARMArchTLB::Entry::valid.
Referenced by gem5::SMMUv3::processCommand().
void gem5::ARMArchTLB::invalidateVMID | ( | uint16_t | vmid | ) |
Definition at line 564 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, gem5::ArmISA::set, sets, and gem5::ARMArchTLB::Entry::valid.
Referenced by gem5::SMMUv3::processCommand().
const ARMArchTLB::Entry * gem5::ARMArchTLB::lookup | ( | Addr | va, |
uint16_t | asid, | ||
uint16_t | vmid, | ||
bool | updStats = true ) |
Definition at line 464 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::SMMUv3BaseCache::baseCacheStats, gem5::ArmISA::e, gem5::ArmISA::i, gem5::ARMArchTLB::Entry::lastUsed, panic, pickSetIdx(), gem5::ArmISA::set, sets, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalLookups, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalMisses, gem5::SMMUv3BaseCache::useStamp, and gem5::ArmISA::va.
Referenced by gem5::SMMUTranslationProcess::smmuTLBLookup(), and store().
|
private |
Definition at line 596 of file smmu_v3_caches.cc.
References associativity, gem5::SMMUv3BaseCache::baseCacheStats, gem5::ArmISA::i, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::insertions, gem5::SMMUv3BaseCache::nextToReplace, panic, gem5::Random::random(), gem5::SMMUv3BaseCache::random, gem5::SMMUv3BaseCache::replacementPolicy, gem5::ArmISA::set, gem5::SMMU_CACHE_REPL_LRU, gem5::SMMU_CACHE_REPL_RANDOM, and gem5::SMMU_CACHE_REPL_ROUND_ROBIN.
Referenced by store().
|
private |
Definition at line 590 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, sets, and gem5::ArmISA::va.
Referenced by invalidateVA(), lookup(), and store().
void gem5::ARMArchTLB::store | ( | const Entry & | incoming | ) |
Definition at line 497 of file smmu_v3_caches.cc.
References gem5::ARMArchTLB::Entry::asid, gem5::SMMUv3BaseCache::baseCacheStats, gem5::ARMArchTLB::Entry::lastUsed, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), gem5::ArmISA::set, sets, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalUpdates, gem5::ARMArchTLB::Entry::va, gem5::ARMArchTLB::Entry::valid, and gem5::ARMArchTLB::Entry::vmid.
Referenced by gem5::SMMUTranslationProcess::smmuTLBUpdate().
|
private |
Definition at line 199 of file smmu_v3_caches.hh.
Referenced by ARMArchTLB(), and pickEntryIdxToReplace().
|
private |
Definition at line 197 of file smmu_v3_caches.hh.
Referenced by ARMArchTLB(), invalidateAll(), invalidateASID(), invalidateVA(), invalidateVAA(), invalidateVMID(), lookup(), pickSetIdx(), and store().