gem5 v24.1.0.1
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
gem5::ArmISA::TLB::Table Class Reference

#include <tlb.hh>

Inheritance diagram for gem5::ArmISA::TLB::Table:
gem5::AssociativeCache< TlbEntry > gem5::Named

Public Member Functions

TlbEntryaccessEntry (const KeyType &key) override
 Do an access to the entry if it exists.
 
TlbEntryfindEntry (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.
 
- Public Member Functions inherited from gem5::AssociativeCache< TlbEntry >
 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.
 
AssociativeCacheoperator= (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 TlbEntryfindVictim (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)
 
- Public Member Functions inherited from gem5::Named
 Named (const std::string &name_)
 
virtual ~Named ()=default
 
virtual std::string name () const
 

Private Attributes

TlbEntryprev = nullptr
 Last matched entry.
 

Additional Inherited Members

- Public Types inherited from gem5::AssociativeCache< TlbEntry >
using const_iterator = typename std::vector< TlbEntry >::const_iterator
 Iterator types.
 
using iterator = typename std::vector< TlbEntry >::iterator
 
- Protected Types inherited from gem5::AssociativeCache< TlbEntry >
typedef replacement_policy::Base BaseReplacementPolicy
 
typedef Entry::IndexingPolicy IndexingPolicy
 
typedef Entry::KeyType KeyType
 
- Protected Attributes inherited from gem5::AssociativeCache< TlbEntry >
size_t associativity
 Associativity of the cache.
 
BaseReplacementPolicyreplPolicy
 The replacement policy of the cache.
 
IndexingPolicyindexingPolicy
 Indexing policy of the cache.
 
std::vector< TlbEntryentries
 The entries.
 
const ::gem5::debug::SimpleFlagdebugFlag
 

Detailed Description

Definition at line 106 of file tlb.hh.

Member Function Documentation

◆ accessEntry()

TlbEntry * gem5::TLB::Table::accessEntry ( const KeyType key)
overridevirtual

Do an access to the entry if it exists.

This is required to update the replacement information data.

Parameters
keykey to the entry
Returns
The entry if it exists

Reimplemented from gem5::AssociativeCache< TlbEntry >.

Definition at line 62 of file tlb.cc.

Referenced by gem5::ArmISA::TLB::lookup().

◆ findEntry()

TlbEntry * gem5::TLB::Table::findEntry ( const KeyType key) const
overridevirtual

Find an entry within the set.

Parameters
keykey element
Returns
returns a pointer to the wanted entry or nullptr if it does not exist.

Reimplemented from gem5::AssociativeCache< TlbEntry >.

Definition at line 74 of file tlb.cc.

◆ invalidatePrev()

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

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

Member Data Documentation

◆ prev

TlbEntry* gem5::ArmISA::TLB::Table::prev = nullptr
mutableprivate

Last matched entry.

Definition at line 127 of file tlb.hh.


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

Generated on Mon Jan 13 2025 04:29:04 for gem5 by doxygen 1.9.8