Synchronous clock synchronization messaging
AssigneeMellanox Technologies, Ltd.
InventorsDotan David Levi, Wojciech Wasko
Life of this patent
Estimating the term…
Abstract
In one embodiment, a system includes a network interface controller to receive a first clock-synchronization message from a clock-synchronization leader device and send a second clock-synchronization messages to at least one clock-synchronization follower device, and a processor to execute software to generate the second clock-synchronization message, and generate a control dependency to condition sending the second clock-synchronization message by the network interface controller to the at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from the clock-synchronization leader device.
Claims35
A boundary clock device, comprising:
- a network interface controller to receive a first clock-synchronization message from a clock-synchronization leader device and send a second clock-synchronization message to at least one clock-synchronization follower device, the clock-synchronization leader device and the clock-synchronization follower device being external to the boundary clock device;
- and
- a processor to execute software to:
- generate the second clock-synchronization message before receiving the first clock-synchronization message;
- and
- enqueue a control dependency to condition sending the second clock-synchronization message by the network interface controller to the at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from the clock-synchronization leader device.
A clock synchronization method, comprising:
- generating by a boundary clock device a second clock-synchronization message before receiving a first clock-synchronization message from a clock-synchronization leader device;
- receiving by the boundary clock device the first clock-synchronization message from a clock-synchronization leader device;
- enqueueing by the boundary clock device a control dependency to condition sending the second clock-synchronization message to at least one clock-synchronization follower device on receiving the first clock-synchronization message from the clock-synchronization leader device, the clock-synchronization leader device and the clock-synchronization follower device being external to the boundary clock device;
- and
- sending by the boundary clock device the second clock-synchronization message to the at least one clock-synchronization follower device.
A processing device, comprising:
- a processor to execute software to:
- generate a second clock-synchronization message before receiving a first clock-synchronization message;
- and
- enqueue a control dependency to condition sending the second clock-synchronization message by a network interface controller to at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from a clock-synchronization leader device, the clock-synchronization leader device and the clock-synchronization follower device being external to a boundary clock device, which includes the processing device and the network interface controller;
- and
- a memory to store data used by the processor.
A network interface controller device, comprising:
- a network interface to receive a first clock-synchronization message from a clock-synchronization leader device and send a second clock-synchronization message to at least one clock-synchronization follower device, the clock-synchronization leader device and the clock-synchronization follower device being external to a boundary clock device, which includes the network interface controller device;
- and
- packet processing circuitry to process sending the second clock-synchronization message responsively to an enqueued control dependency, which conditions sending the second clock-synchronization message to the at least one clock-synchronization follower device on receiving the first clock-synchronization message from the clock-synchronization leader device wherein the second clock-synchronization message is generated before receiving the first clock-synchronization message.
A boundary clock device, comprising:
- a network interface controller to receive a first clock-synchronization message from a clock-synchronization leader device and send a second clock-synchronization message to at least one clock-synchronization follower device, the clock-synchronization leader device and the clock-synchronization follower device being external to the boundary clock device;
- and
- a processor to execute software to:
- generate the second clock-synchronization message before receiving the first clock-synchronization message;
- generate a control dependency to condition sending the second clock-synchronization message by the network interface controller to the at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from the clock-synchronization leader device;
- enqueue a first work queue entry to process receipt of the first clock-synchronization message by the network interface controller;
- enqueue a second work queue entry to process sending the second clock-synchronization message by the network interface controller;
- and
- enqueue the control dependency to condition sending the second clock-synchronization message by the network interface controller to the at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from the clock-synchronization leader device.
A clock synchronization method, comprising:
- generating by a boundary clock device a second clock-synchronization message before receiving a first clock-synchronization message from a clock-synchronization leader device;
- receiving, by the boundary clock device, the first clock-synchronization message from the clock-synchronization leader device;
- generating by the boundary clock device a control dependency to condition sending the second clock-synchronization message to at least one clock-synchronization follower device on receiving the first clock-synchronization message from the clock-synchronization leader device, the clock-synchronization leader device and the clock-synchronization follower device being external to the boundary clock device;
- sending, by the boundary clock device, the second clock-synchronization message to the at least one clock-synchronization follower device;
- enqueuing a first work queue entry to process receipt of the first clock-synchronization message;
- enqueuing a second work queue entry to process sending the second clock-synchronization message;
- and
- enqueuing the control dependency to condition sending the second clock-synchronization message to the at least one clock-synchronization follower device on the receiving the first clock-synchronization message from the clock-synchronization leader device.
A processing device, comprising:
- a processor to execute software to:
- generate a second clock-synchronization message before receiving a first clock-synchronization message;
- and
- generate a control dependency to condition sending the second clock-synchronization message by a network interface controller to at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from a clock-synchronization leader device, the clock-synchronization leader device and the clock-synchronization follower device being external to a boundary clock device, which includes the processing device and the network interface controller;
- enqueue a first work queue entry to process receipt of the first clock-synchronization message by the network interface controller;
- enqueue a second work queue entry to process sending the second clock-synchronization message by the network interface controller;
- and
- enqueue the control dependency to condition sending the second clock-synchronization message by the network interface controller to the at least one clock-synchronization follower device on the network interface controller receiving the first clock-synchronization message from the clock-synchronization leader device and
- a memory to store data used by the processor.
A network interface controller device, comprising:
- a network interface to receive a first clock-synchronization message from a clock-synchronization leader device and send a second clock-synchronization message to at least one clock-synchronization follower device, the clock-synchronization leader device and the clock-synchronization follower device being external to a boundary clock device, which includes the network interface controller device;
- and
- packet processing circuitry to:
- process sending the second clock-synchronization message responsively to a control dependency, which conditions sending the second clock-synchronization message to the at least one clock-synchronization follower device on receiving the first clock-synchronization message from the clock-synchronization leader device;
- process receipt of the first clock-synchronization message responsively to an enqueued first work queue entry;
- update a flag responsively to an enqueued semaphore post and the processing the receipt of the first clock-synchronization message;
- intermittently check the flag for a given value responsively to an enqueued semaphore acquire;
- and
- process sending the second clock-synchronization message responsively to the semaphore acquire having completed execution.
Dependencies are inferred from the claim text.