Polarity-Based Data Prefetcher for Out-of-Order Stride Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor technologies face challenges in efficiently combining out-of-order instruction execution with stride-based prefetching, as detecting strides becomes complex due to dynamic directionality and out-of-order execution, potentially leading to performance interference.

Innovation Solution

A polarity-based data prefetching technique with underlying stride detection is implemented, using a processor core with a local cache hierarchy, prefetch logic, and a prefetch table to detect and adapt to changing stride patterns by initializing and updating prefetch table entries with load instructions, and prefetching data based on the detected stride and polarity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If stride-based prefetching is implemented, then memory access efficiency is improved, but detecting strides becomes complex due to out-of-order execution and dynamic directionality

Engineering Contradiction:
Improvememory access efficiencyVSAvoidstride detection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The prefetcher is divided into multiple independent components: a data stream detector that identifies load instructions, a stride detector that calculates memory address patterns, a polarity detector that determines access direction, and a prefetch address generator that computes prefetch targets. Each component handles a specific aspect of the prefetching process, making the overall system more manageable and effective despite the complexity of out-of-order execution environments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system continuously monitors actual memory access patterns and uses this feedback to adjust and refine stride detection. By comparing expected prefetch addresses with actual load instruction addresses, the system can detect and correct deviations caused by out-of-order execution, maintaining accurate stride detection dynamically adapting to changing access patterns.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If polarity-based prefetching is used to handle dynamic directionality, then adaptability is improved, but the mechanism for detecting and responding to polarity changes becomes more complex

Engineering Contradiction:
Improveadaptability to dynamic directionalityVSAvoidpolarity detection mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The polarity detection functionality is merged with the existing stride detection and prefetch address generation components. The same logic unit that calculates prefetch addresses also determines the polarity by examining the sign of the stride value, eliminating the need for a separate polarity detection mechanism and reducing overall system complexity while maintaining adaptability to dynamic directionality.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If the prefetcher handles out-of-order instructions, then instruction execution flexibility is improved, but the accuracy of stride detection deteriorates

Engineering Contradiction:
Improveinstruction execution flexibilityVSAvoidstride detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system performs preliminary detection of load instructions and their addresses before actual execution completes. By capturing address information early in the instruction pipeline and using it to calculate strides, the system can initiate prefetch operations based on predicted patterns even when instructions are executed out of order, maintaining stride detection accuracy independent of execution order.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a virtual in-order model of memory access patterns by copying and organizing address information from out-of-order instructions into a structured sequence. This virtual sequencing allows accurate stride detection by presenting addresses in a logical order that reflects the intended access pattern, separating the detection process from the actual out-of-order execution behavior.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250021336A1Polarity-based data prefetcher with underlying stride detection
Publication Date: 2025.01.16 AKEANA INC
  • US20250021336A1 patent drawing
  • US20250021336A1 patent drawing
  • US20250021336A1 patent drawing

AI summary

A processor core includes a local cache hierarchy, prefetch logic, and a prefetch table, where the processor core is coupled to an external memory system. A data stream is detected, where the data stream includes multiple load instructions, including a load instruction that causes a cache miss, resulting in prefetching. A prefetch table is initialized with information pertaining to load instructions, and includes a Positive or Negative value (PON), a stride, and a saturation count. Information in the prefetch table is updated as new load instructions are prefetched. An underlying stride of the data stream is discovered, based on the updating. Data is prefetched using an offset, where a polarity of the offset is based on the PON, enabling effective stride detection with dynamic directionality and out-of-order instructions.