58 for (uint32_t set = 0; set <
ST_SET; set++)
59 for (uint32_t way = 0; way <
ST_WAY; way++) {
68 void read_and_update_sig(uint64_t page, uint32_t page_offset, uint32_t& last_sig, uint32_t& curr_sig, int32_t& delta);
79 for (uint32_t set = 0; set <
PT_SET; set++) {
80 for (uint32_t way = 0; way <
PT_WAY; way++) {
88 void update_pattern(uint32_t last_sig,
int curr_delta),
read_pattern(uint32_t curr_sig, std::vector<int>&prefetch_delta, std::vector<uint32_t>&confidence_q,
89 uint32_t&lookahead_way, uint32_t&lookahead_conf, uint32_t&pf_q_tail, uint32_t&depth);
101 for (uint32_t set = 0; set <
FILTER_SET; set++) {
138 void update_entry(uint32_t pf_sig, uint32_t pf_confidence, uint32_t pf_offset,
int pf_delta);
Definition: spp_dev.h:112
uint32_t pf_issued
Definition: spp_dev.h:115
uint32_t sig[MAX_GHR_ENTRY]
Definition: spp_dev.h:120
uint32_t confidence[MAX_GHR_ENTRY]
Definition: spp_dev.h:120
uint32_t offset[MAX_GHR_ENTRY]
Definition: spp_dev.h:120
void update_entry(uint32_t pf_sig, uint32_t pf_confidence, uint32_t pf_offset, int pf_delta)
Definition: spp_dev.cc:499
GLOBAL_REGISTER()
Definition: spp_dev.h:123
uint32_t global_accuracy
Definition: spp_dev.h:116
uint32_t check_entry(uint32_t page_offset)
Definition: spp_dev.cc:553
uint32_t pf_useful
Definition: spp_dev.h:115
int delta[MAX_GHR_ENTRY]
Definition: spp_dev.h:121
uint8_t valid[MAX_GHR_ENTRY]
Definition: spp_dev.h:119
void update_pattern(uint32_t last_sig, int curr_delta)
Definition: spp_dev.cc:297
int delta[PT_SET][PT_WAY]
Definition: spp_dev.h:74
uint32_t c_sig[PT_SET]
Definition: spp_dev.h:75
void read_pattern(uint32_t curr_sig, std::vector< int > &prefetch_delta, std::vector< uint32_t > &confidence_q, uint32_t &lookahead_way, uint32_t &lookahead_conf, uint32_t &pf_q_tail, uint32_t &depth)
Definition: spp_dev.cc:357
PATTERN_TABLE()
Definition: spp_dev.h:77
uint32_t c_delta[PT_SET][PT_WAY]
Definition: spp_dev.h:75
bool check(uint64_t pf_addr, FILTER_REQUEST filter_request)
Definition: spp_dev.cc:406
uint64_t remainder_tag[FILTER_SET]
Definition: spp_dev.h:95
bool useful[FILTER_SET]
Definition: spp_dev.h:97
PREFETCH_FILTER()
Definition: spp_dev.h:99
bool valid[FILTER_SET]
Definition: spp_dev.h:96
uint32_t lru[ST_SET][ST_WAY]
Definition: spp_dev.h:54
uint32_t tag[ST_SET][ST_WAY]
Definition: spp_dev.h:54
void read_and_update_sig(uint64_t page, uint32_t page_offset, uint32_t &last_sig, uint32_t &curr_sig, int32_t &delta)
Definition: spp_dev.cc:179
uint32_t sig[ST_SET][ST_WAY]
Definition: spp_dev.h:54
bool valid[ST_SET][ST_WAY]
Definition: spp_dev.h:53
uint32_t last_offset[ST_SET][ST_WAY]
Definition: spp_dev.h:54
SIGNATURE_TABLE()
Definition: spp_dev.h:56
Definition: spp_dev.cc:158
constexpr std::size_t MAX_GHR_ENTRY
Definition: spp_dev.h:45
constexpr bool GHR_ON
Definition: spp_dev.h:12
constexpr bool FILTER_ON
Definition: spp_dev.h:11
uint64_t get_hash(uint64_t key)
Definition: spp_dev.cc:160
constexpr std::size_t PT_SET
Definition: spp_dev.h:27
constexpr unsigned QUOTIENT_BIT
Definition: spp_dev.h:35
constexpr uint32_t C_DELTA_MAX
Definition: spp_dev.h:32
constexpr std::size_t ST_WAY
Definition: spp_dev.h:18
constexpr unsigned REMAINDER_BIT
Definition: spp_dev.h:36
constexpr uint32_t C_SIG_MAX
Definition: spp_dev.h:31
constexpr unsigned ST_TAG_BIT
Definition: spp_dev.h:19
constexpr uint32_t GLOBAL_COUNTER_MAX
Definition: spp_dev.h:44
constexpr uint32_t SIG_MASK
Definition: spp_dev.h:23
constexpr bool SPP_DEBUG_PRINT
Definition: spp_dev.h:14
constexpr uint32_t FILL_THRESHOLD
Definition: spp_dev.h:39
constexpr unsigned GLOBAL_COUNTER_BIT
Definition: spp_dev.h:43
constexpr bool SPP_SANITY_CHECK
Definition: spp_dev.h:13
constexpr uint32_t ST_TAG_MASK
Definition: spp_dev.h:20
constexpr unsigned SIG_DELTA_BIT
Definition: spp_dev.h:24
constexpr std::size_t PT_WAY
Definition: spp_dev.h:28
constexpr unsigned SIG_SHIFT
Definition: spp_dev.h:21
constexpr std::size_t FILTER_SET
Definition: spp_dev.h:38
constexpr unsigned SIG_BIT
Definition: spp_dev.h:22
constexpr unsigned C_SIG_BIT
Definition: spp_dev.h:29
constexpr std::size_t ST_SET
Definition: spp_dev.h:17
constexpr unsigned HASH_BIT
Definition: spp_dev.h:37
constexpr unsigned C_DELTA_BIT
Definition: spp_dev.h:30
FILTER_REQUEST
Definition: spp_dev.h:47
@ SPP_LLC_PREFETCH
Definition: spp_dev.h:47
@ SPP_L2C_PREFETCH
Definition: spp_dev.h:47
@ L2C_EVICT
Definition: spp_dev.h:47
@ L2C_DEMAND
Definition: spp_dev.h:47
constexpr uint32_t PF_THRESHOLD
Definition: spp_dev.h:40
constexpr bool LOOKAHEAD_ON
Definition: spp_dev.h:10