Cache Prefetch Manager for Strided Stream Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies in managing memory access requests due to unnecessary prefetch requests, which can lead to cache pollution, as they lack effective methods to distinguish between strided streams and correlated prefetching patterns.

Innovation Solution

A method is introduced to manage memory access requests by storing stream information and determining whether to make prefetch requests based on recognized strided streams and their associated prefetch results, as well as a history of past prefetch requests, to reduce useless prefetches and improve cache efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If prefetch requests are made for all memory access requests, then future memory requests will hit in cache levels, but unnecessary prefetch requests cause cache pollution

Engineering Contradiction:
Improvecache hit rateVSAvoidcache pollution
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent changes the parameter of prefetch decision-making from a blanket approach to a selective approach based on stream type identification. By detecting whether a memory access pattern is a strided stream or correlated prefetching pattern, the system adjusts the prefetch behavior parameter accordingly - enabling prefetch for strided streams and disabling it for correlated patterns, thus resolving the contradiction between improving cache hit rate and preventing cache pollution

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements feedback mechanisms by monitoring memory access patterns and using history of past prefetch requests to determine future prefetch decisions. The system learns from previous prefetch outcomes and adjusts its behavior based on whether past prefetches were beneficial or caused pollution, creating a closed-loop control system that balances cache hit rate improvement with pollution prevention

Inventive Principle:
Principle #23Feedback

2Measurement precision

If separate training mechanisms are performed for each independent stream, then each stream's stride value can be detected, but the system complexity increases

Engineering Contradiction:
Improvestride value detection accuracyVSAvoidprefetch management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a unified prefetch management system that handles both strided streams and correlated prefetching patterns through a single framework. Instead of maintaining completely separate training mechanisms for each stream type, the system uses a universal detection and decision-making process that can identify and manage different stream types, thereby reducing overall system complexity while maintaining detection accuracy

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10558577B2Managing memory access requests with prefetch for streams
Publication Date: 2020.02.11 MARVELL ASIA PTE LTD
  • US10558577B2 patent drawing
  • US10558577B2 patent drawing
  • US10558577B2 patent drawing

AI summary

Managing memory access requests to a cache system including one or more cache levels that are configured to store cache lines that correspond to memory blocks in a main memory includes: storing stream information identifying recognized streams that were recognized based on previously received memory access requests, where one or more of the recognized streams comprise strided streams that each have an associated strided prefetch result corresponding to a stride that is larger than or equal to a size of a single cache line; and determining whether or not a next cache line prefetch request corresponding to a particular memory access request will be made based at least in part on whether or not the particular memory access request matches a strided prefetch result for at least one strided stream, and a history of past next cache line prefetch requests.