gem5  v22.1.0.0
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::Packet::SenderState gem5::o3::LSQ::SingleDataRequest gem5::o3::LSQ::SplitDataRequest gem5::o3::LSQ::UnsquashableDirectRequest

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 ()
 
bool hasStaleTranslation () const
 
virtual void markAsStaleTranslation ()=0
 
void setVirt (Addr vaddr, unsigned size, Request::Flags flags_, RequestorID requestor_id, Addr pc)
 Set up virtual request. More...
 
ContextID contextId () const
 
void taskId (const uint32_t &v)
 
uint32_t taskId () const
 
RequestPtr req (int idx=0)
 
const RequestPtr req (int idx=0) const
 
Addr getVaddr (int idx=0) const
 
virtual void initiateTranslation ()=0
 
PacketPtr packet (int idx=0)
 
virtual PacketPtr mainPacket ()
 
virtual RequestPtr mainReq ()
 
bool isAnyOutstandingRequest ()
 Test if there is any in-flight translation or mem access request. More...
 
bool isReleased ()
 Test if the LSQRequest has been released, i.e. More...
 
bool isSplit () const
 
bool needWBToRegister () 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 Member Functions inherited from gem5::Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Public Attributes

LSQUnit_port
 
const DynInstPtr _inst
 
uint32_t _taskId
 
PacketDataPtr _data
 
std::vector< PacketPtr_packets
 
std::vector< RequestPtr_reqs
 
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
 
bool _hasStaleTranslation
 
- Public Attributes inherited from gem5::Packet::SenderState
SenderStatepredecessor
 

Protected Types

