Selective Interconnect Transaction Control for Cache Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data processing systems, the snoop queue often becomes full during high bus transaction activity, leading to delays and stalls in system bus activity as existing systems wait for resources to become available, causing inefficiencies in cache and memory coherency maintenance.
Innovation Solution
The implementation of a selective interconnect transaction control mechanism that uses a cache coherency manager to selectively stall system interconnect transaction initiation for specific transaction types, preventing the initiation of cache coherency-related transactions when the snoop queue is full, while allowing other transactions to proceed, thereby optimizing snoop queue resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the snoop queue is used to store received snoop requests, then cache coherency can be maintained, but the snoop queue may become full during high bus transaction activity, causing delays and stalls
Solution Approach 1:
The patent segments bus transactions into two categories: those requiring cache coherency (global transactions) and those that do not (local transactions). This segmentation allows the system to apply different flow control mechanisms to each type, preventing the snoop queue from blocking all bus activity while maintaining coherency for global transactions.
Solution Approach 2:
The patent applies local quality by treating different transaction types differently. Local transactions (non-coherency critical) can proceed without snoop queue resources, while global transactions (coherency critical) are subject to snoop queue flow control. This differentiated approach maintains coherency where needed without unnecessarily blocking all bus traffic.
2Reliability
If flow control is used to prevent snoop activity from being lost when the queue is full, then snoop requests are protected, but the system bus is stalled and bus activity is blocked
Solution Approach 1:
The patent segments transactions into global (requiring coherency) and local (non-coherency critical) types. Flow control is applied selectively only to global transactions that need snoop queue resources, while local transactions continue to execute without being blocked. This reduces unnecessary bus stalls while maintaining reliable snoop handling for critical transactions.
Solution Approach 2:
Instead of applying full flow control to all transactions, the patent applies partial flow control only to the subset of transactions that actually require snoop queue resources (global transactions). This partial action approach maintains adequate snoop handling for critical operations while avoiding excessive blocking of non-critical bus activity.
3Reliability
If all transactions are stalled until snoop resources are available, then snoop queue overflow is prevented, but system performance deteriorates due to complete bus blocking
Solution Approach 1:
The patent segments bus transactions into global and local types, applying snoop queue flow control only to global transactions that require coherency maintenance. Local transactions are allowed to proceed independently. This selective approach prevents snoop queue overflow for critical operations while maintaining overall system bus productivity by avoiding complete blocking.
Solution Approach 2:
The patent applies local quality by differentiating treatment based on transaction characteristics. Global transactions (requiring coherency) are subject to strict flow control to protect snoop queue capacity, while local transactions (non-coherency critical) enjoy unrestricted access. This differentiated local quality approach balances reliability and productivity effectively.
Data Source
AI summary
A data processing system (10) includes a first master (14) and a second master (16 or 22). The first master includes a cache (28) and snoop queue circuitry (44, 52, 54) having a snoop request queue (44) which stores snoop requests. The snoop queue circuitry receives snoop requests for storage into the snoop request queue and provides snoop requests from the snoop request queue to the cache, and the snoop queue circuitry provides a ready indicator indicating whether the snoop request queue can store more snoop requests. The second master includes outgoing transaction control circuitry (72) which controls initiation of outgoing transactions to a system interconnect. In response to the ready indicator indicating that the snoop request queue cannot store more snoop requests, an initiation hold signal is provided to the outgoing transaction control circuitry to prevent the outgoing transaction control circuitry from initiating any outgoing transactions to the system interconnect (12) within a subset of transaction types.


