gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::minor::LSQ::SpecialDataRequest Class Reference

Special request types that don't actually issue memory requests. More...

#include <lsq.hh>

Inheritance diagram for gem5::minor::LSQ::SpecialDataRequest:
gem5::minor::LSQ::LSQRequest gem5::BaseMMU::Translation gem5::Packet::SenderState gem5::minor::LSQ::BarrierDataRequest gem5::minor::LSQ::FailedDataRequest

Public Member Functions

void startAddrTranslation ()
 Send single translation request.
 
PacketPtr getHeadPacket ()
 Get the head packet as counted by numIssuedFragments.
 
void stepToNextPacket ()
 Step on numIssuedFragments.
 
bool sentAllPackets ()
 Has no packets to send.
 
bool hasPacketsInMemSystem ()
 Never sends any requests.
 
void retireResponse (PacketPtr packet_)
 Keep the given packet as the response packet LSQRequest::packet.
 
 SpecialDataRequest (LSQ &port_, MinorDynInstPtr inst_)
 
- Public Member Functions inherited from gem5::minor::LSQ::LSQRequest
 LSQRequest (LSQ &port_, MinorDynInstPtr inst_, bool isLoad_, PacketDataPtr data_=NULL, uint64_t *res_=NULL)
 
virtual ~LSQRequest ()
 
void makePacket ()
 Make a packet to use with the memory transaction.
 
bool skippedMemAccess ()
 Was no memory access attempted for this request?
 
void setSkipped ()
 Set this request as having been skipped before a memory transfer was attempt.
 
AddrRangeCoverage containsAddrRangeOf (LSQRequest *other_request)
 Does this request's address range fully cover the range of other_request?
 
virtual bool isBarrier ()
 Is this a request a barrier?
 
bool needsToBeSentToStoreBuffer ()
 This request, once processed by the requests/transfers queues, will need to go to the store buffer.
 
void setState (LSQRequestState new_state)
 Set state and output trace output.
 
bool isComplete () const
 Has this request been completed.
 
void reportData (std::ostream &os) const
 MinorTrace report interface.
 
- Public Member Functions inherited from gem5::BaseMMU::Translation
virtual ~Translation ()
 
virtual bool squashed () const
 This function is used by the page table walker to determine if it should translate the a pending request or if the underlying request has been squashed.
 
- Public Member Functions inherited from gem5::Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Protected Member Functions

void finish (const Fault &fault_, const RequestPtr &request_, ThreadContext *tc, BaseMMU::Mode mode)
 TLB interace.
 
- Protected Member Functions inherited from gem5::minor::LSQ::LSQRequest
void markDelayed ()
 BaseMMU::Translation interface.
 
void tryToSuppressFault ()
 Instructions may want to suppress translation faults (e.g.
 
void disableMemAccess ()
 
void completeDisabledMemAccess ()
 

Additional Inherited Members

- Public Types inherited from gem5::minor::LSQ::LSQRequest
enum  LSQRequestState {
  NotIssued , InTranslation , Translated , Failed ,
  RequestIssuing , StoreToStoreBuffer , RequestNeedsRetry , StoreInStoreBuffer ,
  StoreBufferIssuing , StoreBufferNeedsRetry , Complete
}
 
- Static Public Member Functions inherited from gem5::minor::LSQ::LSQRequest
static AddrRangeCoverage containsAddrRangeOf (Addr req1_addr, unsigned int req1_size, Addr req2_addr, unsigned int req2_size)
 Does address range req1 (req1_addr to req1_addr + req1_size - 1) fully cover, partially cover or not cover at all the range req2.
 
- Public Attributes inherited from gem5::minor::LSQ::LSQRequest
LSQport
 Owning port.
 
MinorDynInstPtr inst
 Instruction which made this request.
 
bool isLoad
 Load/store indication used for building packet.
 
PacketDataPtr data
 Dynamically allocated and populated data carried for building write packets.
 
PacketPtr packet
 
RequestPtr request
 The underlying request of this LSQRequest.
 
uint64_t * res
 Res from pushRequest.
 
bool skipped
 Was skipped.
 
bool issuedToMemory
 This in an access other than a normal cacheable load that's visited the memory system.
 
bool isTranslationDelayed
 Address translation is delayed due to table walk.
 
LSQRequestState state
 
- Public Attributes inherited from gem5::Packet::SenderState
SenderStatepredecessor
 

Detailed Description

Special request types that don't actually issue memory requests.

Definition at line 284 of file lsq.hh.

Constructor & Destructor Documentation

◆ SpecialDataRequest()

gem5::minor::LSQ::SpecialDataRequest::SpecialDataRequest ( LSQ & port_,
MinorDynInstPtr inst_ )
inline

Definition at line 314 of file lsq.hh.

Member Function Documentation

◆ finish()

void gem5::minor::LSQ::SpecialDataRequest::finish ( const Fault & fault_,
const RequestPtr & request_,
ThreadContext * tc,
BaseMMU::Mode mode )
inlineprotectedvirtual

TLB interace.

Implements gem5::BaseMMU::Translation.

Definition at line 288 of file lsq.hh.

◆ getHeadPacket()

PacketPtr gem5::minor::LSQ::SpecialDataRequest::getHeadPacket ( )
inlinevirtual

Get the head packet as counted by numIssuedFragments.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 297 of file lsq.hh.

References fatal.

◆ hasPacketsInMemSystem()

bool gem5::minor::LSQ::SpecialDataRequest::hasPacketsInMemSystem ( )
inlinevirtual

Never sends any requests.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 307 of file lsq.hh.

◆ retireResponse()

void gem5::minor::LSQ::SpecialDataRequest::retireResponse ( PacketPtr packet_)
inlinevirtual

Keep the given packet as the response packet LSQRequest::packet.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 311 of file lsq.hh.

◆ sentAllPackets()

bool gem5::minor::LSQ::SpecialDataRequest::sentAllPackets ( )
inlinevirtual

Has no packets to send.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 304 of file lsq.hh.

◆ startAddrTranslation()

void gem5::minor::LSQ::SpecialDataRequest::startAddrTranslation ( )
inlinevirtual

Send single translation request.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 294 of file lsq.hh.

◆ stepToNextPacket()

void gem5::minor::LSQ::SpecialDataRequest::stepToNextPacket ( )
inlinevirtual

Step on numIssuedFragments.

Implements gem5::minor::LSQ::LSQRequest.

Definition at line 301 of file lsq.hh.


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

Generated on Tue Jun 18 2024 16:24:20 for gem5 by doxygen 1.11.0