Processor Pointer Extent Encoding for Accurate Cache Prefetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors face challenges in accurately prefetching data, leading to reduced performance and increased power consumption due to incorrect predictions about data needs.

Innovation Solution

Incorporating a data object extent field in a 64-bit pointer to provide information for prefetch units and address translation units, allowing them to make informed decisions about prefetching additional cache lines based on the extent of data objects, thereby reducing reliance on historical algorithms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If prefetch units use historical algorithms and statistical methods to predict data needs, then they can operate without additional hardware information, but prefetching accuracy deteriorates leading to incorrect predictions

Engineering Contradiction:
Improveprefetching accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The memory allocation procedure performs preliminary actions by embedding extent information in pointers during the allocation phase. This pre-encoded data object extent information is then available to prefetch units without requiring additional real-time analysis or hardware resources, enabling accurate prefetching decisions before the actual data access occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The extent information embedded in pointers acts as an intermediary that bridges the gap between memory allocation and prefetching operations. Instead of prefetch units directly analyzing historical access patterns, they receive pre-processed extent information from the pointer, which mediates the prediction process and improves accuracy while reducing computational overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If prefetch units incorrectly predict data needs and load unnecessary data into caches, then cache space is wasted evicting needed data, but implementing more sophisticated prediction algorithms increases device complexity

Engineering Contradiction:
Improveprefetch prediction reliabilityVSAvoidprediction algorithm complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The invention extracts the complex prediction logic from the prefetch unit and relocates it to the memory allocation procedure. By taking out the analytical work and embedding the results (extent information) directly in the pointer, the prefetch unit's complexity is reduced while maintaining high prediction reliability through the use of pre-computed extent data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The pointer structure serves itself by carrying extent information that automatically guides prefetching decisions. Instead of requiring complex external prediction algorithms, the pointer's embedded extent information enables the prefetch unit to make accurate decisions through simple comparison operations, making the system self-sufficient and reducing overall complexity.

Inventive Principle:
Principle #25Self-service

3Productivity

If prefetch units load data into caches before it is needed, then performance improves when predictions are correct, but cache eviction of actually needed data occurs when predictions are incorrect

Engineering Contradiction:
Improveprocessor performanceVSAvoiddata need prediction accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The extent information is preliminarily determined during memory allocation and embedded in the pointer. This pre-computed information accurately reflects the actual data object boundaries, enabling prefetch units to make precise predictions about which cache lines to load, thereby improving both performance and prediction accuracy simultaneously.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4579467A1Processors, methods, systems, and instructions to use data object extent information in pointers to inform predictors
Publication Date: 2025.07.02 INTEL CORP
  • EP4579467A1 patent drawingFigure 1
  • EP4579467A1 patent drawingFigure 2
  • EP4579467A1 patent drawingFigure 3~6

AI summary

A processor of an aspect includes a cache hierarchy and a memory access unit coupled with the cache hierarchy. The memory access unit is to perform a demand load based on a Y-bit pointer to cause a first one or more cache lines to be loaded from memory into the cache hierarchy. The Y-bit pointer has an X-bit virtual address field and a data object extent field in one or more of bits [Y-1:X]. The data object extent field is to store a value. The processor also includes a prefetch unit coupled with the cache hierarchy. The prefetch unit is to determine whether or not to prefetch a second one or more cache lines, adjacent to the first one or more cache lines, from memory into the cache hierarchy based at least in part on the value. In another aspect, the prefetch unit may additionally or alternatively scan code or data for a bit pattern in bits [Y-1:X] to identify likely pointers and prefetch data referenced by such identified pointer's memory addresses. Other processors, methods, systems, and instructions are disclosed.