gem5 v24.0.0.0
|
#include <PersistentTable.hh>
Public Member Functions | |
PersistentTable () | |
~PersistentTable () | |
void | persistentRequestLock (Addr address, MachineID locker, AccessType type) |
void | persistentRequestUnlock (Addr address, MachineID unlocker) |
bool | okToIssueStarving (Addr address, MachineID machID) const |
MachineID | findSmallest (Addr address) const |
AccessType | typeOfSmallest (Addr address) const |
void | markEntries (Addr address) |
bool | isLocked (Addr addr) const |
int | countStarvingForAddress (Addr addr) const |
int | countReadStarvingForAddress (Addr addr) const |
void | print (std::ostream &out) const |
Private Types | |
typedef std::unordered_map< Addr, PersistentTableEntry > | AddressMap |
Private Member Functions | |
PersistentTable (const PersistentTable &obj) | |
PersistentTable & | operator= (const PersistentTable &obj) |
Private Attributes | |
AddressMap | m_map |
Definition at line 57 of file PersistentTable.hh.
|
private |
Definition at line 86 of file PersistentTable.hh.
gem5::ruby::PersistentTable::PersistentTable | ( | ) |
Definition at line 37 of file PersistentTable.cc.
gem5::ruby::PersistentTable::~PersistentTable | ( | ) |
Definition at line 41 of file PersistentTable.cc.
|
private |
int gem5::ruby::PersistentTable::countReadStarvingForAddress | ( | Addr | addr | ) | const |
Definition at line 184 of file PersistentTable.cc.
References gem5::ruby::NetDest::count(), gem5::ArmISA::i, m_map, gem5::ruby::PersistentTableEntry::m_request_to_write, gem5::ruby::PersistentTableEntry::m_starving, and gem5::ruby::makeLineAddress().
int gem5::ruby::PersistentTable::countStarvingForAddress | ( | Addr | addr | ) | const |
Definition at line 172 of file PersistentTable.cc.
References gem5::ruby::NetDest::count(), gem5::ArmISA::i, m_map, gem5::ruby::PersistentTableEntry::m_starving, and gem5::ruby::makeLineAddress().
Definition at line 121 of file PersistentTable.cc.
References gem5::ArmISA::i, m_map, gem5::ruby::PersistentTableEntry::m_starving, gem5::ruby::makeLineAddress(), and gem5::ruby::NetDest::smallestElement().
bool gem5::ruby::PersistentTable::isLocked | ( | Addr | addr | ) | const |
Definition at line 163 of file PersistentTable.cc.
References m_map, and gem5::ruby::makeLineAddress().
void gem5::ruby::PersistentTable::markEntries | ( | Addr | address | ) |
Definition at line 146 of file PersistentTable.cc.
References gem5::ArmISA::i, gem5::ruby::NetDest::isEmpty(), m_map, gem5::ruby::PersistentTableEntry::m_marked, gem5::ruby::PersistentTableEntry::m_starving, and gem5::ruby::makeLineAddress().
Definition at line 98 of file PersistentTable.cc.
References gem5::ArmISA::i, gem5::ruby::NetDest::isElement(), gem5::ruby::NetDest::isEmpty(), m_map, gem5::ruby::PersistentTableEntry::m_marked, gem5::ruby::PersistentTableEntry::m_starving, and gem5::ruby::makeLineAddress().
|
private |
void gem5::ruby::PersistentTable::persistentRequestLock | ( | Addr | address, |
MachineID | locker, | ||
AccessType | type ) |
Definition at line 46 of file PersistentTable.cc.
References gem5::ruby::NetDest::add(), gem5::ArmISA::i, gem5::ruby::NetDest::isElement(), gem5::ruby::NetDest::isSubset(), m_map, gem5::ruby::PersistentTableEntry::m_marked, gem5::ruby::PersistentTableEntry::m_request_to_write, gem5::ruby::PersistentTableEntry::m_starving, gem5::ruby::makeLineAddress(), gem5::X86ISA::present, gem5::MipsISA::r, and gem5::X86ISA::type.
Definition at line 73 of file PersistentTable.cc.
References gem5::ruby::NetDest::isElement(), gem5::ruby::NetDest::isEmpty(), gem5::ruby::NetDest::isSubset(), m_map, gem5::ruby::PersistentTableEntry::m_marked, gem5::ruby::PersistentTableEntry::m_request_to_write, gem5::ruby::PersistentTableEntry::m_starving, gem5::ruby::makeLineAddress(), and gem5::ruby::NetDest::remove().
void gem5::ruby::PersistentTable::print | ( | std::ostream & | out | ) | const |
Definition at line 196 of file PersistentTable.cc.
Referenced by gem5::ruby::operator<<().
AccessType gem5::ruby::PersistentTable::typeOfSmallest | ( | Addr | address | ) | const |
Definition at line 131 of file PersistentTable.cc.
References gem5::ArmISA::i, m_map, gem5::ruby::PersistentTableEntry::m_request_to_write, gem5::ruby::PersistentTableEntry::m_starving, gem5::ruby::makeLineAddress(), and gem5::ruby::NetDest::smallestElement().
|
private |
Definition at line 87 of file PersistentTable.hh.
Referenced by countReadStarvingForAddress(), countStarvingForAddress(), findSmallest(), isLocked(), markEntries(), okToIssueStarving(), persistentRequestLock(), persistentRequestUnlock(), and typeOfSmallest().