gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ruby::TBETable< ENTRY > Class Template Reference

#include <TBETable.hh>

Public Member Functions

 TBETable (int number_of_TBEs)
 
bool isPresent (Addr address) const
 
void allocate (Addr address)
 
void deallocate (Addr address)
 
bool areNSlotsAvailable (int n, Tick current_time) const
 
void setRubySystem (RubySystem *rs)
 
ENTRY * getNullEntry ()
 
ENTRY * lookup (Addr address)
 
void print (std::ostream &out) const
 

Protected Member Functions

 TBETable (const TBETable &obj)
 
TBETableoperator= (const TBETable &obj)
 

Protected Attributes

std::unordered_map< Addr, ENTRY > m_map
 

Private Attributes

int m_number_of_TBEs = 0
 
int m_block_size = 0
 
RubySystemm_ruby_system = nullptr
 

Static Private Attributes

static constexpr bool entryRequiresRubySystem
 

Detailed Description

template<class ENTRY>
class gem5::ruby::TBETable< ENTRY >

Definition at line 57 of file TBETable.hh.

Constructor & Destructor Documentation

◆ TBETable() [1/2]

template<class ENTRY>
gem5::ruby::TBETable< ENTRY >::TBETable ( int number_of_TBEs)
inline

Definition at line 60 of file TBETable.hh.

References m_number_of_TBEs.

Referenced by operator=(), and TBETable().

◆ TBETable() [2/2]

template<class ENTRY>
gem5::ruby::TBETable< ENTRY >::TBETable ( const TBETable< ENTRY > & obj)
protected

References TBETable().

Member Function Documentation

◆ allocate()

template<class ENTRY>
void gem5::ruby::TBETable< ENTRY >::allocate ( Addr address)
inline

Definition at line 127 of file TBETable.hh.

References isPresent(), m_block_size, m_map, m_number_of_TBEs, and m_ruby_system.

◆ areNSlotsAvailable()

template<class ENTRY>
bool gem5::ruby::TBETable< ENTRY >::areNSlotsAvailable ( int n,
Tick current_time ) const
inline

Definition at line 69 of file TBETable.hh.

References m_map, m_number_of_TBEs, and gem5::ArmISA::n.

◆ deallocate()

template<class ENTRY>
void gem5::ruby::TBETable< ENTRY >::deallocate ( Addr address)
inline

Definition at line 139 of file TBETable.hh.

References isPresent(), and m_map.

◆ getNullEntry()

template<class ENTRY>
ENTRY * gem5::ruby::TBETable< ENTRY >::getNullEntry ( )
inline

Definition at line 148 of file TBETable.hh.

◆ isPresent()

template<class ENTRY>
bool gem5::ruby::TBETable< ENTRY >::isPresent ( Addr address) const
inline

Definition at line 118 of file TBETable.hh.

References gem5::floorLog2(), m_block_size, m_map, m_number_of_TBEs, and gem5::ruby::makeLineAddress().

Referenced by allocate(), and deallocate().

◆ lookup()

template<class ENTRY>
ENTRY * gem5::ruby::TBETable< ENTRY >::lookup ( Addr address)
inline

Definition at line 156 of file TBETable.hh.

References m_map.

◆ operator=()

template<class ENTRY>
TBETable & gem5::ruby::TBETable< ENTRY >::operator= ( const TBETable< ENTRY > & obj)
protected

References TBETable().

◆ print()

template<class ENTRY>
void gem5::ruby::TBETable< ENTRY >::print ( std::ostream & out) const
inline

Definition at line 165 of file TBETable.hh.

Referenced by gem5::ruby::operator<<().

◆ setRubySystem()

template<class ENTRY>
void gem5::ruby::TBETable< ENTRY >::setRubySystem ( RubySystem * rs)
inline

Definition at line 110 of file TBETable.hh.

References m_block_size, m_ruby_system, and gem5::ArmISA::rs.

Member Data Documentation

◆ entryRequiresRubySystem

template<class ENTRY>
bool gem5::ruby::TBETable< ENTRY >::entryRequiresRubySystem
staticconstexprprivate
Initial value:
=
std::is_member_function_pointer_v<decltype(&ENTRY::setRubySystem)>

Definition at line 95 of file TBETable.hh.

◆ m_block_size

template<class ENTRY>
int gem5::ruby::TBETable< ENTRY >::m_block_size = 0
private

Definition at line 92 of file TBETable.hh.

Referenced by allocate(), isPresent(), and setRubySystem().

◆ m_map

template<class ENTRY>
std::unordered_map<Addr, ENTRY> gem5::ruby::TBETable< ENTRY >::m_map
protected

Definition at line 88 of file TBETable.hh.

Referenced by allocate(), areNSlotsAvailable(), deallocate(), isPresent(), and lookup().

◆ m_number_of_TBEs

template<class ENTRY>
int gem5::ruby::TBETable< ENTRY >::m_number_of_TBEs = 0
private

Definition at line 91 of file TBETable.hh.

Referenced by allocate(), areNSlotsAvailable(), isPresent(), and TBETable().

◆ m_ruby_system

template<class ENTRY>
RubySystem* gem5::ruby::TBETable< ENTRY >::m_ruby_system = nullptr
private

Definition at line 93 of file TBETable.hh.

Referenced by allocate(), and setRubySystem().


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

Generated on Mon May 26 2025 09:19:37 for gem5 by doxygen 1.13.2