gem5  v20.0.0.3
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 struct SignaturePathPrefetcherV2Params;
49 
50 namespace Prefetcher {
51 
53 {
56  {
58  double confidence;
61  GlobalHistoryEntry() : signature(0), confidence(0.0), lastBlock(0),
62  delta(0) {}
63  };
66 
68  PatternStrideEntry const &lookahead) const override;
69 
70  double calculatePrefetchConfidence(PatternEntry const &sig,
71  PatternStrideEntry const &lookahead) const override;
72 
73  void increasePatternEntryCounter(PatternEntry &pattern_entry,
74  PatternStrideEntry &pstride_entry) override;
75 
76  void handleSignatureTableMiss(stride_t current_block,
77  signature_t &new_signature, double &new_conf,
78  stride_t &new_stride) override;
79 
84  void auxiliaryPrefetcher(Addr ppn, stride_t current_block, bool is_secure,
85  std::vector<AddrPriority> &addresses) override
86  {}
87 
89  stride_t last_offset, stride_t delta, double path_confidence)
90  override;
91 
92  public:
93  SignaturePathV2(const SignaturePathPrefetcherV2Params* p);
94  ~SignaturePathV2() = default;
95 };
96 
97 } // namespace Prefetcher
98 
99 #endif//__MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
Global History Register entry datatype.
STL vector class.
Definition: stl.hh:37
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, so this function does not perform any actions.
uint16_t signature_t
Signature type.
double calculatePrefetchConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the prefetch 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...
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:140
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...
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
AssociativeSet< GlobalHistoryEntry > globalHistoryRegister
Global History Register.
Pattern entry data type, a set of stride and counter entries.
Declaration of the Packet class.
Bitfield< 43, 0 > ppn
Definition: pagetable.hh:44
int16_t stride_t
Stride type.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
SignaturePathV2(const SignaturePathPrefetcherV2Params *p)
A stride entry with its counter.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Definition: base.hh:78
Bitfield< 0 > p
void increasePatternEntryCounter(PatternEntry &pattern_entry, PatternStrideEntry &pstride_entry) override
Increases the counter of a given PatternEntry/PatternStrideEntry.
double calculateLookaheadConfidence(PatternEntry const &sig, PatternStrideEntry const &lookahead) const override
Computes the lookahead path confidence of the provided pattern entry.

Generated on Fri Jul 3 2020 15:53:03 for gem5 by doxygen 1.8.13