Snoop Filter E/M Line Replacement for Cache Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor systems with multiple caches, maintaining data coherency is challenging due to limited directory space in snoop filters, which can lead to outdated states and increased cache miss rates when replacing entries, especially when dealing with exclusive/modified (E/M) cache lines.
Innovation Solution
Implementing an E/M line replacement technique that pre-selects and prioritizes E/M entries for replacement, using a threshold-based approach to minimize cache miss rates and reduce back-invalidation messages, along with a conflict FIFO to manage set conflicts and select replacement entries among all entries when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If directory space is increased to record more cache line states, then data coherency tracking capability is improved, but device complexity and cost increase
Solution Approach 1:
The directory is segmented into multiple sets, each containing a limited number of entries. This segmentation allows the system to manage directory space efficiently while maintaining the ability to track cache line states across different memory addresses. Each set independently manages its own entries, reducing the complexity of managing a single large directory structure.
Solution Approach 2:
The patent introduces a set index dimension to organize directory entries. Instead of a flat one-dimensional directory structure, entries are organized into multiple sets indexed by set index bits from the memory address. This dimensional organization allows efficient mapping of memory addresses to directory entries while maintaining manageable directory size.
2Reliability
If directory space is increased to record more cache line states, then data coherency tracking capability is improved, but manufacturing cost increases
Solution Approach 1:
The directory is segmented into multiple sets, each containing a limited number of entries. This segmentation allows the system to manage directory space efficiently while maintaining the ability to track cache line states across different memory addresses. Each set independently manages its own entries, reducing the complexity of managing a single large directory structure.
Solution Approach 2:
The patent introduces a set index dimension to organize directory entries. Instead of a flat one-dimensional directory structure, entries are organized into multiple sets indexed by set index bits from the memory address. This dimensional organization allows efficient mapping of memory addresses to directory entries while maintaining manageable directory size.
3Device complexity
If random replacement is used when directory is full, then implementation simplicity is improved, but cache miss rate increases
Solution Approach 1:
Before performing random replacement, the system performs a preliminary check to determine if the requested set contains any valid entries. This preliminary action allows the system to avoid random replacement when possible and only perform it when necessary, thereby reducing cache miss rates while maintaining implementation simplicity.
Solution Approach 2:
The replacement policy is made dynamic by adapting the replacement strategy based on the state of the requested set. When the set contains valid entries, random replacement is used. When the set is empty or contains only invalid entries, no replacement is needed. This dynamic approach optimizes performance while keeping the implementation relatively simple.
Data Source
AI summary
A snoop filter maintains data coherency information for multiple caches in a multi-processor system. When a new request for a memory line arrives, an entry of the snoop filter is selected for replacement if there is no available slot in the snoop filter to accommodate the new request. The selected entry is among the entries predicted to be short-lived based on a coherency state. An invalidation message is sent to the one of the caches with which the selected entry is associated.


