Up/Down Prefetcher for Slow-Moving Stride Patterns

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional prefetchers in processing systems often fail to accurately detect 'slow-moving' stride or stream patterns in data accesses, leading to ineffective speculative prefetching due to size limitations and frequent cache hits.

Innovation Solution

The introduction of an up/down prefetcher (UDP) that identifies slow-moving patterns by sampling cache accesses, incrementing hit counts for adjacent cacheline accesses, and enabling speculative prefetching when thresholds are met, coordinating with other prefetchers to avoid conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If conventional prefetchers use size limitations and fixed history storage to monitor data accesses, then device complexity is reduced, but the ability to detect slow-moving stride or stream patterns deteriorates

Engineering Contradiction:
Improveprefetcher structureVSAvoiddetection accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The prefetcher is divided into multiple independent components: a history storage unit for accessing past data, a pattern detection unit for identifying access patterns, and a prefetch control unit for generating prefetch requests. This segmentation allows each component to be optimized independently, improving detection accuracy without proportionally increasing overall complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of operation by implementing bidirectional prefetching (forward and backward prefetching) in addition to conventional unidirectional prefetching. This adds a directional dimension to pattern detection, enabling the system to detect and prefetch along both forward and backward access directions, thereby improving detection accuracy for diverse access patterns.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Device complexity

If conventional prefetchers use fixed history storage size to track data accesses, then device complexity is reduced, but detection accuracy for slow-moving patterns deteriorates

Engineering Contradiction:
Improvehistory storageVSAvoidpattern detection accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The history storage size is made dynamic rather than fixed. The prefetcher can adjust the amount of history stored based on the detected access patterns and system conditions. This dynamic adjustment allows the system to allocate more history resources when slow-moving patterns are detected, improving detection accuracy without permanently increasing complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of history storage capacity from a fixed value to a variable that can be adjusted based on detection needs. By dynamically modifying this parameter, the system can optimize detection accuracy for slow-moving patterns while managing complexity through adaptive resource allocation.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If conventional prefetchers monitor all data accesses with limited history storage, then device complexity is reduced, but the ability to identify valid stride or stream patterns deteriorates

Engineering Contradiction:
Improvemonitoring mechanismVSAvoidpattern identification reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The prefetcher implements a feedback mechanism where the results of prefetch operations are monitored and used to adjust future prefetching behavior. When prefetches successfully predict needed data, the system reinforces the detected pattern; when predictions fail, the system adjusts or abandons the pattern. This feedback loop improves pattern identification reliability without requiring proportionally more complex monitoring.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary pattern analysis on historical access data before committing to prefetching operations. By pre-processing and analyzing access patterns in advance, the system can identify valid stride or stream patterns with higher reliability before executing prefetches, reducing the complexity of real-time monitoring while improving identification accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3258381B1Up/down prefetcher
Publication Date: 2018.10.03 ADVANCED MICRO DEVICES INC
  • EP3258381B1 patent drawingFigure 1
  • EP3258381B1 patent drawingFigure 2
  • EP3258381B1 patent drawingFigure 3

AI summary

In a processing system (100) comprising a cache (104), a method includes monitoring demand cache accesses for a thread to maintain a first running count of a number of times demand cache accesses for the thread are directed to cachelines that are adjacent in a first direction to cachelines that are targets of a set of sampled cache accesses for the thread. In response to determining the first running count has exceeded a first threshold (228), the method further includes enabling a first prefetching mode (128) in which a received demand cache access for the thread triggers a prefetch request (234) for a cacheline adjacent in the first direction to a cacheline targeted by the received demand cache access.