Prefetching Circuitry Stride Refinement for Unpredictable Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies due to the time-consuming nature of memory access instructions, particularly when memory access patterns are unpredictable or complicated, leading to delays in processing circuitry operations.

Innovation Solution

The implementation of prefetching circuitry that refines stride lengths based on differences between memory access instructions, using factors to adjust the stride length and maintain confidence values, allowing for effective prefetching even in non-sequential or random access patterns, thereby improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If prefetching is performed based on predicted memory addresses, then processing efficiency is improved, but the system fails when memory access patterns are unpredictable or complicated

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidhandling unpredictable access patterns
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The stride length is made dynamic rather than static. The system initially uses a coarse stride length for prefetching, then refines it based on actual memory access patterns observed during execution. This allows the prefetching mechanism to adapt to both sequential and non-sequential access patterns, resolving the contradiction between maintaining high productivity and handling unpredictable access patterns.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback by monitoring actual memory access addresses and comparing them with predicted addresses. Based on this feedback, the stride length is refined to better match the actual access pattern. This feedback mechanism enables the system to maintain high processing efficiency even when access patterns are initially unpredictable.

Inventive Principle:
Principle #23Feedback

2Ease of manufacture

If a fixed stride length is used for prefetching, then implementation is simple, but accuracy deteriorates when access patterns vary

Engineering Contradiction:
Improveimplementation simplicityVSAvoidstride length accuracy
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The stride length determination process is segmented into two distinct phases: an initial phase using a coarse (simple) stride length for quick implementation, and a refinement phase that adjusts the stride length based on observed access patterns. This segmentation allows the system to maintain implementation simplicity while improving stride length accuracy when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary prefetching using a coarse stride length before refinement occurs. This preliminary action ensures that the system can operate with simple implementation from the start, while subsequent refinement improves accuracy without compromising the initial functionality.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If prefetching assumes sequential access patterns, then prediction is accurate for arrays, but it fails for random or short-lived thread accesses

Engineering Contradiction:
Improveprediction accuracyVSAvoidhandling diverse access patterns
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The system transitions from assuming a fixed sequential access pattern to dynamically adapting the stride length based on observed access behavior. This allows accurate prediction for sequential array accesses while also handling random or short-lived thread accesses by refining the stride length to match actual patterns.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the stride length parameter based on observed memory access patterns. For sequential array accesses, the stride length remains consistent with the array structure. For random or short-lived accesses, the stride length is refined to match the observed pattern, thereby maintaining prediction accuracy across diverse access patterns.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9037835B1Data processing method and apparatus for prefetching
Publication Date: 2015.05.19 ARM LTD
  • US9037835B1 patent drawing
  • US9037835B1 patent drawing
  • US9037835B1 patent drawing

AI summary

A data processing device includes processing circuitry 20 for executing a first memory access instruction to a first address of a memory device 40 and a second memory access instruction to a second address of the memory device 40, the first address being different from the second address. The data processing device also includes prefetching circuitry 30 for prefetching data from the memory device 40 based on a stride length 70 and instruction analysis circuitry 50 for determining a difference between the first address and the second address. Stride refining circuitry 60 is also provided to refine the stride length based on factors of the stride length and factors of the difference calculated by the instruction analysis circuitry 50.