Distributed Directory Cache for Probe Traffic Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecache coherency maintenanceVSAvoidnetwork bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvenetwork trafficVSAvoidtransaction latency
Core Design Contradiction:
Loss of energyVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvesystem-wide coherencyVSAvoidprobe transmission efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7797495B1Distributed directory cache
Publication Date: 2010.09.14 ADVANCED MICRO DEVICES INC
  • US7797495B1 patent drawing
  • US7797495B1 patent drawing
  • US7797495B1 patent drawing

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.