IP Library › Granted Patent US 11,212,024
Granted Patent B2
US 11,212,024 · App. 16/476,700 · Granted Dec 28, 2021

Technologies for high-precision timestamping of packets

Inventors: Mark A. Bordogna (Andover, MA); Janardhan H. Satyanarayana (Clinton, NJ); Larry N. Wakeman (Coopersburg, PA); Robert G. Southworth (Chatsworth, CA); Mika Nystroem (Pasadena, CA)
Assignee: Intel Corporation
H04J3/0697H04L43/0852
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 11,212,024
App. No.
16/476,700
Granted
Dec 28, 2021
Kind
B2
Abstract

Technologies for high-precision timestamping of data packets is disclosed. Several sources of errors that may arise when timestamping the arrival or sending of data packets may be determined and corrected, including variable latencies, semi-static latencies, and fixed latencies. In the illustrative embodiment, a variable latency may arise due to a phase difference between a clock of a network interface card and a system clock. When a trigger pattern is detected, such as the start of a data packet, a trigger may be sent from a circuit synchronized to the clock of the network interface card to a circuit synchronized to the system clock. The phase difference between the edge of the clock on the network interface card and the edge of the clock of the system clock leads to an error in the timestamp value. Determining the phase difference allows for the error in the timestamp value to be corrected.

Claims (66)

1. A compute device for timestamping arrival of data, the compute device comprising:

a network interface card to (i) detect a trigger pattern in data received over a physical medium, and (ii) trigger collection of a timestamp in response to detection of the trigger pattern; and

a delay determiner to determine a phase difference between a system clock of the compute device and a clock of the network interface card of the compute device, the phase difference based on a time-dependent phase difference between the system clock and the clock of the network interface card,

wherein the delay determiner is to compare an estimated time based on the system clock with an estimated time based on the clock of the network interface card to determine the time-dependent phase difference,

wherein the delay determiner is to determine an indication of a timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

2. The compute device of claim 1 , wherein the trigger pattern is a start of frame delimiter, and to determine the indication of the timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the delay determiner is to determine an indication of a timing of arrival of the start of frame delimiter based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

3. The compute device of claim 1 , wherein the trigger pattern is a start of a data packet, and to determine the indication of the timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the delay determiner is to determine an indication of a timing of arrival of the start of the data packet based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

4. The compute device of claim 1 , wherein to compare the estimated time based on the system clock and the estimated time based on the clock of the network interface card, the delay determiner is to:

determine, for each of a plurality of clock cycles of the system clock, a plurality of estimated times based on the system clock and a plurality of estimated times based on the clock of the network interface card; and

compare each estimated time of the plurality of estimated times based on the system clock with each corresponding estimated time of the plurality of estimated times based on the clock of the network interface card, wherein to determine the time-dependent phase difference between the system clock and the clock of the network interface card comprises to determine the time-dependent phase difference between the system clock and the clock of the network interface card based on the comparisons between the plurality of estimated times based on the system clock and the plurality of estimated times based on the clock of the network interface card.

5. The compute device of claim 1 , wherein the network interface card is further to descramble the data, and to detect the trigger pattern, the network interface card is to detect the trigger pattern after the data is descrambled.

6. A compute device for timestamping sending of data, the compute device comprising:

a delay determiner to, in order to determine a phase difference between a system clock of the compute device and a clock of a network interface card of the compute device:

determine a time-dependent phase difference between the system clock and the clock of the network interface card, the determination of the time-dependent phase difference based on a comparison of an estimated time based on the system clock and an estimated time based on the clock of the network interface; and

determine the phase difference between the system clock and the clock of the network interface card based on the time-dependent phase difference and the timestamp; and

a network interface card to:

determine the data to be sent by the network interface card;

detect a trigger pattern in the data;

trigger a timestamp in response to detection of the trigger pattern; and

send the data over a physical medium,

wherein the delay determiner is to determine an indication of a timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

7. The compute device of claim 6 , wherein the trigger pattern is a start of frame delimiter, and to determine the indication of the timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card the delay determiner is to determine an indication of a timing of the sending of the start of frame delimiter based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

8. The compute device of claim 6 , wherein the trigger pattern is a start of a data packet, and to determine the indication of the timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the delay determiner is to determine an indication of a timing of the sending of the start of the data packet based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

