Dynamic Snoop Filter Entries for Scalable Cache Coherence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache coherence systems face inefficiencies due to over-snooping, leading to increased latency, bandwidth consumption, and energy waste, particularly in multi-processor systems with many agents, where precise snoop filters require significant area and imprecise filters fail to accurately track cogran presence.
Innovation Solution
A hybrid snoop filter system that dynamically allocates an extra entry for tracking vectors, switching between precise and imprecise modes based on the number of agents sharing a coherence granule, reducing over-snooping by maintaining precise tracking for a few agents and transitioning to imprecise when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If precise snoop filter tracking is used for all agents, then cache coherence accuracy is improved, but hardware area and complexity increase significantly
Solution Approach 1:
The patent applies local quality by differentiating the tracking precision based on the number of agents sharing a coherence granule. When few agents share a granule, precise tracking with agent ID lists is used. When many agents share a granule, imprecise tracking with bit vectors is used. This allows the system to maintain high accuracy where needed while reducing hardware area where precision is less critical.
Solution Approach 2:
The snoop filter entry structure is made dynamic, allowing it to switch between two different tracking modes (precise agent ID list mode and imprecise bit vector mode) based on the number of agents currently holding the granule. This dynamic adaptation enables the system to optimize between accuracy and area requirements in real-time.
2Area of stationary object
If imprecise snoop filter tracking is used, then hardware area requirements are reduced, but over-snooping increases leading to higher latency and energy consumption
Solution Approach 1:
The system applies local quality by using imprecise bit vector tracking only for granules with many agents where precise tracking would be overly costly. For granules with fewer agents, precise agent ID list tracking is maintained, avoiding unnecessary imprecision and the associated over-snooping penalties in those cases.
Solution Approach 2:
The patent changes the tracking parameter (from detailed agent ID lists to coarse bit vectors) based on the number of agents sharing the granule. This parameter adaptation allows the system to reduce hardware area for commonly shared granules while maintaining acceptable performance, and uses detailed tracking only when necessary to avoid over-snooping.
3Reliability
If snoop filter tracks all agents with detailed information, then cache coherence is maintained accurately, but bandwidth and energy consumption increase
Solution Approach 1:
The system tracks agents with different levels of detail depending on the granule's sharing characteristics. For granules with many agents, imprecise bit vector tracking is used which reduces the amount of information transmitted during snoops. For granules with fewer agents, precise agent ID tracking is used to maintain coherence accuracy. This local differentiation reduces overall energy consumption while maintaining reliability where it matters most.
Solution Approach 2:
The snoop filter dynamically adjusts the amount of tracking information based on the current number of agents holding each granule. When the number of agents increases, the system transitions to imprecise tracking mode, reducing the bandwidth and energy required for coherence maintenance while still ensuring all agents are accounted for.
Data Source
AI summary
The described technology provides a method including generating a base snoop filter (SFT) entry for a coherence granule (cogran) in agent cache, the base SFT entry comprising a tracking_information field configured to track a plurality of agent IDs, each agent ID identifying an agent that holds a copy of the cogran, determining a number of agents that hold the copy of the cogran, comparing the and number of agents that store the copy of the cogran with number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry; and in response to determining that the number of agents that hold the copy of the cogran is greater than the number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry, selecting a second SFT entry as an extra SFT entry, wherein the extra SFT entry is configured to store a portion of tracking vector wherein each bit of the tracking vector indicates cache validity state of the cogran for a related agent.


