Filtering Redundant Software Prefetch Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems face performance degradation due to redundant software prefetch instructions, which consume processor resources without eliminating cache misses, while blindly filtering or disabling prefetchers also degrades performance by eliminating valid prefetches.

Innovation Solution

A system that selectively filters out redundant software prefetch instructions by collecting hit rates and utilizing learning and filter tables to determine whether prefetches are redundant, allowing only non-redundant instructions to execute, with the filtering threshold adjusted based on load-store unit utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software prefetch instructions are executed to eliminate cache misses, then cache hit rate is improved, but processor resource utilization deteriorates due to redundant prefetches consuming execution pipeline stages and load-store unit bandwidth

Engineering Contradiction:
Improvecache hit rateVSAvoidprocessor resource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically changes the filtering threshold parameter based on load-store unit utilization rate. When utilization exceeds a threshold, the system becomes more aggressive in filtering prefetch instructions. This parameter adjustment resolves the contradiction by adapting the filtering strictness to current system conditions, eliminating redundant prefetches when resources are constrained while preserving beneficial prefetches when resources are available

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements feedback by monitoring load-store unit utilization rate and cache hit rates, then using this information to dynamically adjust filtering decisions. The utilization rate serves as feedback about system state, which informs subsequent filtering threshold adjustments. This closed-loop control resolves the contradiction by continuously adapting to actual system performance and resource availability

Inventive Principle:
Principle #23Feedback

2Productivity

If all software prefetch instructions are filtered out to eliminate redundancy, then processor resource consumption is reduced, but cache miss elimination capability deteriorates because some valid prefetches are also eliminated

Engineering Contradiction:
Improveprocessor resource consumptionVSAvoidcache miss elimination capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies different filtering qualities to different prefetch instructions based on their individual characteristics. Rather than uniformly filtering all prefetches, the system evaluates each instruction's likelihood of being redundant and applies filtering selectively. This local differentiation resolves the contradiction by preserving valid prefetches with high cache hit rates while eliminating redundant ones, thus maintaining cache miss elimination capability while reducing resource consumption

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The filtering mechanism is dynamic rather than static, adapting its behavior based on monitored performance metrics. The filtering threshold is not fixed but changes dynamically based on load-store unit utilization and observed cache hit rates. This dynamic approach resolves the contradiction by allowing the system to be selective about which prefetches to filter, maintaining effectiveness while reducing waste

Inventive Principle:
Principle #15Dynamics

3Productivity

If hardware prefetchers are disabled to eliminate redundant prefetches, then processor resource consumption is reduced, but cache miss elimination capability deteriorates because hardware prefetchers can eliminate cache misses that software prefetches cannot

Engineering Contradiction:
Improveprocessor resource consumptionVSAvoidcache miss elimination capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system merges software prefetch filtering with hardware prefetcher operation, allowing both mechanisms to work together synergistically. Rather than disabling hardware prefetchers, the system filters software prefetch instructions to reduce redundancy while letting hardware prefetchers continue their pattern-based prefetching. This combination resolves the contradiction by eliminating redundant software prefetches (reducing resource consumption) while preserving hardware prefetcher capability (maintaining cache miss elimination)

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system takes partial action by filtering only the redundant portion of software prefetch instructions rather than disabling all prefetching mechanisms. The filtering is applied selectively based on observed redundancy patterns, allowing partial elimination of harmful prefetches while preserving useful ones. This partial approach resolves the contradiction by addressing the redundancy problem without sacrificing overall prefetching effectiveness

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9442727B2Filtering out redundant software prefetch instructions
Publication Date: 2016.09.13 ORACLE INT CORP
  • US9442727B2 patent drawing
  • US9442727B2 patent drawing
  • US9442727B2 patent drawing

AI summary

The disclosed embodiments relate to a system that selectively filters out redundant software prefetch instructions during execution of a program on a processor. During execution of the program, the system collects information associated with hit rates for individual software prefetch instructions as the individual software prefetch instructions are executed, wherein a software prefetch instruction is redundant if the software prefetch instruction accesses a cache line that has already been fetched from memory. As software prefetch instructions are encountered during execution of the program, the system selectively filters out individual software prefetch instructions that are likely to be redundant based on the collected information, so that likely redundant software prefetch instructions are not executed by the processor.