Switch In-Switch Delay Compensation for Fabric Clock Sync

Solution Overview

Problem

Synchronizing device clocks over a switched fabric, particularly in distributed computing systems with multiple clock domains, is challenging due to traffic congestion and buffering in switches, making it difficult to achieve accurate time synchronization across different fabric domains.

Innovation Solution

Configuring switches to determine and store in-switch delays related to packet transmission and reception, allowing for more accurate time synchronization by adjusting clock synchronization based on these delays, and using non-transparent bridges to isolate devices and facilitate clock domain crossing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If switches buffer transactions to manage traffic congestion, then traffic flow is stabilized, but time synchronization accuracy deteriorates due to unpredictable delays

Engineering Contradiction:
Core Design Contradiction:
Stability of the object's compositionVSMeasurement precision

Solution Approach 1:

The switch determines and stores the in-switch delay in advance (when the request packet is received) rather than when it is needed for synchronization. This preliminary measurement allows the delay to be compensated later, resolving the contradiction by capturing the delay information before buffering operations can introduce variability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention compensates for the buffering delay by adding the stored in-switch delay to the completion timestamp. This beforehand cushioning approach anticipates the delay impact and corrects it in advance, maintaining both traffic flow stability and time synchronization accuracy.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Adaptability or versatility

If multiple clock domains are used in different fabric domains, then device independence and flexibility improve, but clock synchronization difficulty increases

Engineering Contradiction:
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The switch acts as an intermediary between devices in different clock domains. It measures the delay introduced by crossing clock domain boundaries and communicates this information to enable synchronization, thus facilitating device independence while managing the complexity of multi-domain clock synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The switch provides feedback about the in-switch delay to the devices, enabling them to adjust their timing accordingly. This feedback mechanism allows devices in different clock domains to synchronize despite the complexity introduced by domain boundaries.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If in-switch delay measurement is implemented, then time synchronization accuracy improves, but switch complexity increases

Engineering Contradiction:
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The switch performs the delay measurement itself using its own internal timing resources when a request packet arrives. This self-service approach eliminates the need for external measurement infrastructure, improving time synchronization accuracy while minimizing the increase in switch complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9003220B2Switch for clock synchronization over a switched fabric
Publication Date: 2015.04.07
  • US9003220B2 patent drawing
  • US9003220B2 patent drawing
  • US9003220B2 patent drawing

AI summary

Devices and methods for synchronizing devices over a switched fabric. A switch receives a request packet from a device, transmits a completion packet to the device, determines an in-switch delay, and stores the in-switch delay. Another switch receives a packet from a first device, forwards the packet to a second device, determines an in-switch delay of the packet, and stores the in-switch delay. Storing of in-switch delays may include adding an in-switch delay to values in one or more transaction delay fields of a packet. Storing of in-switch delays may include storing the delays in a storage element of a switch. In-switch delay may be determined as a difference between a receiving time corresponding to reception of a packet and a forwarding or transmittal time corresponding to forwarding or transmitting of a packet.