gem5  v22.0.0.2
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 namespace gem5
37 {
38 
39 struct DeltaCorrelatingPredictionTablesParams;
40 struct DCPTPrefetcherParams;
41 
43 namespace prefetch
44 {
45 
62 {
64  const unsigned int deltaBits;
66  const unsigned int deltaMaskBits;
67 
69  struct DCPTEntry : public TaggedEntry
70  {
75 
80  DCPTEntry(unsigned int num_deltas)
81  : TaggedEntry(), lastAddress(0), deltas(num_deltas)
82  {
83  }
84 
85  void invalidate() override;
86 
93  void addAddress(Addr address, unsigned int delta_num_bits);
94 
103  unsigned int mask_bits) const;
104 
105  };
108 
109  public:
111  const DeltaCorrelatingPredictionTablesParams &p);
113 
119  void calculatePrefetch(const Base::PrefetchInfo &pfi,
121 
122 };
123 
125 class DCPT : public Queued
126 {
129  public:
130  DCPT(const DCPTPrefetcherParams &p);
131  ~DCPT() = default;
132 
133  void calculatePrefetch(const PrefetchInfo &pfi,
134  std::vector<AddrPriority> &addresses) override;
135 };
136 
137 } // namespace prefetch
138 } // namespace gem5
139 
140 #endif//__MEM_CACHE_PREFETCH_DELTA_CORRELATING_PREDICTION_TABLES_HH_
gem5::prefetch::DeltaCorrelatingPredictionTables::table
AssociativeSet< DCPTEntry > table
The main table.
Definition: delta_correlating_prediction_tables.hh:107
gem5::prefetch::DeltaCorrelatingPredictionTables::deltaMaskBits
const unsigned int deltaMaskBits
Number of lower bits to ignore from the deltas.
Definition: delta_correlating_prediction_tables.hh:66
gem5::prefetch::DeltaCorrelatingPredictionTables::DCPTEntry::invalidate
void invalidate() override
Invalidate the block.
Definition: delta_correlating_prediction_tables.cc:52
gem5::prefetch::DeltaCorrelatingPredictionTables
Delta Correlating Prediction Tables Prefetcher References: Multi-level hardware prefetching using low...
Definition: delta_correlating_prediction_tables.hh:61
std::vector
STL vector class.
Definition: stl.hh:37
gem5::prefetch::DCPT::DCPT
DCPT(const DCPTPrefetcherParams &p)
Definition: delta_correlating_prediction_tables.cc:153
gem5::prefetch::DeltaCorrelatingPredictionTables::DCPTEntry
DCPT Table entry datatype.
Definition: delta_correlating_prediction_tables.hh:69
gem5::prefetch::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:127
queued.hh
gem5::prefetch::DeltaCorrelatingPredictionTables::deltaBits
const unsigned int deltaBits
Number of bits of each delta.
Definition: delta_correlating_prediction_tables.hh:64
gem5::prefetch::DCPT
The prefetcher object using the DCPT.
Definition: delta_correlating_prediction_tables.hh:125
gem5::TaggedEntry
A tagged entry is an entry containing a tag.
Definition: tagged_entry.hh:46
circular_queue.hh
mask_bits
unsigned int mask_bits
Definition: helpers.cc:291
gem5::VegaISA::p
Bitfield< 54 > p
Definition: pagetable.hh:70
gem5::AssociativeSet
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
Definition: associative_set.hh:45
gem5::SimObject
Abstract superclass for simulation objects.
Definition: sim_object.hh:146
gem5::prefetch::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:64
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
gem5::prefetch::DeltaCorrelatingPredictionTables::DeltaCorrelatingPredictionTables
DeltaCorrelatingPredictionTables(const DeltaCorrelatingPredictionTablesParams &p)
Definition: delta_correlating_prediction_tables.cc:43
gem5::GEM5_DEPRECATED_NAMESPACE
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
gem5::prefetch::Queued
Definition: queued.hh:60
gem5::prefetch::DCPT::~DCPT
~DCPT()=default
gem5::prefetch::DeltaCorrelatingPredictionTables::~DeltaCorrelatingPredictionTables
~DeltaCorrelatingPredictionTables()=default
gem5::prefetch::DeltaCorrelatingPredictionTables::DCPTEntry::DCPTEntry
DCPTEntry(unsigned int num_deltas)
Constructor.
Definition: delta_correlating_prediction_tables.hh:80
gem5::prefetch::DeltaCorrelatingPredictionTables::DCPTEntry::deltas
CircularQueue< Addr > deltas
Stored deltas.
Definition: delta_correlating_prediction_tables.hh:74
gem5::prefetch::DCPT::dcpt
DeltaCorrelatingPredictionTables & dcpt
DCPT object.
Definition: delta_correlating_prediction_tables.hh:128
gem5::prefetch::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:88
associative_set.hh
gem5::context_switch_task_id::Prefetcher
@ Prefetcher
Definition: request.hh:83
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::prefetch::DeltaCorrelatingPredictionTables::DCPTEntry::lastAddress
Addr lastAddress
Last accessed address.
Definition: delta_correlating_prediction_tables.hh:72
gem5::CircularQueue< Addr >
gem5::prefetch::Base::PrefetchInfo
Class containing the information needed by the prefetch to train and generate new prefetch requests.
Definition: base.hh:97
gem5::prefetch::DCPT::calculatePrefetch
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses) override
Definition: delta_correlating_prediction_tables.cc:159

Generated on Thu Jul 28 2022 13:32:33 for gem5 by doxygen 1.8.17