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

Memory operation metadata. More...

#include <lsq.hh>

Inheritance diagram for gem5::o3::LSQ::LSQRequest:
gem5::BaseMMU::Translation gem5::o3::LSQ::SingleDataRequest gem5::o3::LSQ::SplitDataRequest gem5::o3::LSQ::HtmCmdRequest

Public Member Functions

virtual bool recvTimingResp (PacketPtr pkt)=0
 
virtual void sendPacketToCache ()=0
 
virtual void buildPackets ()=0
 
virtual Cycles handleLocalAccess (gem5::ThreadContext *thread, PacketPtr pkt)=0
 Memory mapped IPR accesses. More...
 
virtual bool isCacheBlockHit (Addr blockAddr, Addr cacheBlockMask)=0
 Test if the request accesses a particular cache line. More...
 
void packetSent ()
 Update the status to reflect that a packet was sent. More...
 
void packetNotSent ()
 Update the status to reflect that a packet was not sent. More...
 
void sendFragmentToTranslation (int i)
 
bool isComplete ()
 
bool isInTranslation ()
 
bool isTranslationComplete ()
 
bool isTranslationBlocked ()
 
bool isSent ()
 
bool isPartialFault ()
 
bool isMemAccessRequired ()
 
void setStateToFault ()
 
void freeLSQEntry ()
 The LSQ entry is cleared. More...
 
