Dual Prefetcher Coordination for Adaptive Cache Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face inefficiencies in data prefetching, leading to slower program execution due to delays in accessing data not stored in close caches, and existing solutions fail to effectively manage mid-level cache prefetcher behavior, resulting in excessive prefetches and performance degradation in bandwidth-constrained situations.

Innovation Solution

The implementation of a dual prefetcher system, comprising a baseline prefetcher and a secondary prefetcher, which selectively enables and disables based on spatial locality and coverage metrics to optimize prefetch requests, allowing for adaptive selection between the two prefetchers to improve instruction execution and reduce memory bandwidth and energy consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single prefetcher is used, then device complexity is reduced, but productivity decreases due to inability to adapt to different spatial locality patterns

Engineering Contradiction:
Improveadaptability to spatial locality patternsVSAvoidprefetcher system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The prefetcher is segmented into two distinct components: a baseline prefetcher that handles simple spatial locality patterns and a secondary prefetcher that handles complex patterns. Each prefetcher is optimized for specific workloads, allowing the system to adapt to different access patterns without requiring a single overly complex prefetcher.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically selects between the baseline prefetcher and secondary prefetcher based on detected spatial locality patterns. The selection is not static but adapts runtime conditions, enabling the system to optimize performance for different workload characteristics while maintaining manageable complexity through conditional activation.

Inventive Principle:
Principle #15Dynamics

2Productivity

If prefetching is aggressively enabled, then productivity improves through better data availability, but loss of energy increases due to excessive prefetch operations

Engineering Contradiction:
Improveinstructions executed per cycleVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system monitors spatial locality patterns and prefetch accuracy as feedback signals. Based on this feedback, it dynamically adjusts prefetcher selection and activation, enabling aggressive prefetching only when patterns indicate high likelihood of success, thereby improving productivity while avoiding energy waste from ineffective prefetch operations.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes operational parameters by switching between different prefetcher configurations based on detected access patterns. When complex spatial locality is detected, it activates the secondary prefetcher with appropriate parameters; otherwise, it uses the baseline prefetcher or disables prefetching, thus optimizing the balance between productivity and energy consumption.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If multiple prefetchers operate simultaneously, then adaptability to different access patterns improves, but device complexity and resource consumption increase

Engineering Contradiction:
Improvecoverage of access patternsVSAvoidprefetcher coordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system extracts the complex pattern recognition functionality into a separate secondary prefetcher that operates independently from the baseline prefetcher. This extraction allows each prefetcher to specialize in specific patterns without the complexity of coordinating multiple general-purpose prefetchers, simplifying the overall system architecture while maintaining comprehensive pattern coverage.

Inventive Principle:
Principle #2Taking out (Extraction)

4Loss of energy

If prefetching is disabled in bandwidth-constrained situations, then loss of energy is reduced, but productivity decreases due to memory access delays

Engineering Contradiction:
Improvememory bandwidth consumptionVSAvoidprogram execution speed
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The system dynamically adjusts prefetcher activation based on detected spatial locality patterns and bandwidth conditions. When complex spatial locality is detected, it activates the secondary prefetcher to improve productivity without proportionally increasing bandwidth consumption, as the secondary prefetcher is more accurate and generates fewer unnecessary prefetch requests.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10678692B2Method and system for coordinating baseline and secondary prefetchers
Publication Date: 2020.06.09 INTEL CORP
  • US10678692B2 patent drawing
  • US10678692B2 patent drawing
  • US10678692B2 patent drawing

AI summary

In one embodiment, a processor comprises a first prefetcher to generate prefetch requests to prefetch data into a mid-level cache; a second prefetcher to generate prefetch requests to prefetch data into the mid-level cache; and a prefetcher selector to select a prefetcher configuration for the first prefetcher and the second prefetcher based on at least one memory access metric, wherein the prefetcher configuration is to specify whether the first prefetcher is to be enabled to issue, to the mid-level cache, prefetch requests for data of a particular page and whether the second prefetcher is to be enabled to issue, to the mid-level cache, prefetch requests for data of the particular page.