gem5 v24.1.0.1
|
#include <tlb.hh>
Public Member Functions | |
TlbEntry * | accessEntry (const KeyType &key) override |
Do an access to the entry if it exists. | |
TlbEntry * | findEntry (const KeyType &key) const override |
Find an entry within the set. | |
void | invalidatePrev (const TlbEntry *invalid=nullptr) |
Invalidate the last matched entry The method has an optional param, which means: invalidate cached prev only if matches the entry argument. | |
![]() | |
AssociativeCache (const char *name) | |
Empty constructor - need to call init() later with all args. | |
AssociativeCache (const char *name, const size_t num_entries, const size_t associativity_, BaseReplacementPolicy *repl_policy, IndexingPolicy *indexing_policy, TlbEntry const &init_val=TlbEntry()) | |
Public constructor. | |
AssociativeCache (const AssociativeCache &)=delete | |
Disable copy and assignment. | |
~AssociativeCache ()=default | |
Default destructor. | |
AssociativeCache & | operator= (const AssociativeCache &)=delete |
void | clear () |
Clear the entries in the cache. | |
void | init (const size_t num_entries, const size_t associativity_, BaseReplacementPolicy *_repl_policy, IndexingPolicy *_indexing_policy, TlbEntry const &init_val=TlbEntry()) |
void | setDebugFlag (const ::gem5::debug::SimpleFlag &flag) |
virtual void | accessEntry (TlbEntry *entry) |
Update the replacement information for an entry. | |
virtual TlbEntry * | findVictim (const KeyType &key) |
Find a victim to be replaced. | |
virtual void | invalidate (TlbEntry *entry) |
Invalidate an entry and its respective replacement data. | |
virtual void | insertEntry (const KeyType &key, TlbEntry *entry) |
Indicate that an entry has just been inserted. | |
std::vector< TlbEntry * > | getPossibleEntries (const KeyType &key) const |
Find the set of entries that could be replaced given that we want to add a new entry with the provided key. | |
iterator | begin () |
Returns an iterator to the first entry of the dictionary. | |
const_iterator | begin () const |
Returns an iterator to the first entry of the dictionary. | |
iterator | end () |
Returns an iterator pointing to the end of the the dictionary (placeholder element, should not be accessed) | |
const_iterator | end () const |
Returns an iterator pointing to the end of the the dictionary (placeholder element, should not be accessed) | |
![]() | |
Named (const std::string &name_) | |
virtual | ~Named ()=default |
virtual std::string | name () const |
Private Attributes | |
TlbEntry * | prev = nullptr |
Last matched entry. | |
Additional Inherited Members | |
![]() | |
using | const_iterator = typename std::vector< TlbEntry >::const_iterator |
Iterator types. | |
using | iterator = typename std::vector< TlbEntry >::iterator |
![]() | |
typedef replacement_policy::Base | BaseReplacementPolicy |
typedef Entry::IndexingPolicy | IndexingPolicy |
typedef Entry::KeyType | KeyType |
![]() | |
size_t | associativity |
Associativity of the cache. | |
BaseReplacementPolicy * | replPolicy |
The replacement policy of the cache. | |
IndexingPolicy * | indexingPolicy |
Indexing policy of the cache. | |
std::vector< TlbEntry > | entries |
The entries. | |
const ::gem5::debug::SimpleFlag * | debugFlag |
Do an access to the entry if it exists.
This is required to update the replacement information data.
key | key to the entry |
Reimplemented from gem5::AssociativeCache< TlbEntry >.
Definition at line 62 of file tlb.cc.
Referenced by gem5::ArmISA::TLB::lookup().
Find an entry within the set.
key | key element |
Reimplemented from gem5::AssociativeCache< TlbEntry >.
void gem5::TLB::Table::invalidatePrev | ( | const TlbEntry * | invalid = nullptr | ) |
Invalidate the last matched entry The method has an optional param, which means: invalidate cached prev only if matches the entry argument.
This is to be used for example on TLB entry invalidations
invalid | flush prev if param is nullptr, otherwise only if prev == invalid |
Definition at line 95 of file tlb.cc.
Referenced by gem5::ArmISA::TLB::flush(), gem5::ArmISA::TLB::flushAll(), and gem5::ArmISA::TLB::insert().
|
mutableprivate |