Snoop Filter Associative Mapping Reduces Castout Penalties

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor systems, existing snoop filters face inefficiencies due to high castout penalties when handling shared data, leading to increased latency and reduced processing speed as they evict cachelines, forcing processors to retrieve data from main memory instead of internal caches.

Innovation Solution

The proposed snoop filter design tracks shared accesses until a penalty is encountered, retains castout tags to avoid discarding precise state information, and cancels castout snoops for shared requests, allowing processors to continue accessing cachelines from internal caches, thus reducing unnecessary evictions and maintaining coherency without discarding precise state information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a snoop filter uses direct mapped policy to track only one tag at a given tag index, then the snoop filter can make room for new tags by running castout cycles, but this causes unnecessary evictions of cachelines leading to performance penalties

Engineering Contradiction:
Improvesnoop filter efficiencyVSAvoidcastout penalty latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the mapping policy from direct mapped to associative mapping, allowing multiple tags to be stored at each tag index. This enables the snoop filter to track shared data without evicting cachelines, thereby reducing castout penalties and improving productivity while maintaining coherency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces a new dimension to the snoop filter by implementing associative mapping instead of direct mapping. This allows the filter to store multiple tags at each index, effectively adding capacity without increasing the number of indices, thus reducing evictions and improving performance.

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

2Device complexity

If the snoop filter evicts cachelines to make room for new tags, then space is made in the tag cache, but processors must retrieve data from main memory instead of internal caches

Engineering Contradiction:
Improvetag cache managementVSAvoiddata access speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent changes the mapping strategy to associative mapping, which allows multiple tags to coexist at each index. This eliminates the need for evictions and maintains cachelines in the snoop filter, enabling processors to access data from internal caches at high speed without retrieving from main memory.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the snoop filter tracks all shared data accesses, then coherency is maintained across bus segments, but the number of castout operations increases reducing bus bandwidth availability

Engineering Contradiction:
Improvememory coherencyVSAvoidbus bandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the tracking mechanism by implementing associative mapping with multiple tags per index. This allows the snoop filter to track shared data without evicting existing tags, maintaining coherency while reducing the number of castout operations and preserving bus bandwidth for productive traffic.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7502895B2Techniques for reducing castouts in a snoop filter
Publication Date: 2009.03.10 VALTRUS INNOVATIONS LTD
  • US7502895B2 patent drawing
  • US7502895B2 patent drawing
  • US7502895B2 patent drawing

AI summary

Method and apparatus for reducing castouts in a snoop filter. More specifically, there is provided a system comprising a plurality of buses, one or more processors coupled to each of the plurality of buses and a snoop filter. The snoop filter configured to eliminate unnecessary snoops of the plurality of buses, and further configured to track requests from the one or more processors only if tracking the request does not result in a castout penalty.