Prefetcher Tracking Multiple Stride Sequences for Complex Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveability to detect complex access patternsVSAvoidprefetcher structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If the prefetcher tracks multiple stride sequences to detect complex patterns, then prefetching accuracy improves, but the detection and tracking complexity increases

Engineering Contradiction:
Improveaccess pattern detection accuracyVSAvoidstride sequence detection complexity
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9304919B2Detecting multiple stride sequences for prefetching
Publication Date: 2016.04.05 ADVANCED MICRO DEVICES INC
  • US9304919B2 patent drawing
  • US9304919B2 patent drawing
  • US9304919B2 patent drawing

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.