IP Library Granted Patent US 7,487,229
Granted Patent B2
US 7,487,229 · App. 11/393,100 · Granted Feb 3, 2009

Methods and apparatus to synchronize local times at nodes in a computer network

Assignee: Intel Corporation
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 7,487,229
App. No.
11/393,100
Granted
Feb 3, 2009
Kind
B2
Abstract

Methods and apparatus to synchronize local times at nodes in a computer network are disclosed. An example method disclosed herein comprises determining a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a respective local time measurement generated by a node in the computer network and a respective reference time measurement generated by a reference time source. The example method further comprises determining a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs. Additionally, the example method further comprises mapping a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines. Other embodiments are described and claimed.

Claims (78)

1. A method to synchronize local time at a node in a computer network with a reference time source, the method comprising

determining a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a local time measurement based on at least one corresponding local time stamp generated by the node and a respective reference time measurement based on at least one corresponding reference time stamp generated by the reference time source;

determining a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs; and

mapping a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines, wherein mapping the local time value to the corresponding reference time value comprises:

selecting one of a sequence of non-overlapping intervals corresponding to the local time value, wherein the selected time interval includes the local time value;

selecting one of the plurality of cubic splines corresponding to the selected interval; and

evaluating the selected cubic spline at the local time value to determine the reference time value corresponding to the local time value.

2. A method as defined in claim 1 wherein the local time measurement comprises an average of a first local time stamp and a subsequent second local time stamp generated by the node during a measurement interval.

3. A method as defined in claim 2 wherein the second local time stamp is generated by the node in response to a message received by the node from the reference time source, wherein the reference time source transmits the message after determining the reference time measurement.

4. A method as defined in claim 3 wherein the message includes the reference time measurement and wherein the time sample pair is determined by the node.

5. A method as defined in claim 2 wherein a measurement burst comprises a plurality of measurement intervals and wherein the local time measurement further comprises an average of individual local time measurements determined during the measurement burst.

6. A method as defined in claim 1 wherein the reference time measurement comprises a reference time stamp generated by the reference time source in response to a message received by the reference time source from the node during a measurement interval.

7. A method as defined in claim 6 wherein a measurement burst comprises a plurality of measurement intervals and wherein the reference time measurement further comprises an average of reference time stamps determined during the measurement burst.

8. A method to synchronize local time at a node in a computer network with a reference time source, the method comprising

determining a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a local time measurement based on at least one corresponding local time stamp generated by the node and a respective reference time measurement based on at least one corresponding reference time stamp generated by the reference time source;

determining a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs; and

mapping a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines, wherein:

the sequence of time sample pairs corresponds to a time domain beginning with an initial time sample pair and ending with a final time sample pair;

the time domain comprises a sequence of non-overlapping intervals;

an interval in the sequence of non-overlapping intervals is defined by endpoints comprising adjacent time sample pairs;

adjacent intervals share a common endpoint;

the plurality of cubic splines is determined as a sequence of cubic splines;

the plurality of cubic splines interpolates between the initial time sample pair and the final time sample pair over the time domain; and

adjacent cubic splines interpolate over adjacent intervals.

9. A method to synchronize local time at a node in a computer network with a reference time source, the method comprising

determining a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a local time measurement based on at least one corresponding local time stamp generated by the node and a respective reference time measurement based on at least one corresponding reference time stamp generated by the reference time source;

determining a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs; and

mapping a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines, wherein the plurality of cubic splines comprises a sequence of constrained cubic splines governed by constraints, wherein the constraints comprise at least one of:

requiring adjacent constrained cubic splines corresponding to adjacent intervals to have substantially equal first derivatives at a common endpoint shared by the adjacent intervals; or

requiring each constrained cubic spline to output values not exceeding a range bounded by the adjacent time sample pairs comprising endpoints of the interval corresponding to the constrained cubic spline; or

requiring an outermost constrained cubic spline in the sequence of cubic splines to have a first derivative at an outermost endpoint of the corresponding interval to be substantially equal to a slope of a line constructed to interpolate between the sequence of time sample points.

10. A method as defined in claim 1 wherein mapping the local time value to the corresponding reference time value comprises evaluating an output of at least one cubic spline in the plurality of cubic splines based on an input substantially equal to the local time value to determine the reference time value corresponding to the local time value.

11. A method as defined in claim 1 wherein the reference time measurement comprises an average of a first reference time stamp and a subsequent second reference time stamp generated by the reference time source during a measurement interval.

12. A method as defined in claim 11 wherein the local time measurement comprises a local time stamp generated by the node in response to a message received by the node from the reference time source during the measurement interval.

13. A method as defined in claim 12 wherein the message is a first message and wherein the second reference time stamp is generated by the reference time source in response to a second message received by the reference time source from the node.

14. A method as defined in claim 11 wherein a measurement burst comprises a plurality of measurement intervals and wherein the reference time measurement further comprises an average of individual reference time measurements determined during the measurement burst.

15. A method as defined in claim 12 wherein a measurement burst comprises a plurality of measurement intervals and wherein the local time measurement further comprises an average of local time stamps determined during the measurement burst.

16. A method as defined in claim 1 wherein the node is a first node, the sequence of time sample pairs is a first sequence of time sample pairs associated with the first node and the plurality of cubic splines is a first plurality of cubic splines associated with the first node, and further comprising synchronizing local time at a second node in the computer network with the reference time source by determining a second sequence of time sample pairs and a second plurality of cubic splines associated with the second node.

