IP Library Granted Patent US 9,820,248
Granted Patent B2
US 9,820,248 · App. 14/755,621 · Granted Nov 14, 2017

Network clock synchronization

Inventors: Qian Hu (Shanghai, CN); Yang Liu (Shanghai, CN); Cheng Wei Song (Beijing, CN); Kai Yang (Beijing, CN)
Assignee: GLOBALFOUNDRIES INC.
H04W56/0015H04L1/004
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,820,248
App. No.
14/755,621
Granted
Nov 14, 2017
Kind
B2
Abstract

According to example embodiments of the present invention, predetermined patterns are inserted into data streams and exchanged between a master node and a slave node. By recognizing the patterns near the underlying interface of the physical layer, the master node and slave node can generate timestamps that exactly identify when the respective messages leaves and/or arrives at the physical layer. The slave clock can be synchronized to the master clock based on such timestamps.

Claims (75)

1. A computer-implemented method comprising:

inserting a first pattern into an outgoing data stream to be transmitted from a master node to a slave node;

generating a first timestamp identifying when the first pattern is sent out from a physical layer of the master node; and

generating a fourth timestamp identifying when a second pattern arrives at the physical layer of the master node, the second pattern being inserted in an incoming data stream transmitted from the slave node to the master node,

wherein the first timestamp and the fourth timestamp are sent from the master node to the slave node for clock synchronization between the master node and the slave node,

wherein inserting the first pattern comprises:

inserting the first pattern into the outgoing data stream in response to a synchronization message being sent from the master node to the slave node to initiate the clock synchronization; and

removing at least one block from an inter packet gap (IPG) in the outgoing data stream to compensate for a throughput cost caused by the inserting of the first pattern.

2. The method of claim 1 , wherein inserting the first pattern comprises:

inserting the first pattern into the outgoing data stream at a physical coding sub-layer (PCS) in the physical layer of the master node.

3. The method of claim 1 , wherein forward error correction (FEC) is disabled in the physical layer of the master node, and wherein inserting the first pattern comprises:

determining a raw pattern such that scrambling the raw pattern produces the first pattern; and

causing the raw pattern to be scrambled during a time interval that is determined based on a size of the raw pattern, scrambling of the outgoing data stream being suspended during the time interval.

4. The method of claim 1 , wherein forward error correction (FEC) is enabled in the physical layer of the master node, and wherein inserting the first pattern comprises:

determining a raw pattern such that performing FEC encoding on the raw pattern produces the first pattern; and

causing FEC encoding to be performed on the raw pattern during a time interval that is determined based on a size of the raw pattern, FEC encoding of the outgoing data stream being suspended during the time interval.

5. The method of claim 1 , wherein the physical layer of the master node includes a serializer that receives the outgoing data stream via a parallel data interface and outputs serialized data stream via a series data interface, and wherein generating the first timestamp comprises:

in response to recognizing the first pattern before the first pattern is serialized by the serializer, determining an offset of the first pattern with respect to a width of the parallel data interface of the serializer;

determining a delay associated with the recognition of the first pattern; and

generating the first timestamp based on a high speed clock for the series data interface of the serializer, a low speed clock for the parallel data interface of the serializer, the offset and the delay.

6. The method of claim 1 , wherein the physical layer of the master node includes a deserializer that receives the incoming data stream via a series data interface and outputs deserialized data stream via a parallel data interface, and wherein generating the fourth timestamp comprises:

in response to recognizing the second pattern after the second pattern is deserialized by the deserializer, determining an offset of the second pattern with respect to a width of the parallel data interface of the deserializer;

determining a delay associated with the recognition of the second pattern; and

generating the fourth timestamp based on a high speed clock for the series data interface of the deserializer, a low speed clock for the parallel data interface of the deserializer, the offset and the delay.

7. The method of claim 1 , wherein generating the fourth timestamp comprises:

in response to receiving a delay request message from the slave node, recognizing the second pattern within a guard time period of a predetermined length for generating the fourth timestamp, the delay request message being received after sending the first timestamp to the slave node, and

wherein the method further comprises:

in response to the delay request message, sending the fourth timestamp to the slave node in a delay response message.

8. A computer-implemented method comprising:

generating a second timestamp identifying when a first pattern arrives at a physical layer of a slave node, the first pattern being inserted in an incoming data stream transmitted from a master node to the slave node;

inserting a second pattern into an outgoing data stream to be transmitted from the slave node to the master node; and

generating a third timestamp identifying when the second pattern is sent out from the physical layer of the slave node,

wherein the second timestamp and the third timestamp are used for clock synchronization between the master node and the slave nod;

wherein generating the second timestamp comprises:

in response to receiving a synchronization message from the master node to initiate the clock synchronization, recognizing the first pattern in a guard time period of a predetermined length for generating the second timestamp.

9. The method of claim 8 , further comprising:

receiving a first timestamp from the master node, the first timestamp identifying when the first pattern is sent out from a physical layer of the master node; and

receiving a fourth timestamp from the master node, the fourth timestamp identifying when the second pattern arrives at the physical layer of the master node.

10. The method of claim 8 , wherein forward error correction (FEC) is disabled in the physical layer of the slave node, and wherein inserting the second pattern comprises:

determining a raw pattern such that scrambling the raw pattern produces the second pattern; and

