AMPM Prefetch Circuit Pointer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current prefetching mechanisms in processors face challenges in improving memory latency and reducing power consumption, as they often result in inaccurate prefetching that can lead to increased power usage and reduced battery life in portable devices, due to the inefficiencies in predicting cache block accesses.

Innovation Solution

Implementing an access map-pattern match (AMPM)-based prefetch circuit that detects pointer reads and adjusts prefetch request frequencies accordingly, while distinguishing between load-only and store-only access maps to enhance prefetching accuracy and reduce power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If prefetching is implemented to reduce memory latency, 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 patent applies local quality by differentiating prefetching behavior based on access map characteristics. Different prefetch frequencies are applied to different access maps based on their pointer read activity and load/store patterns, rather than using a uniform prefetching approach across all memory accesses.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic prefetching by adjusting prefetch request frequency based on detected pointer read activity. The system transitions from static prefetching to dynamic adaptation, increasing prefetch frequency when pointer reads are detected and decreasing it for store-only access maps, allowing the system to optimize performance while reducing unnecessary power consumption.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If prefetch request frequency is increased to improve prefetching accuracy, then memory latency is reduced, but power consumption increases

Engineering Contradiction:
Improvememory latencyVSAvoidpower consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The patent changes the parameter of prefetch request frequency based on detected access patterns. By monitoring pointer read activity and access map characteristics, the system dynamically adjusts the frequency parameter to optimize the balance between reducing memory latency and minimizing power consumption.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If prefetching is performed for all access maps, then memory access performance is improved, but unnecessary power is consumed for store-only maps

Engineering Contradiction:
Improveprocessor performanceVSAvoidexcess power consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts and identifies store-only access maps from the set of all access maps using detection circuitry. Once identified, prefetching is removed or reduced for these store-only maps, eliminating unnecessary power consumption while maintaining performance for load-containing access maps.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial prefetching by selectively enabling prefetching only for access maps that contain load operations, rather than applying it universally. This partial application of prefetching avoids the excessive power consumption associated with prefetching store-only maps while maintaining the performance benefits where needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10402334B1Prefetch circuit for a processor with pointer optimization
Publication Date: 2019.09.03 APPLE INC
  • US10402334B1 patent drawing
  • US10402334B1 patent drawing
  • US10402334B1 patent drawing

AI summary

In an embodiment, a processor may implement an access map-pattern match (AMPM)-based prefetch circuit with features designed to improve prefetching accuracy and/or reduce power consumption. In an embodiment, the prefetch circuit may be configured to detect that pointer reads are occurring (e.g. "pointer chasing.") The prefetch circuit may be configured to increase the frequency at which prefetch requests are generated for an access map in which pointer read activity is detected, compared to the frequency at which the prefetch requests would be generated in the pointer read activity is not generated. In an embodiment, the prefetch circuit may also detect access maps that are store-only, and may reduce the frequency of prefetches for store only access maps as compared to the frequency of load-only or load/store maps.