35#ifndef __MEM_CACHE_PREFETCH_SBOOE_HH__
36#define __MEM_CACHE_PREFETCH_SBOOE_HH__
38#include <unordered_map>
48struct SBOOEPrefetcherParams;
117 Sandbox(
unsigned int max_entries,
int _stride)
159 SBOOE(
const SBOOEPrefetcherParams &
p);
Information provided to probes on a cache event.
Class containing the information needed by the prefetch to train and generate new prefetch requests.
unsigned int sandboxScore
Accesses during the eval period that were present in the sandbox.
const int stride
Sequential stride for this prefetcher.
CircularQueue< SandboxEntry > entries
FIFO queue containing the sandbox entries.
Sandbox(unsigned int max_entries, int _stride)
void access(Addr line, Tick tick)
Update score and insert the line address being accessed into the FIFO queue of the sandbox.
unsigned int score() const
Calculate the useful score.
unsigned int lateScore
Hits in the sandbox that wouldn't have been filled on time.
bool access(Addr line)
Process an access to the specified line address and update the sandbox counters counters.
const int sequentialPrefetchers
Prefetcher parameters.
unsigned int accesses
Number of accesses notified to the prefetcher.
std::vector< Sandbox > sandboxes
CircularQueue< Tick > latencyBuffer
The latency buffer holds the elapsed ticks between the demand and the fill in the cache for the lates...
std::unordered_map< Addr, Tick > demandAddresses
Holds the current demand addresses and tick.
Tick latencyBufferSum
Holds the current sum of the latency buffer latency.
SBOOE(const SBOOEPrefetcherParams &p)
Tick averageAccessLatency
Holds the current average access latency.
const Sandbox * bestSandbox
Current best sandbox.
void notifyFill(const CacheAccessProbeArg &arg) override
Update the latency buffer after a prefetch fill.
const unsigned int scoreThreshold
Threshold used to issue prefetchers.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses, const CacheAccessor &cache) override
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
Declaration of the Packet class.
Provides generic cache lookup functions.
Tick expectedArrivalTick
Tick when the simulated prefetch is expected to be filled.
Addr line
Cache line predicted by the candidate prefetcher.
bool valid
To indicate if it was initialized.