9. The compute device of claim 6 , wherein the network interface card is further to scramble the data, and the network interface card is to detect the trigger pattern before the data is scrambled.

10. One or more non-transitory computer-readable media comprising a plurality of instructions stored thereon that, when executed, cause a compute device to:

determine a time-dependent phase difference based on a comparison of an estimated time of a system clock of the compute device and an estimated time of a clock of a network interface card of the compute device;

detect, by the network interface card, a trigger pattern in data received over a physical medium;

trigger, by the network interface card, creation of a timestamp in response to detection of the trigger pattern;

determine a phase difference between the system clock of the compute device and the clock of the network interface card of the compute device, the phase difference based on the time-dependent phase difference and the timestamp; and

determine an indication of a timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

11. The one or more computer-readable media of claim 10 , wherein the trigger pattern is a start of frame delimiter, and to determine the indication of the timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the plurality of instructions, when executed, cause the compute device to determine an indication of a timing of arrival of the start of frame delimiter based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

12. The one or more computer-readable media of claim 10 , wherein the trigger pattern is a start of a data packet, and to determine the indication of the timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the instructions cause the compute device to determine an indication of a timing of arrival of the start of the data packet based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

13. The one or more computer-readable media of claim 10 , wherein the plurality of instructions, when executed, cause the compute device to:

descramble the data; and

detect the trigger pattern after the data is descrambled.

14. One or more non-transitory computer-readable media comprising a plurality of instructions stored thereon that, when executed, causes a compute device to:

determine a time-dependent phase difference based on a comparison of an estimated time of a system clock of the compute device and an estimated time of a clock of a network interface card of the compute device;

determine data to be sent by the network interface card;

detect, by the network interface card, a trigger pattern in the data;

trigger, by the network interface card, creation of a timestamp in response to detection of the trigger pattern;

determine a phase difference between the system clock of the compute device and the clock of the network interface card of the compute device, the phase difference based on the time-dependent phase difference and the timestamp;

send, by the network interface card, the data over a physical medium; and

determine an indication of a timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

15. The one or more computer-readable media of claim 14 , wherein the trigger pattern is a start of frame delimiter, and to determine the indication of the timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the plurality of instructions cause the compute device to determine an indication of a timing of the sending of the start of frame delimiter based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

16. The one or more computer-readable media of claim 14 , wherein the trigger pattern is a start of a data packet, and to determine the indication of the timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card, the plurality of instructions cause the compute device to determine an indication of a timing of the sending of the start of the data packet based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

17. The one or more computer-readable media of claim 14 , wherein the plurality of instructions, when executed, cause the compute device to:

scramble the data; and

detect the trigger pattern before the data is scrambled.

18. A compute device, comprising:

a network interface card; and

at least one processor to execute instructions to cause the at least one processor to:

determine a time-dependent phase difference based on a comparison of an estimated time of a system clock of the compute device and an estimated time of a clock of the network interface card;

detect a trigger pattern in data received over a physical medium;

trigger creation of a timestamp in response to detection of the trigger pattern;

determine a phase difference between the system clock of the compute device and the clock of the network interface card, the phase difference based on the time-dependent phase difference and the timestamp; and

determine an indication of a timing of arrival of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

19. A compute device, comprising:

a network interface card; and

at least one processor to execute instructions to cause the at least one processor to:

determine a time-dependent phase difference based on a comparison of an estimated time of a system clock of the compute device and an estimated time of a clock of the network interface card;

determine data to be sent by the network interface card;

detect a trigger pattern in the data;

trigger creation of a timestamp in response to detection of the trigger pattern;

determine a phase difference between the system clock of the compute device and the clock of the network interface card, the phase difference based on the time-dependent phase difference and the timestamp;

send the data over a physical medium; and

determine an indication of a timing of the sending of the data based on the timestamp and the phase difference between the system clock and the clock of the network interface card.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2021
From: SOUTHWORTH, ROBERT G.
To: INTEL CORPORATION
Reel/Frame 058094/0145 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2021
From: NYSTROEM, MIKA
To: INTEL CORPORATION
Reel/Frame 057627/0932 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: BORDOGNA, MARK A.; SATYANARAYANA, JANARDHAN H.; WAKEMAN, LARRY N.
To: INTEL CORPORATION
Reel/Frame 057251/0908 →
Continuity (1)
Related Publication 20210203428A1 · Jul 1, 2021