37 #ifndef __MEM_CACHE_PREFETCH_PIF_HH__
38 #define __MEM_CACHE_PREFETCH_PIF_HH__
50 struct PIFPrefetcherParams;
125 unsigned int log_blk_size)
const;
169 const std::string &
name)
182 PIF(
const PIFPrefetcherParams &
p);
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
void update() const
Align cycle and tick to the next clock edge if not already done.
virtual std::string name() const
ProbeListenerArgBase is used to define the base interface to a ProbeListenerArg (i....
ProbeManager is a conduit class that lives on each SimObject, and is used to match up probe listeners...
Abstract superclass for simulation objects.
A tagged entry is an entry containing a tag.
Class containing the information needed by the prefetch to train and generate new prefetch requests.
Probe Listener to handle probe events from the CPU.
void notify(const Addr &pc) override
PrefetchListenerPC(PIF &_parent, ProbeManager *pm, const std::string &name)
const unsigned int maxCompactorEntries
Number of entries used for the temporal compactor.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses)
std::vector< PrefetchListenerPC * > listenersPC
Array of probe listeners.
const unsigned int precSize
Number of preceding and subsequent spatial addresses to compact.
void addEventProbeRetiredInsts(SimObject *obj, const char *name)
Add a SimObject and a probe name to monitor the retired instructions.
CircularQueue< HistoryBuffer::iterator > streamAddressBuffer
A Stream Address Buffer (SAB) tracks a window of consecutive spatial regions.
AssociativeSet< IndexEntry > index
The index table is a small cache-like structure that facilitates fast search of the history buffer.
void notifyRetiredInst(const Addr pc)
Updates the prefetcher structures upon an instruction retired.
const unsigned int succSize
CompactorEntry spatialCompactor
std::deque< CompactorEntry > temporalCompactor
PIF(const PIFPrefetcherParams &p)
HistoryBuffer historyBuffer
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
The compactor tracks retired instructions addresses, leveraging the spatial and temporal locality amo...
bool hasAddress(Addr target, unsigned int log_blk_size) const
Checks if the provided address is contained in this spatial region and if its corresponding bit vecto...
bool inSameSpatialRegion(Addr addr, unsigned int log_blk_size, bool update)
Checks if a given address is in the same defined spatial region as the compactor entry.
void getPredictedAddresses(unsigned int log_blk_size, std::vector< AddrPriority > &addresses) const
Fills the provided vector with the predicted addresses using the recorded bit vectors of the entry.
Addr distanceFromTrigger(Addr addr, unsigned int log_blk_size) const
Computes the distance, in cache blocks, from an address to the trigger of the entry.
HistoryBuffer::iterator historyIt