gem5  v20.1.0.0
delta_correlating_prediction_tables.hh
Go to the documentation of this file.
1 
29 #ifndef __MEM_CACHE_PREFETCH_DELTA_CORRELATING_PREDICTION_TABLES_HH_
30 #define __MEM_CACHE_PREFETCH_DELTA_CORRELATING_PREDICTION_TABLES_HH_
31 
32 #include "base/circular_queue.hh"
35 
36 struct DeltaCorrelatingPredictionTablesParams;
37 struct DCPTPrefetcherParams;
38 
39 namespace Prefetcher {
40 
57 {
59  const unsigned int deltaBits;
61  const unsigned int deltaMaskBits;
62 
64  struct DCPTEntry : public TaggedEntry
65  {
70 
75  DCPTEntry(unsigned int num_deltas)
76  : TaggedEntry(), lastAddress(0), deltas(num_deltas)
77  {
78  }
79 
80  void invalidate() override;
81 
88  void addAddress(Addr address, unsigned int delta_num_bits);
89 
98  unsigned int mask_bits) const;
99 
100  };
103 
104  public:
106  DeltaCorrelatingPredictionTablesParams *p);
108 
114  void calculatePrefetch(const Base::PrefetchInfo &pfi,
116 
117 };
118 
120 class DCPT : public Queued
121 {
124  public:
125  DCPT(const DCPTPrefetcherParams *p);
126  ~DCPT() = default;
127 
128  void calculatePrefetch(const PrefetchInfo &pfi,
129  std::vector<AddrPriority> &addresses) override;
130 };
131 
132 } // namespace Prefetcher
133 
134 #endif//__MEM_CACHE_PREFETCH_DELTA_CORRELATING_PREDICTION_TABLES_HH_
Prefetcher::DCPT::calculatePrefetch
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
Definition: delta_correlating_prediction_tables.cc:154
Prefetcher::DeltaCorrelatingPredictionTables::~DeltaCorrelatingPredictionTables
~DeltaCorrelatingPredictionTables()=default
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::getCandidates
void getCandidates(std::vector< Queued::AddrPriority > &pfs, unsigned int mask_bits) const
Attempt to generate prefetch candidates using the two most recent deltas.
Definition: delta_correlating_prediction_tables.cc:83
Prefetcher::DeltaCorrelatingPredictionTables
Delta Correlating Prediction Tables Prefetcher References: Multi-level hardware prefetching using low...
Definition: delta_correlating_prediction_tables.hh:56
TaggedEntry
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Definition: associative_set.hh:39
AssociativeSet
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
Definition: associative_set.hh:117
CircularQueue< Addr >
Prefetcher::DCPT::DCPT
DCPT(const DCPTPrefetcherParams *p)
Definition: delta_correlating_prediction_tables.cc:148
Prefetcher::DCPT::dcpt
DeltaCorrelatingPredictionTables & dcpt
DCPT object.
Definition: delta_correlating_prediction_tables.hh:123
Prefetcher::DeltaCorrelatingPredictionTables::deltaBits
const unsigned int deltaBits
Number of bits of each delta.
Definition: delta_correlating_prediction_tables.hh:59
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::DCPTEntry
DCPTEntry(unsigned int num_deltas)
Constructor.
Definition: delta_correlating_prediction_tables.hh:75
std::vector
STL vector class.
Definition: stl.hh:37
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::addAddress
void addAddress(Addr address, unsigned int delta_num_bits)
Adds an address to the entry, if the entry already existed, a delta will be generated.
Definition: delta_correlating_prediction_tables.cc:59
queued.hh
Prefetcher::DeltaCorrelatingPredictionTables::deltaMaskBits
const unsigned int deltaMaskBits
Number of lower bits to ignore from the deltas.
Definition: delta_correlating_prediction_tables.hh:61
circular_queue.hh
Prefetcher::DeltaCorrelatingPredictionTables::table
AssociativeSet< DCPTEntry > table
The main table.
Definition: delta_correlating_prediction_tables.hh:102
Prefetcher
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Definition: base.hh:78
Prefetcher::DCPT
The prefetcher object using the DCPT.
Definition: delta_correlating_prediction_tables.hh:120
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::invalidate
void invalidate() override
Invalidates the entry.
Definition: delta_correlating_prediction_tables.cc:47
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::deltas
CircularQueue< Addr > deltas
Stored deltas.
Definition: delta_correlating_prediction_tables.hh:69
Prefetcher::DeltaCorrelatingPredictionTables::DeltaCorrelatingPredictionTables
DeltaCorrelatingPredictionTables(DeltaCorrelatingPredictionTablesParams *p)
Definition: delta_correlating_prediction_tables.cc:38
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
Prefetcher::Queued
Definition: queued.hh:54
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry::lastAddress
Addr lastAddress
Last accessed address.
Definition: delta_correlating_prediction_tables.hh:67
Prefetcher::DeltaCorrelatingPredictionTables::DCPTEntry
DCPT Table entry datatype.
Definition: delta_correlating_prediction_tables.hh:64
Prefetcher::DeltaCorrelatingPredictionTables::calculatePrefetch
void calculatePrefetch(const Base::PrefetchInfo &pfi, std::vector< Queued::AddrPriority > &addresses)
Computes the prefetch candidates given a prefetch event.
Definition: delta_correlating_prediction_tables.cc:122
Prefetcher::DCPT::~DCPT
~DCPT()=default
Prefetcher::Base::PrefetchInfo
Class containing the information needed by the prefetch to train and generate new prefetch requests.
Definition: base.hh:90
associative_set.hh
MipsISA::p
Bitfield< 0 > p
Definition: pra_constants.hh:323
SimObject
Abstract superclass for simulation objects.
Definition: sim_object.hh:92

Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17