|
gem5 [DEVELOP-FOR-25.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 |
| Random::RandomPtr | rng = Random::genRandom() |
Definition at line 121 of file address_manager.hh.
|
private |
Definition at line 266 of file address_manager.hh.
|
private |
Definition at line 270 of file address_manager.hh.
| typedef int32_t gem5::AddressManager::Location |
Definition at line 128 of file address_manager.hh.
|
private |
Definition at line 274 of file address_manager.hh.
| typedef int32_t gem5::AddressManager::Value |
Definition at line 127 of file address_manager.hh.
| gem5::AddressManager::AddressManager | ( | int | n_atomic_locs, |
| int | numNormalLocsPerAtomic ) |
Definition at line 47 of file address_manager.cc.
References atomicStructs, gem5::floorLog2(), gem5::ArmISA::i, logTable, numAtomicLocs, numLocsPerAtomic, numNormalLocs, randAddressMap, and rng.
| gem5::AddressManager::~AddressManager | ( | ) |
Definition at line 88 of file address_manager.cc.
References atomicStructs, and logTable.
| void gem5::AddressManager::finishLocSelection | ( | Location | atomic_loc | ) |
Definition at line 127 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Definition at line 97 of file address_manager.cc.
References randAddressMap.
| AddressManager::Location gem5::AddressManager::getAtomicLoc | ( | ) |
Definition at line 104 of file address_manager.cc.
References atomicStructs, numAtomicLocs, and rng.
| AddressManager::Location gem5::AddressManager::getLoadLoc | ( | Location | atomic_loc | ) |
Definition at line 113 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
| AddressManager::Value gem5::AddressManager::getLoggedValue | ( | Location | loc | ) | const |
Definition at line 435 of file address_manager.cc.
References logTable, numAtomicLocs, and numNormalLocs.
| AddressManager::Location gem5::AddressManager::getStoreLoc | ( | Location | atomic_loc | ) |
Definition at line 120 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
| std::string gem5::AddressManager::printLastWriter | ( | Location | loc | ) | const |
Definition at line 141 of file address_manager.cc.
References logTable.
Definition at line 134 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
| void gem5::AddressManager::updateLogTable | ( | Location | loc, |
| int | threadId, | ||
| int | episodeId, | ||
| Value | new_value, | ||
| Tick | curTick, | ||
| int | cuId = -1 ) |
Definition at line 427 of file address_manager.cc.
References logTable, numAtomicLocs, and numNormalLocs.
Definition at line 442 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
|
private |
Definition at line 271 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getStoreLoc(), releaseLocation(), validateAtomicResp(), and ~AddressManager().
|
static |
Definition at line 153 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 152 of file address_manager.hh.
Referenced by gem5::DmaThread::hitCallback(), gem5::GpuWavefront::hitCallback(), and gem5::TesterThread::issueReleaseOp().
|
private |
Definition at line 275 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), printLastWriter(), updateLogTable(), and ~AddressManager().
|
private |
Definition at line 259 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getLoggedValue(), getStoreLoc(), releaseLocation(), updateLogTable(), and validateAtomicResp().
|
private |
Definition at line 261 of file address_manager.hh.
Referenced by AddressManager().
|
private |
Definition at line 263 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), and updateLogTable().
|
private |
Definition at line 267 of file address_manager.hh.
Referenced by AddressManager(), and getAddress().
|
private |
Definition at line 277 of file address_manager.hh.
Referenced by AddressManager(), and getAtomicLoc().