gem5  v19.0.0.0
Public Member Functions | Public Attributes | List of all members
QueuedPrefetcher::DeferredPacket Struct Reference

#include <queued.hh>

Inheritance diagram for QueuedPrefetcher::DeferredPacket:
BaseTLB::Translation

Public Member Functions

 DeferredPacket (QueuedPrefetcher *o, PrefetchInfo const &pfi, Tick t, int32_t prio)
 Constructor. More...
 
bool operator> (const DeferredPacket &that) const
 
bool operator< (const DeferredPacket &that) const
 
bool operator<= (const DeferredPacket &that) const
 
void createPkt (Addr paddr, unsigned blk_size, MasterID mid, bool tag_prefetch, Tick t)
 Create the associated memory packet. More...
 
void setTranslationRequest (const RequestPtr &req)
 Sets the translation request needed to obtain the physical address of this request. More...
 
void markDelayed () override
 Signal that the translation has been delayed due to a hw page table walk. More...
 
void finish (const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseTLB::Mode mode) override
 
void startTranslation (BaseTLB *tlb)
 Issues the translation request to the provided TLB. More...
 
- Public Member Functions inherited from BaseTLB::Translation
virtual ~Translation ()
 
virtual bool squashed () const
 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...
 

Public Attributes

QueuedPrefetcherowner
 Owner of the packet. More...
 
PrefetchInfo pfInfo
 Prefetch info corresponding to this packet. More...
 
Tick tick
 Time when this prefetch becomes ready. More...
 
PacketPtr pkt
 The memory packet generated by this prefetch. More...
 
int32_t priority
 The priority of this prefetch. More...
 
RequestPtr translationRequest
 Request used when a translation is needed. More...
 
ThreadContexttc
 
bool ongoingTranslation
 

Detailed Description

Definition at line 57 of file queued.hh.

Constructor & Destructor Documentation

◆ DeferredPacket()

QueuedPrefetcher::DeferredPacket::DeferredPacket ( QueuedPrefetcher o,
PrefetchInfo const &  pfi,
Tick  t,
int32_t  prio 
)
inline

Constructor.

Parameters
oQueuedPrefetcher in charge of this request
pfiPrefechInfo object associated to this packet
tTime when this prefetch becomes ready
pPacketPtr with the memory request of the prefetch
prioThis prefetch priority

Definition at line 81 of file queued.hh.

Member Function Documentation

◆ createPkt()

void QueuedPrefetcher::DeferredPacket::createPkt ( Addr  paddr,
unsigned  blk_size,
MasterID  mid,
bool  tag_prefetch,
Tick  t 
)

Create the associated memory packet.

Parameters
paddrphysical address of this packet
blk_sizeblock size used by the prefetcher
midRequester ID of the access that generated this prefetch
tag_prefetchflag to indicate if the packet needs to be tagged
ttime when the prefetch becomes ready

Definition at line 53 of file queued.cc.

References Packet::allocate(), BasePrefetcher::PrefetchInfo::getPC(), MemCmd::HardPFReq, BasePrefetcher::PrefetchInfo::hasPC(), BasePrefetcher::PrefetchInfo::isSecure(), pfInfo, pkt, ContextSwitchTaskId::Prefetcher, Packet::req, Request::SECURE, ArmISA::t, and tick.

Referenced by QueuedPrefetcher::insert(), and operator<=().

◆ finish()

void QueuedPrefetcher::DeferredPacket::finish ( const Fault fault,
const RequestPtr req,
ThreadContext tc,
BaseTLB::Mode  mode 
)
overridevirtual

Implements BaseTLB::Translation.

Definition at line 84 of file queued.cc.

References NoFault, ongoingTranslation, owner, and QueuedPrefetcher::translationComplete().

Referenced by markDelayed().

◆ markDelayed()

void QueuedPrefetcher::DeferredPacket::markDelayed ( )
inlineoverridevirtual

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

Implements BaseTLB::Translation.

Definition at line 122 of file queued.hh.

References finish(), ArmISA::mode, startTranslation(), and BasePrefetcher::tlb.

◆ operator<()

bool QueuedPrefetcher::DeferredPacket::operator< ( const DeferredPacket that) const
inline

Definition at line 91 of file queued.hh.

References priority.

◆ operator<=()

bool QueuedPrefetcher::DeferredPacket::operator<= ( const DeferredPacket that) const
inline

Definition at line 95 of file queued.hh.

References createPkt(), and ArmISA::t.

◆ operator>()

bool QueuedPrefetcher::DeferredPacket::operator> ( const DeferredPacket that) const
inline

Definition at line 87 of file queued.hh.

References priority.

◆ setTranslationRequest()

void QueuedPrefetcher::DeferredPacket::setTranslationRequest ( const RequestPtr req)
inline

Sets the translation request needed to obtain the physical address of this request.

Parameters
reqThe Request with the virtual address of this request

Definition at line 117 of file queued.hh.

Referenced by QueuedPrefetcher::insert().

◆ startTranslation()

void QueuedPrefetcher::DeferredPacket::startTranslation ( BaseTLB tlb)

Issues the translation request to the provided TLB.

Parameters
tlbthe tlb that has to translate the address

Definition at line 73 of file queued.cc.

References ongoingTranslation, BaseTLB::Read, tc, BaseTLB::translateTiming(), and translationRequest.

Referenced by markDelayed(), and QueuedPrefetcher::processMissingTranslations().

Member Data Documentation

◆ ongoingTranslation

bool QueuedPrefetcher::DeferredPacket::ongoingTranslation

Definition at line 71 of file queued.hh.

Referenced by finish(), and startTranslation().

◆ owner

QueuedPrefetcher* QueuedPrefetcher::DeferredPacket::owner

Owner of the packet.

Definition at line 59 of file queued.hh.

Referenced by finish().

◆ pfInfo

PrefetchInfo QueuedPrefetcher::DeferredPacket::pfInfo

Prefetch info corresponding to this packet.

Definition at line 61 of file queued.hh.

Referenced by createPkt().

◆ pkt

PacketPtr QueuedPrefetcher::DeferredPacket::pkt

The memory packet generated by this prefetch.

Definition at line 65 of file queued.hh.

Referenced by createPkt(), and QueuedPrefetcher::nextPrefetchReadyTime().

◆ priority

int32_t QueuedPrefetcher::DeferredPacket::priority

The priority of this prefetch.

Definition at line 67 of file queued.hh.

Referenced by QueuedPrefetcher::nextPrefetchReadyTime(), operator<(), and operator>().

◆ tc

ThreadContext* QueuedPrefetcher::DeferredPacket::tc

Definition at line 70 of file queued.hh.

Referenced by QueuedPrefetcher::insert(), and startTranslation().

◆ tick

Tick QueuedPrefetcher::DeferredPacket::tick

Time when this prefetch becomes ready.

Definition at line 63 of file queued.hh.

Referenced by createPkt().

◆ translationRequest

RequestPtr QueuedPrefetcher::DeferredPacket::translationRequest

Request used when a translation is needed.

Definition at line 69 of file queued.hh.

Referenced by startTranslation().


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

Generated on Fri Feb 28 2020 16:27:14 for gem5 by doxygen 1.8.13