void discard ()
 The request is discarded (e.g. More...
 
void packetReplied ()
 
void writebackScheduled ()
 
void writebackDone ()
 
void squashTranslation ()
 
void complete ()
 
virtual std::string name () const
 
void setContext (const ContextID &context_id)
 Convenience getters/setters. More...
 
const DynInstPtrinstruction ()
 
void setVirt (Addr vaddr, unsigned size, Request::Flags flags_, RequestorID requestor_id, Addr pc)
 Set up virtual request. More...
 
void taskId (const uint32_t &v)
 
uint32_t taskId () const
 
RequestPtr request (int idx=0)
 
const RequestPtr request (int idx=0) const
 
Addr getVaddr (int idx=0) const
 
virtual void initiateTranslation ()=0
 
PacketPtr packet (int idx=0)
 
virtual PacketPtr mainPacket ()
 
virtual RequestPtr mainRequest ()
 
void senderState (LSQSenderState *st)
 
const LSQSenderStatesenderState () const
 
void discardSenderState ()
 Mark senderState as discarded. More...
 
bool isAnyOutstandingRequest ()
 Test if there is any in-flight translation or mem access request. More...
 
bool isSplit () const
 
- Public Member Functions inherited from gem5::BaseMMU::Translation
virtual ~Translation ()
 
virtual void finish (const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode)=0
 

Public Attributes

LSQUnit_port
 
const DynInstPtr _inst
 
uint32_t _taskId
 
PacketDataPtr _data
 
std::vector< PacketPtr_packets
 
std::vector< RequestPtr_requests
 
std::vector< Fault_fault
 
uint64_t * _res
 
const Addr _addr
 
const uint32_t _size
 
const Request::Flags _flags
 
std::vector< bool > _byteEnable
 
uint32_t _numOutstandingPackets
 
AtomicOpFunctorPtr _amo_op
 

Protected Types

enum  Flag : FlagsStorage {
  IsLoad = 0x00000001, WbStore = 0x00000002, Delayed = 0x00000004, IsSplit = 0x00000008,
  TranslationStarted = 0x00000010, TranslationFinished = 0x00000020, Sent = 0x00000040, Retry = 0x00000080,
  Complete = 0x00000100, TranslationSquashed = 0x00000200, Discarded = 0x00000400, LSQEntryFreed = 0x00000800,
  WritebackScheduled = 0x00001000, WritebackDone = 0x00002000, IsAtomic = 0x00004000
}
 
enum  State {
  State::NotIssued, State::Translation, State::Request, State::Fault,
  State::PartialFault
}
 
typedef uint32_t FlagsStorage
 
typedef Flags< FlagsStorageFlagsType
 

Protected Member Functions

void setState (const State &newState)
 
void markDelayed () override
 Signal that the translation has been delayed due to a hw page table walk. More...
 
bool isDelayed ()
 
LSQUnitlsqUnit ()
 
 LSQRequest (LSQUnit *port, const DynInstPtr &inst, bool isLoad)
 
 LSQRequest (LSQUnit *port, const DynInstPtr &inst, bool isLoad, const Addr &addr, const uint32_t &size, const Request::Flags &flags_, PacketDataPtr data=nullptr, uint64_t *res=nullptr, AtomicOpFunctorPtr amo_op=nullptr)
 
bool isLoad () const
 
bool isAtomic () const
 
void install ()
 Install the request in the LQ/SQ. More...
 
bool squashed () const override
 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...
 
bool isReleased ()
 Test if the LSQRequest has been released, i.e. More...
 
void release (Flag reason)
 Release the LSQRequest. More...
 
void addRequest (Addr addr, unsigned size, const std::vector< bool > &byte_enable)
 Helper function used to add a (sub)request, given its address addr, size size and byte-enable mask byteEnable. More...
 
virtual ~LSQRequest ()
 Destructor. More...
 

Protected Attributes

FlagsType flags
 
State _state
 
LSQSenderState_senderState
 
uint32_t numTranslatedFragments
 
uint32_t numInTranslationFragments
 
uint32_t _entryIdx
 LQ/SQ entry idx. More...
 

Detailed Description

Memory operation metadata.

This class holds the information about a memory operation. It lives from initiateAcc to resource deallocation at commit or squash. LSQRequest objects are owned by the LQ/SQ Entry in the LSQUnit that holds the operation. It is also used by the LSQSenderState. In addition, the LSQRequest is a TranslationState, therefore, upon squash, there must be a defined ownership transferal in case the LSQ resources are deallocated before the TLB is done using the TranslationState. If that happens, the LSQRequest will be self-owned, and responsible to detect that its services are no longer required and self-destruct.

Lifetime of a LSQRequest: +-----------------—+ |LSQ creates and owns| +-----------------—+ | +-----------------—+ | Initate translation| +-----------------—+ | ___^___ ___/ ___ ______/ Squashed? \ | ___ ___/ | ___ ___/ | v | | | +-----------------—+ | | Translation done | | +-----------------—+ | | | +-----------------—+ | | Send packet |<---—+ | +-----------------—+ | | | | | ___^___ | | ___/ ___ | | ____/ Squashed? \ | | | ___ ___/ | | | ___ ___/ | | | v | | | | | | | ___^___ | | | ___/ ___ | | | / Done? __________| | | ___ ___/ | | ___ ___/

v
+-----------------—+

| | | Manage stuff | | | | Free resources | | | +-----------------—+ | | | | +-----------------—+ | | | senderState owns | | +->| onRecvTimingResp | | | free resources | | +-----------------—+ | | +-------------------—+ | | self owned (Trans) | +-->| on TranslationFinish | | free resources | +-------------------—+

Definition at line 231 of file lsq.hh.

Member Typedef Documentation

◆ FlagsStorage

typedef uint32_t gem5::o3::LSQ::LSQRequest::FlagsStorage
protected

Definition at line 234 of file lsq.hh.

◆ FlagsType

Definition at line 235 of file lsq.hh.

Member Enumeration Documentation

◆ Flag

Enumerator
IsLoad 
WbStore 

True if this is a store/atomic that writes registers (SC).

Delayed 
IsSplit 
TranslationStarted 

True if any translation has been sent to TLB.

TranslationFinished 

True if there are un-replied outbound translations.

Sent 
Retry 
Complete 
TranslationSquashed 

Ownership tracking flags.

Translation squashed.

Discarded 

Request discarded.

LSQEntryFreed 

LSQ resources freed.

WritebackScheduled 

Store written back.

WritebackDone 
IsAtomic 

True if this is an atomic request.

Definition at line 237 of file lsq.hh.

◆ State

enum gem5::o3::LSQ::LSQRequest::State
strongprotected
Enumerator
NotIssued 
Translation 
Request 
Fault 
PartialFault 

Definition at line 266 of file lsq.hh.

Constructor & Destructor Documentation

◆ LSQRequest() [1/2]

gem5::o3::LSQ::LSQRequest::LSQRequest ( LSQUnit port,
const DynInstPtr inst,
bool  isLoad 
)
protected

Definition at line 1042 of file lsq.cc.

References _inst, flags, install(), isLoad(), and gem5::Flags< T >::set().

◆ LSQRequest() [2/2]

gem5::o3::LSQ::LSQRequest::LSQRequest ( LSQUnit port,
const DynInstPtr inst,
bool  isLoad,
const Addr addr,
const uint32_t &  size,
const Request::Flags flags_,
PacketDataPtr  data = nullptr,
uint64_t *  res = nullptr,
AtomicOpFunctorPtr  amo_op = nullptr 
)
protected

Definition at line 1056 of file lsq.cc.

References _inst, flags, install(), isLoad(), and gem5::Flags< T >::set().

◆ ~LSQRequest()

gem5::o3::LSQ::LSQRequest::~LSQRequest ( )
protectedvirtual

Destructor.

The LSQRequest owns the request. If the packet has already been sent, the sender state will be deleted upon receiving the reply.

Definition at line 1104 of file lsq.cc.

References gem5::MipsISA::r.

Member Function Documentation

◆ addRequest()

void gem5::o3::LSQ::LSQRequest::addRequest ( Addr  addr,
unsigned  size,
const std::vector< bool > &  byte_enable 
)
protected

Helper function used to add a (sub)request, given its address addr, size size and byte-enable mask byteEnable.

The request is only added if the mask is empty or if there is at least an active element in it.

Definition at line 1091 of file lsq.cc.

References gem5::X86ISA::addr, and gem5::isAnyActiveElement().

Referenced by gem5::o3::LSQ::HtmCmdRequest::HtmCmdRequest().

◆ buildPackets()

virtual void gem5::o3::LSQ::LSQRequest::buildPackets ( )
pure virtual

◆ complete()

void gem5::o3::LSQ::LSQRequest::complete ( )
inline

Definition at line 621 of file lsq.hh.

References gem5::Complete, flags, and gem5::Flags< T >::set().

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

◆ discard()

void gem5::o3::LSQ::LSQRequest::discard ( )
inline

The request is discarded (e.g.

partial store-load forwarding)

Definition at line 578 of file lsq.hh.

References release().

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

◆ discardSenderState()

void gem5::o3::LSQ::LSQRequest::discardSenderState ( )
inline

Mark senderState as discarded.

This will cause to discard response packets from the cache.

Definition at line 456 of file lsq.hh.

References _senderState, and gem5::o3::LSQ::LSQSenderState::deleteRequest().

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

◆ freeLSQEntry()

void gem5::o3::LSQ::LSQRequest::freeLSQEntry ( )
inline

The LSQ entry is cleared.

Definition at line 569 of file lsq.hh.

References release().

Referenced by gem5::o3::LSQUnit::LSQEntry::clear(), and gem5::o3::LSQUnit::LSQEntry::~LSQEntry().

◆ getVaddr()

Addr gem5::o3::LSQ::LSQRequest::getVaddr ( int  idx = 0) const
inline

Definition at line 416 of file lsq.hh.

References request().

Referenced by gem5::o3::LSQ::pushRequest().

◆ handleLocalAccess()

virtual Cycles gem5::o3::LSQ::LSQRequest::handleLocalAccess ( gem5::ThreadContext thread,
PacketPtr  pkt 
)
pure virtual

Memory mapped IPR accesses.

Implemented in gem5::o3::LSQ::SplitDataRequest, and gem5::o3::LSQ::SingleDataRequest.

◆ initiateTranslation()

virtual void gem5::o3::LSQ::LSQRequest::initiateTranslation ( )
pure virtual

◆ install()

void gem5::o3::LSQ::LSQRequest::install ( )
protected

Install the request in the LQ/SQ.

Definition at line 1077 of file lsq.cc.

Referenced by LSQRequest().

◆ instruction()

const DynInstPtr& gem5::o3::LSQ::LSQRequest::instruction ( )
inline

Definition at line 387 of file lsq.hh.

References _inst.

◆ isAnyOutstandingRequest()

bool gem5::o3::LSQ::LSQRequest::isAnyOutstandingRequest ( )
inline

Test if there is any in-flight translation or mem access request.

Definition at line 466 of file lsq.hh.

References _numOutstandingPackets, flags, gem5::Flags< T >::isSet(), and numInTranslationFragments.

Referenced by gem5::o3::LSQUnit::read(), and release().

◆ isAtomic()

bool gem5::o3::LSQ::LSQRequest::isAtomic ( ) const
inlineprotected

Definition at line 317 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

◆ isCacheBlockHit()

virtual bool gem5::o3::LSQ::LSQRequest::isCacheBlockHit ( Addr  blockAddr,
Addr  cacheBlockMask 
)
pure virtual

Test if the request accesses a particular cache line.

Implemented in gem5::o3::LSQ::SplitDataRequest, and gem5::o3::LSQ::SingleDataRequest.

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

◆ isComplete()

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

Definition at line 514 of file lsq.hh.

References gem5::Complete, flags, and gem5::Flags< T >::isSet().

◆ isDelayed()

bool gem5::o3::LSQ::LSQRequest::isDelayed ( )
inlineprotected

Definition at line 285 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

◆ isInTranslation()

bool gem5::o3::LSQ::LSQRequest::isInTranslation ( )
inline

Definition at line 520 of file lsq.hh.

References _state, and Translation.

Referenced by isTranslationComplete().

◆ isLoad()

bool gem5::o3::LSQ::LSQRequest::isLoad ( ) const
inlineprotected

Definition at line 311 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

Referenced by isMemAccessRequired(), and LSQRequest().

◆ isMemAccessRequired()

bool gem5::o3::LSQ::LSQRequest::isMemAccessRequired ( )
inline

Definition at line 553 of file lsq.hh.

References _state, isLoad(), isPartialFault(), and Request.

Referenced by gem5::o3::LSQ::pushRequest().

◆ isPartialFault()

bool gem5::o3::LSQ::LSQRequest::isPartialFault ( )
inline

Definition at line 547 of file lsq.hh.

References _state, and PartialFault.

Referenced by isMemAccessRequired().

◆ isReleased()

bool gem5::o3::LSQ::LSQRequest::isReleased ( )
inlineprotected

Test if the LSQRequest has been released, i.e.

self-owned. An LSQRequest manages itself when the resources on the LSQ are freed but the translation is still going on and the LSQEntry was freed.

Definition at line 333 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

Referenced by packetReplied(), squashTranslation(), and writebackDone().

◆ isSent()

bool gem5::o3::LSQ::LSQRequest::isSent ( )
inline

Definition at line 541 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

Referenced by gem5::o3::LSQUnit::read(), and gem5::o3::LSQUnit::writebackStores().

◆ isSplit()

bool gem5::o3::LSQ::LSQRequest::isSplit ( ) const
inline

Definition at line 475 of file lsq.hh.

References flags, and gem5::Flags< T >::isSet().

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

◆ isTranslationBlocked()

bool gem5::o3::LSQ::LSQRequest::isTranslationBlocked ( )
inline

Definition at line 533 of file lsq.hh.

References _state, flags, gem5::Flags< T >::isSet(), and Translation.

◆ isTranslationComplete()

bool gem5::o3::LSQ::LSQRequest::isTranslationComplete ( )
inline

Definition at line 526 of file lsq.hh.

References flags, isInTranslation(), and gem5::Flags< T >::isSet().

Referenced by gem5::o3::LSQ::pushRequest().

◆ lsqUnit()

LSQUnit* gem5::o3::LSQ::LSQRequest::lsqUnit ( )
inlineprotected

Definition at line 303 of file lsq.hh.

References _port.

◆ mainPacket()

virtual PacketPtr gem5::o3::LSQ::LSQRequest::mainPacket ( )
inlinevirtual

Reimplemented in gem5::o3::LSQ::SplitDataRequest.

Definition at line 422 of file lsq.hh.

References _packets, and packet().

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

◆ mainRequest()

virtual RequestPtr gem5::o3::LSQ::LSQRequest::mainRequest ( )
inlinevirtual

◆ markDelayed()

void gem5::o3::LSQ::LSQRequest::markDelayed ( )
inlineoverrideprotectedvirtual

Signal that the translation has been delayed due to a hw page table walk.

Implements gem5::BaseMMU::Translation.

Definition at line 284 of file lsq.hh.

References flags, and gem5::Flags< T >::set().

◆ name()

virtual std::string gem5::o3::LSQ::LSQRequest::name ( ) const
inlinevirtual

◆ packet()

PacketPtr gem5::o3::LSQ::LSQRequest::packet ( int  idx = 0)
inline

Definition at line 419 of file lsq.hh.

References _packets.

Referenced by mainPacket(), and gem5::o3::LSQUnit::writebackStores().

◆ packetNotSent()

void gem5::o3::LSQ::LSQRequest::packetNotSent ( )
inline

Update the status to reflect that a packet was not sent.

When a packet fails to be sent, we mark the request as needing a retry. Note that Retry flag is sticky.

Definition at line 506 of file lsq.hh.

References gem5::Flags< T >::clear(), flags, and gem5::Flags< T >::set().

◆ packetReplied()

void gem5::o3::LSQ::LSQRequest::packetReplied ( )
inline

Definition at line 584 of file lsq.hh.

References _numOutstandingPackets, and isReleased().

◆ packetSent()

void gem5::o3::LSQ::LSQRequest::packetSent ( )
inline

Update the status to reflect that a packet was sent.

Definition at line 497 of file lsq.hh.

References flags, and gem5::Flags< T >::set().

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

◆ recvTimingResp()

virtual bool gem5::o3::LSQ::LSQRequest::recvTimingResp ( PacketPtr  pkt)
pure virtual

◆ release()

void gem5::o3::LSQ::LSQRequest::release ( Flag  reason)
inlineprotected

Release the LSQRequest.

Notify the sender state that the request it points to is not valid anymore. Understand if the request is orphan (self-managed) and if so, mark it as freed, else destroy it, as this means the end of its life cycle. An LSQRequest is orphan when its resources are released but there is any in-flight translation request to the TLB or access request to the memory.

Definition at line 349 of file lsq.hh.

References _senderState, gem5::o3::LSQ::LSQSenderState::deleteRequest(), flags, isAnyOutstandingRequest(), and gem5::Flags< T >::set().

Referenced by discard(), and freeLSQEntry().

◆ request() [1/2]

RequestPtr gem5::o3::LSQ::LSQRequest::request ( int  idx = 0)
inline

◆ request() [2/2]

const RequestPtr gem5::o3::LSQ::LSQRequest::request ( int  idx = 0) const
inline

Definition at line 411 of file lsq.hh.

References _requests.

◆ senderState() [1/2]

const LSQSenderState* gem5::o3::LSQ::LSQRequest::senderState ( ) const
inline

Definition at line 446 of file lsq.hh.

References _senderState.

◆ senderState() [2/2]

void gem5::o3::LSQ::LSQRequest::senderState ( LSQSenderState st)
inline

Definition at line 436 of file lsq.hh.

References _packets, _senderState, and gem5::ArmISA::st.

Referenced by gem5::o3::LSQUnit::read(), and gem5::o3::LSQUnit::writebackStores().

◆ sendFragmentToTranslation()

void gem5::o3::LSQ::LSQRequest::sendFragmentToTranslation ( int  i)

Definition at line 1116 of file lsq.cc.

References gem5::ArmISA::i, gem5::BaseMMU::Read, and gem5::BaseMMU::Write.

◆ sendPacketToCache()

virtual void gem5::o3::LSQ::LSQRequest::sendPacketToCache ( )
pure virtual

◆ setContext()

void gem5::o3::LSQ::LSQRequest::setContext ( const ContextID context_id)
inline

Convenience getters/setters.

Set up Context numbers.

Definition at line 382 of file lsq.hh.

References request().

◆ setState()

void gem5::o3::LSQ::LSQRequest::setState ( const State newState)
inlineprotected

◆ setStateToFault()

void gem5::o3::LSQ::LSQRequest::setStateToFault ( )
inline

Definition at line 560 of file lsq.hh.

References Fault, and setState().

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

◆ setVirt()

void gem5::o3::LSQ::LSQRequest::setVirt ( Addr  vaddr,
unsigned  size,
Request::Flags  flags_,
RequestorID  requestor_id,
Addr  pc 
)
inline

Set up virtual request.

For a previously allocated Request objects.

Definition at line 393 of file lsq.hh.

References gem5::MipsISA::pc, request(), and gem5::MipsISA::vaddr.

◆ squashed()

bool gem5::o3::LSQ::LSQRequest::squashed ( ) const
overrideprotectedvirtual

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.

@ return Is the instruction that requested this translation squashed?

Reimplemented from gem5::BaseMMU::Translation.

Definition at line 1088 of file lsq.cc.

◆ squashTranslation()

void gem5::o3::LSQ::LSQRequest::squashTranslation ( )
inline

◆ taskId() [1/2]

uint32_t gem5::o3::LSQ::LSQRequest::taskId ( ) const
inline

Definition at line 407 of file lsq.hh.

References _taskId.

◆ taskId() [2/2]

void gem5::o3::LSQ::LSQRequest::taskId ( const uint32_t &  v)
inline

Definition at line 400 of file lsq.hh.

References _requests, _taskId, gem5::MipsISA::r, and gem5::ArmISA::v.

Referenced by gem5::o3::LSQ::pushRequest().

◆ writebackDone()

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

Definition at line 600 of file lsq.hh.

References flags, isReleased(), and gem5::Flags< T >::set().

Referenced by gem5::o3::LSQ::LSQSenderState::writebackDone().

◆ writebackScheduled()

void gem5::o3::LSQ::LSQRequest::writebackScheduled ( )
inline

Definition at line 593 of file lsq.hh.

References flags, gem5::Flags< T >::isSet(), and gem5::Flags< T >::set().

Member Data Documentation

◆ _addr

const Addr gem5::o3::LSQ::LSQRequest::_addr

Definition at line 296 of file lsq.hh.

Referenced by gem5::o3::LSQ::HtmCmdRequest::HtmCmdRequest().

◆ _amo_op

AtomicOpFunctorPtr gem5::o3::LSQ::LSQRequest::_amo_op

Definition at line 301 of file lsq.hh.

◆ _byteEnable

std::vector<bool> gem5::o3::LSQ::LSQRequest::_byteEnable

◆ _data

PacketDataPtr gem5::o3::LSQ::LSQRequest::_data

Definition at line 291 of file lsq.hh.

◆ _entryIdx

uint32_t gem5::o3::LSQ::LSQRequest::_entryIdx
protected

LQ/SQ entry idx.

Definition at line 282 of file lsq.hh.

◆ _fault

std::vector<Fault> gem5::o3::LSQ::LSQRequest::_fault

Definition at line 294 of file lsq.hh.

Referenced by gem5::o3::LSQ::SingleDataRequest::finish().

◆ _flags

const Request::Flags gem5::o3::LSQ::LSQRequest::_flags

Definition at line 298 of file lsq.hh.

◆ _inst

const DynInstPtr gem5::o3::LSQ::LSQRequest::_inst

◆ _numOutstandingPackets

uint32_t gem5::o3::LSQ::LSQRequest::_numOutstandingPackets

Definition at line 300 of file lsq.hh.

Referenced by isAnyOutstandingRequest(), packetReplied(), and gem5::o3::LSQUnit::read().

◆ _packets

std::vector<PacketPtr> gem5::o3::LSQ::LSQRequest::_packets

Definition at line 292 of file lsq.hh.

Referenced by mainPacket(), packet(), and senderState().

◆ _port

LSQUnit& gem5::o3::LSQ::LSQRequest::_port

Definition at line 288 of file lsq.hh.

Referenced by lsqUnit().

◆ _requests

std::vector<RequestPtr> gem5::o3::LSQ::LSQRequest::_requests

◆ _res

uint64_t* gem5::o3::LSQ::LSQRequest::_res

Definition at line 295 of file lsq.hh.

Referenced by gem5::o3::LSQ::SingleDataRequest::finish().

◆ _senderState

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

Definition at line 275 of file lsq.hh.

Referenced by discardSenderState(), release(), and senderState().

◆ _size

const uint32_t gem5::o3::LSQ::LSQRequest::_size

◆ _state

State gem5::o3::LSQ::LSQRequest::_state
protected

◆ _taskId

uint32_t gem5::o3::LSQ::LSQRequest::_taskId

Definition at line 290 of file lsq.hh.

Referenced by gem5::o3::LSQ::HtmCmdRequest::HtmCmdRequest(), and taskId().

◆ flags

FlagsType gem5::o3::LSQ::LSQRequest::flags
protected

◆ numInTranslationFragments

uint32_t gem5::o3::LSQ::LSQRequest::numInTranslationFragments
protected

◆ numTranslatedFragments

uint32_t gem5::o3::LSQ::LSQRequest::numTranslatedFragments
protected

Definition at line 278 of file lsq.hh.

Referenced by gem5::o3::LSQ::SingleDataRequest::finish().


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

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