gem5 v23.0.0.1
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
48namespace gem5
49{
50
51struct SignaturePathPrefetcherV2Params;
52
53namespace prefetch
54{
55
57{
60 {
62 double confidence;
66 delta(0) {}
67 };
70
72 PatternStrideEntry const &lookahead) const override;
73
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__
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.
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.
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.
uint16_t signature_t
Signature type.
STL vector class.
Definition stl.hh:37
Bitfield< 0 > p
Bitfield< 43, 0 > ppn
Definition pagetable.hh:48
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
Declaration of the Packet class.
Global History Register entry datatype.
Pattern entry data type, a set of stride and counter entries.

Generated on Mon Jul 10 2023 15:32:04 for gem5 by doxygen 1.9.7