Fault-tolerant time server for a real-time computer sytem
AssigneeTttech Computertechnik AG
InventorHermann Kopetz
Life of this patent
Estimating the term…
Abstract
The invention relates to a method for providing a fault-tolerant global time via a time server in a distributed real-time computer system, wherein the time server comprises four components which are connected to one another via a bi-directional communication channel. At a priori defined periodic, internal synchronization times, each of the four components transmits an internal synchronization message, which is simultaneously transmitted to the other three components, from which each internal computer of a component determines a correction term for the tick counter contained in its component and corrects the reading of the local tick counter by this correction term.
Claims16
A method, comprising:
- providing a fault-tolerant global time via a time server (100) in a distributed real-time computer system,
- wherein the time server (100) comprises four components (110, 120, 130, 140), a first component (110), a second component (120), a third component (130), and a fourth component (140),
- wherein for a transmission of messages, the first component (110) is connected to the second and the third component (120, 130) via a bi-directional communication channel (190), and the fourth component (140) is connected to the second and the third component (120, 130) via a bi-directional communication channel (190),
- wherein each of the four components (110, 120, 130, 140) comprises an internal computer having an oscillator and a local tick counter,
- wherein after a power-up, the local tick counter of each component (110, 120, 130, 140) is initialized with an identical value,
- wherein a value of the local tick counter of each component is increased by a fixed value in a period of the component's oscillator,
- wherein in a start-up phase after power-up of the time server (100), one of the four components transmits a start-up message with a current reading of the component's local tick counter at a time a start-up message is transmitted to the other three components (120, 130, 140),
- wherein a receiver (110, 120, 130) of the start-up message sets its local tick counter to a value contained in the start-up message, corrected by an a priori known transport delay of the start-up message,
- wherein, at a priori defined periodic, internal synchronization times, each of the four components (110, 120, 130, 140) simultaneously transmits to the other three components an internal synchronization message containing a reading of its local tick counter at a time the internal synchronization message was transmitted,
- wherein a receiver of the internal synchronization message records a reading of its local tick counter at a time the internal synchronization message is received, and determines a time difference between a transmission time contained in the internal synchronization message and a recorded time of reception of the internal synchronization message corrected by a priori known delay of the internal synchronization message,
- wherein a single internal computer of a component determines a correction term for the tick counter contained in its component from time differences in accordance with a fault-tolerant clock synchronization algorithm and corrects a reading of the local tick counter by the correction term,
- wherein two of the four components each form an external synchronization message (192) containing an a priori defined external time of reception of the external synchronization message, wherein both external synchronization messages contain a same external time of reception, and transmit the external synchronization messages simultaneously at a priori defined periodic external synchronization times each via a communication channel (190) directly to one but not both of the other two components (120, 130),
- wherein each of the two components (120, 130) of the time server (100) to which the external synchronization message has been transmitted, verifies whether the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is set as it is specified by an a priori planning of the external synchronization time and the external time of reception,
- and if the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is not set as it is specified by an a priori planning of the external synchronization time and the external time of reception, discards the external synchronization message,
- and if the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is set as it is specified by an a priori planning of the external synchronization time and the external time of reception, forwards the external synchronization message via an external communication controller (194) of the component (120, 140) to an external receiver at a point in time, which ensures that the external synchronization message arrives at the external receiver at the external time of reception contained in the external synchronization message,
- and wherein each external receiver records a time a first incoming external synchronization message is received with its local clock and then corrects a reading of its local clock by a difference between a recorded time of reception of the external synchronization message and an external time of reception contained in the external synchronization message.
A time server (100) for providing a fault-tolerant global time for a distributed real-time computer system, comprising:
- four components (110, 120, 130, 140), a first component (110), a second component (120), a third component (130), and a fourth component (140),
- wherein for a transmission of messages, the first component (110) is connected to the second and the third component (120, 130) via a bi-directional communication channel (190), and the fourth component (140) is connected to the second and the third component (120, 130) via a bi-directional communication channel (190),
- wherein each of the four components (110, 120, 130, 140) comprises an internal computer having an oscillator and a local tick counter,
- wherein, after a power-up, the local tick counter of each component (110, 120, 130, 140) is initialized with an identical value,
- wherein a value of the local tick counter of each component in a period of the component's oscillator is increased by a fixed value,
- wherein in a start-up phase after power-up of the time server (100) one of the four components is configured to transmit a start-up message with a current reading of its local tick counter at a time a start-up message is transmitted to the other three components (120, 130, 140),
- wherein a receiver (110, 120, 130) of the start-up message is configured to assign its local tick counter to a value contained in the start-up message, corrected by an a priori known transport delay of the start-up message,
- wherein each component (110, 120, 130, 140) is configured to simultaneously transmit to the other three components at a priori defined periodic, internal synchronization times an internal synchronization message containing a reading of its local tick counter at a time the internal synchronization message is transmitted,
- wherein a receiver of the internal synchronization message is configured to record a reading of its local tick counter at a time of reception of the internal synchronization message, and to determine a time difference between a time of transmission contained in the internal synchronization message and a recorded time of reception of the internal synchronization message, corrected by a priori known delay of the internal synchronization message,
- wherein a single internal computer of a component is configured to determine from time differences a correction term for the tick counter contained in its component in accordance with a fault-tolerant clock synchronization algorithm and to correct a reading of the local tick counter by the correction term,
- wherein two of the four components are each configured to form an external synchronization message (192), containing an a priori defined external time of reception of the external synchronization message, wherein both external synchronization messages contain a same external time of reception, and transmit the external synchronization messages simultaneously at a priori defined periodic external synchronization times, each via a communication channel (190) directly to one but not both of the other two components (120, 130),
- wherein each of the two components (120, 130) of the time server (100) to which the external synchronization message has been transmitted is configured to verify whether the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is set as it is specified by an a priori planning of the external synchronization time and the external time of reception,
- and if the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is not set as it is specified by an a priori planning of the external synchronization time and the external time of reception, is configured to discard the external synchronization message,
- and if the external time of reception contained in the received external synchronization message measured on a reading of its tick counter at a time the external synchronization message is received is set as it is specified by an a priori planning of the external synchronization time and the external time of reception, is configured to forward the external synchronization message via an external communication controller (194) of the component (120, 140) to an external receiver at a point in time, which ensures that the external synchronization message arrives at the external receiver at the external time of reception contained in the external synchronization message.
Dependencies are inferred from the claim text.