Branch Misprediction-Aware Cache Prefetcher Training
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cache prefetchers struggle to distinguish between correctly predicted and mispredicted instruction fetches, leading to unnecessary cache prefetches and pollution due to training on speculative memory accesses from mispredicted branches.
Innovation Solution
Implement a system that provides branch misprediction information to the cache prefetcher, allowing it to filter out speculative memory accesses and train only on non-speculative ones, thereby improving cache prefetching accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the cache prefetcher trains on all memory accesses including speculative ones, then the training data volume is maximized, but cache pollution increases and prefetching accuracy deteriorates
Solution Approach 1:
The patent extracts and removes speculative memory accesses from the training data set. The cache prefetcher identifies speculative accesses through branch prediction information and excludes them from training, thereby preventing cache pollution while maintaining adequate training data volume from non-speculative accesses.
2Object-generated harmful factors
If the cache prefetcher filters out speculative memory accesses, then cache pollution is reduced, but the complexity of distinguishing speculative from non-speculative accesses increases
Solution Approach 1:
The patent introduces branch prediction information as an intermediary mechanism to identify speculative memory accesses. This mediator provides the cache prefetcher with the necessary information to distinguish speculative from non-speculative accesses without requiring complex analysis of each memory access pattern.
3Reliability
If branch misprediction information is integrated into the cache prefetcher, then prefetching accuracy is improved, but the system complexity increases
Solution Approach 1:
The patent merges the branch prediction information with the cache prefetcher training mechanism. By combining these two previously separate functions, the system enables the cache prefetcher to use branch prediction outcomes to inform its training decisions, improving accuracy while leveraging existing hardware components.
Data Source
AI summary
The disclosed device uses a control circuit configured to (i) receive branch misprediction information corresponding to a mispredicted branch window of instructions and (ii) send a misprediction status of a memory access from the mispredicted branch window of instructions, and a cache prefetcher of a cache configured to train using a set of memory accesses that are updated in response to receiving the misprediction status from the control circuit.


