|
gem5 [DEVELOP-FOR-25.0]
|
#include <PersistentTable.hh>
Public Member Functions | |
| PersistentTable () | |
| ~PersistentTable () | |
| void | setBlockSize (int block_size) |
| 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) |
| Addr | makeLineAddress (Addr addr) const |
Private Attributes | |
| int | m_block_size_bits = 0 |
| AddressMap | m_map |
Definition at line 57 of file PersistentTable.hh.
|
private |
Definition at line 94 of file PersistentTable.hh.
| gem5::ruby::PersistentTable::PersistentTable | ( | ) |
Definition at line 37 of file PersistentTable.cc.
Referenced by operator=(), and PersistentTable().
| gem5::ruby::PersistentTable::~PersistentTable | ( | ) |
Definition at line 41 of file PersistentTable.cc.
|
private |
References PersistentTable().
| 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 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 makeLineAddress().
Definition at line 121 of file PersistentTable.cc.
References gem5::ArmISA::i, m_map, gem5::ruby::PersistentTableEntry::m_starving, 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 makeLineAddress().
Definition at line 98 of file PersistentTable.hh.
References gem5::X86ISA::addr, m_block_size_bits, and gem5::ruby::makeLineAddress().
Referenced by countReadStarvingForAddress(), countStarvingForAddress(), findSmallest(), isLocked(), markEntries(), okToIssueStarving(), persistentRequestLock(), persistentRequestUnlock(), and typeOfSmallest().
| 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 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 makeLineAddress().
|
private |
References PersistentTable().
| 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, makeLineAddress(), gem5::X86ISA::present, and gem5::MipsISA::r.
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, 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<<().
|
inline |
Definition at line 67 of file PersistentTable.hh.
References gem5::floorLog2(), and m_block_size_bits.
| 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, makeLineAddress(), and gem5::ruby::NetDest::smallestElement().
|
private |
Definition at line 91 of file PersistentTable.hh.
Referenced by makeLineAddress(), and setBlockSize().
|
private |
Definition at line 95 of file PersistentTable.hh.
Referenced by countReadStarvingForAddress(), countStarvingForAddress(), findSmallest(), isLocked(), markEntries(), okToIssueStarving(), persistentRequestLock(), persistentRequestUnlock(), and typeOfSmallest().