|
gem5
v22.1.0.0
|
#include <smmu_v3_caches.hh>
Classes | |
| struct | Entry |
Public Member Functions | |
| IPACache (unsigned numEntries, unsigned _associativity, const std::string &policy, statistics::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 () |
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 ipa, 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 205 of file smmu_v3_caches.hh.
|
private |
Definition at line 236 of file smmu_v3_caches.hh.
| gem5::IPACache::IPACache | ( | unsigned | numEntries, |
| unsigned | _associativity, | ||
| const std::string & | policy, | ||
| statistics::Group * | parent | ||
| ) |
Definition at line 633 of file smmu_v3_caches.cc.
References associativity, gem5::ArmISA::e, fatal, gem5::ArmISA::set, and sets.
|
inlinevirtual |
Definition at line 225 of file smmu_v3_caches.hh.
| void gem5::IPACache::invalidateAll | ( | ) |
Definition at line 759 of file smmu_v3_caches.cc.
References gem5::ArmISA::i, gem5::VegaISA::s, gem5::ArmISA::set, and sets.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::IPACache::invalidateIPA | ( | Addr | ipa, |
| uint16_t | vmid | ||
| ) |
Definition at line 716 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, pickSetIdx(), gem5::ArmISA::set, and sets.
Referenced by gem5::SMMUv3::processCommand().
| void gem5::IPACache::invalidateIPAA | ( | Addr | ipa | ) |
Definition at line 729 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::VegaISA::s, gem5::ArmISA::set, and sets.
| void gem5::IPACache::invalidateVMID | ( | uint16_t | vmid | ) |
Definition at line 744 of file smmu_v3_caches.cc.
References gem5::ArmISA::e, gem5::ArmISA::i, gem5::VegaISA::s, gem5::ArmISA::set, and sets.
Referenced by gem5::SMMUv3::processCommand().
| const IPACache::Entry * gem5::IPACache::lookup | ( | Addr | ipa, |
| uint16_t | vmid, | ||
| bool | updStats = true |
||
| ) |
Definition at line 663 of file smmu_v3_caches.cc.
References gem5::SMMUv3BaseCache::baseCacheStats, gem5::ArmISA::e, gem5::ArmISA::i, gem5::IPACache::Entry::lastUsed, panic, pickSetIdx(), gem5::ArmISA::set, sets, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalLookups, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalMisses, and gem5::SMMUv3BaseCache::useStamp.
Referenced by store(), and gem5::SMMUTranslationProcess::translateStage2().
|
private |
Definition at line 776 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 770 of file smmu_v3_caches.cc.
References sets, and gem5::ArmISA::va.
Referenced by invalidateIPA(), lookup(), and store().
| void gem5::IPACache::store | ( | const Entry & | incoming | ) |
Definition at line 696 of file smmu_v3_caches.cc.
References gem5::SMMUv3BaseCache::baseCacheStats, gem5::IPACache::Entry::ipa, gem5::IPACache::Entry::lastUsed, lookup(), panic, pickEntryIdxToReplace(), pickSetIdx(), gem5::ArmISA::set, sets, gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats::totalUpdates, gem5::IPACache::Entry::valid, and gem5::IPACache::Entry::vmid.
Referenced by gem5::SMMUTranslationProcess::translateStage2().
|
private |
Definition at line 239 of file smmu_v3_caches.hh.
Referenced by IPACache(), and pickEntryIdxToReplace().
|
private |
Definition at line 237 of file smmu_v3_caches.hh.
Referenced by invalidateAll(), invalidateIPA(), invalidateIPAA(), invalidateVMID(), IPACache(), lookup(), pickSetIdx(), and store().