| gem5
    v21.1.0.2
    | 
#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 122 of file address_manager.hh.
| 
 | private | 
Definition at line 265 of file address_manager.hh.
| 
 | private | 
Definition at line 269 of file address_manager.hh.
| typedef int32_t gem5::AddressManager::Location | 
Definition at line 129 of file address_manager.hh.
| 
 | private | 
Definition at line 273 of file address_manager.hh.
| typedef int32_t gem5::AddressManager::Value | 
Definition at line 128 of file address_manager.hh.
| gem5::AddressManager::AddressManager | ( | int | n_atomic_locs, | 
| int | numNormalLocsPerAtomic | ||
| ) | 
Definition at line 49 of file address_manager.cc.
References atomicStructs, gem5::floorLog2(), gem5::ArmISA::i, logTable, numAtomicLocs, numLocsPerAtomic, numNormalLocs, and randAddressMap.
| gem5::AddressManager::~AddressManager | ( | ) | 
Definition at line 81 of file address_manager.cc.
References atomicStructs, and logTable.
| void gem5::AddressManager::finishLocSelection | ( | Location | atomic_loc | ) | 
Definition at line 119 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Referenced by gem5::Episode::initActions().
Definition at line 90 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 97 of file address_manager.cc.
References atomicStructs, numAtomicLocs, and gem5::MipsISA::random.
Referenced by gem5::Episode::initActions().
| AddressManager::Location gem5::AddressManager::getLoadLoc | ( | Location | atomic_loc | ) | 
Definition at line 105 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
| AddressManager::Value gem5::AddressManager::getLoggedValue | ( | Location | loc | ) | const | 
Definition at line 423 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 112 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
| std::string gem5::AddressManager::printLastWriter | ( | Location | loc | ) | const | 
Definition at line 133 of file address_manager.cc.
References logTable.
Referenced by gem5::TesterThread::validateLoadResp().
Definition at line 126 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 415 of file address_manager.cc.
References logTable, numAtomicLocs, and numNormalLocs.
Referenced by gem5::DmaThread::hitCallback(), and gem5::GpuWavefront::hitCallback().
Definition at line 430 of file address_manager.cc.
References atomicStructs, and numAtomicLocs.
Referenced by gem5::TesterThread::validateAtomicResp().
| 
 | private | 
Definition at line 270 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getStoreLoc(), releaseLocation(), validateAtomicResp(), and ~AddressManager().
| 
 | static | 
Definition at line 154 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::Episode::initActions(), gem5::TesterThread::isNextActionReady(), gem5::DmaThread::issueLoadOps(), gem5::GpuWavefront::issueLoadOps(), gem5::DmaThread::issueStoreOps(), and gem5::GpuWavefront::issueStoreOps().
| 
 | static | 
Definition at line 153 of file address_manager.hh.
Referenced by gem5::DmaThread::hitCallback(), and gem5::GpuWavefront::hitCallback().
| 
 | private | 
Definition at line 274 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), printLastWriter(), updateLogTable(), and ~AddressManager().
| 
 | private | 
Definition at line 258 of file address_manager.hh.
Referenced by AddressManager(), finishLocSelection(), getAtomicLoc(), getLoadLoc(), getLoggedValue(), getStoreLoc(), releaseLocation(), updateLogTable(), and validateAtomicResp().
| 
 | private | 
Definition at line 260 of file address_manager.hh.
Referenced by AddressManager().
| 
 | private | 
Definition at line 262 of file address_manager.hh.
Referenced by AddressManager(), getLoggedValue(), and updateLogTable().
| 
 | private | 
Definition at line 266 of file address_manager.hh.
Referenced by AddressManager(), and getAddress().