Snoop Filter Affinity Grouping for Cache Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current snoop filters in multiprocessor systems face resource contention and performance degradation due to limited entry sizes, leading to thrashing and excessive cache invalidations when processors engage in memory-intensive operations, causing bus cycles and processing time to be consumed by cache reloads.
Innovation Solution
Logical partitioning of the snoop filter into subsections dedicated to individual processors, with a pseudo-LRU or round-robin algorithm for selecting and updating entries to manage cache coherency, reducing contention and optimizing resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the snoop filter maintains a coherent directory of fixed size to track cache entries, then cache coherency is maintained, but resource contention increases and performance degrades when processors engage in memory-intensive operations
Solution Approach 1:
The snoop filter directory is divided into multiple affinity groups, with each group dedicated to tracking cache entries for a specific processor. This segmentation reduces the contention ratio for directory entries, allowing each processor to have its own dedicated tracking space without interfering with other processors' cache coherency tracking.
Solution Approach 2:
The patent introduces a new dimension of organization by mapping processors to affinity groups rather than using a single unified directory. This dimensional reorganization transforms the conflict from a one-dimensional resource pool into a multi-dimensional structure where each processor has dedicated tracking resources.
2Device complexity
If the snoop filter uses a fixed-size directory to track cache entries, then implementation is simple, but the directory becomes full quickly during memory-intensive operations causing thrashing
Solution Approach 1:
By segmenting the directory into processor-specific affinity groups, the system maintains simple fixed-size structures for each processor while collectively providing sufficient capacity to handle memory-intensive operations without thrashing.
Solution Approach 2:
The patent implements dynamic allocation of directory entries within each affinity group based on processor activity. When a processor needs to track new cache entries, the system dynamically assigns available entries within the processor's dedicated group, optimizing the use of tracking resources during varying workloads.
3Adaptability or versatility
If the snoop filter evicts entries to make space for new cache fills, then new data can be tracked, but cache reloads consume bus bandwidth and cause additional invalidations
Solution Approach 1:
The affinity group segmentation ensures that eviction operations are localized to each processor's dedicated group rather than affecting the entire directory. This reduces the scope of invalidation signals and minimizes bus bandwidth consumption during eviction operations.
Solution Approach 2:
The affinity groups act as intermediaries between the snoop filter and individual processors. When eviction is needed, the system first determines which affinity group to evict from, then sends targeted invalidation signals only to the affected processor, reducing unnecessary bus traffic and energy consumption.
Data Source
AI summary
The storage locations of a snoop filter are segregated into a number of groups, and some groups are associated with some processors in a system. When new data enter a cache line of a processor, one of the storage locations associated with the processor is selected for further operations.


