Prefetcher Tracking Multiple Stride Sequences for Complex Memory Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional prefetchers in processing systems are unable to detect and track stride sequences with lengths greater than or equal to 2, leading to inefficiencies in prefetching data, particularly in programs with complex access patterns generated by nested loops.
Innovation Solution
The implementation of a prefetcher that calculates and tracks the sum-of-strides for multiple stride sequences, allowing it to detect and issue prefetch requests based on repeated values, thereby recognizing more complex access patterns and improving performance by prefetching data into caches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional prefetchers are used to track stride sequences, then simple access patterns can be detected, but complex access patterns with stride sequence lengths greater than or equal to 2 cannot be detected
Solution Approach 1:
The prefetcher is segmented into multiple independent stride sequence trackers, each capable of tracking a specific stride sequence length. Instead of one complex tracker attempting to handle all patterns, the system divides the tracking function across multiple specialized components, allowing detection of complex access patterns while maintaining manageable device complexity through modular design
Solution Approach 2:
The prefetcher is designed with multi-functionality to handle multiple types of access patterns simultaneously. By incorporating trackers for different stride sequence lengths and allowing dynamic selection of which tracker to use based on the detected pattern, the system achieves universal detection capability for both simple and complex access patterns without requiring separate prefetchers for each case
2Measurement precision
If the prefetcher tracks multiple stride sequences to detect complex patterns, then prefetching accuracy improves, but the detection and tracking complexity increases
Solution Approach 1:
The prefetcher employs dynamic tracking where the stride sequence length and parameters are not fixed but adapt based on the detected access pattern. The system dynamically adjusts which tracker is active and what parameters to monitor, allowing high detection accuracy for varying patterns while managing complexity through dynamic rather than static configuration
Solution Approach 2:
The system uses feedback mechanisms where the detected access patterns inform the configuration and operation of the stride sequence trackers. By continuously monitoring memory access behavior and adjusting tracker parameters based on observed patterns, the prefetcher achieves high detection accuracy while the feedback loop automates the complexity management, reducing the need for manual configuration
Data Source
AI summary
The present application describes some embodiments of a prefetcher that tracks multiple stride sequences for prefetching. Some embodiments of the prefetcher implement a method including generating a sum-of-strides for each of a plurality of stride lengths that are larger than one by summing a number of previous strides that is equal to the stride length. Some embodiments of the method also include prefetching data in response to repetition of one or more of the sum-of-strides for one or more of the plurality of stride lengths.


