36 #ifndef __MEM_CACHE_PREFETCH_BOP_HH__ 37 #define __MEM_CACHE_PREFETCH_BOP_HH__ 44 struct BOPPrefetcherParams;
150 BOP(
const BOPPrefetcherParams *
p);
void resetScores()
Reset all the scores from the offset list.
const unsigned int delayTicks
const unsigned int roundMax
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
void delayQueueEventWrapper()
Event to handle the delay queue processing.
Addr tag(Addr addr) const
Generate the tag for the specified address based on the tag bits and the block size.
std::vector< OffsetListEntry > offsetsList
Addr bestOffset
Current best offset to issue prefetches.
const unsigned int tagMask
Class containing the information needed by the prefetch to train and generate new prefetch requests...
bool testRR(Addr) const
Test if -O is hitting in the RR table to update the offset score.
unsigned int hash(Addr addr, unsigned int way) const
Generate a hash for the specified address to index the RR table.
In a first implementation of the BO prefetcher, both banks of the RR were written simultaneously when...
bool issuePrefetchRequests
Hardware prefetcher enabled.
std::vector< Addr > rrRight
void insertIntoRR(Addr addr, unsigned int way)
Insert the specified address into the RR table.
uint64_t Tick
Tick count type.
const unsigned int scoreMax
Learning phase parameters.
std::pair< int16_t, uint8_t > OffsetListEntry
Structure to save the offset and the score.
unsigned int bestScore
Max score found so far.
std::vector< OffsetListEntry >::iterator offsetsListIterator
Current test offset index.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const unsigned int badScore
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
unsigned int round
Current round.
DelayQueueEntry(Addr x, Tick t)
void notifyFill(const PacketPtr &pkt) override
Update the RR right table after a prefetch fill.
const bool delayQueueEnabled
Delay queue parameters.
Addr phaseBestOffset
Current best offset found in the learning phase.
void bestOffsetLearning(Addr)
Learning phase of the BOP.
Declaration of the Packet class.
BOP(const BOPPrefetcherParams *p)
std::deque< DelayQueueEntry > delayQueue
const unsigned int rrEntries
Recent requests table parameteres.
void insertIntoDelayQueue(Addr addr)
Insert the specified address into the delay queue.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
EventFunctionWrapper delayQueueEvent
const unsigned int delayQueueSize
std::vector< Addr > rrLeft