gem5 v24.1.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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
35
36namespace gem5
37{
38
39struct DeltaCorrelatingPredictionTablesParams;
40struct DCPTPrefetcherParams;
41
42namespace prefetch
43{
44
61{
63 const unsigned int deltaBits;
65 const unsigned int deltaMaskBits;
66
68 struct DCPTEntry : public CacheEntry
69 {
74
79 DCPTEntry(unsigned int num_deltas, TagExtractor ext)
80 : CacheEntry(ext), lastAddress(0), deltas(num_deltas)
81 {
82 }
83
84 void invalidate() override;
85
92 void addAddress(Addr address, unsigned int delta_num_bits);
93
102 unsigned int mask_bits) const;
103
104 };
107
108 public:
110 const DeltaCorrelatingPredictionTablesParams &p);
112
121 const CacheAccessor &cache);
122
123};
124
126class DCPT : public Queued
127{
130 public:
131 DCPT(const DCPTPrefetcherParams &p);
132 ~DCPT() = default;
133
134 void calculatePrefetch(const PrefetchInfo &pfi,
135 std::vector<AddrPriority> &addresses,
136 const CacheAccessor &cache) override;
137};
138
139} // namespace prefetch
140} // namespace gem5
141
142#endif//__MEM_CACHE_PREFETCH_DELTA_CORRELATING_PREDICTION_TABLES_HH_
A CacheEntry is an entry containing a tag.
std::function< Addr(Addr)> TagExtractor
Circular queue.
Abstract superclass for simulation objects.
Class containing the information needed by the prefetch to train and generate new prefetch requests.
Definition base.hh:111
The prefetcher object using the DCPT.
DeltaCorrelatingPredictionTables & dcpt
DCPT object.
void calculatePrefetch(const PrefetchInfo &pfi, std::vector< AddrPriority > &addresses, const CacheAccessor &cache) override
Delta Correlating Prediction Tables Prefetcher References: Multi-level hardware prefetching using low...
const unsigned int deltaBits
Number of bits of each delta.
void calculatePrefetch(const Base::PrefetchInfo &pfi, std::vector< Queued::AddrPriority > &addresses, const CacheAccessor &cache)
Computes the prefetch candidates given a prefetch event.
const unsigned int deltaMaskBits
Number of lower bits to ignore from the deltas.
STL vector class.
Definition stl.hh:37
unsigned int mask_bits
Definition helpers.cc:296
Bitfield< 12 > ext
Bitfield< 0 > p
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition types.hh:147
Provides generic cache lookup functions.
DCPTEntry(unsigned int num_deltas, TagExtractor ext)
Constructor.
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.
void getCandidates(std::vector< Queued::AddrPriority > &pfs, unsigned int mask_bits) const
Attempt to generate prefetch candidates using the two most recent deltas.

Generated on Mon Jan 13 2025 04:28:38 for gem5 by doxygen 1.9.8