|
gem5
v21.0.1.0
|
#include <smmu_v3_caches.hh>
Classes | |
| struct | Entry |
Public Member Functions | |
| ARMArchTLB (unsigned numEntries, unsigned _associativity, const std::string &policy, Stats::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 SMMUv3BaseCache | |
| 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 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 SMMUv3BaseCache | |
| static int | decodePolicyName (const std::string &policy_name) |
Protected Attributes inherited from SMMUv3BaseCache | |
| int | replacementPolicy |
| size_t | nextToReplace |
| Random | random |
| uint32_t | useStamp |
| SMMUv3BaseCache::SMMUv3BaseCacheStats | baseCacheStats |
Definition at line 155 of file smmu_v3_caches.hh.
|
private |
Definition at line 190 of file smmu_v3_caches.hh.
| ARMArchTLB::ARMArchTLB | ( | unsigned | numEntries, |
| unsigned | _associativity, | ||
| const std::string & | policy, | ||
| Stats::Group * | parent | ||
| ) |
Definition at line 428 of file smmu_v3_caches.cc.
References associativity, ArmISA::e, fatal, and sets.
|
inlinevirtual |
Definition at line 176 of file smmu_v3_caches.hh.
| void ARMArchTLB::invalidateAll | ( | ) |
Definition at line 573 of file smmu_v3_caches.cc.
References ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
| void ARMArchTLB::invalidateASID | ( | uint16_t | asid, |
| uint16_t | vmid | ||
| ) |
Definition at line 543 of file smmu_v3_caches.cc.
References ArmISA::asid, ArmISA::e, ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
| void ARMArchTLB::invalidateVA | ( | Addr | va, |
| uint16_t | asid, | ||
| uint16_t | vmid | ||
| ) |
Definition at line 512 of file smmu_v3_caches.cc.
References ArmISA::asid, ArmISA::e, ArmISA::i, pickSetIdx(), sets, and ArmISA::va.
Referenced by SMMUv3::processCommand().
| void ARMArchTLB::invalidateVAA | ( | Addr | va, |
| uint16_t | vmid | ||
| ) |
Definition at line 528 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, ArmISA::s, sets, and ArmISA::va.
Referenced by SMMUv3::processCommand().
| void ARMArchTLB::invalidateVMID | ( | uint16_t | vmid | ) |
Definition at line 558 of file smmu_v3_caches.cc.
References ArmISA::e, ArmISA::i, ArmISA::s, and sets.
Referenced by SMMUv3::processCommand().
| const ARMArchTLB::Entry * ARMArchTLB::lookup | ( | Addr | va, |
| uint16_t | asid, | ||
| uint16_t | vmid, | ||
| bool | updStats = true |
||
| ) |
Definition at line 458 of file smmu_v3_caches.cc.
References ArmISA::asid, SMMUv3BaseCache::baseCacheStats, ArmISA::e, ArmISA::i, ARMArchTLB::Entry::lastUsed, panic, pickSetIdx(), sets, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalLookups, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalMisses, SMMUv3BaseCache::useStamp, and ArmISA::va.
Referenced by SMMUTranslationProcess::smmuTLBLookup(), and store().
|
private |
Definition at line 590 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 584 of file smmu_v3_caches.cc.
References ArmISA::asid, sets, and ArmISA::va.
Referenced by invalidateVA(), lookup(), and store().
| void ARMArchTLB::store | ( | const Entry & | incoming | ) |
Definition at line 491 of file smmu_v3_caches.cc.
References ARMArchTLB::Entry::asid, SMMUv3BaseCache::baseCacheStats, ARMArchTLB::Entry::lastUsed, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), sets, SMMUv3BaseCache::SMMUv3BaseCacheStats::totalUpdates, ARMArchTLB::Entry::va, ARMArchTLB::Entry::valid, and ARMArchTLB::Entry::vmid.
Referenced by SMMUTranslationProcess::smmuTLBUpdate().
|
private |
Definition at line 193 of file smmu_v3_caches.hh.
Referenced by ARMArchTLB(), and pickEntryIdxToReplace().
|
private |
Definition at line 191 of file smmu_v3_caches.hh.
Referenced by ARMArchTLB(), invalidateAll(), invalidateASID(), invalidateVA(), invalidateVAA(), invalidateVMID(), lookup(), pickSetIdx(), and store().