|
gem5 [DEVELOP-FOR-25.0]
|
#include <lsq.hh>
Classes | |
| class | DcachePort |
| DcachePort class for the load/store queue. More... | |
| class | LSQRequest |
| Memory operation metadata. More... | |
| class | SingleDataRequest |
| class | SplitDataRequest |
| class | UnsquashableDirectRequest |
Public Member Functions | |
| LSQ (CPU *cpu_ptr, IEW *iew_ptr, const BaseO3CPUParams ¶ms) | |
| Constructs an LSQ with the given parameters. | |
| std::string | name () const |
| Returns the name of the LSQ. | |
| void | setActiveThreads (std::list< ThreadID > *at_ptr) |
| Sets the pointer to the list of active threads. | |
| void | drainSanityCheck () const |
| Perform sanity checks after a drain. | |
| bool | isDrained () const |
| Has the LSQ drained? | |
| void | takeOverFrom () |
| Takes over execution from another CPU's thread. | |
| int | entryAmount (ThreadID num_threads) |
| Number of entries needed for the given amount of threads. | |
| void | tick () |
| Ticks the LSQ. | |
| void | insertLoad (const DynInstPtr &load_inst) |
| Inserts a load into the LSQ. | |
| void | insertStore (const DynInstPtr &store_inst) |
| Inserts a store into the LSQ. | |
| Fault | executeLoad (const DynInstPtr &inst) |
| Executes a load. | |
| Fault | executeStore (const DynInstPtr &inst) |
| Executes a store. | |
| void | commitLoads (InstSeqNum &youngest_inst, ThreadID tid) |
| Commits loads up until the given sequence number for a specific thread. | |
| void | commitStores (InstSeqNum &youngest_inst, ThreadID tid) |
| Commits stores up until the given sequence number for a specific thread. | |
| void | writebackStores () |
| Attempts to write back stores until all cache ports are used or the interface becomes blocked. | |
| void | writebackStores (ThreadID tid) |
| Same as above, but only for one thread. | |
| void | squash (const InstSeqNum &squashed_num, ThreadID tid) |
| Squash instructions from a thread until the specified sequence number. | |
| bool | violation () |
| Returns whether or not there was a memory ordering violation. | |
| bool | violation (ThreadID tid) |
| Returns whether or not there was a memory ordering violation for a specific thread. | |
| DynInstPtr | getMemDepViolator (ThreadID tid) |
| Gets the instruction that caused the memory ordering violation. | |
| int | getLoadHead (ThreadID tid) |
| Returns the head index of the load queue for a specific thread. | |
| InstSeqNum | getLoadHeadSeqNum (ThreadID tid) |
| Returns the sequence number of the head of the load queue. | |
| int | getStoreHead (ThreadID tid) |
| Returns the head index of the store queue. | |
| InstSeqNum | getStoreHeadSeqNum (ThreadID tid) |
| Returns the sequence number of the head of the store queue. | |
| int | getCount () |
| Returns the number of instructions in all of the queues. | |
| int | getCount (ThreadID tid) |
| Returns the number of instructions in the queues of one thread. | |
| int | numLoads () |
| Returns the total number of loads in the load queue. | |
| int | numLoads (ThreadID tid) |
| Returns the total number of loads for a single thread. | |
| int | numStores () |
| Returns the total number of stores in the store queue. | |
| int | numStores (ThreadID tid) |
| Returns the total number of stores for a single thread. | |
| 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. | |
| unsigned | numFreeStoreEntries () |
| Returns the number of free store entries. | |
| unsigned | numFreeEntries (ThreadID tid) |
| Returns the number of free entries for a specific thread. | |
| unsigned | numFreeLoadEntries (ThreadID tid) |
| Returns the number of free entries in the LQ for a specific thread. | |
| unsigned | numFreeStoreEntries (ThreadID tid) |
| Returns the number of free entries in the SQ for a specific thread. | |
| bool | isFull () |
| Returns if the LSQ is full (either LQ or SQ is full). | |
| bool | isFull (ThreadID tid) |
| Returns if the LSQ is full for a specific thread (either LQ or SQ is full). | |
| bool | isEmpty () const |
| Returns if the LSQ is empty (both LQ and SQ are empty). | |
| bool | lqEmpty () const |
| Returns if all of the LQs are empty. | |
| bool | sqEmpty () const |
| Returns if all of the SQs are empty. | |
| bool | lqFull () |
| Returns if any of the LQs are full. | |
| bool | lqFull (ThreadID tid) |
| Returns if the LQ of a given thread is full. | |
| bool | sqFull () |
| Returns if any of the SQs are full. | |
| bool | sqFull (ThreadID tid) |
| Returns if the SQ of a given thread is full. | |
| bool | isStalled () |
| Returns if the LSQ is stalled due to a memory operation that must be replayed. | |
| bool | isStalled (ThreadID tid) |
| Returns if the LSQ of a specific thread is stalled due to a memory operation that must be replayed. | |
| bool | hasStoresToWB () |
| Returns whether or not there are any stores to write back to memory. | |
| bool | hasStoresToWB (ThreadID tid) |
| Returns whether or not a specific thread has any stores to write back to memory. | |
| int | numStoresToWB (ThreadID tid) |
| Returns the number of stores a specific thread has to write back. | |
| bool | willWB () |
| Returns if the LSQ will write back to memory this cycle. | |
| bool | willWB (ThreadID tid) |
| Returns if the LSQ of a specific thread will write back to memory this cycle. | |
| void | dumpInsts () const |
| Debugging function to print out all instructions. | |
| void | dumpInsts (ThreadID tid) const |
| Debugging function to print out instructions from a specific thread. | |
| Fault | read (LSQRequest *request, ssize_t load_idx) |
| Executes a read operation, using the load specified at the load index. | |
| Fault | write (LSQRequest *request, uint8_t *data, ssize_t store_idx) |
| Executes a store operation, using the store specified at the store index. | |
| void | checkStaleTranslations () |
| Checks if queues have any marked operations left, and sends the appropriate Sync Completion message if not. | |
| void | recvReqRetry () |
| Retry the previous send that failed. | |
| void | completeDataAccess (PacketPtr pkt) |
| bool | recvTimingResp (PacketPtr pkt) |
| Handles writing back and completing the load or store that has returned from memory. | |
| 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? | |
| void | cacheBlocked (bool v) |
| Set D-cache blocked status. | |
| bool | cachePortAvailable (bool is_load) const |
| Is any store port available to use? | |
| void | cachePortBusy (bool is_load) |
| Another store port is in use. | |
| RequestPort & | getDataPort () |
| void | sendRetryResp () |
Public Attributes | |
| CPU * | cpu |
| The CPU pointer. | |
| IEW * | iewStage |
| The IEW stage pointer. | |
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. | |
Protected Attributes | |
| bool | _cacheBlocked |
| D-cache is blocked. | |
| int | cacheStorePorts |
| The number of cache ports available each cycle (stores only). | |
| int | usedStorePorts |
| The number of used cache ports in this cycle by stores. | |
| int | cacheLoadPorts |
| The number of cache ports available each cycle (loads only). | |
| int | usedLoadPorts |
| The number of used cache ports in this cycle by loads. | |
| bool | waitingForStaleTranslation |
| If the LSQ is currently waiting for stale translations. | |
| Addr | staleTranslationWaitTxnId |
| The ID if the transaction that made translations stale. | |
| SMTQueuePolicy | lsqPolicy |
| The LSQ policy for SMT mode. | |
| std::list< ThreadID > * | activeThreads |
| List of Active Threads in System. | |
| unsigned | LQEntries |
| Total Size of LQ Entries. | |
| unsigned | SQEntries |
| Total Size of SQ Entries. | |
| unsigned | maxLQEntries |
| Max LQ Size - Used to Enforce Sharing Policies. | |
| unsigned | maxSQEntries |
| Max SQ Size - Used to Enforce Sharing Policies. | |
| DcachePort | dcachePort |
| Data port. | |
| std::vector< LSQUnit > | thread |
| The LSQ units for individual threads. | |
| ThreadID | numThreads |
| Number of Threads. | |
| const bool | recvRespThrottling |
| Enable load receive response throttling in the LSQ. | |
| const unsigned | recvRespMaxCachelines |
| const unsigned | recvRespBufferSize |
| unsigned | recvRespBytes |
| unsigned | recvRespPendBytes |
| unsigned | recvRespCachelines |
| Addr | recvRespLastCachelineAddr |
| Cycles | recvRespLastActiveCycle |
| EventFunctionWrapper | retryRespEvent |
Constructs an LSQ with the given parameters.
Definition at line 110 of file lsq.cc.
References _cacheBlocked, cacheLoadPorts, cacheStorePorts, cpu, dcachePort, iewStage, LQEntries, lsqPolicy, maxLQEntries, maxLSQAllocation(), maxSQEntries, numThreads, recvRespBufferSize, recvRespBytes, recvRespCachelines, recvRespLastActiveCycle, recvRespLastCachelineAddr, recvRespMaxCachelines, recvRespThrottling, retryRespEvent, sendRetryResp(), SQEntries, staleTranslationWaitTxnId, usedLoadPorts, usedStorePorts, and waitingForStaleTranslation.
Referenced by checkStaleTranslations(), gem5::o3::LSQ::DcachePort::DcachePort(), gem5::o3::LSQ::SingleDataRequest::markAsStaleTranslation(), gem5::o3::LSQ::SplitDataRequest::markAsStaleTranslation(), recvTimingResp(), recvTimingSnoopReq(), and gem5::o3::LSQ::DcachePort::throttleReadResp().
| bool gem5::o3::LSQ::cacheBlocked | ( | ) | const |
Is D-cache blocked?
Definition at line 233 of file lsq.cc.
References _cacheBlocked.
Referenced by recvReqRetry().
| void gem5::o3::LSQ::cacheBlocked | ( | bool | v | ) |
Set D-cache blocked status.
Definition at line 239 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 245 of file lsq.cc.
References cacheLoadPorts, cacheStorePorts, usedLoadPorts, and usedStorePorts.
Referenced by cachePortBusy().
| void gem5::o3::LSQ::cachePortBusy | ( | bool | is_load | ) |
Another store port is in use.
Definition at line 257 of file lsq.cc.
References cachePortAvailable(), usedLoadPorts, and usedStorePorts.
| void gem5::o3::LSQ::checkStaleTranslations | ( | ) |
Checks if queues have any marked operations left, and sends the appropriate Sync Completion message if not.
Definition at line 1567 of file lsq.cc.
References cpu, gem5::Request::createMemManagement(), gem5::Packet::createRead(), dcachePort, DPRINTF, LSQ(), panic, staleTranslationWaitTxnId, thread, gem5::Request::TLBI_EXT_SYNC_COMP, and waitingForStaleTranslation.
Referenced by recvTimingResp(), and recvTimingSnoopReq().
| void gem5::o3::LSQ::commitLoads | ( | InstSeqNum & | youngest_inst, |
| ThreadID | tid ) |
| void gem5::o3::LSQ::commitStores | ( | InstSeqNum & | youngest_inst, |
| ThreadID | tid ) |
| void gem5::o3::LSQ::completeDataAccess | ( | PacketPtr | pkt | ) |
Definition at line 432 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 184 of file lsq.cc.
References drainSanityCheck(), isDrained(), numThreads, and thread.
Referenced by drainSanityCheck().
| void gem5::o3::LSQ::dumpInsts | ( | ) | const |
Debugging function to print out all instructions.
Definition at line 742 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 | ) |
| Fault gem5::o3::LSQ::executeStore | ( | const DynInstPtr & | inst | ) |
| int gem5::o3::LSQ::getCount | ( | ) |
Returns the number of instructions in all of the queues.
Definition at line 516 of file lsq.cc.
References activeThreads, getCount(), and gem5::statistics::total.
Referenced by getCount().
| int gem5::o3::LSQ::getCount | ( | ThreadID | tid | ) |
|
inline |
Definition at line 922 of file lsq.hh.
References dcachePort.
| uint64_t gem5::o3::LSQ::getLatestHtmUid | ( | ThreadID | tid | ) | const |
Definition at line 405 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
| int gem5::o3::LSQ::getLoadHead | ( | ThreadID | tid | ) |
| InstSeqNum gem5::o3::LSQ::getLoadHeadSeqNum | ( | ThreadID | tid | ) |
| DynInstPtr gem5::o3::LSQ::getMemDepViolator | ( | ThreadID | tid | ) |
| 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 702 of file lsq.cc.
References activeThreads, and hasStoresToWB().
Referenced by hasStoresToWB().
| bool gem5::o3::LSQ::hasStoresToWB | ( | ThreadID | tid | ) |
| void gem5::o3::LSQ::insertLoad | ( | const DynInstPtr & | load_inst | ) |
| void gem5::o3::LSQ::insertStore | ( | const DynInstPtr & | store_inst | ) |
| bool gem5::o3::LSQ::isDrained | ( | ) | const |
| 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 682 of file lsq.cc.
References activeThreads, isStalled(), and thread.
Referenced by isStalled(), and 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 616 of file lsq.cc.
References activeThreads, lqEmpty(), and thread.
Referenced by isDrained(), isEmpty(), and lqEmpty().
| bool gem5::o3::LSQ::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 952 of file lsq.hh.
References numThreads.
Referenced by LSQ().
| std::string gem5::o3::LSQ::name | ( | ) | const |
Returns the name of the LSQ.
Definition at line 171 of file lsq.cc.
References iewStage.
Referenced by gem5::o3::LSQ::DcachePort::DcachePort().
| unsigned gem5::o3::LSQ::numFreeEntries | ( | ThreadID | tid | ) |
Returns the number of free entries for a specific thread.
References gem5::X86ISA::addr, and data.
| unsigned gem5::o3::LSQ::numFreeLoadEntries | ( | ) |
Returns the number of free load entries.
Definition at line 552 of file lsq.cc.
References activeThreads, thread, and gem5::statistics::total.
| unsigned gem5::o3::LSQ::numFreeLoadEntries | ( | ThreadID | tid | ) |
| unsigned gem5::o3::LSQ::numFreeStoreEntries | ( | ) |
Returns the number of free store entries.
Definition at line 564 of file lsq.cc.
References activeThreads, thread, and gem5::statistics::total.
| unsigned gem5::o3::LSQ::numFreeStoreEntries | ( | ThreadID | tid | ) |
| int gem5::o3::LSQ::numHtmStarts | ( | ThreadID | tid | ) | const |
Definition at line 381 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
| int gem5::o3::LSQ::numHtmStops | ( | ThreadID | tid | ) | const |
Definition at line 389 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
| int gem5::o3::LSQ::numLoads | ( | ) |
Returns the total number of loads in the load queue.
Definition at line 528 of file lsq.cc.
References activeThreads, numLoads(), and gem5::statistics::total.
Referenced by numLoads().
| 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 540 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 719 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 756 of file lsq.cc.
References gem5::o3::LSQ::LSQRequest::_byteEnable, gem5::X86ISA::addr, 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::Request::TLBI_CMD, gem5::transferNeedsBurst(), and write().
| Fault gem5::o3::LSQ::read | ( | LSQRequest * | request, |
| ssize_t | load_idx ) |
Executes a read operation, using the load specified at the load index.
Definition at line 1597 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 421 of file lsq.cc.
References activeThreads, cacheBlocked(), 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 446 of file lsq.cc.
References checkStaleTranslations(), gem5::o3::LSQ::LSQRequest::contextId(), cpu, DPRINTF, gem5::Packet::getAddr(), gem5::Packet::isError(), gem5::Packet::isInvalidate(), LSQ(), numThreads, gem5::o3::LSQ::LSQRequest::packetReplied(), panic_if, gem5::Packet::senderState, thread, and waitingForStaleTranslation.
| void gem5::o3::LSQ::recvTimingSnoopReq | ( | PacketPtr | pkt | ) |
Definition at line 487 of file lsq.cc.
References checkStaleTranslations(), gem5::Packet::cmdString(), DPRINTF, gem5::Packet::getAddr(), gem5::Packet::isInvalidate(), LSQ(), numThreads, gem5::Packet::req, staleTranslationWaitTxnId, thread, and waitingForStaleTranslation.
| void gem5::o3::LSQ::resetHtmStartsStops | ( | ThreadID | tid | ) |
Definition at line 398 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
| void gem5::o3::LSQ::sendRetryResp | ( | ) |
Sets the pointer to the list of active threads.
Definition at line 177 of file lsq.cc.
References activeThreads.
| void gem5::o3::LSQ::setLastRetiredHtmUid | ( | ThreadID | tid, |
| uint64_t | htmUid ) |
Definition at line 414 of file lsq.cc.
References gem5::InvalidThreadID, and thread.
| bool gem5::o3::LSQ::sqEmpty | ( | ) | const |
Returns if all of the SQs are empty.
Definition at line 627 of file lsq.cc.
References activeThreads, sqEmpty(), and thread.
Referenced by isDrained(), isEmpty(), and sqEmpty().
| bool gem5::o3::LSQ::sqFull | ( | ) |
| bool gem5::o3::LSQ::sqFull | ( | ThreadID | tid | ) |
| void gem5::o3::LSQ::squash | ( | const InstSeqNum & | squashed_num, |
| ThreadID | tid ) |
| void gem5::o3::LSQ::takeOverFrom | ( | ) |
Takes over execution from another CPU's thread.
Definition at line 211 of file lsq.cc.
References _cacheBlocked, numThreads, thread, and usedStorePorts.
| void gem5::o3::LSQ::tick | ( | ) |
Ticks the LSQ.
Definition at line 222 of file lsq.cc.
References _cacheBlocked, cacheLoadPorts, iewStage, usedLoadPorts, and usedStorePorts.
| bool gem5::o3::LSQ::violation | ( | ) |
Returns whether or not there was a memory ordering violation.
Definition at line 331 of file lsq.cc.
References activeThreads, thread, and violation().
Referenced by violation().
| bool gem5::o3::LSQ::violation | ( | ThreadID | tid | ) |
| bool gem5::o3::LSQ::willWB | ( | ) |
| bool gem5::o3::LSQ::willWB | ( | ThreadID | tid | ) |
| Fault gem5::o3::LSQ::write | ( | LSQRequest * | request, |
| uint8_t * | data, | ||
| ssize_t | store_idx ) |
Executes a store operation, using the store specified at the store index.
Definition at line 1606 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 312 of file lsq.cc.
References activeThreads, DPRINTF, numStoresToWB(), and thread.
| void gem5::o3::LSQ::writebackStores | ( | ThreadID | tid | ) |
Same as above, but only for one thread.
|
protected |
D-cache is blocked.
Definition at line 928 of file lsq.hh.
Referenced by cacheBlocked(), cacheBlocked(), LSQ(), takeOverFrom(), and tick().
List of Active Threads in System.
Definition at line 970 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 934 of file lsq.hh.
Referenced by cachePortAvailable(), LSQ(), and tick().
|
protected |
The number of cache ports available each cycle (stores only).
Definition at line 930 of file lsq.hh.
Referenced by cachePortAvailable(), and LSQ().
| CPU* gem5::o3::LSQ::cpu |
The CPU pointer.
Definition at line 908 of file lsq.hh.
Referenced by checkStaleTranslations(), completeDataAccess(), LSQ(), pushRequest(), read(), recvTimingResp(), and write().
|
protected |
Data port.
Definition at line 984 of file lsq.hh.
Referenced by checkStaleTranslations(), getDataPort(), LSQ(), and sendRetryResp().
| IEW* gem5::o3::LSQ::iewStage |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Number of Threads.
Definition at line 990 of file lsq.hh.
Referenced by drainSanityCheck(), LSQ(), maxLSQAllocation(), recvTimingResp(), recvTimingSnoopReq(), and takeOverFrom().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The ID if the transaction that made translations stale.
Definition at line 941 of file lsq.hh.
Referenced by checkStaleTranslations(), LSQ(), and recvTimingSnoopReq().
|
protected |
The LSQ units for individual threads.
Definition at line 987 of file lsq.hh.
Referenced by checkStaleTranslations(), commitLoads(), commitStores(), completeDataAccess(), drainSanityCheck(), dumpInsts(), dumpInsts(), executeLoad(), executeStore(), getCount(), getLatestHtmUid(), getLoadHead(), getLoadHeadSeqNum(), getMemDepViolator(), getStoreHead(), getStoreHeadSeqNum(), gem5::o3::LSQ::LSQRequest::handleLocalAccess(), gem5::o3::LSQ::SingleDataRequest::handleLocalAccess(), gem5::o3::LSQ::SplitDataRequest::handleLocalAccess(), hasStoresToWB(), insertLoad(), insertStore(), isFull(), isFull(), isStalled(), isStalled(), lqEmpty(), lqFull(), lqFull(), numFreeLoadEntries(), numFreeLoadEntries(), numFreeStoreEntries(), numFreeStoreEntries(), numHtmStarts(), numHtmStops(), numLoads(), numStores(), numStores(), numStoresToWB(), pushRequest(), read(), recvReqRetry(), recvTimingResp(), recvTimingSnoopReq(), resetHtmStartsStops(), setLastRetiredHtmUid(), sqEmpty(), sqFull(), squash(), takeOverFrom(), violation(), violation(), willWB(), write(), and writebackStores().
|
protected |
The number of used cache ports in this cycle by loads.
Definition at line 936 of file lsq.hh.
Referenced by cachePortAvailable(), cachePortBusy(), LSQ(), and tick().
|
protected |
The number of used cache ports in this cycle by stores.
Definition at line 932 of file lsq.hh.
Referenced by cachePortAvailable(), cachePortBusy(), LSQ(), takeOverFrom(), and tick().
|
protected |
If the LSQ is currently waiting for stale translations.
Definition at line 939 of file lsq.hh.
Referenced by checkStaleTranslations(), LSQ(), recvTimingResp(), and recvTimingSnoopReq().