gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ruby::RubyRequest Class Reference

#include <RubyRequest.hh>

Inheritance diagram for gem5::ruby::RubyRequest:
gem5::ruby::Message

Public Member Functions

 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb=PrefetchBit_No, ContextID _proc_id=100, ContextID _core_id=99)
 
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, ContextID _proc_id, ContextID _core_id)
 RubyRequest for memory management commands.
 
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, uint64_t _instSeqNum=0)
 
 RubyRequest (Tick curTime, int block_size, RubySystem *rs, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, std::vector< std::pair< int, AtomicOpFunctor * > > _atomicOps, uint64_t _instSeqNum=0)
 
 RubyRequest (Tick curTime, int block_size, RubySystem *rs)
 
MsgPtr clone () const
 
Addr getLineAddress () const
 
Addr getPhysicalAddress () const
 
const RubyRequestType & getType () const
 
Addr getProgramCounter () const
 
const RubyAccessMode & getAccessMode () const
 
const int & getSize () const
 
const PrefetchBit & getPrefetch () const
 
RequestPtr getRequestPtr () const
 
void setWriteMask (uint32_t offset, uint32_t len, std::vector< std::pair< int, AtomicOpFunctor * > > atomicOps)
 
void print (std::ostream &out) const
 
bool functionalRead (Packet *pkt)
 The two functions below are used for reading / writing the message functionally.
 
bool functionalRead (Packet *pkt, WriteMask &mask)
 
bool functionalWrite (Packet *pkt)
 
- Public Member Functions inherited from gem5::ruby::Message
 Message (Tick curTime, int block_size, const RubySystem *rs)
 
 Message (const Message &other)=default
 
virtual ~Message ()
 
virtual const MessageSizeType & getMessageSize () const
 
virtual MessageSizeType & getMessageSize ()
 
void updateDelayedTicks (Tick curTime)
 Update the delay this message has experienced so far.
 
Tick getDelayedTicks () const
 
void setLastEnqueueTime (const Tick &time)
 
Tick getLastEnqueueTime () const
 
Tick getTime () const
 
void setMsgCounter (uint64_t c)
 
uint64_t getMsgCounter () const
 
virtual const NetDestgetDestination () const
 
virtual NetDestgetDestination ()
 
int getIncomingLink () const
 
void setIncomingLink (int link)
 
int getVnet () const
 
void setVnet (int net)
 

Public Attributes

Addr m_PhysicalAddress
 
Addr m_LineAddress
 
RubyRequestType m_Type
 
Addr m_ProgramCounter
 
RubyAccessMode m_AccessMode
 
int m_Size
 
PrefetchBit m_Prefetch
 
PacketPtr m_pkt
 
ContextID m_contextId
 
WriteMask m_writeMask
 
DataBlock m_WTData
 
int m_wfid
 
uint64_t m_instSeqNum
 
bool m_htmFromTransaction
 
uint64_t m_htmTransactionUid
 
bool m_isTlbi
 
Addr m_tlbiTransactionUid
 
bool m_isGLCSet
 
bool m_isSLCSet
 
bool m_isSecure
 

Additional Inherited Members

- Protected Attributes inherited from gem5::ruby::Message
int m_block_size = 0
 

Detailed Description

Definition at line 61 of file RubyRequest.hh.

Constructor & Destructor Documentation

◆ RubyRequest() [1/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb = PrefetchBit_No,
ContextID _proc_id = 100,
ContextID _core_id = 99 )
inline

◆ RubyRequest() [2/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
ContextID _proc_id,
ContextID _core_id )
inline

◆ RubyRequest() [3/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb,
unsigned _proc_id,
unsigned _core_id,
int _wm_size,
std::vector< bool > & _wm_mask,
DataBlock & _Data,
uint64_t _instSeqNum = 0 )
inline

◆ RubyRequest() [4/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs,
uint64_t _paddr,
int _len,
uint64_t _pc,
RubyRequestType _type,
RubyAccessMode _access_mode,
PacketPtr _pkt,
PrefetchBit _pb,
unsigned _proc_id,
unsigned _core_id,
int _wm_size,
std::vector< bool > & _wm_mask,
DataBlock & _Data,
std::vector< std::pair< int, AtomicOpFunctor * > > _atomicOps,
uint64_t _instSeqNum = 0 )
inline

◆ RubyRequest() [5/5]

gem5::ruby::RubyRequest::RubyRequest ( Tick curTime,
int block_size,
RubySystem * rs )
inline

Member Function Documentation

◆ clone()

MsgPtr gem5::ruby::RubyRequest::clone ( ) const
inlinevirtual

Implements gem5::ruby::Message.

Definition at line 235 of file RubyRequest.hh.

References RubyRequest().

◆ functionalRead() [1/2]

bool gem5::ruby::RubyRequest::functionalRead ( Packet * pkt)
virtual

The two functions below are used for reading / writing the message functionally.

The methods return true if the address in the packet matches the address / address range in the message. Each message class that can be potentially searched for the address needs to implement these methods.

Reimplemented from gem5::ruby::Message.

Definition at line 71 of file RubyRequest.cc.

◆ functionalRead() [2/2]

