Dynamic Grain Snoop Filter for Cache Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cache coherency issues arise in data processing systems with multiple caches and shared resources, where data can become outdated due to updates by other devices, leading to stale data being read by second devices, especially in systems with write-back caches and coarse grain snoop filters that result in unnecessary snooping.
Innovation Solution
A snoop filter with a presence field that dynamically adjusts between fine grain and coarse grain configurations, using a format flag to interpret the presence data as either a unique node identifier or a subset indicator, reducing unnecessary snoop messages by sending targeted snoop messages only when data is unique or shared among fewer nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If coarse grain snoop filters are used, then storage requirements are reduced, but unnecessary snooping increases
Solution Approach 1:
The snoop filter dynamically switches between coarse grain and fine grain modes based on the current data sharing state. When data becomes unique to a single cache, the filter transitions to fine grain mode to enable precise tracking and reduce unnecessary snooping. When data is shared among multiple caches, it switches to coarse grain mode to save storage space. This dynamic adaptation resolves the contradiction by adjusting the grain level according to actual system needs.
Solution Approach 2:
The invention changes the parameter of presence vector granularity from static to variable. By using a format flag to indicate whether the presence vector should be interpreted as coarse grain or fine grain, the system can adjust the interpretation parameter based on data ownership state, thereby optimizing both storage efficiency and snoop traffic reduction.
2Measurement precision
If fine grain snoop filters are used, then snoop precision is improved, but storage requirements increase
Solution Approach 1:
The snoop filter dynamically switches between coarse grain and fine grain modes based on the current data sharing state. When data becomes unique to a single cache, the filter transitions to fine grain mode to enable precise tracking and reduce unnecessary snooping. When data is shared among multiple caches, it switches to coarse grain mode to save storage space. This dynamic adaptation resolves the contradiction by adjusting the grain level according to actual system needs.
Solution Approach 2:
The invention changes the parameter of presence vector granularity from static to variable. By using a format flag to indicate whether the presence vector should be interpreted as coarse grain or fine grain, the system can adjust the interpretation parameter based on data ownership state, thereby optimizing both storage efficiency and snoop traffic reduction.
3Device complexity
If coarse grain snoop filters are used, then device complexity is reduced, but cache coherency monitoring effectiveness decreases
Solution Approach 1:
The snoop filter dynamically switches between coarse grain and fine grain modes based on the current data sharing state. When data becomes unique to a single cache, the filter transitions to fine grain mode to enable precise tracking and reduce unnecessary snooping. When data is shared among multiple caches, it switches to coarse grain mode to save storage space. This dynamic adaptation resolves the contradiction by adjusting the grain level according to actual system needs.
Solution Approach 2:
The system uses feedback from the cache coherency state and data ownership information to dynamically adjust the snoop filter granularity. The format flag serves as a feedback mechanism that indicates whether the presence vector should be interpreted as coarse grain or fine grain, allowing the system to adapt its monitoring effectiveness based on actual coherency requirements.
Data Source
AI summary
A data processing system includes a snoop filter organized as a number of lines, each storing an address tag associated with the address of data stored in one or more caches of the system, a coherency state of the data, and presence data. A snoop controller sends snoop messages in response to data access requests. The presence data is configurable in a first format, in which the value of a bit in the presence data is indicative of a subset of the nodes for which at least one node in the subset has a copy of the data in its local cache, and in a second format, in which the presence data comprises a unique identifier of a node having a copy of the data in its local cache. The snoop controller sends snoop messages to the nodes indicated by the presence data.


