37 #ifndef __MEM_CACHE_PREFETCH_SBOOE_HH__ 38 #define __MEM_CACHE_PREFETCH_SBOOE_HH__ 41 #include <unordered_map> 47 struct SBOOEPrefetcherParams;
109 Sandbox(
unsigned int max_entries,
int _stride)
110 : sandboxScore(0), lateScore(0), index(0), stride(_stride)
112 entries.resize(max_entries);
128 return (sandboxScore - lateScore);
158 #endif // __MEM_CACHE_PREFETCH_SBOOE_HH__ Tick expectedArrivalTick
Tick when the simulated prefetch is expected to be filled.
std::unordered_map< Addr, Tick > demandAddresses
Holds the current demand addresses and tick.
bool access(Addr line)
Process an access to the specified line address and update the sandbox counters counters.
void notifyFill(const PacketPtr &pkt) override
Update the latency buffer after a prefetch fill.
Addr line
Cache line predicted by the candidate prefetcher.
Sandbox * bestSandbox
Current best sandbox.
const int stride
Sequential stride for this prefetcher.
unsigned int sandboxScore
Accesses during the eval period that were present in the sandbox.
Class containing the information needed by the prefetch to train and generate new prefetch requests...
std::vector< Sandbox > sandboxes
Tick latencyBufferSum
Holds the current sum of the latency buffer latency.
Sandbox(unsigned int max_entries, int _stride)
uint64_t Tick
Tick count type.
unsigned int index
Index of the oldest entry in the FIFO.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
bool valid
To indicate if it was initialized.
unsigned int score() const
Calculate the useful score.
std::deque< Tick > latencyBuffer
The latency buffer holds the elapsed ticks between the demand and the fill in the cache for the lates...
Tick averageAccessLatency
Holds the current average access latency.
Declaration of the Packet class.
SBOOEPrefetcher(const SBOOEPrefetcherParams *p)
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
unsigned int accesses
Number of accesses notified to the prefetcher.
unsigned int lateScore
Hits in the sandbox that wouldn't have been filled on time.
const unsigned int scoreThreshold
Threshold used to issue prefetchers.
const int sequentialPrefetchers
std::vector< SandboxEntry > entries
FIFO queue.
void insert(const PacketPtr &pkt, PrefetchInfo &new_pfi, int32_t priority)
const int latencyBufferSize
Prefetcher parameters.