gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Minor::LSQ::SingleDataRequest Class Reference

SingleDataRequest is used for requests that don't fragment. More...

#include <lsq.hh>

Inheritance diagram for Minor::LSQ::SingleDataRequest:
Minor::LSQ::LSQRequest BaseTLB::Translation Packet::SenderState

Public Member Functions

void startAddrTranslation ()
 Send single translation request. More...
 
PacketPtr getHeadPacket ()
 Get the head packet as counted by numIssuedFragments. More...
 
void stepToNextPacket ()
 Remember that the packet has been sent. More...
 
bool hasPacketsInMemSystem ()
 Has packet been sent. More...
 
bool sentAllPackets ()
 packetInFlight can become false again, so need to check packetSent More...
 
void retireResponse (PacketPtr packet_)
 Keep the given packet as the response packet LSQRequest::packet. More...
 
 SingleDataRequest (LSQ &port_, MinorDynInstPtr inst_, bool isLoad_, PacketDataPtr data_=NULL, uint64_t *res_=NULL)
 
- Public Member Functions inherited from 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. More...
 
bool skippedMemAccess ()
 Was no memory access attempted for this request? More...
 
void setSkipped ()
 Set this request as having been skipped before a memory transfer was attempt. More...
 
AddrRangeCoverage containsAddrRangeOf (LSQRequest *other_request)
 Does this request's address range fully cover the range of other_request? More...
 
virtual bool isBarrier ()
 Is this a request a barrier? More...
 
bool needsToBeSentToStoreBuffer ()
 This request, once processed by the requests/transfers queues, will need to go to the store buffer. More...
 
void setState (LSQRequestState new_state)
 Set state and output trace output. More...
 
bool isComplete () const
 Has this request been completed. More...
 
void reportData (std::ostream &os) const
 MinorTrace report interface. More...
 
- Public Member Functions inherited from BaseTLB::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. More...
 
- Public Member Functions inherited from Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Protected Member Functions

void finish (const Fault &fault_, RequestPtr request_, ThreadContext *tc, BaseTLB::Mode mode)
 TLB interace. More...
 
- Protected Member Functions inherited from Minor::LSQ::LSQRequest
void markDelayed ()
 BaseTLB::Translation interface. More...
 

Protected Attributes

bool packetInFlight
 Has my only packet been sent to the memory system but has not yet been responded to. More...
 
bool packetSent
 Has the packet been at least sent to the memory system? More...
 

Additional Inherited Members

- Public Types inherited from Minor::LSQ::LSQRequest
enum  LSQRequestState {
  NotIssued, InTranslation, Translated, Failed,
  RequestIssuing, StoreToStoreBuffer, RequestNeedsRetry, StoreInStoreBuffer,
  StoreBufferIssuing, StoreBufferNeedsRetry, Complete
}
 
- Static Public Member Functions inherited from 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. More...
 
- Public Attributes inherited from Minor::LSQ::LSQRequest
LSQport
 Owning port. More...
 
MinorDynInstPtr inst
 Instruction which made this request. More...
 
bool isLoad
 Load/store indication used for building packet. More...
 
PacketDataPtr data
 Dynamically allocated and populated data carried for building write packets. More...
 
PacketPtr packet
 
Request request
 The underlying request of this LSQRequest. More...
 
Fault fault
 Fault generated performing this request. More...
 
uint64_t * res
 Res from pushRequest. More...
 
bool skipped
 Was skipped. More...
 
bool issuedToMemory
 This in an access other than a normal cacheable load that's visited the memory system. More...
 
LSQRequestState state
 
- Public Attributes inherited from Packet::SenderState
SenderStatepredecessor
 

Detailed Description

SingleDataRequest is used for requests that don't fragment.

Definition at line 332 of file lsq.hh.

Constructor & Destructor Documentation

Minor::LSQ::SingleDataRequest::SingleDataRequest ( LSQ port_,
MinorDynInstPtr  inst_,
bool  isLoad_,
PacketDataPtr  data_ = NULL,
uint64_t *  res_ = NULL 
)
inline

Definition at line 368 of file lsq.hh.

Member Function Documentation

void Minor::LSQ::SingleDataRequest::finish ( const Fault fault_,
RequestPtr  request_,
ThreadContext tc,
BaseTLB::Mode  mode 
)
protectedvirtual

TLB interace.

Implements BaseTLB::Translation.

Definition at line 231 of file lsq.cc.

References DPRINTFS, and Minor::Pipeline::ExecuteStageId.

PacketPtr Minor::LSQ::SingleDataRequest::getHeadPacket ( )
inlinevirtual

Get the head packet as counted by numIssuedFragments.

Implements Minor::LSQ::LSQRequest.

Definition at line 351 of file lsq.hh.

References Minor::LSQ::LSQRequest::packet.

bool Minor::LSQ::SingleDataRequest::hasPacketsInMemSystem ( )
inlinevirtual

Has packet been sent.

Implements Minor::LSQ::LSQRequest.

Definition at line 357 of file lsq.hh.

References packetInFlight.

void Minor::LSQ::SingleDataRequest::retireResponse ( PacketPtr  packet_)
virtual

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

Implements Minor::LSQ::LSQRequest.

Definition at line 269 of file lsq.cc.

References DPRINTFS.

bool Minor::LSQ::SingleDataRequest::sentAllPackets ( )
inlinevirtual

packetInFlight can become false again, so need to check packetSent

Implements Minor::LSQ::LSQRequest.

Definition at line 361 of file lsq.hh.

References packetSent.

void Minor::LSQ::SingleDataRequest::startAddrTranslation ( )
virtual

Send single translation request.

Implements Minor::LSQ::LSQRequest.

Definition at line 251 of file lsq.cc.

References DPRINTFS, ThreadContext::getDTBPtr(), Minor::LSQ::LSQRequest::InTranslation, BaseTLB::Read, and BaseTLB::Write.

void Minor::LSQ::SingleDataRequest::stepToNextPacket ( )
inlinevirtual

Remember that the packet has been sent.

Implements Minor::LSQ::LSQRequest.

Definition at line 354 of file lsq.hh.

References packetInFlight, and packetSent.

Member Data Documentation

bool Minor::LSQ::SingleDataRequest::packetInFlight
protected

Has my only packet been sent to the memory system but has not yet been responded to.

Definition at line 341 of file lsq.hh.

Referenced by hasPacketsInMemSystem(), and stepToNextPacket().

bool Minor::LSQ::SingleDataRequest::packetSent
protected

Has the packet been at least sent to the memory system?

Definition at line 344 of file lsq.hh.

Referenced by sentAllPackets(), and stepToNextPacket().


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

Generated on Fri Jun 9 2017 13:04:33 for gem5 by doxygen 1.8.6