| gem5
    v21.1.0.2
    | 
#include <smmu_v3_caches.hh>
 
  
| Classes | |
| struct | Entry | 
| struct | WalkCacheStats | 
| Public Member Functions | |
| WalkCache (const std::array< unsigned, 2 *WALK_CACHE_LEVELS > &_sizes, unsigned _associativity, const std::string &policy, statistics::Group *parent) | |
| virtual | ~WalkCache () | 
| const Entry * | lookup (Addr va, Addr vaMask, uint16_t asid, uint16_t vmid, unsigned stage, unsigned level, bool updStats=true) | 
| void | store (const Entry &incoming) | 
| void | invalidateVA (Addr va, uint16_t asid, uint16_t vmid, const bool leaf_only) | 
| void | invalidateVAA (Addr va, uint16_t vmid, const bool leaf_only) | 
| 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 () | 
| Protected Attributes | |
| gem5::WalkCache::WalkCacheStats | walkCacheStats | 
|  Protected Attributes inherited from gem5::SMMUv3BaseCache | |
| int | replacementPolicy | 
| size_t | nextToReplace | 
| Random | random | 
| uint32_t | useStamp | 
| gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats | baseCacheStats | 
| Private Types | |
| typedef std::vector< Entry > | Set | 
| Private Member Functions | |
| size_t | pickSetIdx (Addr va, Addr vaMask, unsigned stage, unsigned level) const | 
| size_t | pickEntryIdxToReplace (const Set &set, unsigned stage, unsigned level) | 
| Private Attributes | |
| std::vector< Set > | sets | 
| size_t | associativity | 
| std::array< unsigned, 2 *WALK_CACHE_LEVELS > | sizes | 
| std::array< unsigned, 2 *WALK_CACHE_LEVELS > | offsets | 
| Additional Inherited Members | |
|  Static Protected Member Functions inherited from gem5::SMMUv3BaseCache | |
| static int | decodePolicyName (const std::string &policy_name) | 
Definition at line 292 of file smmu_v3_caches.hh.
| 
 | private | 
Definition at line 350 of file smmu_v3_caches.hh.
| gem5::WalkCache::WalkCache | ( | const std::array< unsigned, 2 *WALK_CACHE_LEVELS > & | _sizes, | 
| unsigned | _associativity, | ||
| const std::string & | policy, | ||
| statistics::Group * | parent | ||
| ) | 
Definition at line 977 of file smmu_v3_caches.cc.
References associativity, gem5::ArmISA::e, fatal, gem5::ArmISA::i, offsets, sets, sizes, and WALK_CACHE_LEVELS.
| 
 | inlinevirtual | 
Definition at line 317 of file smmu_v3_caches.hh.
| void gem5::WalkCache::invalidateAll | ( | ) | 
Definition at line 1158 of file smmu_v3_caches.cc.
References gem5::ArmISA::i, gem5::ArmISA::s, and sets.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::WalkCache::invalidateASID | ( | uint16_t | asid, | 
| uint16_t | vmid | ||
| ) | 
Definition at line 1128 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, and sets.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::WalkCache::invalidateVA | ( | Addr | va, | 
| uint16_t | asid, | ||
| uint16_t | vmid, | ||
| const bool | leaf_only | ||
| ) | 
Definition at line 1091 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, sets, and gem5::ArmISA::va.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::WalkCache::invalidateVAA | ( | Addr | va, | 
| uint16_t | vmid, | ||
| const bool | leaf_only | ||
| ) | 
Definition at line 1110 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, sets, and gem5::ArmISA::va.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::WalkCache::invalidateVMID | ( | uint16_t | vmid | ) | 
Definition at line 1143 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::ArmISA::s, and sets.
Referenced by gem5::SMMUv3::processCommand().
| const WalkCache::Entry * gem5::WalkCache::lookup | ( | Addr | va, | 
| Addr | vaMask, | ||
| uint16_t | asid, | ||
| uint16_t | vmid, | ||
| unsigned | stage, | ||
| unsigned | level, | ||
| bool | updStats = true | ||
| ) | 
Definition at line 1021 of file smmu_v3_caches.cc.
References gem5::ArmISA::asid, gem5::SMMUv3BaseCache::baseCacheStats, gem5::ArmISA::e, gem5::ArmISA::i, gem5::WalkCache::Entry::lastUsed, gem5::X86ISA::level, panic, pickSetIdx(), sets, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalLookups, gem5::WalkCache::WalkCacheStats::totalLookupsByStageLevel, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalMisses, gem5::WalkCache::WalkCacheStats::totalMissesByStageLevel, gem5::SMMUv3BaseCache::useStamp, gem5::ArmISA::va, and walkCacheStats.
Referenced by store(), and gem5::SMMUTranslationProcess::walkCacheLookup().
| 
 | private | 
Definition at line 1197 of file smmu_v3_caches.cc.
References associativity, gem5::SMMUv3BaseCache::baseCacheStats, gem5::ArmISA::i, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::insertions, gem5::WalkCache::WalkCacheStats::insertionsByStageLevel, gem5::X86ISA::level, gem5::SMMUv3BaseCache::nextToReplace, panic, gem5::SMMUv3BaseCache::random, gem5::Random::random(), gem5::SMMUv3BaseCache::replacementPolicy, gem5::SMMU_CACHE_REPL_LRU, gem5::SMMU_CACHE_REPL_RANDOM, gem5::SMMU_CACHE_REPL_ROUND_ROBIN, and walkCacheStats.
Referenced by store().
| 
 | private | 
Definition at line 1169 of file smmu_v3_caches.cc.
References gem5::findLsbSet(), gem5::X86ISA::level, gem5::ArmISA::offset, offsets, panic, sizes, gem5::ArmISA::va, and WALK_CACHE_LEVELS.
| void gem5::WalkCache::store | ( | const Entry & | incoming | ) | 
Definition at line 1062 of file smmu_v3_caches.cc.
References gem5::WalkCache::Entry::asid, gem5::SMMUv3BaseCache::baseCacheStats, gem5::WalkCache::Entry::lastUsed, gem5::WalkCache::Entry::level, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), sets, gem5::WalkCache::Entry::stage, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalUpdates, gem5::WalkCache::WalkCacheStats::totalUpdatesByStageLevel, gem5::WalkCache::Entry::va, gem5::WalkCache::Entry::valid, gem5::WalkCache::Entry::vaMask, gem5::WalkCache::Entry::vmid, WALK_CACHE_LEVELS, and walkCacheStats.
Referenced by gem5::SMMUTranslationProcess::walkCacheUpdate().
| 
 | private | 
Definition at line 353 of file smmu_v3_caches.hh.
Referenced by pickEntryIdxToReplace(), and WalkCache().
| 
 | private | 
Definition at line 355 of file smmu_v3_caches.hh.
Referenced by pickSetIdx(), and WalkCache().
| 
 | private | 
Definition at line 351 of file smmu_v3_caches.hh.
Referenced by invalidateAll(), invalidateASID(), invalidateVA(), invalidateVAA(), invalidateVMID(), lookup(), store(), and WalkCache().
| 
 | private | 
Definition at line 354 of file smmu_v3_caches.hh.
Referenced by pickSetIdx(), and WalkCache().
| 
 | protected | 
Referenced by lookup(), pickEntryIdxToReplace(), and store().