Secondary Prefetch Circuit Coverage Feedback for Primary Prefetch Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processors face challenges in balancing prefetching to minimize memory latency while avoiding inaccurate prefetching, which can increase latency and power consumption, especially in portable devices where energy is limited.

Innovation Solution

A processor with multiple prefetch circuits, where a primary prefetch circuit generates initial requests and invokes a secondary prefetch circuit with a different mechanism, reducing prefetch requests when the secondary circuit reaches a high confidence level, thereby minimizing overprefetching and competition.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple prefetch circuits are used to improve prefetch accuracy, then prefetch accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveprefetch accuracyVSAvoiddevice complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The prefetch circuit is divided into multiple independent prefetch circuits, each implementing a different prefetch mechanism. Each circuit operates independently to prefetch different data streams, improving overall prefetch accuracy without requiring complex coordination between circuits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple prefetch circuits are implemented to handle various data stream patterns and access characteristics. Each circuit serves a specific function in the prefetching process, and collectively they provide comprehensive prefetch coverage for different workload scenarios.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If multiple prefetch circuits operate independently to handle different data streams, then prefetch accuracy is improved, but competition for same data streams increases causing overprefetching

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

Solution Approach 1:

A coverage indication mechanism is implemented where prefetch circuits provide feedback about their prefetching activity. When a circuit determines it has successfully prefetched data for a particular access pattern, it signals this to other circuits, allowing them to reduce or stop their own prefetching for the same pattern, thereby preventing overprefetching and reducing power consumption.

Inventive Principle:
Principle #23Feedback

3Loss of time

If prefetching is performed to reduce memory latency, then memory latency is reduced, but inaccurate prefetching causes cache misses increasing latency

Engineering Contradiction:
Improvememory latencyVSAvoidprefetch accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The prefetching function is segmented into multiple specialized circuits, each focusing on specific data stream patterns. This segmentation allows each circuit to develop and refine its own prediction algorithms for particular access patterns, improving overall prefetch accuracy and reducing inaccurate prefetches that cause cache misses.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each prefetch circuit is optimized for specific local characteristics of data streams it handles. Rather than using a single generic prefetch mechanism, each circuit applies tailored prediction strategies suited to its particular data stream pattern, improving prefetch accuracy for each segment of the workload.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11176045B2Secondary prefetch circuit that reports coverage to a primary prefetch circuit to limit prefetching by primary prefetch circuit
Publication Date: 2021.11.16 APPLE INC
  • US11176045B2 patent drawing
  • US11176045B2 patent drawing
  • US11176045B2 patent drawing

AI summary

In an embodiment, a processor includes a plurality of prefetch circuits configured to prefetch data into a data cache. A primary prefetch circuit may be configured to generate first prefetch requests in response to a demand access, and may be configured to invoke a second prefetch circuit in response to the demand access. The second prefetch circuit may implement a different prefetch mechanism than the first prefetch circuit. If the second prefetch circuit reaches a threshold confidence level in prefetching for the demand access, the second prefetch circuit may communicate an indication to the primary prefetch circuit. The primary prefetch circuit may reduce a number of prefetch requests generated for the demand access responsive to the communication from the second prefetch circuit.