Producer Prefetch Filter for Reducing Bandwidth Waste

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Prefetching in data processing systems faces challenges with irregular and non-repeating access patterns, particularly in producer-consumer load relationships, where variability in data values leads to unpredictable memory access patterns, making it difficult to identify and schedule effective prefetches.

Innovation Solution

The implementation of indirect prefetch circuitry with a producer prefetch filter table and filtering circuitry that suppresses redundant producer prefetches by tracking previous addresses and distinguishing different chunks of data within a cache line, ensuring only necessary prefetches are initiated.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If producer prefetches are initiated for every consumer load request, then cache hit rates improve, but bandwidth waste and redundant prefetches increase

Engineering Contradiction:
Improvecache hit rateVSAvoidbandwidth waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The producer prefetch filter table stores information about previously initiated producer prefetches and provides feedback to the indirect prefetch circuitry. When a new producer prefetch request arrives, the filter table is consulted to determine if an identical prefetch has already been initiated, allowing the system to suppress redundant requests and avoid bandwidth waste while maintaining high cache hit rates.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If producer prefetches are suppressed to reduce redundancy, then bandwidth efficiency improves, but cache hit rates deteriorate

Engineering Contradiction:
Improvebandwidth efficiencyVSAvoidcache hit rate
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The filter table provides selective feedback by comparing new prefetch requests against stored entries. It suppresses only those prefetches that are identified as redundant through exact matching, while allowing non-redundant prefetches to proceed. This ensures bandwidth efficiency is improved without compromising cache hit rates for necessary prefetches.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If full producer addresses are used for filter table lookups, then prefetch accuracy improves, but lookup complexity and time increase

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

Solution Approach 1:

The producer address is segmented into multiple fields, with the producer address field used for the filter table lookup. This segmentation allows the lookup operation to focus on the relevant portion of the address that identifies the producer, reducing lookup complexity and time while maintaining sufficient accuracy to identify redundant prefetches.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11775440B2Producer prefetch filter
Publication Date: 2023.10.03 ARM LTD
  • US11775440B2 patent drawing
  • US11775440B2 patent drawing
  • US11775440B2 patent drawing

AI summary

Indirect prefetch circuitry initiates a producer prefetch requesting return of producer data having a producer address and at least one consumer prefetch to request prefetching of consumer data having a consumer address derived from the producer data. A producer prefetch filter table stores producer filter entries indicative of previous producer addresses of previous producer prefetches. Initiation of a requested producer prefetch for producer data having a requested producer address is suppressed when a lookup of the producer prefetch filter table determines that the requested producer address hits against a producer filter entry of the table. The lookup of the producer prefetch filter table for the requested producer address depends on a subset of bits of the requested producer address including at least one bit which distinguishes different chunks of data within a same cache line.