Cache Prefetch Throttle Mechanism for Resource Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor-based systems, prefetching mechanisms often waste resources by issuing prefetch requests for data that is not subsequently used, leading to inefficiencies in cache management and increased latency due to unnecessary data copying from main memory to cache.

Innovation Solution

A method and system for throttling prefetch requests by analyzing prefetch stream history to determine which relative addresses have been accessed by previous streams, allowing only prefetch requests for addresses that have been accessed by other streams, thereby reducing unnecessary prefetching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If prefetch requests are issued for all predicted memory addresses, then cache hit rate is improved, but system resource usage increases due to unnecessary data copying

Engineering Contradiction:
Improvecache access speedVSAvoidsystem resource usage
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent implements a feedback mechanism by monitoring whether prefetched data is actually accessed by the processor. A counter tracks the number of accesses to each prefetched cache line, and this information feeds back into the prefetch decision logic. When the counter indicates low utilization, subsequent prefetch requests for similar patterns are suppressed, thereby reducing wasted resources while maintaining cache effectiveness for genuinely useful prefetches.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent dynamically adjusts prefetching parameters based on observed access patterns. Specifically, it modifies the prefetch threshold and prefetch distance parameters according to the utilization metrics of previously prefetched data. This adaptive parameter adjustment allows the system to optimize between aggressive prefetching (for high-utilization patterns) and conservative prefetching (for low-utilization patterns), resolving the contradiction between cache performance and resource efficiency.

Inventive Principle:
Principle #35Parameter changes

2Loss of time

If aggressive prefetching is used to populate cache lines, then average memory access latency is reduced, but cache management efficiency deteriorates due to unnecessary data copying

Engineering Contradiction:
Improvememory access latencyVSAvoidcache management efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent enables the cache system to self-regulate its prefetching behavior by automatically monitoring the utility of prefetched data and adjusting its own prefetch decisions accordingly. The system uses the access patterns of previously prefetched data to automatically suppress future prefetch requests for similar patterns, eliminating the need for external control mechanisms and improving cache management efficiency while maintaining low latency for beneficial prefetches.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent effectively discards unprefetched or underutilized prefetch patterns by suppressing further prefetch requests for them. The system identifies prefetch patterns that result in low cache line utilization and recovers resources by stopping the wasteful copying of such data, thereby improving cache management efficiency. Meanwhile, it continues aggressive prefetching for patterns that prove useful, maintaining low memory access latency.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If prefetch requests are issued for all predicted addresses, then data availability in cache is improved, but performance-per-Watt decreases due to wasted energy on unused data

Engineering Contradiction:
Improvedata availabilityVSAvoidperformance-per-Watt
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies partial prefetching by selectively issuing prefetch requests only for addresses that are likely to be useful based on monitored access patterns. Instead of prefetching all predicted addresses unconditionally, the system performs prefetching partially - only for patterns that have demonstrated utility - thereby reducing energy consumption while maintaining data availability for actually needed data.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system uses feedback from access pattern monitoring to guide prefetch decisions. By tracking whether prefetched data is accessed and feeding this information back into the prefetch logic, the system learns to issue prefetch requests only when likely to be beneficial. This feedback-driven approach ensures data availability for useful prefetches while eliminating energy-wasting prefetches for unused data, thus improving performance-per-Watt.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9116815B2Data cache prefetch throttle
Publication Date: 2015.08.25 ADVANCED MICRO DEVICES INC
  • US9116815B2 patent drawing
  • US9116815B2 patent drawing
  • US9116815B2 patent drawing

AI summary

The present invention provides a method and apparatus for throttling prefetch requests for a cache. One embodiment of the method includes selecting a sequence of relative addresses for prefetching data from a memory into lines of a cache in response to detecting a cache miss to a first address. The sequence of relative addresses is determined relative to the first address. This embodiment of the method also includes issuing a prefetch request for data from a memory address indicated by one of the sequence of relative addresses when at least one previous prefetch stream accessed prefetched data associated with this one of the sequence of relative addresses.