Multi-Stride Prefetcher for Data Stream Cache Miss Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional stream data prefetchers are ineffective for data streams with multiple strides, as they can only generate prefetches for streams with a single constant stride, failing to address the complex access patterns encountered in many applications.

Innovation Solution

A processor system that examines sequences of strides to detect patterns, issuing prefetch instructions for both single constant strides and recurring patterns with multiple strides, utilizing a prefetch learning table and stream buffer to track and manage prefetches, and dynamically adjust the prefetch-ahead distance based on performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a conventional stream prefetcher is used, then it can generate prefetches for data streams with a single constant stride, but it becomes ineffective for data streams with multiple strides

Engineering Contradiction:
Improveability to handle multiple stride patternsVSAvoidprefetcher structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the stride sequence into multiple constant-stride sub-sequences by detecting stride changes. Each sub-sequence is processed independently by the existing single-stride prefetcher logic, allowing the system to handle multi-stride patterns while reusing proven single-stride prefetching mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic detection and adaptation mechanisms that monitor stride patterns in real-time. When a stride change is detected, the system dynamically switches between different constant-stride patterns, enabling the prefetcher to adapt to varying access patterns without requiring a complete redesign for multi-stride support.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the prefetcher examines sequences of strides to detect patterns, then it can generate prefetches for multi-stride streams, but the complexity of examining and detecting patterns increases

Engineering Contradiction:
Improvemulti-stride pattern detection capabilityVSAvoidstride pattern detection complexity
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent extracts the stride value from each memory access and stores it in a separate stride buffer. This extraction isolates the stride detection function from the main prefetching logic, making it easier to examine stride sequences and detect patterns without interfering with other prefetcher operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary stride detection module that sits between the memory access unit and the prefetcher. This intermediary examines stride sequences, detects pattern changes, and provides simplified control signals to the prefetcher, reducing the detection complexity by breaking down the pattern recognition task into manageable steps.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If prefetch instructions are issued for recurring patterns with two or more different strides, then cache misses are reduced, but the number of outstanding prefetches increases

Engineering Contradiction:
Improvecache hit rateVSAvoidnumber of outstanding prefetches
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies partial prefetching by issuing prefetch instructions only for the detected constant-stride sub-sequences rather than attempting to prefetch entire multi-stride streams. This partial action approach reduces the number of outstanding prefetches while still capturing the performance benefits for the predictable portions of the access pattern.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements feedback mechanisms that monitor the effectiveness of issued prefetches. When prefetches are successfully utilized, the system continues the pattern; when prefetches are not needed or cause harm, the system adjusts or terminates the prefetching for that pattern, thereby controlling the number of outstanding prefetches while maintaining high cache hit rates.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10013356B2Facilitating prefetching for data streams with multiple strides
Publication Date: 2018.07.03 ORACLE INT CORP
  • US10013356B2 patent drawing
  • US10013356B2 patent drawing
  • US10013356B2 patent drawing

AI summary

The disclosed embodiments relate to a system that generates prefetches for a stream of data accesses with multiple strides. During operation, while a processor is generating the stream of data accesses, the system examines a sequence of strides associated with the stream of data accesses. Next, upon detecting a pattern having a single constant stride in the examined sequence of strides, the system issues prefetch instructions to prefetch a sequence of data cache lines consistent with the single constant stride. Similarly, upon detecting a recurring pattern having two or more different strides in the examined sequence of strides, the system issues prefetch instructions to prefetch a sequence of data cache lines consistent with the recurring pattern having two or more different strides.