enum  Flag : FlagsStorage {
  IsLoad = 0x00000001 , WriteBackToRegister = 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 class  State {
  NotIssued , Translation , Request , Fault ,
  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 stale_translation=false)
 
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...
 
void release (Flag reason)
 Release the LSQRequest. More...
 
void addReq (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
 
uint32_t numTranslatedFragments
 
uint32_t numInTranslationFragments
 

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. 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 | | | +-----------------—+ | | | | +-----------------—+ | | | self owned | | +->| on recvTimingResp | | | free resources | | +-----------------—+ | | +-------------------—+ | | self owned (Trans) | +-->| on TranslationFinish | | free resources | +-------------------—+

Definition at line 189 of file lsq.hh.

Member Typedef Documentation

◆ FlagsStorage

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

Definition at line 192 of file lsq.hh.

◆ FlagsType

Definition at line 193 of file lsq.hh.

Member Enumeration Documentation

◆ Flag

Enumerator
IsLoad 
WriteBackToRegister 

True if this request needs to writeBack to register.

Will be set in case of load or 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 195 of file lsq.hh.

◆ State

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

Definition at line 227 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 1052 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,
bool  stale_translation = false 
)
protected

Definition at line 1067 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 1135 of file lsq.cc.

References gem5::VegaISA::r.

Member Function Documentation

◆ addReq()

void gem5::o3::LSQ::LSQRequest::addReq ( 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 there is at least one active element in the mask.

Definition at line 1105 of file lsq.cc.

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

◆ buildPackets()

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

◆ complete()

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

Definition at line 561 of file lsq.hh.

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

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

◆ contextId()

ContextID gem5::o3::LSQ::LSQRequest::contextId ( ) const

◆ discard()

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

The request is discarded (e.g.

partial store-load forwarding)

Definition at line 518 of file lsq.hh.

References release().

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

◆ freeLSQEntry()

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

The LSQ entry is cleared.

Definition at line 509 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 365 of file lsq.hh.

References req().

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.

◆ hasStaleTranslation()

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

Definition at line 336 of file lsq.hh.

References _hasStaleTranslation.

◆ 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 1091 of file lsq.cc.

Referenced by LSQRequest().

◆ instruction()

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

Definition at line 334 of file lsq.hh.

References _inst.

Referenced by gem5::o3::LSQUnit::completeDataAccess(), and gem5::o3::LSQUnit::trySendPacket().

◆ isAnyOutstandingRequest()

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

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

Definition at line 388 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 278 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 454 of file lsq.hh.

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

◆ isDelayed()

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

Definition at line 243 of file lsq.hh.

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

◆ isInTranslation()

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

Definition at line 460 of file lsq.hh.

References _state, and Translation.

Referenced by isTranslationComplete().

◆ isLoad()

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

Definition at line 272 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 493 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 487 of file lsq.hh.

References _state, and PartialFault.

Referenced by isMemAccessRequired().

◆ isReleased()

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

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 402 of file lsq.hh.

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

Referenced by packetReplied(), gem5::o3::LSQUnit::recvTimingResp(), squashTranslation(), and writebackDone().

◆ isSent()

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

Definition at line 481 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 409 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 473 of file lsq.hh.

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

◆ isTranslationComplete()

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

Definition at line 466 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 263 of file lsq.hh.

References _port.

◆ mainPacket()

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

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

Definition at line 371 of file lsq.hh.

References _packets, and packet().

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

◆ mainReq()

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

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

Definition at line 378 of file lsq.hh.

References _reqs, and req().

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

◆ markAsStaleTranslation()

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

◆ 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 242 of file lsq.hh.

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

◆ name()

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

◆ needWBToRegister()

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

Definition at line 415 of file lsq.hh.

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

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

◆ packet()

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

Definition at line 368 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 446 of file lsq.hh.

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

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

◆ packetReplied()

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

Definition at line 524 of file lsq.hh.

References _numOutstandingPackets, and isReleased().

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

◆ packetSent()

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

Update the status to reflect that a packet was sent.

Definition at line 437 of file lsq.hh.

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

Referenced by gem5::o3::LSQUnit::trySendPacket(), and 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 299 of file lsq.hh.

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

Referenced by discard(), and freeLSQEntry().

◆ req() [1/2]

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

◆ req() [2/2]

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

Definition at line 363 of file lsq.hh.

References _reqs.

◆ sendFragmentToTranslation()

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

Definition at line 1151 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 329 of file lsq.hh.

References req().

◆ setState()

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

Definition at line 236 of file lsq.hh.

References _state.

Referenced by gem5::o3::LSQ::SingleDataRequest::finish(), and setStateToFault().

◆ setStateToFault()

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

Definition at line 500 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 344 of file lsq.hh.

References gem5::MipsISA::pc, req(), 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 1102 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 360 of file lsq.hh.

References _taskId.

◆ taskId() [2/2]

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

Definition at line 353 of file lsq.hh.

References _reqs, _taskId, gem5::VegaISA::r, and gem5::VegaISA::v.

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

◆ writebackDone()

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

Definition at line 540 of file lsq.hh.

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

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

◆ writebackScheduled()

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

Definition at line 533 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 254 of file lsq.hh.

◆ _amo_op

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

Definition at line 259 of file lsq.hh.

◆ _byteEnable

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

Definition at line 257 of file lsq.hh.

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

◆ _data

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

Definition at line 249 of file lsq.hh.

◆ _fault

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

Definition at line 252 of file lsq.hh.

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

◆ _flags

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

Definition at line 256 of file lsq.hh.

◆ _hasStaleTranslation

bool gem5::o3::LSQ::LSQRequest::_hasStaleTranslation

Definition at line 260 of file lsq.hh.

Referenced by hasStaleTranslation().

◆ _inst

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

Definition at line 247 of file lsq.hh.

Referenced by gem5::o3::LSQ::SingleDataRequest::finish(), instruction(), and LSQRequest().

◆ _numOutstandingPackets

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

Definition at line 258 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 250 of file lsq.hh.

Referenced by mainPacket(), and packet().

◆ _port

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

Definition at line 246 of file lsq.hh.

Referenced by lsqUnit().

◆ _reqs

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

Definition at line 251 of file lsq.hh.

Referenced by gem5::o3::LSQ::SingleDataRequest::isCacheBlockHit(), mainReq(), req(), and taskId().

◆ _res

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

Definition at line 253 of file lsq.hh.

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

◆ _size

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

Definition at line 255 of file lsq.hh.

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

◆ _state

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

◆ _taskId

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

Definition at line 248 of file lsq.hh.

Referenced by 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 238 of file lsq.hh.

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


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

Generated on Wed Dec 21 2022 10:24:18 for gem5 by doxygen 1.9.1