Pointer Prefetcher Sub-Cacheline Triggering for Irregular Accesses

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing pointer prefetchers struggle with inaccurate and untimely prefetching of irregular memory accesses, leading to cache pollution and reduced CPU performance due to unnecessary prefetches and cache misses.

Innovation Solution

Implementing sub-cacheline filtering logic and marker-based prefetch timing to improve the accuracy and timeliness of prefetches by determining the stride and distance between producer and consumer workloads, allowing prefetches only when sufficient time is available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If pointer prefetchers perform prefetches for irregular memory accesses, then the CPU may obtain data earlier, but the prefetches are inaccurate and untimely causing cache pollution and cache misses

Engineering Contradiction:
ImproveCPU wait time for dataVSAvoidprefetch accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent implements feedback mechanisms by monitoring memory access patterns and using detected strides to dynamically adjust prefetch operations. The system observes actual memory access behavior, calculates strides from these observations, and uses this feedback to refine future prefetch decisions, thereby improving accuracy while maintaining timely data delivery.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent changes the parameter of prefetch timing by introducing stride-based triggering mechanisms. Instead of uniform or heuristic-based prefetching, the system dynamically determines when to prefetch based on calculated strides from observed memory access patterns, allowing prefetches to be both accurate and timely.

Inventive Principle:
Principle #35Parameter changes

2Speed

If pointer prefetchers perform prefetches for irregular memory accesses, then data may be available earlier, but unnecessary prefetches cause cache pollution

Engineering Contradiction:
Improvedata availability speedVSAvoidcache pollution
Core Design Contradiction:
SpeedVSObject-generated harmful factors

Solution Approach 1:

The patent applies partial action by performing prefetches only for specific memory accesses that exhibit regular stride patterns, rather than prefetching all memory accesses. By selectively triggering prefetches based on stride detection, the system avoids unnecessary prefetches that would pollute the cache while still providing timely data for predictable access patterns.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments memory access handling into two paths: detected stride patterns that trigger prefetches and irregular patterns that do not. This segmentation allows the system to apply prefetching only where beneficial, preventing cache pollution from unnecessary prefetches while maintaining high data availability speed for predictable accesses.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If the prefetcher fetches data from main memory before CPU needs it, then CPU wait time is reduced, but determining accurate prefetch timing for irregular accesses is difficult

Engineering Contradiction:
ImproveCPU wait timeVSAvoidprefetch timing determination
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements self-service by having the prefetcher determine its own timing based on observed memory access patterns. The system automatically detects strides from recent accesses and uses this information to trigger prefetches without requiring complex external control logic, reducing device complexity while maintaining accurate timing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary action by detecting and storing stride patterns from memory accesses before they are needed. By pre-calculating and storing stride information during normal operation, the system is prepared to immediately trigger accurate prefetches when conditions warrant, reducing CPU wait time without adding complex real-time determination logic.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12585591B2Technique for prefetching with a pointer prefetcher
Publication Date: 2026.03.24 QUALCOMM INC
  • US12585591B2 patent drawing
  • US12585591B2 patent drawing
  • US12585591B2 patent drawing

AI summary

Certain aspects of the present disclosure provide techniques and apparatus for prefetching with a pointer prefetcher. Aspects include obtaining a triggering access comprising a virtual address denoting a beginning of a payload of a cache line. Aspects include determining a stride associated with the producer workload based, at least in part, on a virtual address of the producer workload. Aspects include determining a sub-cacheline trigger virtual address of the triggering access based, at least in part, on the line trigger virtual address of the triggering access, the virtual address of the producer workload, and the stride associated with the producer workload. Aspects include launching, starting at the sub-cacheline trigger virtual address of the triggering access, prefetches for data offsets within the cache line and pointed to by the stride associated with the producer workload.