Snoop Filter Affinity Grouping for Cache Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecache coherencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

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

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

Engineering Contradiction:
Improvesnoop filter implementationVSAvoidprocessing time
Core Design Contradiction:
Device complexityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvecache entry managementVSAvoidbus bandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7590804B2Pseudo least recently used replacement/allocation scheme in request agent affinitive set-associative snoop filter
Publication Date: 2009.09.15 INTEL CORP
  • US7590804B2 patent drawing
  • US7590804B2 patent drawing
  • US7590804B2 patent drawing

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.