Go to the documentation of this file.
38 #ifndef __MEM_CACHE_PREFETCH_QUEUED_HH__
39 #define __MEM_CACHE_PREFETCH_QUEUED_HH__
50 struct QueuedPrefetcherParams;
97 return !(*
this > that);
111 bool tag_prefetch,
Tick t);
184 Queued(
const QueuedPrefetcherParams *
p);
236 const PrefetchInfo &pfi, int32_t priority);
254 #endif //__MEM_CACHE_PREFETCH_QUEUED_HH__
void markDelayed() override
Signal that the translation has been delayed due to a hw page table walk.
Stats::Scalar pfBufferHit
QueuedStats(Stats::Group *parent)
std::list< DeferredPacket > pfqMissingTranslation
Tick nextPrefetchReadyTime() const override
int32_t priority
The priority of this prefetch.
void insert(const PacketPtr &pkt, PrefetchInfo &new_pfi, int32_t priority)
RequestPtr createPrefetchRequest(Addr addr, PrefetchInfo const &pfi, PacketPtr pkt)
bool alreadyInQueue(std::list< DeferredPacket > &queue, const PrefetchInfo &pfi, int32_t priority)
Checks whether the specified prefetch request is already in the specified queue.
Tick tick
Time when this prefetch becomes ready.
uint64_t Tick
Tick count type.
void translationComplete(DeferredPacket *dp, bool failed)
Indicates that the translation of the address of the provided deferred packet has been successfully c...
std::shared_ptr< Request > RequestPtr
Queued(const QueuedPrefetcherParams *p)
void finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseTLB::Mode mode) override
const bool tagPrefetch
Tag prefetch with PC of generating access?
const unsigned int throttleControlPct
Percentage of requests that can be throttled.
void notify(const PacketPtr &pkt, const PrefetchInfo &pfi) override
Notify prefetcher of cache access (may be any access or just misses, depending on cache parameters....
This is a simple scalar statistic, like a counter.
Stats::Scalar pfIdentified
const Cycles latency
Cycles after generation when a prefetch can first be issued.
std::list< DeferredPacket >::const_iterator const_iterator
BaseTLB * tlb
Registered tlb for address translations.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
const bool queueFilter
Filter prefetches if already queued.
bool operator<=(const DeferredPacket &that) const
std::shared_ptr< FaultBase > Fault
PacketPtr getPacket() override
const unsigned queueSize
Maximum size of the prefetch queue.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
void createPkt(Addr paddr, unsigned blk_size, RequestorID requestor_id, bool tag_prefetch, Tick t)
Create the associated memory packet.
virtual void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses)=0
const bool cacheSnoop
Snoop the cache before generating prefetch (cheating basically)
const unsigned missingTranslationQueueSize
Maximum size of the queue holding prefetch requests with missing address translations.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::list< DeferredPacket > pfq
size_t getMaxPermittedPrefetches(size_t total) const
Returns the maxmimum number of prefetch requests that are allowed to be created from the number of pr...
std::list< DeferredPacket >::iterator iterator
void startTranslation(BaseTLB *tlb)
Issues the translation request to the provided TLB.
void setTranslationRequest(const RequestPtr &req)
Sets the translation request needed to obtain the physical address of this request.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Class containing the information needed by the prefetch to train and generate new prefetch requests.
PacketPtr pkt
The memory packet generated by this prefetch.
Cycles is a wrapper class for representing cycle counts, i.e.
Prefetcher::Queued::QueuedStats statsQueued
bool operator<(const DeferredPacket &that) const
RequestPtr translationRequest
Request used when a translation is needed.
const FlagsType total
Print the total.
PrefetchInfo pfInfo
Prefetch info corresponding to this packet.
DeferredPacket(Queued *o, PrefetchInfo const &pfi, Tick t, int32_t prio)
Constructor.
void addToQueue(std::list< DeferredPacket > &queue, DeferredPacket &dpp)
Adds a DeferredPacket to the specified queue.
Stats::Scalar pfRemovedFull
bool operator>(const DeferredPacket &that) const
Queued * owner
Owner of the packet.
void processMissingTranslations(unsigned max)
Starts the translations of the queued prefetches with a missing translation.
const bool queueSquash
Squash queued prefetch if demand access observed.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17