gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
signature_path_v2.hh
Go to the documentation of this file.
1 
41 #ifndef __MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
42 #define __MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
43 
46 #include "mem/packet.hh"
47 
48 namespace gem5
49 {
50 
51 struct SignaturePathPrefetcherV2Params;
52 
53 namespace prefetch
54 {
55 
57 {
60  {
62  double confidence;
66  delta(0) {}
67  };
70 
72  PatternStrideEntry const &lookahead) const override;
73 
74  double calculatePrefetchConfidence(PatternEntry const &sig,
75  PatternStrideEntry const &lookahead) const override;
76 
77  void increasePatternEntryCounter(PatternEntry &pattern_entry,
78  PatternStrideEntry &pstride_entry) override;
79 
80  void handleSignatureTableMiss(stride_t current_block,
81  signature_t &new_signature, double &new_conf,
82  stride_t &new_stride) override;
83 
88  void auxiliaryPrefetcher(Addr ppn, stride_t current_block, bool is_secure,
89  std::vector<AddrPriority> &addresses) override
90  {}
91 
92  virtual void handlePageCrossingLookahead(signature_t signature,
93  stride_t last_offset, stride_t delta, double path_confidence)
94  override;
95 
96  public:
97  SignaturePathV2(const SignaturePathPrefetcherV2Params &p);
98  ~SignaturePathV2() = default;
99 };
100 
101 } // namespace prefetch
102 } // namespace gem5
103 
104 #endif//__MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
gem5::prefetch::SignaturePath
Definition: signature_path.hh:56
gem5::prefetch::SignaturePathV2
Definition: signature_path_v2.hh:56
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry::GlobalHistoryEntry
GlobalHistoryEntry()
Definition: signature_path_v2.hh:65
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry::delta
stride_t delta
Definition: signature_path_v2.hh:64
gem5::prefetch::SignaturePathV2::SignaturePathV2
SignaturePathV2(const SignaturePathPrefetcherV2Params &p)
Definition: signature_path_v2.cc:43
std::vector
STL vector class.
Definition: stl.hh:37
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry
Global History Register entry datatype.
Definition: signature_path_v2.hh:59
gem5::prefetch::SignaturePathV2::handleSignatureTableMiss
void handleSignatureTableMiss(stride_t current_block, signature_t &new_signature, double &new_conf, stride_t &new_stride) override
Whenever a new SignatureEntry is allocated, it computes the new signature to be used with the new ent...
Definition: signature_path_v2.cc:54
packet.hh
gem5::prefetch::SignaturePathV2::increasePatternEntryCounter
void increasePatternEntryCounter(PatternEntry &pattern_entry, PatternStrideEntry &pstride_entry) override
Increases the counter of a given PatternEntry/PatternStrideEntry.
Definition: signature_path_v2.cc:99
gem5::prefetch::SignaturePath::signature_t
uint16_t signature_t
Signature type.
Definition: signature_path.hh:60
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry::lastBlock
stride_t lastBlock
Definition: signature_path_v2.hh:63
gem5::TaggedEntry
A tagged entry is an entry containing a tag.
Definition: tagged_entry.hh:46
gem5::VegaISA::p
Bitfield< 54 > p
Definition: pagetable.hh:70
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry::confidence
double confidence
Definition: signature_path_v2.hh:62
gem5::prefetch::SignaturePathV2::calculatePrefetchConfidence
double calculatePrefetchConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the prefetch confidence of the provided pattern entry.
Definition: signature_path_v2.cc:91
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::prefetch::SignaturePathV2::auxiliaryPrefetcher
void auxiliaryPrefetcher(Addr ppn, stride_t current_block, bool is_secure, std::vector< AddrPriority > &addresses) override
In this version of the Signature Path Prefetcher, there is no auxiliary prefetcher,...
Definition: signature_path_v2.hh:88
gem5::prefetch::SignaturePathV2::globalHistoryRegister
AssociativeSet< GlobalHistoryEntry > globalHistoryRegister
Global History Register.
Definition: signature_path_v2.hh:69
gem5::prefetch::SignaturePath::stride_t
int16_t stride_t
Stride type.
Definition: signature_path.hh:62
gem5::prefetch::SignaturePath::PatternStrideEntry
A stride entry with its counter.
Definition: signature_path.hh:89
gem5::prefetch::SignaturePathV2::calculateLookaheadConfidence
double calculateLookaheadConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the lookahead path confidence of the provided pattern entry.
Definition: signature_path_v2.cc:82
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
gem5::VegaISA::ppn
Bitfield< 47, 12 > ppn
Definition: pagetable.hh:57
gem5::prefetch::SignaturePathV2::~SignaturePathV2
~SignaturePathV2()=default
gem5::prefetch::SignaturePath::PatternEntry
Pattern entry data type, a set of stride and counter entries.
Definition: signature_path.hh:99
gem5::prefetch::SignaturePathV2::GlobalHistoryEntry::signature
signature_t signature
Definition: signature_path_v2.hh:61
associative_set.hh
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::prefetch::SignaturePathV2::handlePageCrossingLookahead
virtual void handlePageCrossingLookahead(signature_t signature, stride_t last_offset, stride_t delta, double path_confidence) override
Handles the situation when the lookahead process has crossed the boundaries of the current page.
Definition: signature_path_v2.cc:119
signature_path.hh

Generated on Sun Jul 30 2023 01:56:57 for gem5 by doxygen 1.8.17