gem5 v24.0.0.0
Loading...
Searching...
No Matches
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{
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__
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.
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.
AssociativeCache< 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
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria 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 Tue Jun 18 2024 16:24:05 for gem5 by doxygen 1.11.0