|
gem5
v21.1.0.2
|
Derived class to hold any sender state the LSQ needs. More...
#include <lsq.hh>
Public Member Functions | |
| ContextID | contextId () |
| bool | isComplete () |
| Completes a packet and returns whether the access is finished. More... | |
| void | deleteRequest () |
| bool | alive () |
| LSQRequest * | request () |
| virtual void | complete ()=0 |
| void | writebackDone () |
Public Member Functions inherited from gem5::Packet::SenderState | |
| SenderState () | |
| virtual | ~SenderState () |
Public Attributes | |
| DynInstPtr | inst |
| Instruction which initiated the access to memory. More... | |
| PacketPtr | mainPkt = nullptr |
| The main packet from a split load, used during writeback. More... | |
| PacketPtr | pendingPacket = nullptr |
| A second packet from a split store that needs sending. More... | |
| uint8_t | outstanding = 0 |
| Number of outstanding packets to complete. More... | |
| bool | isLoad = false |
| Whether or not it is a load. More... | |
| bool | needWB = false |
| Whether or not the instruction will need to writeback. More... | |
| bool | isSplit = false |
| Whether or not this access is split in two. More... | |
| bool | pktToSend = false |
| Whether or not there is a packet that needs sending. More... | |
| bool | deleted = false |
| Has the request been deleted? LSQ entries can be squashed before the response comes back. More... | |
Public Attributes inherited from gem5::Packet::SenderState | |
| SenderState * | predecessor |
Protected Member Functions | |
| LSQSenderState (LSQRequest *request, bool is_load) | |
| Default constructor. More... | |
Protected Attributes | |
| LSQRequest * | _request |
| The senderState needs to know the LSQRequest who owns it. More... | |
|
protected |
|
inline |
|
pure virtual |
Implemented in gem5::o3::LSQUnit::SQSenderState, and gem5::o3::LSQUnit::LQSenderState.
Referenced by gem5::o3::LSQUnit::completeDataAccess().
|
inline |
Definition at line 115 of file lsq.hh.
References deleted.
Referenced by gem5::o3::LSQ::LSQRequest::discardSenderState(), and gem5::o3::LSQ::LSQRequest::release().
|
inline |
Completes a packet and returns whether the access is finished.
Definition at line 114 of file lsq.hh.
References outstanding.
|
inline |
Definition at line 117 of file lsq.hh.
References _request.
Referenced by gem5::o3::LSQUnit::completeDataAccess().
|
inline |
Definition at line 119 of file lsq.hh.
References _request, and gem5::o3::LSQ::LSQRequest::writebackDone().
|
protected |
The senderState needs to know the LSQRequest who owns it.
Definition at line 84 of file lsq.hh.
Referenced by request(), and writebackDone().
| bool gem5::o3::LSQ::LSQSenderState::deleted = false |
Has the request been deleted? LSQ entries can be squashed before the response comes back.
in that case the SenderState knows.
Definition at line 110 of file lsq.hh.
Referenced by alive(), and deleteRequest().
| DynInstPtr gem5::o3::LSQ::LSQSenderState::inst |
Instruction which initiated the access to memory.
Definition at line 91 of file lsq.hh.
Referenced by gem5::o3::LSQUnit::completeDataAccess(), gem5::o3::LSQUnit::read(), and gem5::o3::LSQUnit::writebackStores().
| bool gem5::o3::LSQ::LSQSenderState::isLoad = false |
Whether or not it is a load.
Definition at line 99 of file lsq.hh.
Referenced by gem5::o3::LSQUnit::read(), and gem5::o3::LSQUnit::writebackStores().
| bool gem5::o3::LSQ::LSQSenderState::isSplit = false |
Whether or not this access is split in two.
Definition at line 103 of file lsq.hh.
Referenced by gem5::o3::LSQUnit::read().
| PacketPtr gem5::o3::LSQ::LSQSenderState::mainPkt = nullptr |
| bool gem5::o3::LSQ::LSQSenderState::needWB = false |
Whether or not the instruction will need to writeback.
Definition at line 101 of file lsq.hh.
Referenced by gem5::o3::LSQUnit::completeDataAccess(), and gem5::o3::LSQUnit::writebackStores().
| uint8_t gem5::o3::LSQ::LSQSenderState::outstanding = 0 |
Number of outstanding packets to complete.
Definition at line 97 of file lsq.hh.
Referenced by isComplete(), and gem5::o3::LSQ::SingleDataRequest::recvTimingResp().
| PacketPtr gem5::o3::LSQ::LSQSenderState::pendingPacket = nullptr |
| bool gem5::o3::LSQ::LSQSenderState::pktToSend = false |