|
gem5
v19.0.0.0
|
#include <queued.hh>
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 | |
| QueuedPrefetcher * | owner |
| 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... | |
| ThreadContext * | tc |
| bool | ongoingTranslation |
|
inline |
Constructor.
| o | QueuedPrefetcher in charge of this request |
| pfi | PrefechInfo object associated to this packet |
| t | Time when this prefetch becomes ready |
| p | PacketPtr with the memory request of the prefetch |
| prio | This prefetch priority |
| void QueuedPrefetcher::DeferredPacket::createPkt | ( | Addr | paddr, |
| unsigned | blk_size, | ||
| MasterID | mid, | ||
| bool | tag_prefetch, | ||
| Tick | t | ||
| ) |
Create the associated memory packet.
| paddr | physical address of this packet |
| blk_size | block size used by the prefetcher |
| mid | Requester ID of the access that generated this prefetch |
| tag_prefetch | flag to indicate if the packet needs to be tagged |
| t | time 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<=().
|
overridevirtual |
Implements BaseTLB::Translation.
Definition at line 84 of file queued.cc.
References NoFault, ongoingTranslation, owner, and QueuedPrefetcher::translationComplete().
Referenced by 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.
|
inline |
|
inline |
Definition at line 95 of file queued.hh.
References createPkt(), and ArmISA::t.
|
inline |
|
inline |
Sets the translation request needed to obtain the physical address of this request.
| req | The Request with the virtual address of this request |
Definition at line 117 of file queued.hh.
Referenced by QueuedPrefetcher::insert().
| void QueuedPrefetcher::DeferredPacket::startTranslation | ( | BaseTLB * | tlb | ) |
Issues the translation request to the provided TLB.
| tlb | the 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().
| bool QueuedPrefetcher::DeferredPacket::ongoingTranslation |
Definition at line 71 of file queued.hh.
Referenced by finish(), and startTranslation().
| QueuedPrefetcher* QueuedPrefetcher::DeferredPacket::owner |
| PrefetchInfo QueuedPrefetcher::DeferredPacket::pfInfo |
Prefetch info corresponding to this packet.
Definition at line 61 of file queued.hh.
Referenced by createPkt().
| 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().
| 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>().
| ThreadContext* QueuedPrefetcher::DeferredPacket::tc |
Definition at line 70 of file queued.hh.
Referenced by QueuedPrefetcher::insert(), and startTranslation().
| Tick QueuedPrefetcher::DeferredPacket::tick |
Time when this prefetch becomes ready.
Definition at line 63 of file queued.hh.
Referenced by createPkt().
| RequestPtr QueuedPrefetcher::DeferredPacket::translationRequest |
Request used when a translation is needed.
Definition at line 69 of file queued.hh.
Referenced by startTranslation().