bool gem5::ruby::RubyRequest::functionalRead ( Packet * pkt,
WriteMask & mask )
virtual

Reimplemented from gem5::ruby::Message.

Definition at line 81 of file RubyRequest.cc.

References gem5::ArmISA::mask.

◆ functionalWrite()

◆ getAccessMode()

const RubyAccessMode & gem5::ruby::RubyRequest::getAccessMode ( ) const
inline

Definition at line 242 of file RubyRequest.hh.

References m_AccessMode.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getLineAddress()

Addr gem5::ruby::RubyRequest::getLineAddress ( ) const
inline

Definition at line 238 of file RubyRequest.hh.

References m_LineAddress.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getPhysicalAddress()

Addr gem5::ruby::RubyRequest::getPhysicalAddress ( ) const
inline

Definition at line 239 of file RubyRequest.hh.

References m_PhysicalAddress.

◆ getPrefetch()

const PrefetchBit & gem5::ruby::RubyRequest::getPrefetch ( ) const
inline

Definition at line 244 of file RubyRequest.hh.

References m_Prefetch.

◆ getProgramCounter()

Addr gem5::ruby::RubyRequest::getProgramCounter ( ) const
inline

Definition at line 241 of file RubyRequest.hh.

References m_ProgramCounter.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ getRequestPtr()

RequestPtr gem5::ruby::RubyRequest::getRequestPtr ( ) const
inline

Definition at line 245 of file RubyRequest.hh.

References m_pkt.

◆ getSize()

const int & gem5::ruby::RubyRequest::getSize ( ) const
inline

Definition at line 243 of file RubyRequest.hh.

References m_Size.

◆ getType()

const RubyRequestType & gem5::ruby::RubyRequest::getType ( ) const
inline

Definition at line 240 of file RubyRequest.hh.

References m_Type.

Referenced by gem5::ruby::Profiler::addAddressTraceSample().

◆ print()

void gem5::ruby::RubyRequest::print ( std::ostream & out) const
virtual

◆ setWriteMask()

void gem5::ruby::RubyRequest::setWriteMask ( uint32_t offset,
uint32_t len,
std::vector< std::pair< int, AtomicOpFunctor * > > atomicOps )

Definition at line 129 of file RubyRequest.cc.

References gem5::ArmISA::len, m_writeMask, and gem5::ArmISA::offset.

Member Data Documentation

◆ m_AccessMode

RubyAccessMode gem5::ruby::RubyRequest::m_AccessMode

Definition at line 68 of file RubyRequest.hh.

Referenced by getAccessMode(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_contextId

ContextID gem5::ruby::RubyRequest::m_contextId

Definition at line 72 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_htmFromTransaction

bool gem5::ruby::RubyRequest::m_htmFromTransaction

Definition at line 77 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_htmTransactionUid

uint64_t gem5::ruby::RubyRequest::m_htmTransactionUid

Definition at line 78 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_instSeqNum

uint64_t gem5::ruby::RubyRequest::m_instSeqNum

Definition at line 76 of file RubyRequest.hh.

Referenced by RubyRequest(), and RubyRequest().

◆ m_isGLCSet

bool gem5::ruby::RubyRequest::m_isGLCSet

Definition at line 85 of file RubyRequest.hh.

Referenced by print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isSecure

bool gem5::ruby::RubyRequest::m_isSecure

Definition at line 87 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isSLCSet

bool gem5::ruby::RubyRequest::m_isSLCSet

Definition at line 86 of file RubyRequest.hh.

Referenced by print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_isTlbi

bool gem5::ruby::RubyRequest::m_isTlbi

Definition at line 79 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_LineAddress

Addr gem5::ruby::RubyRequest::m_LineAddress

Definition at line 65 of file RubyRequest.hh.

Referenced by getLineAddress(), print(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_PhysicalAddress

Addr gem5::ruby::RubyRequest::m_PhysicalAddress

◆ m_pkt

PacketPtr gem5::ruby::RubyRequest::m_pkt

◆ m_Prefetch

PrefetchBit gem5::ruby::RubyRequest::m_Prefetch

Definition at line 70 of file RubyRequest.hh.

Referenced by getPrefetch(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_ProgramCounter

Addr gem5::ruby::RubyRequest::m_ProgramCounter

◆ m_Size

int gem5::ruby::RubyRequest::m_Size

◆ m_tlbiTransactionUid

Addr gem5::ruby::RubyRequest::m_tlbiTransactionUid

Definition at line 81 of file RubyRequest.hh.

Referenced by RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_Type

RubyRequestType gem5::ruby::RubyRequest::m_Type

Definition at line 66 of file RubyRequest.hh.

Referenced by getType(), print(), RubyRequest(), RubyRequest(), RubyRequest(), and RubyRequest().

◆ m_wfid

int gem5::ruby::RubyRequest::m_wfid

Definition at line 75 of file RubyRequest.hh.

Referenced by RubyRequest(), and RubyRequest().

◆ m_writeMask

WriteMask gem5::ruby::RubyRequest::m_writeMask

◆ m_WTData

DataBlock gem5::ruby::RubyRequest::m_WTData

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

Generated on Mon May 26 2025 09:19:37 for gem5 by doxygen 1.13.2