Partial-Vector Snoop Filter for Low-Overhead Cache Coherence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor systems, existing cache coherence mechanisms suffer from over-snooping penalties, leading to increased latency, bandwidth consumption, and energy waste due to imprecise tracking of cache coherence, particularly when dealing with a large number of agents sharing data.
Innovation Solution
Implementing a hybrid snoop filter (SFT) that switches between precise and imprecise tracking modes based on the number of agents sharing coherence granules, using partial vectors (PVECs) and dynamic allocation of extra SFT entries to reduce overhead, while leveraging software scheduling to minimize inter-agent data sharing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If imprecise tracking of cache coherence is used, then device complexity is reduced, but over-snooping penalties increase leading to increased latency, bandwidth consumption, and energy waste
Solution Approach 1:
The patent segments the tracking mechanism into two distinct modes: precise tracking mode for small numbers of agents and imprecise tracking mode for large numbers of agents. This segmentation allows the system to adapt the level of tracking detail based on the specific operational context, reducing complexity when full precision is not needed while maintaining precision when necessary, thereby reducing overall energy consumption from unnecessary snooping operations.
Solution Approach 2:
The patent implements a dynamic tracking mechanism that switches between precise and imprecise modes based on the number of agents sharing coherence granules. The system dynamically adjusts its tracking behavior in response to changing conditions, transitioning to imprecise mode when many agents are involved to reduce over-snooping penalties, and to precise mode when fewer agents are present to maintain cache coherence efficiency. This dynamic adaptation resolves the contradiction by optimizing tracking complexity based on actual system state.
2Reliability
If precise tracking of cache coherence is used, then cache coherence reliability is improved, but over-snooping penalties increase leading to increased latency and bandwidth consumption
Solution Approach 1:
The patent employs dynamic mode switching to adapt the tracking precision based on the number of agents. When few agents are present, the system uses precise tracking to ensure cache coherence reliability. When many agents are present, the system switches to imprecise tracking to reduce the frequency and impact of snooping operations, thereby reducing latency. This dynamic adjustment allows the system to maintain reliability when needed while minimizing time loss from unnecessary snooping.
Solution Approach 2:
The patent changes the tracking parameter (precision level) based on the number of agents sharing coherence granules. By adjusting this critical parameter dynamically, the system optimizes the balance between maintaining cache coherence reliability and reducing snooping-induced latency. The parameter change allows the system to tolerate reduced precision when many agents are involved, as the overhead of precise tracking would otherwise cause excessive latency.
3Reliability
If precise tracking of cache coherence is used, then cache coherence reliability is improved, but bandwidth consumption and energy waste increase
Solution Approach 1:
The patent segments the tracking functionality into two distinct operational modes that can be selectively activated. This segmentation enables the system to use bandwidth-intensive precise tracking only when necessary (few agents present) and to use lighter imprecise tracking when many agents are present, thereby reducing overall bandwidth consumption while maintaining reliability when needed.
Solution Approach 2:
The patent implements dynamic adaptation of tracking precision based on the number of agents sharing coherence granules. The system dynamically adjusts its behavior to use precise tracking only when the number of agents justifies the bandwidth cost, and switches to imprecise tracking when many agents are present to avoid excessive bandwidth consumption. This dynamic approach resolves the contradiction by aligning tracking precision with actual system demands.
4Reliability
If a large number of agents are tracked, then cache coherence reliability is improved, but device complexity and overhead increase
Solution Approach 1:
The patent segments the tracking structure into two distinct modes: precise tracking for small agent sets and imprecise tracking for large agent sets. This segmentation allows the system to maintain simple, low-overhead tracking when many agents are present while using more complex precise tracking only when the number of agents is small enough to justify the complexity, thereby resolving the contradiction between reliability and device complexity.
Solution Approach 2:
The patent changes the tracking parameter (precision level) based on the number of agents to optimize the balance between reliability and complexity. When many agents are present, the system uses imprecise tracking to minimize overhead. When fewer agents are present, the system switches to precise tracking to ensure reliability. This parameter change strategy allows the system to maintain appropriate complexity levels for the given operational context.
Data Source
AI summary
The described technology provides a method including generating a full tracking vector wherein each bit of the full tracking vector indicates cache validity state of a coherence granule (cogran) in agent cache for a related agent, dividing the tracking vector into a plurality of partial vectors (PVECs), for each PVEC, determining whether cache validity state of at least one bit in the PVEC is set to valid, and in response to determining that cache validity state of at least on bit in a given PVEC is set to valid, storing the given PVEC and its PVEC pointer in a tracking_info field of a base snoop filter (SFT) entry for the cogran, wherein the PVEC pointer indicates the location of the given PVEC in the full tracking vector.


