IP Library Granted Patent US 8,370,675
Granted Patent B2
US 8,370,675 · App. 12/618,730 · Granted Feb 5, 2013

Precise clock synchronization

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 8,370,675
App. No.
12/618,730
Granted
Feb 5, 2013
Kind
B2
Abstract

A method for clock synchronization includes computing an offset value between a local clock time of a real-time clock circuit and a reference clock time, and loading the offset value into a register that is associated with the real-time clock circuit. The local clock time is then summed with the value in the register so as to give an adjusted value of the local clock time that is synchronized with the reference clock.

Claims (34)

1. A method for clock synchronization, comprising:

computing an offset value between a local clock time of a real-time clock circuit and a reference clock time;

loading the offset value into a register that is associated with the real-time clock circuit; and

summing the local clock time with the value in the register so as to give an adjusted value of the local clock time that is synchronized with the reference clock,

wherein the local clock time is maintained by incrementing a counter at intervals determined by a clock source, and wherein summing the local clock time comprises adding the value in the register to the local clock time at one of the intervals, and

wherein the real-time clock circuit comprises an adder providing a summed output to the counter, and having a first adder input coupled to receive a clock output from the counter, and a second adder input coupled to a multiplexed output from a multiplexer, which has a first multiplexer input coupled to receive a default increment amount and a second multiplexer input coupled to receive the offset value from the register.

2. The method according to claim 1 , wherein the local clock time is associated with a slave device and the reference clock time is provided by a master device coupled to the slave device via a network.

3. The method according to claim 2 , wherein the slave device comprises:

a host processor which is configured to compute the offset value and load the offset value into the register; and

a network interface device comprising the real-time clock circuit.

4. The method according to claim 2 , wherein computing the offset value comprises:

exchanging a first set of messages between the master device and the slave device to determine a first time difference comprising the offset value and a transmission delay;

exchanging a second set of messages between the master device and the slave device to determine a second time difference comprising the transmission delay; and

calculating the offset value based on the first and second time differences.

5. A real-time clock circuit, comprising:

a counter, which is configured to output a local clock time;

a register, which is coupled to receive an offset value computed by a host processor;

an adder, which is configured to provide a new local clock time for input to the counter by periodically adding a fixed increment to the local clock time that is output by the counter and alternatively, after the host processor has written the offset value to the register, by summing the offset value from the register with the local clock time; and

a multiplexer having a first multiplexer input coupled to receive a default increment amount and a second multiplexer input coupled to receive the offset value from the register and configured to provide a multiplexed output,

wherein the adder has a first input coupled to receive the local clock time that is output by the counter and a second input coupled to the multiplexed output from the multiplexer.

6. The real-time clock circuit according to claim 5 , and comprising a local oscillator coupled to output pulses to the counter so as to cause the counter to be incremented at intervals indicated by the pulses.

7. A real-time clock circuit, comprising:

a counter, which is configured to output a local clock time;

a register, which is coupled to receive an offset value computed by a host processor;

an adder, which is configured to provide a new local clock time for input to the counter by periodically adding a fixed increment to the local clock time that is output by the counter and alternatively, after the host processor has written the offset value to the register, by summing the offset value from the register with the local clock time;

a further register, which is coupled to receive an initial time value from a host processor, and

a multiplexer, having a first multiplexer input coupled to receive the initial time value from the register, and a second multiplexer input coupled to receive the new local clock time from the adder, and configured to provide a multiplexed output to the counter.

8. An apparatus comprising:

a real-time clock circuit, which is configured to maintain and output a local clock time, and which comprises a counter, a clock source, a register, which is coupled to receive an offset value, an adder, which is coupled to sum the local clock time with the offset value in the register so as to give an adjusted value of the local clock time, and a multiplexer having a first multiplexer input coupled to receive a default increment amount and a second multiplexer input coupled to receive the offset value from the register and configured to provide a multiplexed output,

wherein the adder has a first input coupled to receive the local clock time that is output by the counter and a second input coupled to the multiplexed output from the multiplexer and is configured to maintain the local clock time by incrementing the counter at intervals determined by the clock source, and alternatively adding the value in the register to the local clock time at one of the intervals; and

a host processor configured to compute the offset value between the local clock time and a reference clock time, and to load the offset value into the register.

9. The apparatus according to claim 8 , wherein the apparatus comprises a slave device, comprising the real-time clock circuit and the host processor, and the reference clock time is provided by a master device coupled to the slave device via a network.

10. The apparatus according to claim 9 , wherein the slave device comprises a network interface device comprising the real-time clock circuit.

11. The apparatus according to claim 9 , wherein the host processor is configured to exchange a first set of messages with the master device to determine a first time difference comprising the offset value and a transmission delay, to exchange a second set of messages with the master device to determine a second time difference comprising the transmission delay, and to calculate the offset value based on the first and second time differences.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2009
From: KAGAN, MICHAEL
To: MELLANOX TECHNOLOGIES LTD
Reel/Frame 023518/0391 →