Miss-Driven Instruction Prefetching Using Bloom Filters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing instruction prefetching methods exhibit reactive behavior due to power and timing complexity issues, leading to inefficient prefetching patterns where a miss is observed, then prefetched on the second pass, and another miss occurs if the trigger cache line was not a miss, making it difficult to effectively predict and manage instruction cache misses.

Innovation Solution

Implementing a miss-driven instruction prefetching method that uses a bloom filter to track prior icache misses, allowing the processor to proactively prefetch instructions even if the request hit or missed in the instruction cache, by consulting the bloom filter on future icache accesses and treating hits as misses to improve prefetching efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If instruction prefetching is triggered purely on icache misses, then power consumption is reduced and timing complexity is simplified, but prefetching accuracy deteriorates and reactive behavior increases

Engineering Contradiction:
Improvepower consumptionVSAvoidprefetching accuracy
Core Design Contradiction:
Use of energy by moving objectVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by proactively prefetching instructions based on prior miss patterns stored in a bloom filter, rather than waiting for actual misses to occur. The system identifies instructions that are likely to be missed in future iterations and prefetches them in advance, transforming the reactive prefetching approach into a proactive one that improves accuracy without significantly increasing power consumption.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If instruction prefetching is triggered purely on icache misses, then device complexity is reduced, but productivity deteriorates due to repeated misses

Engineering Contradiction:
Improvetiming complexityVSAvoidprefetching efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent uses a bloom filter to store copies of prior miss patterns rather than maintaining complex state machine logic. This copying approach allows the system to efficiently query whether an instruction should be prefetched by checking the bloom filter, significantly reducing device complexity while improving prefetching efficiency through pattern recognition across multiple iterations.

Inventive Principle:
Principle #26Copying

3Use of energy by moving object

If reactive prefetching is used, then power consumption is reduced, but loss of time increases due to repeated cache misses

Engineering Contradiction:
Improvepower consumptionVSAvoidtime for handling cache misses
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent implements feedback by using bloom filters to store historical miss information and applying this feedback to future prefetching decisions. The system continuously learns from past miss patterns and uses this information to proactively prefetch instructions that are likely to be needed, reducing both power consumption and time loss by avoiding repeated cache misses through intelligent pattern recognition.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11822922B2Miss-driven instruction prefetching
Publication Date: 2023.11.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11822922B2 patent drawing
  • US11822922B2 patent drawing
  • US11822922B2 patent drawing

AI summary

A processor may initialize a fetch of a first instruction. The processor may determine whether there is an icache miss for the first instruction. The processor may fetch the next instruction from a cache.