Context Triggered Prefetching for Microprocessor Memory Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current prefetching techniques in microprocessors are suboptimal for reducing memory latency due to their limitations in resource complexity, timeliness, and accuracy, particularly in cases with complex memory access patterns, leading to increased power consumption and performance issues.

Innovation Solution

The implementation of timely and context-triggered (TACT) prefetching, which dynamically identifies and targets specific long latency instruction pointers (LLIPs) by learning patterns between trigger and target IPs, enabling efficient prefetching with staged prefetching strategies and virtual address optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional prefetching techniques are used, then memory access speed is improved, but resource complexity and power consumption increase

Engineering Contradiction:
Improvememory access speedVSAvoidresource complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by detecting long latency instruction pointers (LLIPs) and triggering prefetch operations before the processor actually needs the data. The system identifies patterns between trigger IPs and target IPs, then pre-fetches data into the cache hierarchy in advance, reducing the impact of memory latency without requiring complex continuous monitoring mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The prefetching system serves itself by using the processor's own instruction pointer patterns to trigger prefetch operations. The pattern detection mechanism learns from the processor's actual memory access behavior and automatically generates prefetch requests based on observed correlations between trigger IPs and target IPs, eliminating the need for external control or complex configuration.

Inventive Principle:
Principle #25Self-service

2Speed

If traditional prefetching techniques are used, then memory access speed is improved, but power consumption increases

Engineering Contradiction:
Improvememory access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary detection of LLIPs and pattern learning only when beneficial, then triggers prefetch operations selectively. By using staged prefetching strategies that adapt to observed patterns, the system avoids continuous high-power operation while maintaining speed improvements for the most critical memory accesses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent dynamically changes prefetching parameters such as prefetch distance, prefetch amount, and trigger thresholds based on observed memory access patterns. This adaptive approach allows the system to optimize the balance between speed improvement and power consumption by adjusting prefetch intensity according to actual workload characteristics rather than operating at fixed high power levels.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If prefetching is performed earlier, then memory latency is reduced, but accuracy of prefetch timing deteriorates

Engineering Contradiction:
Improvememory latencyVSAvoidprefetch timing accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The system performs preliminary action at multiple stages: early detection of LLIPs to identify potential prefetch candidates, pattern learning to establish trigger-target relationships, and staged prefetching to deliver data at optimal times. This multi-stage approach allows early identification without premature prefetching, maintaining both latency reduction and timing accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic adaptation by continuously learning patterns between trigger IPs and target IPs, then adjusting prefetch timing and distance based on observed correlations. The system dynamically modifies prefetch parameters to match actual memory access patterns, ensuring accurate timing while maintaining early prefetch benefits.

Inventive Principle:
Principle #15Dynamics

4Productivity

If complex memory access patterns are handled, then system performance is improved, but resource usage increases

Engineering Contradiction:
Improvesystem performanceVSAvoidresource usage
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system handles complex memory access patterns through self-service pattern detection and learning. By observing the processor's actual instruction pointer sequences and identifying correlations between trigger IPs and target IPs, the system automatically adapts to complex access patterns without requiring external configuration or complex predefined rules, improving performance while keeping resource usage manageable.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10846084B2Supporting timely and context triggered prefetching in microprocessors
Publication Date: 2020.11.24 INTEL CORP
  • US10846084B2 patent drawing
  • US10846084B2 patent drawing
  • US10846084B2 patent drawing

AI summary

Implementations of the disclosure implement timely and context triggered (TACT) prefetching that targets particular load IPs in a program contributing to a threshold amount of the long latency accesses. A processing device comprising an execution unit; and a prefetcher circuit communicably coupled to the execution unit is provided. The prefetcher circuit is to detect a memory request for a target instruction pointer (IP) in a program to be executed by the execution unit. A trigger IP is identified to initiate a prefetch operation of memory data for the target IP. Thereupon, an association is determined between memory addresses of the trigger IP and the target IP. The association comprising a series of offsets representing a path between the trigger IP and an instance of the target IP in memory. Based on the association, an offset from the memory address of the trigger IP to prefetch the memory data is produced.