Go to the documentation of this file.
31 #include "debug/HWPrefetch.hh"
32 #include "params/SBOOEPrefetcher.hh"
38 sequentialPrefetchers(
p->sequential_prefetchers),
39 scoreThreshold((
p->sandbox_entries*
p->score_threshold_pct)/100),
40 latencyBuffer(
p->latency_buffer_size),
41 averageAccessLatency(0), latencyBufferSum(0),
57 if (entry.valid && entry.line ==
addr) {
59 if (entry.expectedArrivalTick >
curTick()) {
127 const bool evaluationFinished =
access(pfi_line);
138 SBOOEPrefetcherParams::create()
SBOOE(const SBOOEPrefetcherParams *p)
std::pair< Addr, int32_t > AddrPriority
unsigned int accesses
Number of accesses notified to the prefetcher.
CircularQueue< SandboxEntry > entries
FIFO queue containing the sandbox entries.
const int stride
Sequential stride for this prefetcher.
uint64_t Tick
Tick count type.
const Sandbox * bestSandbox
Current best sandbox.
const unsigned int scoreThreshold
Threshold used to issue prefetchers.
unsigned int lateScore
Hits in the sandbox that wouldn't have been filled on time.
Tick averageAccessLatency
Holds the current average access latency.
bool full() const
Is the queue full? A queue is full if the head is the 0^{th} element and the tail is the (size-1)^{th...
void notifyFill(const PacketPtr &pkt) override
Update the latency buffer after a prefetch fill.
std::vector< Sandbox > sandboxes
unsigned lBlkSize
log_2(block size of the parent cache).
const int sequentialPrefetchers
Prefetcher parameters.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Tick expectedArrivalTick
Tick when the simulated prefetch is expected to be filled.
void push_back(typename Base::value_type val)
Pushes an element at the end of the queue.
void access(Addr line, Tick tick)
Update score and insert the line address being accessed into the FIFO queue of the sandbox.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
unsigned int score() const
Calculate the useful score.
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.
Tick latencyBufferSum
Holds the current sum of the latency buffer latency.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
bool valid
To indicate if it was initialized.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Addr line
Cache line predicted by the candidate prefetcher.
Class containing the information needed by the prefetch to train and generate new prefetch requests.
CircularQueue< Tick > latencyBuffer
The latency buffer holds the elapsed ticks between the demand and the fill in the cache for the lates...
Addr getAddr() const
Obtains the address value of this Prefetcher address.
unsigned int sandboxScore
Accesses during the eval period that were present in the sandbox.
Tick curTick()
The current simulated tick.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17