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

#include <PerfectCacheMemory.hh>

Public Member Functions

 PerfectCacheMemory ()
 
void setRubySystem (RubySystem *rs)
 
bool isTagPresent (Addr address) const
 
bool cacheAvail (Addr address) const
 
void allocate (Addr address)
 
void deallocate (Addr address)
 
Addr cacheProbe (Addr newAddress) const
 
ENTRY * lookup (Addr address)
 
const ENTRY * lookup (Addr address) const
 
AccessPermission getPermission (Addr address) const
 
void changePermission (Addr address, AccessPermission new_perm)
 
void print (std::ostream &out) const
 

Private Member Functions

 PerfectCacheMemory (const PerfectCacheMemory &obj)
 
PerfectCacheMemoryoperator= (const PerfectCacheMemory &obj)
 

Private Attributes

std::unordered_map< Addr, PerfectCacheLineState< ENTRY > > m_map
 
RubySystemm_ruby_system = nullptr
 
int m_block_size = 0
 

Static Private Attributes

static constexpr bool entryRequiresRubySystem
 

Detailed Description

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

Definition at line 74 of file PerfectCacheMemory.hh.

Constructor & Destructor Documentation

◆ PerfectCacheMemory() [1/2]

template<class ENTRY>
gem5::ruby::PerfectCacheMemory< ENTRY >::PerfectCacheMemory ( )
inline

Definition at line 134 of file PerfectCacheMemory.hh.

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

◆ PerfectCacheMemory() [2/2]

template<class ENTRY>
gem5::ruby::PerfectCacheMemory< ENTRY >::PerfectCacheMemory ( const PerfectCacheMemory< ENTRY > & obj)
private

References PerfectCacheMemory().

Member Function Documentation

◆ allocate()

◆ cacheAvail()

template<class ENTRY>
bool gem5::ruby::PerfectCacheMemory< ENTRY >::cacheAvail ( Addr address) const
inline

Definition at line 156 of file PerfectCacheMemory.hh.

◆ cacheProbe()

template<class ENTRY>
Addr gem5::ruby::PerfectCacheMemory< ENTRY >::cacheProbe ( Addr newAddress) const
inline

Definition at line 190 of file PerfectCacheMemory.hh.

References panic.

◆ changePermission()

template<class ENTRY>
void gem5::ruby::PerfectCacheMemory< ENTRY >::changePermission ( Addr address,
AccessPermission new_perm )
inline

◆ deallocate()

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

◆ getPermission()

template<class ENTRY>
AccessPermission gem5::ruby::PerfectCacheMemory< ENTRY >::getPermission ( Addr address) const
inline

◆ isTagPresent()

template<class ENTRY>
bool gem5::ruby::PerfectCacheMemory< ENTRY >::isTagPresent ( Addr address) const
inline

◆ lookup() [1/2]

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

◆ lookup() [2/2]

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

◆ operator=()

template<class ENTRY>
PerfectCacheMemory & gem5::ruby::PerfectCacheMemory< ENTRY >::operator= ( const PerfectCacheMemory< ENTRY > & obj)
private

References PerfectCacheMemory().

◆ print()

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

Definition at line 234 of file PerfectCacheMemory.hh.

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

◆ setRubySystem()

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

Definition at line 140 of file PerfectCacheMemory.hh.

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

Member Data Documentation

◆ entryRequiresRubySystem

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

Definition at line 119 of file PerfectCacheMemory.hh.

Referenced by allocate().

◆ m_block_size

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

◆ m_map

template<class ENTRY>
std::unordered_map<Addr, PerfectCacheLineState<ENTRY> > gem5::ruby::PerfectCacheMemory< ENTRY >::m_map
private

◆ m_ruby_system

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

Definition at line 116 of file PerfectCacheMemory.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:36 for gem5 by doxygen 1.13.2