gem5  v20.1.0.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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 PerfectCacheMemory< ENTRY >

Definition at line 65 of file PerfectCacheMemory.hh.

Constructor & Destructor Documentation

◆ PerfectCacheMemory() [1/2]

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

Definition at line 117 of file PerfectCacheMemory.hh.

◆ PerfectCacheMemory() [2/2]

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

Member Function Documentation

◆ allocate()

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

◆ cacheAvail()

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

Definition at line 131 of file PerfectCacheMemory.hh.

◆ cacheProbe()

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

Definition at line 160 of file PerfectCacheMemory.hh.

References panic.

◆ changePermission()

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

◆ deallocate()

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

Definition at line 151 of file PerfectCacheMemory.hh.

References makeLineAddress().

◆ getPermission()

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

Definition at line 184 of file PerfectCacheMemory.hh.

References makeLineAddress().

◆ isTagPresent()

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

Definition at line 124 of file PerfectCacheMemory.hh.

References makeLineAddress().

◆ lookup() [1/2]

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

Definition at line 169 of file PerfectCacheMemory.hh.

References makeLineAddress().

◆ lookup() [2/2]

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

Definition at line 177 of file PerfectCacheMemory.hh.

References makeLineAddress().

◆ operator=()

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

◆ print()

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

Definition at line 201 of file PerfectCacheMemory.hh.

Referenced by operator<<().

Member Data Documentation

◆ m_map

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

Definition at line 103 of file PerfectCacheMemory.hh.


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

Generated on Wed Sep 30 2020 14:02:29 for gem5 by doxygen 1.8.17