gem5 v24.0.0.0
|
#include <episode.hh>
Classes | |
class | Action |
Public Types | |
typedef AddressManager::Location | Location |
typedef AddressManager::Value | Value |
Public Member Functions | |
Episode (ProtocolTester *tester, TesterThread *thread, int num_loads, int num_stores) | |
~Episode () | |
int | getEpisodeId () const |
const Action * | peekCurAction () const |
void | popAction () |
bool | hasMoreActions () const |
void | completeEpisode () |
bool | isEpsActive () const |
bool | checkDRF (Location atomic_loc, Location loc, bool isStore, int max_lane) const |
Private Types | |
typedef std::vector< Action * > | ActionList |
typedef std::vector< Location > | AtomicLocationList |
Private Member Functions | |
void | initActions () |
Private Attributes | |
ProtocolTester * | tester |
TesterThread * | thread |
AddressManager * | addrManager |
int | episodeId |
ActionList | actions |
AtomicLocationList | atomicLocs |
bool | isActive |
int | numLoads |
int | numStores |
int | nextActionIdx |
int | numLanes |
Definition at line 45 of file episode.hh.
|
private |
Definition at line 109 of file episode.hh.
|
private |
Definition at line 112 of file episode.hh.
Definition at line 48 of file episode.hh.
Definition at line 49 of file episode.hh.
gem5::Episode::Episode | ( | ProtocolTester * | tester, |
TesterThread * | thread, | ||
int | num_loads, | ||
int | num_stores ) |
Definition at line 44 of file episode.cc.
References addrManager, atomicLocs, DPRINTFN, episodeId, gem5::ProtocolTester::getAddressManager(), gem5::ProtocolTester::getNextEpisodeID(), gem5::TesterThread::getNumLanes(), initActions(), gem5::AddressManager::INVALID_LOCATION, isActive, numLanes, tester, and thread.
gem5::Episode::~Episode | ( | ) |
Definition at line 69 of file episode.cc.
References actions.
bool gem5::Episode::checkDRF | ( | Location | atomic_loc, |
Location | loc, | ||
bool | isStore, | ||
int | max_lane ) const |
Definition at line 241 of file episode.cc.
References actions, atomicLocs, gem5::TesterThread::getTesterThreadId(), gem5::AddressManager::INVALID_LOCATION, numLanes, gem5::Episode::Action::STORE, thread, and warn.
Referenced by gem5::TesterThread::checkDRF().
void gem5::Episode::completeEpisode | ( | ) |
Definition at line 201 of file episode.cc.
References actions, addrManager, gem5::AddressManager::INVALID_LOCATION, isActive, numLanes, and gem5::AddressManager::releaseLocation().
Referenced by gem5::TesterThread::wakeup().
|
inline |
Definition at line 85 of file episode.hh.
References episodeId.
Referenced by gem5::DmaThread::hitCallback(), gem5::GpuWavefront::hitCallback(), gem5::GpuWavefront::issueAcquireOp(), gem5::GpuWavefront::issueAtomicOps(), gem5::DmaThread::issueLoadOps(), gem5::GpuWavefront::issueLoadOps(), gem5::GpuWavefront::issueReleaseOp(), gem5::DmaThread::issueStoreOps(), gem5::GpuWavefront::issueStoreOps(), gem5::TesterThread::validateAtomicResp(), and gem5::TesterThread::validateLoadResp().
|
inline |
Definition at line 91 of file episode.hh.
References actions, and nextActionIdx.
Referenced by gem5::TesterThread::isNextActionReady(), and gem5::TesterThread::wakeup().
|
private |
Definition at line 94 of file episode.cc.
References gem5::Episode::Action::ACQUIRE, actions, addrManager, gem5::Episode::Action::ATOMIC, atomicLocs, gem5::ProtocolTester::checkDRF(), gem5::AddressManager::finishLocSelection(), gem5::AddressManager::getAtomicLoc(), gem5::TesterThread::getTesterThreadId(), gem5::AddressManager::INVALID_LOCATION, gem5::Episode::Action::LOAD, numLanes, numLoads, numStores, panic, gem5::Random::random(), gem5::random_mt, gem5::Episode::Action::RELEASE, gem5::Episode::Action::STORE, tester, and thread.
Referenced by Episode().
|
inline |
Definition at line 95 of file episode.hh.
References isActive.
Referenced by gem5::TesterThread::checkDRF().
const Episode::Action * gem5::Episode::peekCurAction | ( | ) | const |
Definition at line 78 of file episode.cc.
References actions, and nextActionIdx.
Referenced by gem5::TesterThread::getTokensNeeded(), and gem5::TesterThread::isNextActionReady().
void gem5::Episode::popAction | ( | ) |
Definition at line 87 of file episode.cc.
References actions, and nextActionIdx.
Referenced by gem5::TesterThread::issueNextAction().
|
private |
Definition at line 110 of file episode.hh.
Referenced by checkDRF(), completeEpisode(), hasMoreActions(), initActions(), peekCurAction(), popAction(), and ~Episode().
|
private |
Definition at line 104 of file episode.hh.
Referenced by completeEpisode(), Episode(), and initActions().
|
private |
Definition at line 113 of file episode.hh.
Referenced by checkDRF(), Episode(), and initActions().
|
private |
Definition at line 107 of file episode.hh.
Referenced by Episode(), and getEpisodeId().
|
private |
Definition at line 116 of file episode.hh.
Referenced by completeEpisode(), Episode(), and isEpsActive().
|
private |
Definition at line 121 of file episode.hh.
Referenced by hasMoreActions(), peekCurAction(), and popAction().
|
private |
Definition at line 123 of file episode.hh.
Referenced by checkDRF(), completeEpisode(), Episode(), gem5::Episode::Action::getLocation(), initActions(), and gem5::Episode::Action::setLocation().
|
private |
Definition at line 118 of file episode.hh.
Referenced by initActions().
|
private |
Definition at line 119 of file episode.hh.
Referenced by initActions().
|
private |
Definition at line 102 of file episode.hh.
Referenced by Episode(), and initActions().
|
private |
Definition at line 103 of file episode.hh.
Referenced by checkDRF(), Episode(), and initActions().