Link Stack Prefetch Augmentation for Pipeline Cache Misses
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Sequential prefetchers in pipeline architectures struggle to accurately predict large jumps in code, leading to cache misses that stall processors, whereas non-sequential prefetchers can capture such jumps but have a larger physical footprint and complex algorithms.
Innovation Solution
A link stack based prefetch augmentation method that uses sequential prefetching to predict and prefetch instructions, leveraging call graph information to anticipate non-sequential addresses and store them in cache memory, reducing cache misses and processor stalls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential prefetching is used to predict and prefetch instructions, then processor performance is improved and cache misses are reduced, but the ability to accurately predict large jumps in code is limited
Solution Approach 1:
The patent segments the prefetching mechanism into two distinct components: a sequential prefetcher that handles sequential instruction streams and a link stack-based component that handles non-sequential jumps. This segmentation allows each component to specialize in its strength while working together to solve the overall prediction problem.
Solution Approach 2:
The link stack serves as an intermediary structure that bridges sequential prefetching and non-sequential jump handling. It stores return addresses and enables the system to anticipate and prefetch instructions at jump targets without requiring a full non-sequential prefetcher.
2Measurement precision
If non-sequential prefetching is used to capture large jumps in code, then prediction accuracy is improved, but physical footprint and algorithm complexity increase
Solution Approach 1:
The patent extracts only the essential functionality needed for non-sequential prefetching (handling function calls and returns) and implements it through the link stack mechanism. This avoids the need for a complete non-sequential prefetcher while still capturing the most important non-sequential patterns.
Solution Approach 2:
The link stack, originally designed for function call management, is given the additional function of enabling non-sequential prefetching. This multi-functionality eliminates the need for separate dedicated structures for both purposes.
3Reliability
If non-sequential prefetching is used to predict large jumps, then cache misses are reduced, but processing overhead increases
Solution Approach 1:
Instead of implementing full non-sequential prefetching, the patent applies partial action by using only the link stack information that is already being maintained for function call management. This provides some non-sequential prefetching capability without the complete overhead of a dedicated non-sequential prefetcher.
Data Source
AI summary
A computer-implemented method of performing a link stack based prefetch augmentation using a sequential prefetching includes observing a call instruction in a program being executed, and pushing a return address onto a link stack for processing the next instruction. A stream of instructions is prefetched starting from a cached line address of the next instruction and is stored in an instruction cache.


