gem5 v25.0.0.1
Loading...
Searching...
No Matches
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
TlbEntryfindEntry (const KeyType &key) const override
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 (std::string_view name)
 Empty constructor - need to call init() later with all args.
 ~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 TlbEntryaccessEntry (const KeyType &key)
 Do an access to the entry if it exists.
virtual TlbEntryfindEntry (const KeyType &key) const
 Find an entry within the set.
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.
iterator end ()
 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 (std::string_view 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
 Iterator types.
using iterator
Protected Types inherited from gem5::AssociativeCache< TlbEntry >
typedef replacement_policy::Base BaseReplacementPolicy
typedef TlbEntry::IndexingPolicy IndexingPolicy
typedef TlbEntry::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)
override

Definition at line 62 of file tlb.cc.

References accessEntry(), and findEntry().

Referenced by accessEntry().

◆ findEntry()

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

Definition at line 74 of file tlb.cc.

References gem5::AssociativeCache< TlbEntry >::indexingPolicy, and prev.

Referenced by accessEntry().

◆ 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.

References prev.

Member Data Documentation

◆ prev

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

Last matched entry.

Definition at line 127 of file tlb.hh.

Referenced by findEntry(), and invalidatePrev().


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

Generated on Sat Oct 18 2025 08:06:57 for gem5 by doxygen 1.14.0