Patrol Snoop Sequencer for Cache Eviction Candidate Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache eviction algorithms, such as LRU and pseudo random, often evict frequently used cache lines, leading to inefficiencies and increased wait times for processors as they need to retrieve evicted lines from higher levels of memory, due to the inability to accurately identify which cache lines are no longer needed in lower level caches.

Innovation Solution

A method and apparatus that uses a patrol snoop sequencer to identify cache lines in the higher level cache that do not exist in the lower level cache, marking them as eviction candidates and preferentially evicting these lines, thereby reducing unnecessary evictions of frequently used data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional cache eviction algorithms (LRU or pseudo random) are used, then the cache replacement process is simple and fast, but frequently used cache lines are incorrectly evicted leading to increased processor wait times

Engineering Contradiction:
Improvecache line replacement efficiencyVSAvoidprocessor wait time for evicted cache lines
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary snoop reads during idle periods to detect whether cache lines in the higher level cache still exist in the lower level cache before eviction occurs. This advance detection allows the replacement logic to identify and protect frequently used cache lines from being evicted, resolving the contradiction between simple replacement processes and avoiding unnecessary evictions of needed data.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the higher level cache continuously monitors lower level cache contents, then accurate identification of eviction candidates is achieved, but system complexity and overhead increase

Engineering Contradiction:
Improveeviction candidate identification accuracyVSAvoidcache monitoring system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Instead of continuous monitoring, the system performs periodic snoop reads during idle periods when the higher level cache directory is not being accessed. This periodic detection mechanism achieves accurate identification of eviction candidates while minimizing system complexity and overhead, as the monitoring only occurs when no other operations are interfering with cache directories or memory bus.

Inventive Principle:
Principle #19Periodic action

3Loss of time

If snoop reads are performed during busy periods, then eviction candidate identification is more timely, but cache directory access conflicts and memory bus contention increase

Engineering Contradiction:
Improveeviction candidate detection timingVSAvoidcache operation throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system schedules snoop reads during idle periods when cache directories and memory bus are not being used by other operations. This timing strategy avoids conflicts and contentions while still achieving timely detection of eviction candidates, as the periodic checks occur at natural gaps in the cache operation timeline rather than interfering with active processing.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentEP1977322B1Patrol snooping for higher level cache eviction candidate identification
Publication Date: 2010.05.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP1977322B1 patent drawingFigure 1~2
  • EP1977322B1 patent drawingFigure 3A~3C
  • EP1977322B1 patent drawingFigure 4A~4B

AI summary

A computer system having patrol snoop sequencer that sequences through addresses of cache lines held in a higher level cache, making snoop reads using those addresses to a lower level cache. If a particular cache line held in the higher level cache is not held in the lower level cache, the particular cache line is identified as an eviction candidate in the higher level cache when a new cache line must be loaded into the higher level cache.