gem5 v24.1.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{
74
76 PatternStrideEntry const &lookahead) const override;
77
79 PatternStrideEntry const &lookahead) const override;
80
81 void increasePatternEntryCounter(PatternEntry &pattern_entry,
82 PatternStrideEntry &pstride_entry) override;
83
84 void handleSignatureTableMiss(stride_t current_block,
85 signature_t &new_signature, double &new_conf,
86 stride_t &new_stride) override;
87
92 void auxiliaryPrefetcher(Addr ppn, stride_t current_block, bool is_secure,
93 std::vector<AddrPriority> &addresses) override
94 {}
95
96 virtual void handlePageCrossingLookahead(signature_t signature,
97 stride_t last_offset, stride_t delta, double path_confidence)
98 override;
99
100 public:
101 SignaturePathV2(const SignaturePathPrefetcherV2Params &p);
102 ~SignaturePathV2() = default;
103};
104
105} // namespace prefetch
106} // namespace gem5
107
108#endif//__MEM_CACHE_PREFETCH_SIGNATURE_PATH_V2_HH__
A tagged entry is an entry containing a tag.
void registerTagExtractor(TagExtractor ext)
std::function< Addr(Addr)> TagExtractor
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.
AssociativeCache< GlobalHistoryEntry > globalHistoryRegister
Global History Register.
uint16_t signature_t
Signature type.
STL vector class.
Definition stl.hh:37
Bitfield< 12 > ext
Bitfield< 0 > p
Bitfield< 43, 0 > ppn
Definition pagetable.hh:48
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
Declaration of the Packet class.
Global History Register entry datatype.
Pattern entry data type, a set of stride and counter entries.

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