Instruction Prefetcher Trigger Selection Using Root Function Depth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetchers in microprocessors suffer from reduced accuracy and coverage due to statically chosen trigger points that do not consider the functional organization of the code, leading to unnecessary prefetches and missed prefetch opportunities.

Innovation Solution

A correlation prefetcher with dynamic trigger point selection based on the concept of a root function, which is the deepest function on the call stack between two points in the instruction stream, is used to determine a training signature for prefetch requests, improving accuracy and coverage by considering the functional organization of the code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a statically chosen trigger point is used in the prefetcher, then the prefetcher structure is simple, but the prefetch accuracy and coverage are reduced

Engineering Contradiction:
Improveprefetcher structureVSAvoidprefetch accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent applies dynamics by replacing the static trigger point with a dynamic trigger point selection mechanism. The trigger point is no longer fixed but is determined at runtime based on the current call stack depth and function information. This allows the prefetcher to adapt to different execution contexts and code paths, significantly improving prefetch accuracy and coverage while maintaining reasonable structural complexity through the use of call stack metadata.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If a dynamically selected trigger point based on call stack depth is used, then prefetch accuracy and coverage are improved, but device complexity increases

Engineering Contradiction:
Improveprefetch accuracyVSAvoidtrigger point selection mechanism
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent uses the call stack as an intermediary structure to bridge the gap between the current execution context and the prefetch decision. By maintaining call stack information (depth and function identifiers) as metadata, the system can make informed prefetch decisions without requiring complex analysis of the entire program. The call stack serves as a pre-computed intermediary that simplifies the trigger point selection process while enabling accurate, context-aware prefetching.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If prefetches are triggered at fixed intervals, then implementation is simple, but unnecessary prefetches and missed opportunities occur

Engineering Contradiction:
Improveimplementation simplicityVSAvoidprefetch effectiveness
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies parameter changes by making the trigger point parameter dynamic rather than fixed. Instead of using a constant interval or fixed position, the trigger point is adjusted based on runtime parameters such as call stack depth and function information. This allows the prefetcher to optimize its behavior for each specific execution context, eliminating unnecessary prefetches in certain conditions while capturing missed opportunities in others, thereby significantly improving prefetch effectiveness.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12468532B1Prefetcher circuit with dynamic trigger point
Publication Date: 2025.11.11 APPLE INC
  • US12468532B1 patent drawing
  • US12468532B1 patent drawing
  • US12468532B1 patent drawing

AI summary

A prefetcher circuit with dynamic, root function-based trigger point selection is disclosed. A processor includes an instruction cache and a call stack having entries that store indications of functions called in an instruction stream. A prefetcher is configured to, in response to detection of an instruction cache miss, determine, based on entries in the call stack, a depth of a deepest function of the sequence of functions that remains in the call stack over an interval preceding the instruction cache miss. The prefetcher is further configured to select a trigger point based on the determined depth, and select a training signature based on the selected trigger point. In response to subsequently detecting the training signature, the prefetcher is configured to generate a prefetch request to prefetch instructions into the instruction cache.