Data Prefetcher Using Bounding Box for Cache Line Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional microprocessor prefetchers struggle to effectively prefetch data for programs with memory access patterns that do not exhibit a clear trend over small time windows but show a clear trend when examined in larger samples, leading to inefficient cache hit rates due to chaotic access patterns caused by program construction or out-of-order execution.

Innovation Solution

A data prefetcher is designed to detect the predominant direction and pattern of recent memory accesses by maintaining the largest and smallest addresses and their changes within a memory block, allowing it to prefetch cache lines into the first-level cache based on the detected trend, using a bounding box approach to analyze access patterns without temporal ordering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional prefetchers use small time windows to detect access patterns, then they can respond quickly to memory access changes, but they fail to detect clear trends in programs with chaotic access patterns

Engineering Contradiction:
Improveresponse speed to memory access changesVSAvoidaccuracy of access pattern detection
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The patent transitions from temporal analysis (small time windows) to spatial analysis (bounding box approach). By examining the spatial distribution of memory addresses within a memory block and calculating the bounding box that encloses all accessed addresses, the system can detect access patterns regardless of temporal reordering. This dimensional shift allows the prefetcher to identify predominant directions (upward, downward, or mixed) and patterns (sequential, strided, or random) even when addresses appear chaotic in time-based views.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If prefetchers prefetch more cache lines to improve cache hit rate, then more data is available for future accesses, but unnecessary cache lines consume valuable cache space

Engineering Contradiction:
Improvecache hit rateVSAvoidcache space utilization
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent applies local quality by making prefetching decisions specific to each memory block rather than using a uniform approach. By analyzing the bounding box of each memory block and determining its specific access pattern (sequential, strided, random, upward, downward, or mixed), the system tailors prefetching behavior to local characteristics. This enables precise prefetching that adapts to the actual access behavior of each memory region, avoiding both over-prefetching and under-prefetching.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes prefetching parameters based on detected access patterns. When a clear predominant direction is detected, the prefetcher adjusts the number and direction of cache lines to prefetch. When access patterns are chaotic or mixed, the system reduces or eliminates prefetching for that block. This parameter adaptation allows the prefetcher to optimize cache space utilization while maintaining high cache hit rates by matching prefetching intensity to actual access behavior.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2372560B1Combined L2 cache and L1D cache prefetcher
Publication Date: 2018.05.09 VIA TECH INC
  • EP2372560B1 patent drawingFigure 1
  • EP2372560B1 patent drawingFigure 2
  • EP2372560B1 patent drawingFigure 3

AI summary

A microprocessor includes a first-level cache memory, a second-level cache memory, and a data prefetcher that detects a predominant direction and pattern of recent memory accesses presented to the second-level cache memory and prefetches cache lines into the second-level cache memory based on the predominant direction and pattern. The data prefetcher also receives from the first-level cache memory an address of a memory access received by the first-level cache memory, wherein the address implicates a cache line. The data prefetcher also determines one or more cache lines indicated by the pattern beyond the implicated cache line in the predominant direction. The data prefetcher also causes the one or more cache lines to be prefetched into the first-level cache memory.