17. A method as defined in claim 16 wherein determining the second sequence of time sample pairs is interleaved with determining the first sequence of time sample pairs.

18. An article of manufacture comprising a computer storage medium for storing machine readable instructions which, when executed, cause a machine to:

determine a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a local time measurement based on at least one corresponding local time stamp generated by a node in a computer network and a respective reference time measurement based on at least one corresponding reference time stamp generated by a reference time source;

determine a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs; and

map a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines, wherein:

the sequence of time sample pairs corresponds to a time domain beginning with an initial time sample pair and ending with a final time sample pair;

the time domain comprises a sequence of non-overlapping intervals;

an interval in the sequence of non-overlapping intervals is defined by endpoints comprising adjacent time sample pairs;

adjacent intervals share a common endpoint;

the plurality of cubic splines is determined as a sequence of cubic splines;

the plurality of cubic splines interpolates between the initial time sample pair and the final time sample pair over the time domaim; and adjacent cubic splines interpolate over adjacent intervals.

19. An article of manufacture as defined in claim 18 wherein the machine readable instructions, when executed, further cause the machine to determine the local time measurement by averaging a first local time stamp and a subsequent second local time stamp generated by the node during a measurement interval.

20. An article of manufacture as defined in claim 19 wherein the reference time measurement comprises a reference time stamp generated by the reference time source in response to a message received by the reference time source from the node during the measurement interval.

21. An article of manufacture as defined in claim 18 wherein the machine readable instructions, when executed, further cause the machine to map the local time value to the corresponding reference time value by evaluating an output of at least one cubic spline in the plurality of cubic splines based on an input substantially equal to the local time value to determine the reference time value corresponding to the local time value.

22. An apparatus to synchronize local time at a node in a computer network with a reference time source, the apparatus comprising

a time sample sequence processor to determine a sequence of time sample pairs, wherein each time sample pair in the sequence of time sample pairs comprises a local time measurement based on at least one corresponding local time stamp generated by the node and a respective reference time measurement based on at least one corresponding reference time stamp generated by the reference time source;

an interpolator to determine a plurality of cubic splines, wherein each cubic spline in the plurality of cubic splines interpolates between two respective time sample pairs in the sequence of time sample pairs; and

a time mapper to map a local time value associated with the node to a corresponding reference time value associated with the reference time source based on the plurality of cubic splines, wherein:

the sequence of time sample pairs corresponds to a time domain beginning with an initial time sample pair and ending with a final time sample pair;

the time domain comprises a sequence of non-overlapping intervals;

an interval in the sequence of non-overlapping intervals is defined by endpoints comprising adjacent time sample pairs;

adjacent intervals share a common endpoint;

the interpolator is further configured to determine the plurality of cubic splines as a sequence of cubic splines to interpolate between the initial time sample and the final time sample; and adjacent cubic splines interpolate over adjacent intervals.

23. An apparatus as defined in claim 22 further comprising a clock interface to communicatively couple with a clock to obtain at least one of the local time stamp or the reference time stamp, wherein the at least one of the local time stamp or the reference time stamp corresponds to a value of the clock.

24. An apparatus as defined in claim 22 further comprising a time sample burst processor configured to obtain a plurality of local time stamps and a plurality of reference time stamps during a measurement burst comprising a plurality of measurement intervals, and wherein the local time measurement further comprises an average of the plurality of local time stamps and the reference time measurement further comprises an average of the plurality of reference time stamps.

25. An apparatus as defined in claim 22 wherein the time mapper is to map the local time value to the corresponding reference time value by evaluating an output of at least one cubic spline in the plurality of cubic splines based on an input substantially equal to the local time value to determine the reference time value corresponding to the local time value.

26. A system to synchronize local time with reference time in a computer network, the system comprising:

a reference time source communicatively coupled to the communication network and comprising a reference clock;

a node communicatively coupled to the communication network and comprising a local clock; and

a local time synchronizer at least one of implemented by or communicatively coupled to at least one of the reference time source or the node to map a local time value associated with the local clock to a corresponding reference time value associated with the reference clock based on:

a sequence of time sample pairs comprising local time measurements based on the local clock paired with respective ones of reference time measurements based on the reference clock; and

a plurality of cubic splines determined to interpolate between the sequence of time sample pairs to map local time values to reference time values, wherein:

the sequence of time sample pairs corresponds to a time domain beginning with an initial time sample pair and ending with a final time sample pair;

the time domain comprises a sequence of non-overlapping intervals;

an interval in the sequence of non-overlapping intervals is defined by endpoints comprising adjacent time sample pairs;

adjacent intervals share a common endpoint;

the plurality of cubic splines is determined as a sequence of cubic splines;

the plurality of cubic splines interpolates between the initial time sample pair and the final time sample pair over the time domain; and

adjacent cubic splines interpolate over adjacent intervals.

27. A system as defined in claim 26 wherein the local time synchronizer is further configured to map the local time value to the corresponding reference time value by evaluating an output of at least one cubic spline in the plurality of cubic splines based on an input substantially equal to the local time value to determine the reference time value corresponding to the local time value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2006
From: OHLY, PATRICK
To: INTEL CORPORATION A DELAWARE CORPORATION
Reel/Frame 018380/0814 →
Continuity (1)
Related Publication 20070266119A1 · Nov 15, 2007