gem5  v21.0.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
IPACache Class Reference

#include <smmu_v3_caches.hh>

Inheritance diagram for IPACache:
SMMUv3BaseCache

Classes

struct  Entry
 

Public Member Functions

 IPACache (unsigned numEntries, unsigned _associativity, const std::string &policy, Stats::Group *parent)
 
virtual ~IPACache ()
 
const Entrylookup (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 SMMUv3BaseCache
 SMMUv3BaseCache (const std::string &policy_name, uint32_t seed, Stats::Group *parent, const std::string &name)
 
virtual ~SMMUv3BaseCache ()
 

Private Types

typedef std::vector< EntrySet
 

Private Member Functions

size_t pickSetIdx (Addr ipa, uint16_t vmid) const
 
size_t pickEntryIdxToReplace (const Set &set)
 

Private Attributes

std::vector< Setsets
 
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
 

Detailed Description

Definition at line 199 of file smmu_v3_caches.hh.

Member Typedef Documentation

◆ Set

typedef std::vector<Entry> IPACache::Set
private

Definition at line 230 of file smmu_v3_caches.hh.

Constructor & Destructor Documentation

◆ IPACache()

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.

◆ ~IPACache()

virtual IPACache::~IPACache ( )
inlinevirtual

Definition at line 219 of file smmu_v3_caches.hh.

Member Function Documentation

◆ invalidateAll()

void IPACache::invalidateAll ( )

Definition at line 753 of file smmu_v3_caches.cc.

References ArmISA::i, ArmISA::s, and sets.

Referenced by SMMUv3::processCommand().

◆ invalidateIPA()

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().

◆ invalidateIPAA()

void IPACache::invalidateIPAA ( Addr  ipa)

Definition at line 723 of file smmu_v3_caches.cc.

References ArmISA::e, ArmISA::i, ArmISA::s, and sets.

◆ invalidateVMID()

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().

◆ lookup()

const IPACache::Entry * IPACache::lookup ( Addr  ipa,
uint16_t  vmid,
bool  updStats = true 
)

◆ pickEntryIdxToReplace()

size_t IPACache::pickEntryIdxToReplace ( const Set set)
private

◆ pickSetIdx()

size_t IPACache::pickSetIdx ( Addr  ipa,
uint16_t  vmid 
) const
private

Definition at line 764 of file smmu_v3_caches.cc.

References sets, and ArmISA::va.

Referenced by invalidateIPA(), lookup(), and store().

◆ store()

void IPACache::store ( const Entry incoming)

Member Data Documentation

◆ associativity

size_t IPACache::associativity
private

Definition at line 233 of file smmu_v3_caches.hh.

Referenced by IPACache(), and pickEntryIdxToReplace().

◆ sets

std::vector<Set> IPACache::sets
private

The documentation for this class was generated from the following files:

Generated on Tue Jun 22 2021 15:28:40 for gem5 by doxygen 1.8.17