Patrol Snoop Sequencer for Cache Eviction Candidate Identification
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
Figure 1~2
Figure 3A~3C
Figure 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.