causing the raw pattern to be scrambled during a time interval that is determined based on a size of the raw pattern, scrambling of the outgoing data stream being suspended during the time interval.

11. The method of claim 8 , wherein forward error correction (FEC) is enabled in the physical layer of the slave node, and wherein inserting the second pattern comprises:

determining a raw pattern such that performing FEC encoding on the raw pattern produces the second pattern; and

causing FEC encoding to be performed on the raw pattern during a time interval that is determined based on a size of the raw pattern, FEC encoding of the outgoing data stream being suspended during the time interval.

12. The method of claim 8 , wherein the physical layer includes a deserializer for deserializing that receives the incoming data stream via a series data interface and outputs deserialized data stream via a parallel data interface, and wherein generating the second timestamp comprises:

in response to recognizing the first pattern after the first pattern is deserialized by the deserializer, determining an offset of the first pattern with respect to a width of the parallel data interface of the deserializer;

determining a delay associated with the recognition of the first pattern; and

generating the second timestamp based on a high speed clock for the series data interface of the deserializer, a low speed clock for the parallel data interface of the deserializer, the offset and the delay.

13. The method of claim 8 , wherein the physical layer includes a serializer that receives the outgoing data stream via a parallel data interface and outputs serialized data stream via a series data interface, and wherein generating the third timestamp comprises:

in response to recognizing the second pattern before the second pattern is serialized by the serializer, determining an offset of the second pattern with respect to the parallel data interface of the serializer;

determining a delay associated with the recognition of the second pattern; and

generating the third timestamp based on a high speed clock for the series data interface of the serializer, a low speed clock for the parallel data interface of the serializer, the offset and the delay.

14. An apparatus comprising:

a pattern inserter configured to insert an outgoing pattern into an outgoing data stream to be transmitted from a first node to a second node;

a first pattern recognizer configured to recognize the outgoing pattern at the first node for generating an outgoing timestamp, the outgoing timestamp identifying when the outgoing pattern is sent out from the physical layer of the first node; and

a second pattern recognizer configured to recognize an incoming pattern at the first node for generating an incoming timestamp, the incoming timestamp identifying when the incoming pattern arrives at the physical layer of the first node, the incoming pattern being inserted in an incoming data stream transmitted from the second node to the first node,

wherein the outgoing timestamp and the incoming timestamp are used for clock synchronization between the first node and the second node.

15. The apparatus of claim 14 , wherein forward error correction (FEC) is disabled in the physical layer of the first node, and

wherein the pattern inserter is coupled to a scrambler and rate matching logic in a physical coding sub-layer (PCS) in the physical layer of the first node, the pattern inserter being configured to:

determine a raw pattern such that scrambling the raw pattern produces the outgoing pattern; and

input the raw pattern into the scrambler for scrambling within a time interval that is determined by the rate matching logic based on a size of the raw pattern, scrambling of the outgoing data stream being suspended during the time interval.

16. The apparatus of claim 14 , wherein the first node includes a forward error correction (FEC) encoder in the physical layer, and

wherein the pattern inserter is coupled to rate matching logic in a physical coding sub-layer (PCS) in the physical layer of the first node and to the FEC encoder, the pattern inserter being configured to:

determine a raw pattern such that encoding the raw pattern produces the outgoing pattern; and

input the raw pattern into the FEC encoder for FEC encoding within a time interval that is determined by the rate matching logic based on a size of the raw pattern, FEC encoding of the outgoing data stream being suspended during the time interval.

17. The apparatus of claim 14 , wherein the physical layer of the first node includes a serializer that receives the outgoing data stream via a parallel data interface and outputs serialized data stream via a series data interface, and

wherein the first pattern recognizer is configured to:

in response to recognizing the outgoing pattern before the outgoing pattern is serialized by the serializer, determine an offset of the outgoing pattern with respect to a width of the parallel data interface of the serializer;

determine a delay associated with the recognition of the outgoing pattern; and

provide the offset and the delay to a first time stamping unit (TSU) coupled to the first pattern recognizer, wherein the first TSU is configured to generate the outgoing timestamp based on a high speed clock for the series data interface of the serializer, a low speed clock for the parallel data interface of the serializer, the offset and the delay.

18. The apparatus of claim 14 , wherein the physical layer of the first node includes a deserializer that receives the incoming data stream via a series data interface and outputs deserialized data stream via a parallel data interface, and

wherein the second pattern recognizer is configured to:

in response to recognizing the incoming pattern after the incoming pattern is deserialized by the deserializer, determine an offset of the incoming pattern with respect to a width of the parallel data interface of the deserializer;

determine a delay associated with the recognition of the incoming pattern; and

provide the offset and the delay to a second time stamping unit (TSU) coupled to the second pattern recognizer, wherein the second TSU is configured to generate the incoming timestamp based on a high speed clock for the series data interface of the deserializer, a low speed clock for the parallel data interface of the deserializer, the offset and the delay.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: GLOBALFOUNDRIES U.S. INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051070/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2019
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 050122/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2016
From: GLOBALFOUNDRIES U.S. 2 LLC
To: GLOBALFOUNDRIES INC.
Reel/Frame 038224/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 037941/0684 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2015
From: HU, QIAN; LIU, YANG; SONG, CHENG WEI; YANG, KAI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035941/0297 →
Continuity (1)
Related Publication 20170006567A1 · Jan 5, 2017