WO2001027726A1 - System and method for fault-tolerant clock synchronization using interactive convergence - Google Patents
System and method for fault-tolerant clock synchronization using interactive convergence Download PDFInfo
- Publication number
- WO2001027726A1 WO2001027726A1 PCT/US2000/027193 US0027193W WO0127726A1 WO 2001027726 A1 WO2001027726 A1 WO 2001027726A1 US 0027193 W US0027193 W US 0027193W WO 0127726 A1 WO0127726 A1 WO 0127726A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- clock
- node
- nodes
- sync
- network
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
Definitions
- the present invention relates to the field of computer synchronization and in particular to a system and method for synchronizing multiple nodes on a network that utilizes a convergence technique.
- synchronization of each node within the network is important to ensure that the network functions smoothly. Nodes that are not synchronized can cause disturbances within the network as miscommunication can occur between the nodes.
- Any synchronization implementation needs to be as reliable as possible. However, the more reliable that a synchronization implementation is, usually the more complicated the implementation of that technique tends to be as well.
- prior synchronization algorithms have been based on the concept of interactive convergence v. through local timestamping of broadcasted messages.
- the synchronization algorithm had to infer the value of the remote node's clock to arrive at a voted and globally consistent clock.
- This approach while proven to be fault-tolerant, is inherently complex and resource intensive .
- implementing a synchronization algorithm mainly through software on the node' s processor imposes requirements on the hardware of the node itself.
- the node could be required to have high quality hardware to implement the synchronization software to be able to maintain high reliability of the synchronization procedure. This high quality requirement greatly increases the cost of the implementation overall and sometimes is unnecessary to perform the intended functions of the network.
- This invention utilizes a hardware implementation separate from the network node to synchronize each network node. Synchronization of the network is implemented in a Redundancy Management System (RMS) that can interface with common communication techniques within the network in conjunction with a Field Programmable Gate Array (FPGA) to implement the synchronization algorithm.
- RMS Redundancy Management System
- FPGA Field Programmable Gate Array
- the invention also exploits the ability of some communication protocols, such as IEEE 1394, to periodically broadcast their local clocks, forming a distributed global database and simplifying the synchronization process.
- the algorithm uses interactive convergence techniques to arrive at a globally consistent clock.
- a method for synchronizing nodes in a network comprises the steps of broadcasting the clock value of each node on the network; determining a voted clock value based on a set of the clock values that were broadcast; comparing the clock value of each node to determine which nodes are synchronized with each other; resetting each node's clock to the voted clock value; and setting flags to indicate which nodes are synchronized.
- a system to synchronize nodes in a network comprises a clock broadcaster to broadcast the clock values of each node in the network to all other nodes in the network; a clock voter to determine a voted clock value based on a set of the clock values that were broadcast; a clock setter to set the clock values of each node in the network to the voted clock value; an array of clock timers to store each of the clock values that have been broadcast; a clock comparer to determine which nodes are synchronized based on the clock values stored in the array; and a synchronization indicator to designate the nodes that are synchronized.
- an apparatus to synchronize nodes in a network comprises a communication interface associated with each node in the network, the interface capable of broadcasting a clock value of the associated node and receiving the clock values that have been broadcast; a plurality of logic gates associated with each node; the logic gates arranged to be able to determine a voted clock value based on a set of the clock values that have been broadcast and arranged to be able to determine which nodes are synchronized by comparing the clock values; and a memory register associated with each node to store flags indicating the synchronization status of each node.
- Fig. 1 is a layout of a prior art network that utilizes one embodiment of the present invention.
- Fig. 2 is a diagram of the functional components of one illustrative embodiment of the present invention.
- Fig. 3 is a flow chart depicting the synchronization process in accordance with one embodiment of the present invention .
- FIG. 1 depicts a typical network system that utilizes my invention.
- Network nodes 101 are connected through communication buses 103 to form the network system.
- a redundancy management system (RMS) 105 that performs many fault tolerant functions including synchronization of the nodes 101 within the network.
- the RMS 105 can utilize logic gates to implement certain synchronization functions through a field programmable gate array (FGPA) .
- FGPA field programmable gate array
- the communication buses 103 between the nodes can utilize communication protocols such as IEEE 1394 that can be utilized in the present invention.
- IEEE 1394 is a hardware and software standard for transporting data at
- One useful feature of the IEEE 1394 communication protocol is the ability to periodically broadcast the nodes' local clocks .
- Fig. 2 depicts the functional components of one illustrative embodiment of a system 201 in accordance with my invention and comprising a part of the redundancy management system 105 shown in Fig. 1.
- the system 201 has a clock receiver module 203 that accepts clock values broadcasted from the other nodes in the network.
- the clock receiver module 203 stores each clock value into a timer that corresponds to that node.
- the clock receiver module 203 maintains an array of clock timers 204 for all the nodes in the network. Once stored, each clock value is incremented according to that node's internal tick frequency.
- the system 201 also has a voter module 205 that determines the correct clock value to be used by all of the nodes in the network.
- the voter module 205 applies a voting algorithm to the clock timers in the array to arrive at the voted clock value.
- Each node applies the same algorithm in that determination. Since each node will receive the same clock values from the other nodes in the network and apply the same algorithm, each voter module 205 will arrive at the same voted clock value.
- the voting algorithm used is a fault-tolerant mid- value select algorithm.
- the voted clock is the average of the extreme values of set Xf as shown in the following equation :
- Set X f is not necessarily all of the clock values in the array.
- the set of clock values can be restricted to those clock values pertaining to nodes that are synchronized with another node. In the initial synchronization round, all of the nodes can potentially be included in the set. After it has been determined that some nodes in the network are synchronized, only those nodes will be considered in the voting algorithm.
- faulty values can be excluded from the operative set.
- the following equation describes the formation of the set of clock values to be used.
- the set X has a minimum number of clock values greater than or equal to the maximum of either two clock values or three times the number of faulty clock values in the set.
- Faulty values are clock values from nodes that are misrepresentations of its clock value and have a large variation from the other clock values. Discarding the faulty extreme values from the set X forms the reduced set X f .
- System 201 has a clock setting module 207 that directly interacts with the node's clock.
- Clock setting module 207 is capable of obtaining the clock value of the node and broadcasting the clock value to the other nodes.
- Clock setting module 207 also can set the local clock of the node to the voted clock value.
- An in-sync detector module 209 is also part of system 201.
- the in-sync detector module 209 compares the clock values to determine the synchronization status and manages the flags that indicate whether a node is synchronized with other nodes.
- Synchronization is based on the concept of an atomic period composed of a finite number of indivisible ticks.
- the atomic period determines the synchronization interval and the number of ticks determines the synchronization precision.
- the smallest clock adjustment that can be made is one tick, therefore the number of ticks in an atomic period ultimately determines the synchronization jitter.
- Synchronization jitter is substantially determined by the accuracy of the crystal oscillator driving the local timers and by the broadcasted clock latency.
- Fig. 3 depicts a flow chart that describes the operation of the invented system in synchronizing the individual nodes of the network.
- each node will broadcast its clock value to all the other nodes.
- each node will be receiving the clock values of the other nodes.
- Broadcasting the clock value to other nodes occurs periodically after a set time interval has passed. That time interval should be large enough to allow clock values from all the nodes to be broadcast and received.
- the invented system utilizes the IEEE 1394 protocol's ability to periodically broadcast the nodes' local clock. Although the local clock is broadcast after a set time interval pursuant to the IEEE 1394 protocol, the time it is broadcast is controlled by the invented system since it sets the nodes' local clock which triggers the broadcast. Along with each clock value broadcast, each node will broadcast its in-sync flag. If synchronization is occurring for the first time, the value of the in-sync flags is set to false.
- step 303 After receiving the clock values and in-sync status from the other nodes, the next step 303 is to calculate the voted clock value.
- the voting is usually performed near the middle of each atomic period.
- Each node then resets its clock value to that voted clock value in step 305.
- each node compares the clock values from all of the nodes in the network to determine the in- sync status.
- the clock values to be compared are the values that have been stored in the corresponding timers and not the clock values that have been readjusted in step 305. By comparing these stored values, each node can determine which nodes of the network have synchronized clock tickers.
- the steps outlined in Fig . 3 are continually repeated to ensure synchronization . By restricting the set of clock values by which the voted clock value is determined to those nodes that are synchronized with each other, each iteration of the steps will bring the voted clock to a value consistent with the most nodes .
- Fig . 3 The steps detailed in Fig . 3 can be implemented in hardware through a FPGA .
- the quality requirements on each node' s processors are not as high and can be set at the level sufficient to perform the main purposes of the network .
- tick_pos COUNT in sync
- tickjpos REMAINDER(g_local_clk, SYN_PREC); IF ⁇ 1 ⁇ (tickjr ⁇ s .EQ. PERIOD_START)
- Constants are UPPERCASE and are presented in courier TYPEFACE.
- a .AND. B Logical AND, returns true if A ⁇ B
- a .OR. B Logical OR, returns true if A v B
- the first section of the pseudo-code defines constants, special types and global variable declarations. The comments within this section describe the purpose of each declaration.
- BOOLEAN_FLAG g_f ⁇ rst_to_sync FALSE; //Indicates that this node is a
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Small-Scale Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Alarm Systems (AREA)
Abstract
Description
Claims
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00968599A EP1228412B1 (en) | 1999-10-08 | 2000-10-03 | System and method for fault-tolerant clock synchronization using interactive convergence |
AU78487/00A AU7848700A (en) | 1999-10-08 | 2000-10-03 | System and method for fault-tolerant clock synchronization using interactive convergence |
DE60002501T DE60002501T2 (en) | 1999-10-08 | 2000-10-03 | DEVICE AND METHOD FOR CLOCK CLOCK SYNCHRONIZATION USING ERROR-TOLERANT INTERACTIVE CONVERGENCE |
CA002387056A CA2387056A1 (en) | 1999-10-08 | 2000-10-03 | System and method for fault-tolerant clock synchronization using interactive convergence |
JP2001530674A JP2003527667A (en) | 1999-10-08 | 2000-10-03 | System and method for fault-tolerant clock synchronization using interactive convergence |
AT00968599T ATE239245T1 (en) | 1999-10-08 | 2000-10-03 | APPARATUS AND METHOD FOR CLOCK SYNCHRONIZATION USING ERROR-TOLERANT INTERACTIVE CONVERGENCE |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15847199P | 1999-10-08 | 1999-10-08 | |
US60/158,471 | 1999-10-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2001027726A1 true WO2001027726A1 (en) | 2001-04-19 |
Family
ID=22568288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/027193 WO2001027726A1 (en) | 1999-10-08 | 2000-10-03 | System and method for fault-tolerant clock synchronization using interactive convergence |
Country Status (10)
Country | Link |
---|---|
US (1) | US6801951B1 (en) |
EP (1) | EP1228412B1 (en) |
JP (1) | JP2003527667A (en) |
CN (1) | CN1409837A (en) |
AT (1) | ATE239245T1 (en) |
AU (1) | AU7848700A (en) |
CA (1) | CA2387056A1 (en) |
DE (1) | DE60002501T2 (en) |
PT (1) | PT1228412E (en) |
WO (1) | WO2001027726A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3296835B1 (en) * | 2016-09-15 | 2022-04-27 | ALSTOM Transport Technologies | Method for synchronizing a system by determining a common local time interval |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60041470D1 (en) * | 1999-05-11 | 2009-03-19 | Canon Kk | Method and apparatus for synchronization between two networks |
US7457320B1 (en) * | 2001-09-05 | 2008-11-25 | Predrag Filipovic | Synchronization using multicasting |
DE10296438D2 (en) * | 2002-01-24 | 2004-12-02 | Siemens Ag | Parameter selection procedure - coordination procedure for parameter selection in protocols (e.g. TandemFreeOperation TFO) |
US7191353B2 (en) * | 2002-06-14 | 2007-03-13 | Intel Corporation | Coordination of multiple multi-speed devices |
US20040019777A1 (en) * | 2002-06-14 | 2004-01-29 | Wygant Laurance F. | Sharing data using a configuration register |
US7103072B1 (en) * | 2002-12-19 | 2006-09-05 | Occam Networks | System and method for synchronization of devices across a packet network |
JP4135679B2 (en) * | 2004-05-27 | 2008-08-20 | 沖電気工業株式会社 | Communication timing control device, communication timing control method, node, and communication system |
US8315274B2 (en) * | 2006-03-29 | 2012-11-20 | Honeywell International Inc. | System and method for supporting synchronous system communications and operations |
US7800412B2 (en) * | 2008-02-12 | 2010-09-21 | Honeywell International Inc. | Fault detection and isolation of redundant signals |
CN101782862B (en) * | 2009-01-16 | 2013-03-13 | 鸿富锦精密工业(深圳)有限公司 | Processor distribution control system and control method thereof |
CN101625669B (en) * | 2009-08-20 | 2011-04-13 | 上海交通大学 | IEEE1394b data transmission processing system based on FPGA |
US9867180B2 (en) | 2015-12-17 | 2018-01-09 | Honeywell International Inc. | Cognitive allocation of TDMA resources in the presence of a radio altimeter |
US10177868B2 (en) * | 2015-12-17 | 2019-01-08 | Honeywell International Inc. | Systems and methods to synchronize wireless devices in the presence of a FMCW radio altimeter |
US10725170B2 (en) | 2015-12-17 | 2020-07-28 | Honeywell International Inc. | Frequency modulated continuous wave radio altimeter spectral monitoring |
CN106301953B (en) * | 2016-09-20 | 2019-05-14 | 中国科学院计算技术研究所 | Distributed fault-tolerant clock synchronous method and system suitable for time trigger Ethernet |
US10299266B2 (en) | 2017-03-20 | 2019-05-21 | Honeywell International Inc. | Delay calculation in wireless systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988008161A1 (en) * | 1987-04-15 | 1988-10-20 | Allied Corporation | An operations controller for a fault tolerant multiple node processing system |
US5146585A (en) * | 1988-10-25 | 1992-09-08 | International Business Machines Corporation | Synchronized fault tolerant clocks for multiprocessor systems |
WO1999038287A1 (en) * | 1998-01-23 | 1999-07-29 | Koninklijke Philips Electronics N.V. | Method for synchronizing network nodes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327468A (en) * | 1992-06-19 | 1994-07-05 | Westinghouse Electric Corp. | Synchronization of time-of-day clocks in a distributed processing network system |
JP3168487B2 (en) * | 1993-03-15 | 2001-05-21 | 富士通株式会社 | Synchronization establishment check method and transmission device |
US5537583A (en) * | 1994-10-11 | 1996-07-16 | The Boeing Company | Method and apparatus for a fault tolerant clock with dynamic reconfiguration |
JP2982731B2 (en) * | 1997-01-10 | 1999-11-29 | 日本電気株式会社 | Synchronous signal detection method |
US5875320A (en) * | 1997-03-24 | 1999-02-23 | International Business Machines Corporation | System and method for synchronizing plural processor clocks in a multiprocessor system |
US5903717A (en) * | 1997-04-02 | 1999-05-11 | General Dynamics Information Systems, Inc. | Fault tolerant computer system |
US6665316B1 (en) * | 1998-09-29 | 2003-12-16 | Agilent Technologies, Inc. | Organization of time synchronization in a distributed system |
-
2000
- 2000-10-02 US US09/677,155 patent/US6801951B1/en not_active Expired - Lifetime
- 2000-10-03 JP JP2001530674A patent/JP2003527667A/en not_active Withdrawn
- 2000-10-03 AT AT00968599T patent/ATE239245T1/en not_active IP Right Cessation
- 2000-10-03 CA CA002387056A patent/CA2387056A1/en not_active Abandoned
- 2000-10-03 AU AU78487/00A patent/AU7848700A/en not_active Abandoned
- 2000-10-03 CN CN00816892A patent/CN1409837A/en active Pending
- 2000-10-03 PT PT00968599T patent/PT1228412E/en unknown
- 2000-10-03 WO PCT/US2000/027193 patent/WO2001027726A1/en active IP Right Grant
- 2000-10-03 EP EP00968599A patent/EP1228412B1/en not_active Expired - Lifetime
- 2000-10-03 DE DE60002501T patent/DE60002501T2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988008161A1 (en) * | 1987-04-15 | 1988-10-20 | Allied Corporation | An operations controller for a fault tolerant multiple node processing system |
US5146585A (en) * | 1988-10-25 | 1992-09-08 | International Business Machines Corporation | Synchronized fault tolerant clocks for multiprocessor systems |
WO1999038287A1 (en) * | 1998-01-23 | 1999-07-29 | Koninklijke Philips Electronics N.V. | Method for synchronizing network nodes |
Non-Patent Citations (1)
Title |
---|
MILLS D L: "IMPROVED ALGORITHMS FOR SYNCHRONIZING COMPUTER NETWORK CLOCKS", COMPUTER COMMUNICATIONS REVIEW,US,ASSOCIATION FOR COMPUTING MACHINERY. NEW YORK, vol. 24, no. 4, 1 October 1994 (1994-10-01), pages 317 - 327, XP000477058, ISSN: 0146-4833 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3296835B1 (en) * | 2016-09-15 | 2022-04-27 | ALSTOM Transport Technologies | Method for synchronizing a system by determining a common local time interval |
Also Published As
Publication number | Publication date |
---|---|
JP2003527667A (en) | 2003-09-16 |
ATE239245T1 (en) | 2003-05-15 |
EP1228412B1 (en) | 2003-05-02 |
DE60002501T2 (en) | 2004-03-25 |
DE60002501D1 (en) | 2003-06-05 |
AU7848700A (en) | 2001-04-23 |
US6801951B1 (en) | 2004-10-05 |
PT1228412E (en) | 2003-08-29 |
CN1409837A (en) | 2003-04-09 |
CA2387056A1 (en) | 2001-04-19 |
EP1228412A1 (en) | 2002-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6801951B1 (en) | System and method for fault-tolerant clock synchronization using interactive convergence | |
Schmid et al. | Interval-based clock synchronization | |
US4584643A (en) | Decentralized synchronization of clocks | |
US6297702B1 (en) | Phase lock loop system and method | |
Cristian et al. | Probabilistic internal clock synchronization | |
CN111669244A (en) | Maintaining correct time in transferring counter values between clock domains | |
EP0677802B1 (en) | Apparatus and method for generating a phase-controlled clock signal | |
US20020047748A1 (en) | Clock control circuit | |
US6949955B2 (en) | Synchronizing signals between clock domains | |
Kopetz et al. | A synchronization strategy for a time-triggered multicluster real-time system | |
CN103116322A (en) | Method for trimming an adjustable oscillator to match a CAN-bus and a CAN-bus communication controller | |
GB2257276A (en) | Frequency divider | |
US20070110023A1 (en) | Method for clock sychronization of wireless 1394 buses for nodes connected via ieee 802.11 a/b wlan | |
US11474557B2 (en) | Multichip timing synchronization circuits and methods | |
Kinali et al. | Fault-tolerant clock synchronization with high precision | |
Horauer | Clock synchronization in distributed systems | |
Borran et al. | Quantitative analysis of consensus algorithms | |
CN115549836A (en) | Design method and system for logic clock synchronization algorithm of distributed system | |
Kopetz | Fault containment and error detection in TTP/C and FlexRay | |
JP2510750B2 (en) | A fault tolerant system, a method of synchronizing between redundant systems, and a multiplexed clock oscillator | |
EP1442353B1 (en) | Clocking and synchronization circuitry | |
Yang et al. | GNSS Aided Precision Multi-clock Synchronization | |
Ferringer | Towards self-timed logic in the time-triggered protocol | |
CN114070762B (en) | Network monitoring probe assembly, synchronization method and data acquisition and analysis device | |
CN113204262B (en) | Device and method for acquiring data with low frequency multiplication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 2001 530674 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000968599 Country of ref document: EP Ref document number: 2387056 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 00816892X Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2000968599 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 2000968599 Country of ref document: EP |