gem5  v20.1.0.0
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
LSQ< Impl >::LSQRequest Class Referenceabstract

Memory operation metadata. More...

#include <lsq.hh>

Inheritance diagram for LSQ< Impl >::LSQRequest:
BaseTLB::Translation LSQ< Impl >::SingleDataRequest LSQ< Impl >::SplitDataRequest LSQ< Impl >::HtmCmdRequest

Public Member Functions

virtual bool recvTimingResp (PacketPtr pkt)=0
 
virtual void sendPacketToCache ()=0
 
virtual void buildPackets ()=0
 
virtual Cycles handleLocalAccess (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 BaseTLB::Translation
virtual ~Translation ()
 
virtual void finish (const Fault &fault, const RequestPtr &req, ThreadContext *tc, 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...
 
virtual 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

template<class Impl>
class LSQ< Impl >::LSQRequest

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

Member Typedef Documentation

◆ FlagsStorage

template<class Impl >
typedef uint32_t LSQ< Impl >::LSQRequest::FlagsStorage
protected

Definition at line 233 of file lsq.hh.

◆ FlagsType

template<class Impl >
typedef ::Flags<FlagsStorage> LSQ< Impl >::LSQRequest::FlagsType
protected

Definition at line 234 of file lsq.hh.

Member Enumeration Documentation

◆ Flag

template<class Impl >
enum LSQ::LSQRequest::Flag : FlagsStorage
protected
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 236 of file lsq.hh.

◆ State

template<class Impl >
enum LSQ::LSQRequest::State
strongprotected
Enumerator
NotIssued 
Translation 
Request 
Fault 
PartialFault 

Definition at line 265 of file lsq.hh.

Constructor & Destructor Documentation

◆ LSQRequest() [1/2]

template<class Impl >
LSQ< Impl >::LSQRequest::LSQRequest ( LSQUnit port,
const DynInstPtr inst,
bool  isLoad 
)
inlineprotected

◆ LSQRequest() [2/2]

template<class Impl >
LSQ< Impl >::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 
)
inlineprotected

◆ ~LSQRequest()

template<class Impl >
virtual LSQ< Impl >::LSQRequest::~LSQRequest ( )
inlineprotectedvirtual

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

References LSQ< Impl >::LSQRequest::_inst, LSQ< Impl >::LSQRequest::_packets, LSQ< Impl >::LSQRequest::_senderState, LSQ< Impl >::LSQRequest::isAnyOutstandingRequest(), and MipsISA::r.

Member Function Documentation

◆ addRequest()

template<class Impl >
void LSQ< Impl >::LSQRequest::addRequest ( Addr  addr,
unsigned  size,
const std::vector< bool > &  byte_enable 
)
inlineprotected

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

References LSQ< Impl >::LSQRequest::_amo_op, LSQ< Impl >::LSQRequest::_flags, LSQ< Impl >::LSQRequest::_inst, LSQ< Impl >::LSQRequest::_requests, addr, isAnyActiveElement(), and LSQ< Impl >::LSQRequest::request().

Referenced by LSQ< Impl >::HtmCmdRequest::HtmCmdRequest().

◆ buildPackets()

template<class Impl >
virtual void LSQ< Impl >::LSQRequest::buildPackets ( )
pure virtual

◆ complete()

template<class Impl >
void LSQ< Impl >::LSQRequest::complete ( )
inline

Definition at line 686 of file lsq.hh.

References Complete, LSQ< Impl >::LSQRequest::flags, and Flags< T >::set().

◆ discard()

template<class Impl >
void LSQ< Impl >::LSQRequest::discard ( )
inline

The request is discarded (e.g.

partial store-load forwarding)

Definition at line 643 of file lsq.hh.

References LSQ< Impl >::LSQRequest::release().

◆ discardSenderState()

template<class Impl >
void LSQ< Impl >::LSQRequest::discardSenderState ( )
inline

Mark senderState as discarded.

This will cause to discard response packets from the cache.

Definition at line 521 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_senderState, and LSQ< Impl >::LSQSenderState::deleteRequest().

◆ freeLSQEntry()

template<class Impl >
void LSQ< Impl >::LSQRequest::freeLSQEntry ( )
inline

The LSQ entry is cleared.

Definition at line 634 of file lsq.hh.

References LSQ< Impl >::LSQRequest::release().

◆ getVaddr()

template<class Impl >
Addr LSQ< Impl >::LSQRequest::getVaddr ( int  idx = 0) const
inline

Definition at line 481 of file lsq.hh.

References LSQ< Impl >::LSQRequest::request().

Referenced by LSQ< Impl >::pushRequest().

◆ handleLocalAccess()

template<class Impl >
virtual Cycles LSQ< Impl >::LSQRequest::handleLocalAccess ( ThreadContext thread,
PacketPtr  pkt 
)
pure virtual

Memory mapped IPR accesses.

Implemented in LSQ< Impl >::SplitDataRequest, and LSQ< Impl >::SingleDataRequest.

◆ initiateTranslation()

template<class Impl >
virtual void LSQ< Impl >::LSQRequest::initiateTranslation ( )
pure virtual

◆ install()

template<class Impl >
void LSQ< Impl >::LSQRequest::install ( )
inlineprotected

◆ instruction()

template<class Impl >
const DynInstPtr& LSQ< Impl >::LSQRequest::instruction ( )
inline

Definition at line 449 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_inst.

◆ isAnyOutstandingRequest()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isAnyOutstandingRequest ( )
inline

◆ isAtomic()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isAtomic ( ) const
inlineprotected

Definition at line 343 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

◆ isCacheBlockHit()

template<class Impl >
virtual bool LSQ< Impl >::LSQRequest::isCacheBlockHit ( Addr  blockAddr,
Addr  cacheBlockMask 
)
pure virtual

Test if the request accesses a particular cache line.

Implemented in LSQ< Impl >::SplitDataRequest, and LSQ< Impl >::SingleDataRequest.

◆ isComplete()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isComplete ( )
inline

Definition at line 579 of file lsq.hh.

References Complete, LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

◆ isDelayed()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isDelayed ( )
inlineprotected

Definition at line 284 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

◆ isInTranslation()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isInTranslation ( )
inline

◆ isLoad()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isLoad ( ) const
inlineprotected

◆ isMemAccessRequired()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isMemAccessRequired ( )
inline

◆ isPartialFault()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isPartialFault ( )
inline

◆ isReleased()

template<class Impl >
bool LSQ< Impl >::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 371 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

Referenced by LSQ< Impl >::LSQRequest::packetReplied(), LSQ< Impl >::LSQRequest::squashTranslation(), and LSQ< Impl >::LSQRequest::writebackDone().

◆ isSent()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isSent ( )
inline

Definition at line 606 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

◆ isSplit()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isSplit ( ) const
inline

Definition at line 540 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::isSet().

◆ isTranslationBlocked()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isTranslationBlocked ( )
inline

◆ isTranslationComplete()

template<class Impl >
bool LSQ< Impl >::LSQRequest::isTranslationComplete ( )
inline

◆ lsqUnit()

template<class Impl >
LSQUnit* LSQ< Impl >::LSQRequest::lsqUnit ( )
inlineprotected

Definition at line 302 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_port.

◆ mainPacket()

template<class Impl >
virtual PacketPtr LSQ< Impl >::LSQRequest::mainPacket ( )
inlinevirtual

◆ mainRequest()

template<class Impl >
virtual RequestPtr LSQ< Impl >::LSQRequest::mainRequest ( )
inlinevirtual

◆ markDelayed()

template<class Impl >
void LSQ< Impl >::LSQRequest::markDelayed ( )
inlineoverrideprotectedvirtual

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

Implements BaseTLB::Translation.

Definition at line 283 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::set().

◆ name()

template<class Impl >
virtual std::string LSQ< Impl >::LSQRequest::name ( ) const
inlinevirtual

◆ packet()

template<class Impl >
PacketPtr LSQ< Impl >::LSQRequest::packet ( int  idx = 0)
inline

Definition at line 484 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_packets.

Referenced by LSQ< Impl >::LSQRequest::mainPacket().

◆ packetNotSent()

template<class Impl >
void LSQ< Impl >::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 571 of file lsq.hh.

References Flags< T >::clear(), LSQ< Impl >::LSQRequest::flags, and Flags< T >::set().

◆ packetReplied()

template<class Impl >
void LSQ< Impl >::LSQRequest::packetReplied ( )
inline

◆ packetSent()

template<class Impl >
void LSQ< Impl >::LSQRequest::packetSent ( )
inline

Update the status to reflect that a packet was sent.

Definition at line 562 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, and Flags< T >::set().

◆ recvTimingResp()

template<class Impl >
virtual bool LSQ< Impl >::LSQRequest::recvTimingResp ( PacketPtr  pkt)
pure virtual

◆ release()

template<class Impl >
void LSQ< Impl >::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 386 of file lsq.hh.

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

Referenced by LSQ< Impl >::LSQRequest::discard(), and LSQ< Impl >::LSQRequest::freeLSQEntry().

◆ request() [1/2]

template<class Impl >
RequestPtr LSQ< Impl >::LSQRequest::request ( int  idx = 0)
inline

◆ request() [2/2]

template<class Impl >
const RequestPtr LSQ< Impl >::LSQRequest::request ( int  idx = 0) const
inline

Definition at line 476 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_requests.

◆ senderState() [1/2]

template<class Impl >
const LSQSenderState* LSQ< Impl >::LSQRequest::senderState ( ) const
inline

Definition at line 511 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_senderState.

◆ senderState() [2/2]

template<class Impl >
void LSQ< Impl >::LSQRequest::senderState ( LSQSenderState st)
inline

◆ sendFragmentToTranslation()

template<class Impl >
void LSQ< Impl >::LSQRequest::sendFragmentToTranslation ( int  i)

Definition at line 970 of file lsq_impl.hh.

References ArmISA::i, BaseTLB::Read, and BaseTLB::Write.

◆ sendPacketToCache()

template<class Impl >
virtual void LSQ< Impl >::LSQRequest::sendPacketToCache ( )
pure virtual

◆ setContext()

template<class Impl >
void LSQ< Impl >::LSQRequest::setContext ( const ContextID context_id)
inline

Convenience getters/setters.

Set up Context numbers.

Definition at line 443 of file lsq.hh.

References LSQ< Impl >::LSQRequest::request().

◆ setState()

template<class Impl >
void LSQ< Impl >::LSQRequest::setState ( const State newState)
inlineprotected

◆ setStateToFault()

template<class Impl >
void LSQ< Impl >::LSQRequest::setStateToFault ( )
inline

Definition at line 625 of file lsq.hh.

References LSQ< Impl >::LSQRequest::Fault, and LSQ< Impl >::LSQRequest::setState().

◆ setVirt()

template<class Impl >
void LSQ< Impl >::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 458 of file lsq.hh.

References MipsISA::pc, LSQ< Impl >::LSQRequest::request(), and MipsISA::vaddr.

◆ squashed()

template<class Impl >
virtual bool LSQ< Impl >::LSQRequest::squashed ( ) const
inlineoverrideprotectedvirtual

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 BaseTLB::Translation.

Definition at line 360 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_inst.

◆ squashTranslation()

template<class Impl >
void LSQ< Impl >::LSQRequest::squashTranslation ( )
inline

◆ taskId() [1/2]

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::taskId ( ) const
inline

Definition at line 472 of file lsq.hh.

References LSQ< Impl >::LSQRequest::_taskId.

◆ taskId() [2/2]

template<class Impl >
void LSQ< Impl >::LSQRequest::taskId ( const uint32_t &  v)
inline

◆ writebackDone()

template<class Impl >
void LSQ< Impl >::LSQRequest::writebackDone ( )
inline

◆ writebackScheduled()

template<class Impl >
void LSQ< Impl >::LSQRequest::writebackScheduled ( )
inline

Definition at line 658 of file lsq.hh.

References LSQ< Impl >::LSQRequest::flags, Flags< T >::isSet(), and Flags< T >::set().

Member Data Documentation

◆ _addr

template<class Impl >
const Addr LSQ< Impl >::LSQRequest::_addr

Definition at line 295 of file lsq.hh.

Referenced by LSQ< Impl >::HtmCmdRequest::HtmCmdRequest().

◆ _amo_op

template<class Impl >
AtomicOpFunctorPtr LSQ< Impl >::LSQRequest::_amo_op

Definition at line 300 of file lsq.hh.

Referenced by LSQ< Impl >::LSQRequest::addRequest().

◆ _byteEnable

template<class Impl >
std::vector<bool> LSQ< Impl >::LSQRequest::_byteEnable

Definition at line 298 of file lsq.hh.

Referenced by LSQ< Impl >::HtmCmdRequest::HtmCmdRequest(), and LSQ< Impl >::pushRequest().

◆ _data

template<class Impl >
PacketDataPtr LSQ< Impl >::LSQRequest::_data

Definition at line 290 of file lsq.hh.

◆ _entryIdx

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::_entryIdx
protected

LQ/SQ entry idx.

Definition at line 281 of file lsq.hh.

◆ _fault

template<class Impl >
std::vector<Fault> LSQ< Impl >::LSQRequest::_fault

Definition at line 293 of file lsq.hh.

Referenced by LSQ< Impl >::SingleDataRequest::finish().

◆ _flags

template<class Impl >
const Request::Flags LSQ< Impl >::LSQRequest::_flags

Definition at line 297 of file lsq.hh.

Referenced by LSQ< Impl >::LSQRequest::addRequest().

◆ _inst

template<class Impl >
const DynInstPtr LSQ< Impl >::LSQRequest::_inst

◆ _numOutstandingPackets

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::_numOutstandingPackets

◆ _packets

template<class Impl >
std::vector<PacketPtr> LSQ< Impl >::LSQRequest::_packets

◆ _port

template<class Impl >
LSQUnit& LSQ< Impl >::LSQRequest::_port

Definition at line 287 of file lsq.hh.

Referenced by LSQ< Impl >::LSQRequest::install(), and LSQ< Impl >::LSQRequest::lsqUnit().

◆ _requests

template<class Impl >
std::vector<RequestPtr> LSQ< Impl >::LSQRequest::_requests

◆ _res

template<class Impl >
uint64_t* LSQ< Impl >::LSQRequest::_res

Definition at line 294 of file lsq.hh.

Referenced by LSQ< Impl >::SingleDataRequest::finish().

◆ _senderState

template<class Impl >
LSQSenderState* LSQ< Impl >::LSQRequest::_senderState
protected

◆ _size

template<class Impl >
const uint32_t LSQ< Impl >::LSQRequest::_size

Definition at line 296 of file lsq.hh.

Referenced by LSQ< Impl >::HtmCmdRequest::HtmCmdRequest().

◆ _state

template<class Impl >
State LSQ< Impl >::LSQRequest::_state
protected

◆ _taskId

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::_taskId

◆ flags

template<class Impl >
FlagsType LSQ< Impl >::LSQRequest::flags
protected

◆ numInTranslationFragments

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::numInTranslationFragments
protected

◆ numTranslatedFragments

template<class Impl >
uint32_t LSQ< Impl >::LSQRequest::numTranslatedFragments
protected

Definition at line 277 of file lsq.hh.

Referenced by LSQ< Impl >::SingleDataRequest::finish().


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

Generated on Wed Sep 30 2020 14:02:27 for gem5 by doxygen 1.8.17