gem5  v21.1.0.2
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
gem5::o3::LSQ::LSQSenderState Class Referenceabstract

Derived class to hold any sender state the LSQ needs. More...

#include <lsq.hh>

Inheritance diagram for gem5::o3::LSQ::LSQSenderState:
gem5::Packet::SenderState gem5::o3::LSQUnit::LQSenderState gem5::o3::LSQUnit::SQSenderState

Public Member Functions

ContextID contextId ()
 
bool isComplete ()
 Completes a packet and returns whether the access is finished. More...
 
void deleteRequest ()
 
bool alive ()
 
LSQRequestrequest ()
 
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
SenderStatepredecessor
 

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...
 

Detailed Description

Derived class to hold any sender state the LSQ needs.

Definition at line 80 of file lsq.hh.

Constructor & Destructor Documentation

◆ LSQSenderState()

gem5::o3::LSQ::LSQSenderState::LSQSenderState ( LSQRequest request,
bool  is_load 
)
protected

Default constructor.

Definition at line 67 of file lsq.cc.

Member Function Documentation

◆ alive()

bool gem5::o3::LSQ::LSQSenderState::alive ( )
inline

Definition at line 116 of file lsq.hh.

References deleted.

◆ complete()

virtual void gem5::o3::LSQ::LSQSenderState::complete ( )
pure virtual

◆ contextId()

ContextID gem5::o3::LSQ::LSQSenderState::contextId ( )

Definition at line 72 of file lsq.cc.

◆ deleteRequest()

void gem5::o3::LSQ::LSQSenderState::deleteRequest ( )
inline

Definition at line 115 of file lsq.hh.

References deleted.

Referenced by gem5::o3::LSQ::LSQRequest::discardSenderState(), and gem5::o3::LSQ::LSQRequest::release().

◆ isComplete()

bool gem5::o3::LSQ::LSQSenderState::isComplete ( )
inline

Completes a packet and returns whether the access is finished.

Definition at line 114 of file lsq.hh.

References outstanding.

◆ request()

LSQRequest* gem5::o3::LSQ::LSQSenderState::request ( )
inline

Definition at line 117 of file lsq.hh.

References _request.

Referenced by gem5::o3::LSQUnit::completeDataAccess().

◆ writebackDone()

void gem5::o3::LSQ::LSQSenderState::writebackDone ( )
inline

Definition at line 119 of file lsq.hh.

References _request, and gem5::o3::LSQ::LSQRequest::writebackDone().

Member Data Documentation

◆ _request

LSQRequest* gem5::o3::LSQ::LSQSenderState::_request
protected

The senderState needs to know the LSQRequest who owns it.

Definition at line 84 of file lsq.hh.

Referenced by request(), and writebackDone().

◆ deleted

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().

◆ inst

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().

◆ isLoad

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().

◆ isSplit

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().

◆ mainPkt

PacketPtr gem5::o3::LSQ::LSQSenderState::mainPkt = nullptr

The main packet from a split load, used during writeback.

Definition at line 93 of file lsq.hh.

◆ needWB

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().

◆ outstanding

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().

◆ pendingPacket

PacketPtr gem5::o3::LSQ::LSQSenderState::pendingPacket = nullptr

A second packet from a split store that needs sending.

Definition at line 95 of file lsq.hh.

◆ pktToSend

bool gem5::o3::LSQ::LSQSenderState::pktToSend = false

Whether or not there is a packet that needs sending.

Definition at line 105 of file lsq.hh.


The documentation for this class was generated from the following files:

Generated on Tue Sep 21 2021 12:31:46 for gem5 by doxygen 1.8.17