Go to the documentation of this file.
41 #ifndef __MEM_CACHE_PREFETCH_SPATIO_TEMPORAL_MEMORY_STREAMING_HH__
42 #define __MEM_CACHE_PREFETCH_SPATIO_TEMPORAL_MEMORY_STREAMING_HH__
51 struct STeMSPrefetcherParams;
104 seq_entry.counter.reset();
105 seq_entry.offset = 0;
132 if (seq_entry.counter > 0) {
133 if (seq_entry.offset ==
offset) {
140 seq_entry.offset =
offset;
195 STeMS(
const STeMSPrefetcherParams*
p);
204 #endif//__MEM_CACHE_PREFETCH_SPATIO_TEMPORAL_MEMORY_STREAMING_HH__
const size_t spatialRegionSize
Size of each spatial region.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Data type of the Region Miss Order Buffer entry.
Addr pstAddress
Address used to index the PST table, generated using the PC and the offset within the spatial region.
const unsigned int reconstructionEntries
Number of reconstruction entries.
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
Addr paddress
Physical address of the spatial region.
void addOffset(unsigned int offset)
Add a new access to the sequence.
unsigned int seqCounter
Counter to keep track of the interleaving between sequences.
unsigned int offset
Offset, in cache lines, within the spatial region.
unsigned int delta
Delta within the global miss order sequence.
CircularQueue< RegionMissOrderBufferEntry > rmob
Region Miss Order Buffer (RMOB)
Iterator to the circular queue.
unsigned int lastTriggerCounter
Counter to keep the count of accesses between trigger accesses.
STeMS(const STeMSPrefetcherParams *p)
const size_t spatialRegionSizeBits
log_2 of the spatial region size
void checkForActiveGenerationsEnd()
Checks if the active generations have ended.
unsigned int delta
Intearleaving position on the global access sequence.
SatCounter counter
2-bit confidence counter
Sequence entry data type.
void addToRMOB(Addr sr_addr, Addr pst_addr, unsigned int delta)
Adds an entry to the RMOB.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
AssociativeSet< ActiveGenerationTableEntry > activeGenerationTable
Active Generation Table (AGT)
void invalidate() override
Invalidates the entry.
std::vector< SequenceEntry > sequence
Sequence of accesses.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Addr pc
PC that started this generation.
Implements an n bit saturating counter and provides methods to increment, decrement,...
void update(ActiveGenerationTableEntry const &e)
Update the entry data with an entry from a generation that just ended.
virtual void invalidate()
Invalidates the entry.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
Class containing the information needed by the prefetch to train and generate new prefetch requests.
AssociativeSet< ActiveGenerationTableEntry > patternSequenceTable
Pattern Sequence Table (PST)
ActiveGenerationTableEntry(int num_positions)
void reconstructSequence(CircularQueue< RegionMissOrderBufferEntry >::iterator rmob_it, std::vector< AddrPriority > &addresses)
Reconstructs a sequence of accesses and generates the prefetch addresses, adding them to the addresse...
Addr srAddress
Address of the spatial region.
Entry data type for the Active Generation Table (AGT) and the Pattern Sequence Table (PST)
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17