gem5  v22.1.0.0
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 
54 namespace prefetch
55 {
56 
58 {
61  {
63  double confidence;
67  delta(0) {}
68  };
71 
73  PatternStrideEntry const &lookahead) const override;
74 
75  double calculatePrefetchConfidence(PatternEntry const &sig,
76  PatternStrideEntry const &lookahead) const override;
77 
78  void increasePatternEntryCounter(PatternEntry &pattern_entry,
79  PatternStrideEntry &pstride_entry) override;
80 
81  void handleSignatureTableMiss(stride_t current_block,
82  signature_t &new_signature, double &new_conf,
83  stride_t &new_stride) override;
84 
89  void auxiliaryPrefetcher(Addr ppn, stride_t current_block, bool is_secure,
90  std::vector<AddrPriority> &addresses) override
91  {}
92 
93  virtual void handlePageCrossingLookahead(signature_t signature,
94  stride_t last_offset, stride_t delta, double path_confidence)
95  override;
96 
97  public:
98  SignaturePathV2(const SignaturePathPrefetcherV2Params &p);
99  ~SignaturePathV2() = default;
100 };
101 
102 } // namespace prefetch
103 } // namespace gem5
104 
105 #endif//__MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
A tagged entry is an entry containing a tag.
Definition: tagged_entry.hh:47
double calculateLookaheadConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the lookahead path confidence of the provided pattern entry.
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.
void increasePatternEntryCounter(PatternEntry &pattern_entry, PatternStrideEntry &pstride_entry) override
Increases the counter of a given PatternEntry/PatternStrideEntry.
SignaturePathV2(const SignaturePathPrefetcherV2Params &p)
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,...
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...
double calculatePrefetchConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the prefetch confidence of the provided pattern entry.
AssociativeSet< GlobalHistoryEntry > globalHistoryRegister
Global History Register.
int16_t stride_t
Stride type.
uint16_t signature_t
Signature type.
STL vector class.
Definition: stl.hh:37
Bitfield< 47, 12 > ppn
Definition: pagetable.hh:57
Bitfield< 54 > p
Definition: pagetable.hh:70
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
Declaration of the Packet class.
Global History Register entry datatype.
Pattern entry data type, a set of stride and counter entries.

Generated on Wed Dec 21 2022 10:22:36 for gem5 by doxygen 1.9.1