gem5  v22.1.0.0
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
gem5::SMMUTLB Class Reference

#include <smmu_v3_caches.hh>

Inheritance diagram for gem5::SMMUTLB:


struct  Entry

Public Types


Public Member Functions

 SMMUTLB (unsigned numEntries, unsigned _associativity, const std::string &policy, statistics::Group *parent, const std::string &name)
 SMMUTLB (const SMMUTLB &tlb)=delete
virtual ~SMMUTLB ()
const Entrylookup (uint32_t sid, uint32_t ssid, Addr va, bool updStats=true)
const EntrylookupAnyVA (uint32_t sid, uint32_t ssid, bool updStats=true)
void store (const Entry &incoming, AllocPolicy alloc)
void invalidateSSID (uint32_t sid, uint32_t ssid)
void invalidateSID (uint32_t sid)
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< EntrySet

Private Member Functions

size_t pickSetIdx (uint32_t sid, uint32_t ssid) const
size_t pickSetIdx (Addr va) const
size_t pickEntryIdxToReplace (const Set &set, AllocPolicy alloc)

Private Attributes

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

Detailed Description

Definition at line 99 of file smmu_v3_caches.hh.

Member Typedef Documentation

◆ Set

Definition at line 151 of file smmu_v3_caches.hh.

Member Enumeration Documentation

◆ AllocPolicy


Definition at line 102 of file smmu_v3_caches.hh.

Constructor & Destructor Documentation

◆ SMMUTLB() [1/2]

gem5::SMMUTLB::SMMUTLB ( unsigned  numEntries,
unsigned  _associativity,
const std::string &  policy,
statistics::Group parent,
const std::string &  name 

Definition at line 153 of file

References associativity, gem5::ArmISA::e, fatal, gem5::ArmISA::set, and sets.

◆ SMMUTLB() [2/2]

gem5::SMMUTLB::SMMUTLB ( const SMMUTLB tlb)


virtual gem5::SMMUTLB::~SMMUTLB ( )

Definition at line 134 of file smmu_v3_caches.hh.

Member Function Documentation

◆ invalidateAll()

void gem5::SMMUTLB::invalidateAll ( )

Definition at line 353 of file

References gem5::ArmISA::i, gem5::VegaISA::s, gem5::ArmISA::set, and sets.

◆ invalidateASID()

void gem5::SMMUTLB::invalidateASID ( uint16_t  asid,
uint16_t  vmid 

◆ invalidateSID()

void gem5::SMMUTLB::invalidateSID ( uint32_t  sid)

◆ invalidateSSID()

void gem5::SMMUTLB::invalidateSSID ( uint32_t  sid,
uint32_t  ssid 

Definition at line 266 of file

References gem5::ArmISA::e, gem5::ArmISA::i, pickSetIdx(), gem5::ArmISA::set, and sets.

◆ invalidateVA()

void gem5::SMMUTLB::invalidateVA ( Addr  va,
uint16_t  asid,
uint16_t  vmid 

◆ invalidateVAA()

void gem5::SMMUTLB::invalidateVAA ( Addr  va,
uint16_t  vmid 

◆ invalidateVMID()

void gem5::SMMUTLB::invalidateVMID ( uint16_t  vmid)

◆ lookup()

const SMMUTLB::Entry * gem5::SMMUTLB::lookup ( uint32_t  sid,
uint32_t  ssid,
Addr  va,
bool  updStats = true 

◆ lookupAnyVA()

const SMMUTLB::Entry * gem5::SMMUTLB::lookupAnyVA ( uint32_t  sid,
uint32_t  ssid,
bool  updStats = true 

◆ pickEntryIdxToReplace()

size_t gem5::SMMUTLB::pickEntryIdxToReplace ( const Set set,
AllocPolicy  alloc 

◆ pickSetIdx() [1/2]

size_t gem5::SMMUTLB::pickSetIdx ( Addr  va) const

Definition at line 364 of file

References sets, and gem5::ArmISA::va.

◆ pickSetIdx() [2/2]

size_t gem5::SMMUTLB::pickSetIdx ( uint32_t  sid,
uint32_t  ssid 
) const

Definition at line 370 of file

References sets.

Referenced by invalidateSSID(), invalidateVA(), invalidateVAA(), lookup(), and store().

◆ store()

void gem5::SMMUTLB::store ( const Entry incoming,
AllocPolicy  alloc 

Member Data Documentation

◆ associativity

size_t gem5::SMMUTLB::associativity

Definition at line 154 of file smmu_v3_caches.hh.

Referenced by pickEntryIdxToReplace(), and SMMUTLB().

◆ sets

std::vector<Set> gem5::SMMUTLB::sets

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

Generated on Wed Dec 21 2022 10:23:17 for gem5 by doxygen 1.9.1