Distributed Directory Cache for Probe Traffic Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems face performance bottlenecks due to high network bandwidth usage and latency issues in maintaining cache coherency, particularly in systems with many processors, as broadcast protocols require unconditional broadcasting of probes, while directory-based protocols can be slower due to serialization and directory lookups.
Innovation Solution
A distributed directory cache system that uses a source node to determine if a coherency unit is cached in other nodes, allowing for non-probing requests and inhibiting probe transmission when the unit is not cached, thereby reducing unnecessary probe traffic and improving latency and bandwidth efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If broadcast protocol is used to maintain cache coherency, then all processors receive coherency updates, but network bandwidth is quickly exhausted and performance degrades in systems with many processors
Solution Approach 1:
The patent extracts the directory lookup operation from the probe transmission path by implementing a distributed directory cache at each node. This allows nodes to determine which caches hold copies of data blocks without broadcasting probes to all processors, thereby eliminating unnecessary network traffic while maintaining coherency tracking.
Solution Approach 2:
The patent performs preliminary directory lookups at the source node before transmitting probes. By checking the distributed directory cache in advance to identify which caches contain copies of the requested block, the system prepares a targeted probe list, preventing unnecessary broadcast traffic before it occurs.
2Loss of energy
If directory based protocol is used to reduce network traffic, then probes are targeted to specific subsystems, but directory lookup serialization increases transaction latency
Solution Approach 1:
The patent segments the centralized directory into distributed directory caches at each processor node. This segmentation allows parallel directory lookups to occur simultaneously at multiple nodes, eliminating the serialization bottleneck while maintaining the targeted probe capability that reduces network traffic.
Solution Approach 2:
The distributed directory cache acts as an intermediary structure that provides directory information locally at each node. This eliminates the need for serialized access to a centralized directory, as each node maintains its own directory cache that can be queried in parallel with other operations.
3Reliability
If probes are broadcast to all processors, then coherency is maintained across the system, but the number of probes transmitted increases with system size
Solution Approach 1:
The patent implements local directory caches at each processor node that store information about which caches hold copies of data blocks. This local knowledge allows each node to determine precisely which other nodes need to be probed, replacing blanket broadcasts with targeted, localized probe transmissions.
Data Source
AI summary
A system and method for a distributed directory cache in a computing system. A system comprises a plurality of nodes including at least a source node, home node, and one or more target nodes. The source node is configured to convey a request to a home node for a coherency unit, wherein the coherency unit corresponds to a super line which comprises a plurality of coherency units including the requested coherency unit. Prior to conveying the request, the source node is configured to indicate that the request is a non-probing request responsive to determining that none of the plurality of coherency units of the super line are cached in any of the other nodes. In response to receiving the request, the home node is configured to initiate the conveyance of one or more probes to one or more target nodes, if the response does not indicate it is a non-probing request, and inhibit the conveyance of the probes if the request indicates it is a non-probing request.


