gem5  v21.1.0.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
gem5::ruby::PerfectCacheMemory< ENTRY > Class Template Reference

#include <PerfectCacheMemory.hh>

Public Member Functions

 PerfectCacheMemory ()
 
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
 

Detailed Description

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

Definition at line 72 of file PerfectCacheMemory.hh.

Constructor & Destructor Documentation

◆ PerfectCacheMemory() [1/2]

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

Definition at line 124 of file PerfectCacheMemory.hh.

◆ PerfectCacheMemory() [2/2]

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

Member Function Documentation

◆ allocate()

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

◆ cacheAvail()

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

Definition at line 138 of file PerfectCacheMemory.hh.

◆ cacheProbe()

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

Definition at line 167 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

Definition at line 158 of file PerfectCacheMemory.hh.

References gem5::ruby::makeLineAddress().

◆ getPermission()

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

Definition at line 191 of file PerfectCacheMemory.hh.

References gem5::ruby::makeLineAddress().

◆ isTagPresent()

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

Definition at line 131 of file PerfectCacheMemory.hh.

References gem5::ruby::makeLineAddress().

◆ lookup() [1/2]

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

Definition at line 176 of file PerfectCacheMemory.hh.

References gem5::ruby::makeLineAddress().

◆ lookup() [2/2]

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

Definition at line 184 of file PerfectCacheMemory.hh.

References gem5::ruby::makeLineAddress().

◆ operator=()

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

◆ print()

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

Definition at line 208 of file PerfectCacheMemory.hh.

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

Member Data Documentation

◆ m_map

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

Definition at line 110 of file PerfectCacheMemory.hh.


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

Generated on Tue Sep 21 2021 12:32:09 for gem5 by doxygen 1.8.17