gem5  v22.0.0.2
Public Member Functions | Public Attributes | List of all members
gem5::GpuTranslationState Struct Reference

GPU TranslationState: this currently is a somewhat bastardization of the usage of SenderState, whereby the receiver of a packet is not usually supposed to need to look at the contents of the senderState, you're really only supposed to look at what you pushed on, pop it off, and send it back. More...

#include <gpu_translation_state.hh>

Inheritance diagram for gem5::GpuTranslationState:
gem5::Packet::SenderState

Public Member Functions

 GpuTranslationState (BaseMMU::Mode tlb_mode, ThreadContext *_tc, bool _prefetch=false, Packet::SenderState *_saved=nullptr)
 
 GpuTranslationState (BaseMMU::Mode tlb_mode, bool _prefetch=false, Packet::SenderState *_saved=nullptr)
 
- Public Member Functions inherited from gem5::Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Public Attributes

BaseMMU::Mode tlbMode
 
ThreadContexttc
 
int deviceId
 
int pasId
 
SerializabletlbEntry
 
bool isPrefetch
 
uint64_t issueTime
 
std::vector< ResponsePort * > ports
 
std::vector< int > reqCnt
 
int hitLevel
 
Packet::SenderStatesaved
 
- Public Attributes inherited from gem5::Packet::SenderState
SenderStatepredecessor
 

Detailed Description

GPU TranslationState: this currently is a somewhat bastardization of the usage of SenderState, whereby the receiver of a packet is not usually supposed to need to look at the contents of the senderState, you're really only supposed to look at what you pushed on, pop it off, and send it back.

However, since there is state that we want to pass to the TLBs using the send/recv Timing/Functional/etc. APIs, which don't allow for new arguments, we need a common TLB senderState to pass between TLBs, both "forwards" and "backwards."

So, basically, the rule is that any packet received by a TLB port (cpuside OR memside) must be safely castable to a GpuTranslationState.

Definition at line 58 of file gpu_translation_state.hh.

Constructor & Destructor Documentation

◆ GpuTranslationState() [1/2]

gem5::GpuTranslationState::GpuTranslationState ( BaseMMU::Mode  tlb_mode,
ThreadContext _tc,
bool  _prefetch = false,
Packet::SenderState _saved = nullptr 
)
inline

Definition at line 88 of file gpu_translation_state.hh.

◆ GpuTranslationState() [2/2]

gem5::GpuTranslationState::GpuTranslationState ( BaseMMU::Mode  tlb_mode,
bool  _prefetch = false,
Packet::SenderState _saved = nullptr 
)
inline

Definition at line 95 of file gpu_translation_state.hh.

Member Data Documentation

◆ deviceId

int gem5::GpuTranslationState::deviceId

Definition at line 65 of file gpu_translation_state.hh.

Referenced by gem5::VegaISA::GpuTLB::translationReturn().

◆ hitLevel

int gem5::GpuTranslationState::hitLevel

◆ isPrefetch

bool gem5::GpuTranslationState::isPrefetch

◆ issueTime

uint64_t gem5::GpuTranslationState::issueTime

◆ pasId

int gem5::GpuTranslationState::pasId

Definition at line 66 of file gpu_translation_state.hh.

Referenced by gem5::VegaISA::GpuTLB::translationReturn().

◆ ports

std::vector<ResponsePort*> gem5::GpuTranslationState::ports

◆ reqCnt

std::vector<int> gem5::GpuTranslationState::reqCnt

◆ saved

Packet::SenderState* gem5::GpuTranslationState::saved

◆ tc

ThreadContext* gem5::GpuTranslationState::tc

◆ tlbEntry

Serializable* gem5::GpuTranslationState::tlbEntry

◆ tlbMode

BaseMMU::Mode gem5::GpuTranslationState::tlbMode

The documentation for this struct was generated from the following file:

Generated on Thu Jul 28 2022 13:33:04 for gem5 by doxygen 1.8.17