Stride Reference Prefetcher for Cache Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory prefetching techniques are inefficient as they often fail to accurately anticipate future load requests, leading to suboptimal performance and increased latency due to incorrect or unnecessary data retrieval.

Innovation Solution

A stride reference prefetcher that determines a minimum stride value and direction between successive load accesses to identify prefetch addresses, using access logic, stride mask logic, count logic, and arbitration logic to filter and trigger prefetch operations based on access history and thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If prefetching is used to improve memory access speed, then cache retrieval speed is improved, but performance decreases when incorrect or excessive data is retrieved

Engineering Contradiction:
Improvecache retrieval speedVSAvoidoverall processing performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent performs preliminary analysis of access history vectors to detect stride patterns before initiating prefetch operations. By calculating minimum stride values and filtering access histories in advance, the system predicts future memory access addresses and prefetches only the necessary data blocks, avoiding both premature and excessive prefetching that would waste cache resources and reduce performance.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If stride detection is performed to improve prefetch accuracy, then prefetch precision is improved, but processing complexity increases

Engineering Contradiction:
Improveprefetch address accuracyVSAvoidprefetcher circuit complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the prefetcher into distinct functional modules: access history vector storage, stride detection logic, minimum stride calculation unit, and prefetch address generation unit. Each module performs a specific function in the stride detection pipeline, allowing complex stride analysis to be broken down into manageable stages that can be implemented efficiently with reduced inter-module interference and easier verification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic stride detection that adapts to different access patterns by continuously analyzing access history vectors and updating minimum stride values based on detected patterns. The system dynamically adjusts prefetch parameters based on the calculated stride characteristics, enabling accurate prefetching for various stride types (sequential, strided, random) without requiring fixed complex circuitry for each pattern type.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9747215B2Stride reference prefetcher
Publication Date: 2017.08.29 VIA ALLIANCE SEMICON CO LTD
  • US9747215B2 patent drawing
  • US9747215B2 patent drawing
  • US9747215B2 patent drawing

AI summary

A processor including a cache memory, processing logic, access logic, stride mask logic, count logic, arbitration logic, and a prefetcher. The processing logic submits load requests to access cache lines of a memory page. The access logic updates an access vector for the memory page, in which the access logic determines a minimum stride value between successive load requests. The stride mask logic provides a mask vector based on the minimum stride value. The count logic combines the mask vector with the access vector to provide an access count. The arbitration logic triggers a prefetch operation when the access count achieves a predetermined count threshold. The prefetcher performs the prefetch operation using a prefetch address determined by combining the minimum stride value with an address of a last one of the load requests. Direction of the stride may be determined, and a stable mode is described.