gem5 v24.0.0.0
|
#include <address_manager.hh>
Classes | |
class | AtomicStruct |
class | LastWriter |
Public Types | |
typedef int32_t | Value |
typedef int32_t | Location |
Public Member Functions | |
AddressManager (int n_atomic_locs, int numNormalLocsPerAtomic) | |
~AddressManager () | |
Addr | getAddress (Location loc) |
Location | getAtomicLoc () |
Location | getLoadLoc (Location atomic_loc) |
Location | getStoreLoc (Location atomic_loc) |
void | finishLocSelection (Location atomic_loc) |
void | releaseLocation (Location atomic_loc, Location loc) |
void | updateLogTable (Location loc, int threadId, int episodeId, Value new_value, Tick curTick, int cuId=-1) |
Value | getLoggedValue (Location loc) const |
bool | validateAtomicResp (Location loc, Value ret_val) |
std::string | printLastWriter (Location loc) const |
Static Public Attributes | |
static const int | INVALID_VALUE = -1 |
static const int | INVALID_LOCATION = -1 |
Private Types | |
typedef std::vector< Addr > | AddressMap |
typedef std::vector< AtomicStruct * > | AtomicStructTable |
typedef std::vector< LastWriter * > | LogTable |
Private Attributes | |
int | numAtomicLocs |
int | numLocsPerAtomic |
int | numNormalLocs |
AddressMap | randAddressMap |
AtomicStructTable | atomicStructs |
LogTable | logTable |
Definition at line 120 of file address_manager.hh.
|
private |
Definition at line 263 of file address_manager.hh.
|
private |
Definition at line 267 of file address_manager.hh.
typedef int32_t gem5::AddressManager::Location |
Definition at line 127 of file address_manager.hh.
|
private |
Definition at line 271 of file address_manager.hh.
typedef int32_t gem5::AddressManager::Value |
Definition at line 126 of file address_manager.hh.
gem5::AddressManager::AddressManager | ( | int | n_atomic_locs, |
int | numNormalLocsPerAtomic ) |
Definition at line 48 of file address_manager.cc.
References atomicStructs, gem5::floorLog2(), gem5::ArmISA::i, logTable, numAtomicLocs, numLocsPerAtomic, numNormalLocs, randAddressMap, gem5::Random::random(), and gem5::random_mt.
gem5::AddressManager::~AddressManager | ( | ) |
Definition at line 85 of file address_manager.cc.
References atomicStructs, and logTable.
void gem5::AddressManager::finishLocSelection | ( | Location | atomic_loc | ) |
Definition at line 124 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Referenced by gem5::Episode::initActions().
Definition at line 94 of file address_manager.cc.
References randAddressMap.
Referenced by gem5::TesterThread::isNextActionReady(), gem5::GpuWavefront::issueAtomicOps(), gem5::DmaThread::issueLoadOps(), gem5::GpuWavefront::issueLoadOps(), gem5::DmaThread::issueStoreOps(), gem5::GpuWavefront::issueStoreOps(), gem5::TesterThread::validateAtomicResp(), and gem5::TesterThread::validateLoadResp().
AddressManager::Location gem5::AddressManager::getAtomicLoc | ( | ) |
Definition at line 101 of file address_manager.cc.
References atomicStructs, numAtomicLocs, gem5::Random::random(), and gem5::random_mt.
Referenced by gem5::Episode::initActions().
AddressManager::Location gem5::AddressManager::getLoadLoc | ( | Location | atomic_loc | ) |
Definition at line 110 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
AddressManager::Value gem5::AddressManager::getLoggedValue | ( | Location | loc | ) | const |
Definition at line 432 of file address_manager.cc.
References logTable, numAtomicLocs, and numNormalLocs.
Referenced by gem5::DmaThread::issueStoreOps(), gem5::GpuWavefront::issueStoreOps(), and gem5::TesterThread::validateLoadResp().
AddressManager::Location gem5::AddressManager::getStoreLoc | ( | Location | atomic_loc | ) |
Definition at line 117 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
std::string gem5::AddressManager::printLastWriter | ( | Location | loc | ) | const |
Definition at line 138 of file address_manager.cc.
References logTable.
Referenced by gem5::TesterThread::validateLoadResp().
Definition at line 131 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Referenced by gem5::Episode::completeEpisode().
void gem5::AddressManager::updateLogTable | ( | Location | loc, |
int | threadId, | ||
int | episodeId, | ||
Value | new_value, | ||
Tick | curTick, | ||
int | cuId = -1 ) |
Definition at line 424 of file address_manager.cc.
References logTable, numAtomicLocs, and numNormalLocs.
Referenced by gem5::DmaThread::hitCallback(), and gem5::GpuWavefront::hitCallback().
Definition at line 439 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Referenced by gem5::TesterThread::validateAtomicResp().
|
private |
Definition at line 268 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getStoreLoc(), releaseLocation(), validateAtomicResp(), and ~AddressManager().
|
static |
Definition at line 152 of file address_manager.hh.
Referenced by gem5::Episode::Action::Action(), gem5::Episode::checkDRF(), gem5::Episode::completeEpisode(), gem5::Episode::Episode(), gem5::AddressManager::AtomicStruct::getLoadLoc(), gem5::AddressManager::AtomicStruct::getStoreLoc(), gem5::TesterThread::getTokensNeeded(), gem5::Episode::initActions(), gem5::TesterThread::isNextActionReady(), gem5::DmaThread::issueLoadOps(), gem5::GpuWavefront::issueLoadOps(), gem5::DmaThread::issueStoreOps(), and gem5::GpuWavefront::issueStoreOps().
|
static |
Definition at line 151 of file address_manager.hh.
Referenced by gem5::DmaThread::hitCallback(), and gem5::GpuWavefront::hitCallback().
|
private |
Definition at line 272 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), printLastWriter(), updateLogTable(), and ~AddressManager().
|
private |
Definition at line 256 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getLoggedValue(), getStoreLoc(), releaseLocation(), updateLogTable(), and validateAtomicResp().
|
private |
Definition at line 258 of file address_manager.hh.
Referenced by AddressManager().
|
private |
Definition at line 260 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), and updateLogTable().
|
private |
Definition at line 264 of file address_manager.hh.
Referenced by AddressManager(), and getAddress().