gem5
v21.2.0.0
|
#include <lsq.hh>
Classes | |
class | DcachePort |
DcachePort class for the load/store queue. More... | |
class | HtmCmdRequest |
class | LSQRequest |
Memory operation metadata. More... | |
class | SingleDataRequest |
class | SplitDataRequest |
Public Member Functions | |
LSQ (CPU *cpu_ptr, IEW *iew_ptr, const O3CPUParams ¶ms) | |
Constructs an LSQ with the given parameters. More... | |
std::string | name () const |
Returns the name of the LSQ. More... | |
void | setActiveThreads (std::list< ThreadID > *at_ptr) |
Sets the pointer to the list of active threads. More... | |
void | drainSanityCheck () const |
Perform sanity checks after a drain. More... | |
bool | isDrained () const |
Has the LSQ drained? More... | |
void | takeOverFrom () |
Takes over execution from another CPU's thread. More... | |
int | entryAmount (ThreadID num_threads) |
Number of entries needed for the given amount of threads. More... | |
void | tick () |
Ticks the LSQ. More... | |
void | insertLoad (const DynInstPtr &load_inst) |
Inserts a load into the LSQ. More... | |
void | insertStore (const DynInstPtr &store_inst) |
Inserts a store into the LSQ. More... | |
Fault | executeLoad (const DynInstPtr &inst) |
Executes a load. More... | |
Fault | executeStore (const DynInstPtr &inst) |
Executes a store. More... | |
void | commitLoads (InstSeqNum &youngest_inst, ThreadID tid) |
Commits loads up until the given sequence number for a specific thread. More... | |
void | commitStores (InstSeqNum &youngest_inst, ThreadID tid) |
Commits stores up until the given sequence number for a specific thread. More... | |
void | writebackStores () |
Attempts to write back stores until all cache ports are used or the interface becomes blocked. More... | |
void | writebackStores (ThreadID tid) |
Same as above, but only for one thread. More... | |
void | squash (const InstSeqNum &squashed_num, ThreadID tid) |
Squash instructions from a thread until the specified sequence number. More... | |
bool | violation () |
Returns whether or not there was a memory ordering violation. More... | |
bool | violation (ThreadID tid) |
Returns whether or not there was a memory ordering violation for a specific thread. More... | |
DynInstPtr | getMemDepViolator (ThreadID tid) |
Gets the instruction that caused the memory ordering violation. More... | |
int | getLoadHead (ThreadID tid) |
Returns the head index of the load queue for a specific thread. More... | |
InstSeqNum | getLoadHeadSeqNum (ThreadID tid) |
Returns the sequence number of the head of the load queue. More... | |
int | getStoreHead (ThreadID tid) |
Returns the head index of the store queue. More... | |
InstSeqNum | getStoreHeadSeqNum (ThreadID tid) |
Returns the sequence number of the head of the store queue. More... | |
int | getCount () |
Returns the number of instructions in all of the queues. More... | |
int | getCount (ThreadID tid) |
Returns the number of instructions in the queues of one thread. More... | |
int | numLoads () |
Returns the total number of loads in the load queue. More... | |
int | numLoads (ThreadID tid) |
Returns the total number of loads for a single thread. More... | |
int | numStores () |
Returns the total number of stores in the store queue. More... | |
int | numStores (ThreadID tid) |
Returns the total number of stores for a single thread. More... | |
int | numHtmStarts (ThreadID tid) const |
int | numHtmStops (ThreadID tid) const |
void | resetHtmStartsStops (ThreadID tid) |
uint64_t | getLatestHtmUid (ThreadID tid) const |
void | setLastRetiredHtmUid (ThreadID tid, uint64_t htmUid) |
unsigned | numFreeLoadEntries () |
Returns the number of free load entries. More... | |
unsigned | numFreeStoreEntries () |
Returns the number of free store entries. More... | |
unsigned | numFreeEntries (ThreadID tid) |
Returns the number of free entries for a specific thread. More... | |
unsigned | numFreeLoadEntries (ThreadID tid) |
Returns the number of free entries in the LQ for a specific thread. More... | |
unsigned | numFreeStoreEntries (ThreadID tid) |
Returns the number of free entries in the SQ for a specific thread. More... | |
bool | isFull () |
Returns if the LSQ is full (either LQ or SQ is full). More... | |
bool | isFull (ThreadID tid) |
Returns if the LSQ is full for a specific thread (either LQ or SQ is full). More... | |
bool | isEmpty () const |
Returns if the LSQ is empty (both LQ and SQ are empty). More... | |
bool | lqEmpty () const |
Returns if all of the LQs are empty. More... | |
bool | sqEmpty () const |
Returns if all of the SQs are empty. More... | |
bool | lqFull () |
Returns if any of the LQs are full. More... | |
bool | lqFull (ThreadID tid) |
Returns if the LQ of a given thread is full. More... | |
bool | sqFull () |
Returns if any of the SQs are full. More... | |
bool | sqFull (ThreadID tid) |
Returns if the SQ of a given thread is full. More... | |
bool | isStalled () |
Returns if the LSQ is stalled due to a memory operation that must be replayed. More... | |
bool | isStalled (ThreadID tid) |
Returns if the LSQ of a specific thread is stalled due to a memory operation that must be replayed. More... | |
bool | hasStoresToWB () |
Returns whether or not there are any stores to write back to memory. More... | |
bool | hasStoresToWB (ThreadID tid) |
Returns whether or not a specific thread has any stores to write back to memory. More... | |
int | numStoresToWB (ThreadID tid) |
Returns the number of stores a specific thread has to write back. More... | |
bool | willWB () |
Returns if the LSQ will write back to memory this cycle. More... | |
bool | willWB (ThreadID tid) |
Returns if the LSQ of a specific thread will write back to memory this cycle. More... | |
void | dumpInsts () const |
Debugging function to print out all instructions. More... | |
void | dumpInsts (ThreadID tid) const |
Debugging function to print out instructions from a specific thread. More... | |
Fault | read (LSQRequest *request, int load_idx) |
Executes a read operation, using the load specified at the load index. More... | |
Fault | write (LSQRequest *request, uint8_t *data, int store_idx) |
Executes a store operation, using the store specified at the store index. More... | |
void | recvReqRetry () |
Retry the previous send that failed. More... | |
void | completeDataAccess (PacketPtr pkt) |
bool | recvTimingResp (PacketPtr pkt) |
Handles writing back and completing the load or store that has returned from memory. More... | |
void | recvTimingSnoopReq (PacketPtr pkt) |
Fault | pushRequest (const DynInstPtr &inst, bool isLoad, uint8_t *data, unsigned int size, Addr addr, Request::Flags flags, uint64_t *res, AtomicOpFunctorPtr amo_op, const std::vector< bool > &byte_enable) |
bool | cacheBlocked () const |
Is D-cache blocked? More... | |
void | cacheBlocked (bool v) |
Set D-cache blocked status. More... | |
bool | cachePortAvailable (bool is_load) const |
Is any store port available to use? More... | |
void | cachePortBusy (bool is_load) |
Another store port is in use. More... | |
RequestPort & | getDataPort () |
Public Attributes | |
CPU * | cpu |
The CPU pointer. More... | |
IEW * | iewStage |
The IEW stage pointer. More... | |
Static Protected Member Functions | |
static uint32_t | maxLSQAllocation (SMTQueuePolicy pol, uint32_t entries, uint32_t numThreads, uint32_t SMTThreshold) |
Auxiliary function to calculate per-thread max LSQ allocation limit. More... | |
Protected Attributes | |
bool | _cacheBlocked |
D-cache is blocked. More... | |
int | cacheStorePorts |
The number of cache ports available each cycle (stores only). More... | |
int | usedStorePorts |
The number of used cache ports in this cycle by stores. More... | |
int | cacheLoadPorts |
The number of cache ports available each cycle (loads only). More... | |
int | usedLoadPorts |
The number of used cache ports in this cycle by loads. More... | |
SMTQueuePolicy | lsqPolicy |
The LSQ policy for SMT mode. More... | |
std::list< ThreadID > * | activeThreads |
List of Active Threads in System. More... | |
unsigned | LQEntries |
Total Size of LQ Entries. More... | |
unsigned | SQEntries |
Total Size of SQ Entries. More... | |
unsigned | maxLQEntries |
Max LQ Size - Used to Enforce Sharing Policies. More... | |
unsigned | maxSQEntries |
Max SQ Size - Used to Enforce Sharing Policies. More... | |
DcachePort | dcachePort |
Data port. More... | |
std::vector< LSQUnit > | thread |
The LSQ units for individual threads. More... | |
ThreadID | numThreads |
Number of Threads. More... | |
Constructs an LSQ with the given parameters.
Definition at line 71 of file lsq.cc.
References cpu, dcachePort, DPRINTF, lsqPolicy, maxLQEntries, maxSQEntries, gem5::o3::MaxThreads, numThreads, panic, and thread.
bool gem5::o3::LSQ::cacheBlocked | ( | ) | const |
Is D-cache blocked?
Definition at line 184 of file lsq.cc.
References _cacheBlocked.
Referenced by recvReqRetry(), and gem5::o3::LSQUnit::trySendPacket().
void gem5::o3::LSQ::cacheBlocked | ( | bool | v | ) |
Set D-cache blocked status.
Definition at line 190 of file lsq.cc.
References _cacheBlocked, and gem5::ArmISA::v.
bool gem5::o3::LSQ::cachePortAvailable | ( | bool | is_load | ) | const |
Is any store port available to use?
Definition at line 196 of file lsq.cc.
References cacheLoadPorts, cacheStorePorts, usedLoadPorts, and usedStorePorts.
Referenced by cachePortBusy(), gem5::o3::LSQUnit::trySendPacket(), and gem5::o3::LSQUnit::writebackStores().
void gem5::o3::LSQ::cachePortBusy | ( | bool | is_load | ) |
Another store port is in use.
Definition at line 208 of file lsq.cc.
References cachePortAvailable(), usedLoadPorts, and usedStorePorts.
Referenced by gem5::o3::LSQUnit::trySendPacket().
void gem5::o3::LSQ::commitLoads | ( | InstSeqNum & | youngest_inst, |
ThreadID | tid | ||
) |
Commits loads up until the given sequence number for a specific thread.
Definition at line 251 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::tick().
void gem5::o3::LSQ::commitStores | ( | InstSeqNum & | youngest_inst, |
ThreadID | tid | ||
) |
Commits stores up until the given sequence number for a specific thread.
Definition at line 257 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::tick().
void gem5::o3::LSQ::completeDataAccess | ( | PacketPtr | pkt | ) |
Definition at line 393 of file lsq.cc.
References gem5::o3::LSQ::LSQRequest::contextId(), cpu, gem5::Packet::senderState, and thread.
void gem5::o3::LSQ::drainSanityCheck | ( | ) | const |
Perform sanity checks after a drain.
Definition at line 135 of file lsq.cc.
References isDrained(), numThreads, and thread.
Referenced by gem5::o3::IEW::drainSanityCheck().
void gem5::o3::LSQ::dumpInsts | ( | ) | const |
Debugging function to print out all instructions.
Definition at line 745 of file lsq.cc.
References activeThreads, and thread.
void gem5::o3::LSQ::dumpInsts | ( | ThreadID | tid | ) | const |
int gem5::o3::LSQ::entryAmount | ( | ThreadID | num_threads | ) |
Number of entries needed for the given amount of threads.
Fault gem5::o3::LSQ::executeLoad | ( | const DynInstPtr & | inst | ) |
Executes a load.
Definition at line 235 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::executeInsts().
Fault gem5::o3::LSQ::executeStore | ( | const DynInstPtr & | inst | ) |
Executes a store.
Definition at line 243 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::executeInsts().
int gem5::o3::LSQ::getCount | ( | ) |
Returns the number of instructions in all of the queues.
Definition at line 454 of file lsq.cc.
References activeThreads, and gem5::statistics::total.
Referenced by gem5::o3::CPU::removeThread(), and gem5::o3::IEW::tick().
int gem5::o3::LSQ::getCount | ( | ThreadID | tid | ) |
|
inline |
Definition at line 873 of file lsq.hh.
References dcachePort.
Referenced by gem5::o3::CPU::getDataPort(), gem5::o3::CPU::htmSendAbortSignal(), and gem5::o3::IEW::startupStage().
uint64_t gem5::o3::LSQ::getLatestHtmUid | ( | ThreadID | tid | ) | const |
Definition at line 366 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
Referenced by gem5::o3::IEW::dispatchInsts().
int gem5::o3::LSQ::getLoadHead | ( | ThreadID | tid | ) |
InstSeqNum gem5::o3::LSQ::getLoadHeadSeqNum | ( | ThreadID | tid | ) |
DynInstPtr gem5::o3::LSQ::getMemDepViolator | ( | ThreadID | tid | ) |
Gets the instruction that caused the memory ordering violation.
Definition at line 306 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::executeInsts().
int gem5::o3::LSQ::getStoreHead | ( | ThreadID | tid | ) |
InstSeqNum gem5::o3::LSQ::getStoreHeadSeqNum | ( | ThreadID | tid | ) |
bool gem5::o3::LSQ::hasStoresToWB | ( | ) |
Returns whether or not there are any stores to write back to memory.
Definition at line 695 of file lsq.cc.
References activeThreads.
Referenced by gem5::o3::IEW::hasStoresToWB().
bool gem5::o3::LSQ::hasStoresToWB | ( | ThreadID | tid | ) |
void gem5::o3::LSQ::insertLoad | ( | const DynInstPtr & | load_inst | ) |
Inserts a load into the LSQ.
Definition at line 219 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::dispatchInsts().
void gem5::o3::LSQ::insertStore | ( | const DynInstPtr & | store_inst | ) |
Inserts a store into the LSQ.
Definition at line 227 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::dispatchInsts().
bool gem5::o3::LSQ::isDrained | ( | ) | const |
Has the LSQ drained?
Definition at line 144 of file lsq.cc.
References DPRINTF, lqEmpty(), and sqEmpty().
Referenced by drainSanityCheck(), and gem5::o3::IEW::isDrained().
bool gem5::o3::LSQ::isEmpty | ( | ) | const |
bool gem5::o3::LSQ::isFull | ( | ) |
bool gem5::o3::LSQ::isFull | ( | ThreadID | tid | ) |
bool gem5::o3::LSQ::isStalled | ( | ) |
Returns if the LSQ is stalled due to a memory operation that must be replayed.
Definition at line 670 of file lsq.cc.
References activeThreads, and thread.
Referenced by isStalled().
bool gem5::o3::LSQ::isStalled | ( | ThreadID | tid | ) |
bool gem5::o3::LSQ::lqEmpty | ( | ) | const |
Returns if all of the LQs are empty.
Definition at line 584 of file lsq.cc.
References activeThreads, and thread.
Referenced by isDrained(), and isEmpty().
bool gem5::o3::LSQ::lqFull | ( | ) |
Returns if any of the LQs are full.
Definition at line 616 of file lsq.cc.
References activeThreads, and thread.
Referenced by gem5::o3::IEW::dispatchInsts(), isFull(), and lqFull().
bool gem5::o3::LSQ::lqFull | ( | ThreadID | tid | ) |
|
inlinestaticprotected |
Auxiliary function to calculate per-thread max LSQ allocation limit.
Depending on a policy, number of entries and possibly number of threads and threshold, this function calculates how many resources each thread can occupy at most.
Definition at line 897 of file lsq.hh.
References numThreads.
std::string gem5::o3::LSQ::name | ( | ) | const |
Returns the name of the LSQ.
Definition at line 122 of file lsq.cc.
References iewStage, and gem5::o3::IEW::name().
unsigned gem5::o3::LSQ::numFreeEntries | ( | ThreadID | tid | ) |
Returns the number of free entries for a specific thread.
unsigned gem5::o3::LSQ::numFreeLoadEntries | ( | ) |
Returns the number of free load entries.
Definition at line 505 of file lsq.cc.
References activeThreads, thread, and gem5::statistics::total.
Referenced by gem5::o3::IEW::clearStates(), gem5::o3::Rename::clearStates(), gem5::o3::Rename::resetStage(), gem5::o3::IEW::startupStage(), and gem5::o3::IEW::tick().
unsigned gem5::o3::LSQ::numFreeLoadEntries | ( | ThreadID | tid | ) |
unsigned gem5::o3::LSQ::numFreeStoreEntries | ( | ) |
Returns the number of free store entries.
Definition at line 522 of file lsq.cc.
References activeThreads, thread, and gem5::statistics::total.
Referenced by gem5::o3::IEW::clearStates(), gem5::o3::Rename::clearStates(), gem5::o3::Rename::resetStage(), gem5::o3::IEW::startupStage(), and gem5::o3::IEW::tick().
unsigned gem5::o3::LSQ::numFreeStoreEntries | ( | ThreadID | tid | ) |
int gem5::o3::LSQ::numHtmStarts | ( | ThreadID | tid | ) | const |
Definition at line 342 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
Referenced by gem5::o3::IEW::dispatchInsts().
int gem5::o3::LSQ::numHtmStops | ( | ThreadID | tid | ) | const |
Definition at line 350 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
Referenced by gem5::o3::IEW::dispatchInsts().
int gem5::o3::LSQ::numLoads | ( | ) |
Returns the total number of loads in the load queue.
Definition at line 471 of file lsq.cc.
References activeThreads, and gem5::statistics::total.
int gem5::o3::LSQ::numLoads | ( | ThreadID | tid | ) |
int gem5::o3::LSQ::numStores | ( | ) |
Returns the total number of stores in the store queue.
Definition at line 488 of file lsq.cc.
References activeThreads, thread, and gem5::statistics::total.
int gem5::o3::LSQ::numStores | ( | ThreadID | tid | ) |
int gem5::o3::LSQ::numStoresToWB | ( | ThreadID | tid | ) |
Returns the number of stores a specific thread has to write back.
Definition at line 717 of file lsq.cc.
References thread.
Referenced by writebackStores().
Fault gem5::o3::LSQ::pushRequest | ( | const DynInstPtr & | inst, |
bool | isLoad, | ||
uint8_t * | data, | ||
unsigned int | size, | ||
Addr | addr, | ||
Request::Flags | flags, | ||
uint64_t * | res, | ||
AtomicOpFunctorPtr | amo_op, | ||
const std::vector< bool > & | byte_enable | ||
) |
Definition at line 764 of file lsq.cc.
References gem5::o3::LSQ::LSQRequest::_byteEnable, gem5::X86ISA::addr, gem5::o3::CPU::checker, cpu, data, gem5::o3::LSQ::LSQRequest::getVaddr(), gem5::Request::HTM_CMD, gem5::o3::LSQ::LSQRequest::initiateTranslation(), gem5::o3::LSQ::LSQRequest::isMemAccessRequired(), gem5::o3::LSQ::LSQRequest::isTranslationComplete(), gem5::NoFault, read(), gem5::o3::LSQ::LSQRequest::req(), gem5::o3::LSQ::LSQRequest::taskId(), thread, gem5::transferNeedsBurst(), and write().
Referenced by gem5::o3::CPU::pushRequest().
Fault gem5::o3::LSQ::read | ( | LSQRequest * | request, |
int | load_idx | ||
) |
Executes a read operation, using the load specified at the load index.
Definition at line 1414 of file lsq.cc.
References gem5::o3::LSQ::LSQRequest::contextId(), cpu, gem5::o3::LSQ::LSQRequest::req(), and thread.
Referenced by pushRequest().
void gem5::o3::LSQ::recvReqRetry | ( | ) |
Retry the previous send that failed.
Definition at line 382 of file lsq.cc.
References activeThreads, cacheBlocked(), gem5::o3::IEW::cacheUnblocked(), iewStage, and thread.
bool gem5::o3::LSQ::recvTimingResp | ( | PacketPtr | pkt | ) |
Handles writing back and completing the load or store that has returned from memory.
pkt | Response packet from the memory sub-system |
Definition at line 401 of file lsq.cc.
References gem5::o3::LSQ::LSQRequest::contextId(), cpu, DPRINTF, gem5::Packet::getAddr(), gem5::Packet::isError(), gem5::Packet::isInvalidate(), numThreads, gem5::o3::LSQ::LSQRequest::packetReplied(), panic_if, gem5::Packet::senderState, and thread.
void gem5::o3::LSQ::recvTimingSnoopReq | ( | PacketPtr | pkt | ) |
Definition at line 438 of file lsq.cc.
References gem5::Packet::cmdString(), DPRINTF, gem5::Packet::getAddr(), gem5::Packet::isInvalidate(), numThreads, and thread.
void gem5::o3::LSQ::resetHtmStartsStops | ( | ThreadID | tid | ) |
Definition at line 359 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
Referenced by gem5::o3::CPU::htmSendAbortSignal().
Sets the pointer to the list of active threads.
Definition at line 128 of file lsq.cc.
References activeThreads.
Referenced by gem5::o3::IEW::setActiveThreads().
void gem5::o3::LSQ::setLastRetiredHtmUid | ( | ThreadID | tid, |
uint64_t | htmUid | ||
) |
Definition at line 375 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
Referenced by gem5::o3::IEW::setLastRetiredHtmUid().
bool gem5::o3::LSQ::sqEmpty | ( | ) | const |
Returns if all of the SQs are empty.
Definition at line 600 of file lsq.cc.
References activeThreads, and thread.
Referenced by isDrained(), and isEmpty().
bool gem5::o3::LSQ::sqFull | ( | ) |
Returns if any of the SQs are full.
Definition at line 643 of file lsq.cc.
References activeThreads.
Referenced by gem5::o3::IEW::dispatchInsts(), isFull(), and sqFull().
bool gem5::o3::LSQ::sqFull | ( | ThreadID | tid | ) |
void gem5::o3::LSQ::squash | ( | const InstSeqNum & | squashed_num, |
ThreadID | tid | ||
) |
Squash instructions from a thread until the specified sequence number.
Definition at line 281 of file lsq.cc.
References thread.
Referenced by gem5::o3::IEW::squash().
void gem5::o3::LSQ::takeOverFrom | ( | ) |
Takes over execution from another CPU's thread.
Definition at line 162 of file lsq.cc.
References _cacheBlocked, numThreads, thread, and usedStorePorts.
Referenced by gem5::o3::IEW::takeOverFrom().
void gem5::o3::LSQ::tick | ( | ) |
Ticks the LSQ.
Definition at line 173 of file lsq.cc.
References _cacheBlocked, cacheLoadPorts, gem5::o3::IEW::cacheUnblocked(), iewStage, usedLoadPorts, and usedStorePorts.
Referenced by gem5::o3::IEW::tick().
bool gem5::o3::LSQ::violation | ( | ) |
Returns whether or not there was a memory ordering violation.
Definition at line 287 of file lsq.cc.
References activeThreads, and thread.
Referenced by gem5::o3::IEW::executeInsts().
bool gem5::o3::LSQ::violation | ( | ThreadID | tid | ) |
bool gem5::o3::LSQ::willWB | ( | ) |
Returns if the LSQ will write back to memory this cycle.
Definition at line 723 of file lsq.cc.
References activeThreads.
Referenced by gem5::o3::IEW::updateStatus().
bool gem5::o3::LSQ::willWB | ( | ThreadID | tid | ) |
Fault gem5::o3::LSQ::write | ( | LSQRequest * | request, |
uint8_t * | data, | ||
int | store_idx | ||
) |
Executes a store operation, using the store specified at the store index.
Definition at line 1423 of file lsq.cc.
References cpu, data, gem5::o3::LSQ::LSQRequest::req(), and thread.
Referenced by pushRequest().
void gem5::o3::LSQ::writebackStores | ( | ) |
Attempts to write back stores until all cache ports are used or the interface becomes blocked.
Definition at line 263 of file lsq.cc.
References activeThreads, DPRINTF, numStoresToWB(), and thread.
Referenced by gem5::o3::IEW::tick().
void gem5::o3::LSQ::writebackStores | ( | ThreadID | tid | ) |
Same as above, but only for one thread.
|
protected |
D-cache is blocked.
Definition at line 877 of file lsq.hh.
Referenced by cacheBlocked(), takeOverFrom(), and tick().
List of Active Threads in System.
Definition at line 915 of file lsq.hh.
Referenced by dumpInsts(), getCount(), hasStoresToWB(), isFull(), isStalled(), lqEmpty(), lqFull(), numFreeLoadEntries(), numFreeStoreEntries(), numLoads(), numStores(), recvReqRetry(), setActiveThreads(), sqEmpty(), sqFull(), violation(), willWB(), and writebackStores().
|
protected |
The number of cache ports available each cycle (loads only).
Definition at line 883 of file lsq.hh.
Referenced by cachePortAvailable(), and tick().
|
protected |
The number of cache ports available each cycle (stores only).
Definition at line 879 of file lsq.hh.
Referenced by cachePortAvailable().
CPU* gem5::o3::LSQ::cpu |
The CPU pointer.
Definition at line 859 of file lsq.hh.
Referenced by completeDataAccess(), LSQ(), pushRequest(), read(), recvTimingResp(), gem5::o3::LSQ::DcachePort::recvTimingSnoopReq(), and write().
|
protected |
IEW* gem5::o3::LSQ::iewStage |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Number of Threads.
Definition at line 935 of file lsq.hh.
Referenced by drainSanityCheck(), LSQ(), maxLSQAllocation(), recvTimingResp(), recvTimingSnoopReq(), and takeOverFrom().
|
protected |
|
protected |
The LSQ units for individual threads.
Definition at line 932 of file lsq.hh.
Referenced by commitLoads(), commitStores(), completeDataAccess(), drainSanityCheck(), dumpInsts(), executeLoad(), executeStore(), getCount(), getLatestHtmUid(), getLoadHead(), getLoadHeadSeqNum(), getMemDepViolator(), getStoreHead(), getStoreHeadSeqNum(), gem5::o3::LSQ::SingleDataRequest::handleLocalAccess(), gem5::o3::LSQ::SplitDataRequest::handleLocalAccess(), hasStoresToWB(), insertLoad(), insertStore(), isFull(), isStalled(), lqEmpty(), lqFull(), LSQ(), numFreeLoadEntries(), numFreeStoreEntries(), numHtmStarts(), numHtmStops(), numLoads(), numStores(), numStoresToWB(), pushRequest(), read(), recvReqRetry(), recvTimingResp(), recvTimingSnoopReq(), resetHtmStartsStops(), setLastRetiredHtmUid(), sqEmpty(), sqFull(), squash(), takeOverFrom(), violation(), willWB(), write(), and writebackStores().
|
protected |
The number of used cache ports in this cycle by loads.
Definition at line 885 of file lsq.hh.
Referenced by cachePortAvailable(), cachePortBusy(), and tick().
|
protected |
The number of used cache ports in this cycle by stores.
Definition at line 881 of file lsq.hh.
Referenced by cachePortAvailable(), cachePortBusy(), takeOverFrom(), and tick().