<Desc/Clms Page number 1>
Zitierte Patente: [1] US 5694542 issued on Dec. 12,1989: A loosely coupled distributed computer system with node synchronization for precision in real time.
[2] EP 0 658 257 vom 18.12.1996: Kommunikationskontrolleinheit und Verfahren zur Übermittlung von Nachrichten.
[3] US 5887143 issued on March 23,1999: Time-Triggered Communcation Control Unit and Communication.
[4] AT 407 582 vom 15.6.2000: Nachrichtenverteilereinheit mit integriertem Guardian zur Verhinderung von Babbling Idiot Fehlern.
[5] AT 408 383 vom 15.3.2001 : und Kommunikationskontrolleinheit zur Multimaster- uhrensynchronisation in einem verteilten Echtzeitcomputersystem.
[6] AT Patentanmeldung 1723/2001 vom 10.10. 2000 : Verfahren zur Tolerierung von slightlyoff-specification Fehlern in einem verteilten fehlertoleranten Echtzeitsystem.
[7] AT Patentanmeldung 429/2001 vom 19.3.2001 : zur Realisierung von Ereigniskanälen in einem zeitgesteuerten Kommunikationssystem.
[8] GB 2 383 434 vom 25.6.2003 Fault-Tolerant Clock Synchronization [9] EP 0 991 216 vom 10. 6.99 Organization of Time Synchronization in Distributed Systems [10] US 6 370 159 vom 9. 4.2002 System Application Techniques using Time Synchronization [11]US 6 157 957 vom 5.12.2000 Clock Synchronization System and method using a continuous conversion function for a communication network [12] US 5 577 075 vom 19. 11.1996 Distributed clocking system [13] US 5907 685 vom 25. 5.1999 System and Method for synchronizing clocks in distributed computer nodes Sonstige Literatur: [14] TTP/C Specification Document, 2002, Available from www.tttech.com [15] Kopetz, H, Bauer, G, The Time-Triggered Architecture, Proc. of the IEEE, Jan. 2003, p. 112-126 [16] Kopetz, H. (1997). Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN: 0-7923-9894-7. Boston.
Kluwer Academic Publishers.
TECHNISCHES UMFELD Diese Erfindung betrifft die Verbesserung der Uhrensynchronisation in einer verteilten zeitgesteuerten Computerarchitektur für die Echtzeitdatenverarbeitung.
HINTERGRUND DIESER ERFINDUNG Zeitgesteuerte verteilte Echtzeitsysteme stossen aufgrund ihres vorhersehbaren Zeitverhaltens
<Desc/Clms Page number 2>
auf grosses industrielles Interesse. Ein zeitgesteuertes verteiltes Echtzeitsystem besteht aus einer Anzahl von Knotenrechnern, die über ein Kommunikationssystem zum Austausch von Nachrichten verbunden sind. In einem zeitgesteuerten Echtzeitsystem ist die Qualität der verfügbaren Zeitbasis, ausgedrückt durch die Präzision und die Fehlertoleranz der Uhrensynchronisation, von zentraler Bedeutung.
Entsprechend [16, S. 63] ergibt sich die Präzision P bei einer fehlertoleranten Uhrenstandsynchronisation mit dem FTA Algorithmus zu
EMI2.1
wobei e den Jitter (Differenz zwischen maximaler und minimaler Transportzeit) des Kommunikationssystems und x den Driftoffset der Uhren am Ende des Uhrenstandresynchronisationsintervalls darstellen. N entspricht der Anzahl der an der Synchronisation beteiligten Uhren und k ist die Anzahl der Uhren, die einen beliebigen Fehler haben können. Um einen beliebigen Fehler zu tolerieren benötigt man daher mindestens vier Uhren.
Der Driftoffset x errechnet sich aus x = (2 x p x r) wo p die durch die durch physikalischen Aufbau gegebene maximale Driftrate der Oszillatoren und r die Länge des Uhrenstandresynchronisationsintervalls darstellen.
ZIEL DER ERFINDUNG Die vorliegende Erfindung hat zum Ziel in einem Ensemble von kommunizierenden Echtzeitcomputeruhren, die über einen bekannten verteilten fehlertoleranten Uhrenstandalgorithmus periodisch resynchronisiert werden, durch die Einführung eines Uhrengangmasters, der Zugriff auf eine externe Zeitreferenz hat, folgendes zu erreichen 1.den Stand aller Uhren an diese externe Zeitreferenz heranzuführen, um die Uhren des
Ensembles extern zu synchronisieren, und 2. den Uhrengang aller Uhren des Ensembles an den Uhrengang des Uhrengangmasters anzugleichen, um den Driftoffset x und damit die Präzision P des Ensembles signifikant zu verbessern.
Es ist ein wesentlicher Aspekt dieser Erfindung, dass bei Ausfall des Uhrengangmasters die Uhrenstandsynchronisation des bekannten verteilten fehlertoleranten Uhrenstandsynchronisationsalgorithmus aufrechterhalten bleibt.
Die Kombination einer verteilten fehlertoleranten Uhrenstandsynchronisation mit einer zentralen fehlertoleranten Uhrenganganpassung führt zu einem sehr kostengünstigen Uhrensynchronisationssystem für die externe und fehlertolerante interne Uhrensynchronisation von hoher Genauigkeit.
STAND DER TECHNIK Das Gebiet der Uhrensynchronisation in verteilten Echtzeitcomputersystem wird in der Patentliteratur mehrfach behandelt. Die Patente lassen sich wie folgt systematisch einteilen: 1. Uhrenstandsynchronisation: Die Uhrenstände der lokalen Uhren werden periodisch angepasst, um einen system-globale Zeitbegriff aufzubauen. Der Uhrengang wird nicht verändert.
<Desc/Clms Page number 3>
1. 1 zentrale Uhrenstandsynchronisation : Es gibt eine zentrale Referenzuhr, die statisch oder dynamisch ausgewählt wird : [8], [9], [10], [11], [12] 1.2 verteilte fehlertolerante Uhrenstandsynchronisation : Ein verteilter Algorithmus baut aus den lokalen Zeiten der Uhren eine globale Zeit auf. Eine festgelegte Anzahl von fehlerhaften Uhren wird toleriert [1], [2], [3], [5], [8], [12] 2.
Uhrengangsynchronisation: Bei der Uhrengangsynchronisation wird die die Drift (Geschwindigkeit) einer Uhr verändert (siehe [[16], p.48), ähnlich wie ein Uhrmacher die mechanische Frequenz eines Unruheschwingsystems einer Armbanduhr verändert. [10], [13] 3. Externe Uhrensynchronisation: Bei der externen Uhrensynchronisation wird der Stand der Uhren des Computersystems an den Stand einer externen Referenzuhr herangeführt [10], [5].
Die wesentliche Innovation der vorliegenden Erfindung ist die Kombination einer verteilten fehlertoleranten Uhrenstandsynchronisation mit einer zentralen Uhrengangsynchronisation, um eine mit einer Referenzzeit synchronisierte fehlertolerante globale Zeitbasis hoher Genauigkeit kostengünstig aufzubauen.
ZUSAMMENFASSUNG Die vorliegende Erfindung hat zum Ziel, in einem verteilten Echtzeitcomputersystem die Qualität der globalen Zeitbasis wesentlich zu verbessern und eine einfache externe Uhrensynchronisation zu realisieren. Um dieses Ziel zu erreichen wird in einem System mit einer verteilten fehlertoleranten Uhrenstandsynchronisation erfindungsgemäss eine fehlertolerante zentrale Uhrenganganpassung vorgenommen. Die zentrale Uhrenganganpassung unterstützt auch die externe Synchronisation von Multi-cluster Systemen. Die Kombination von verteilter Uhrenstandsynchronisation und zentraler Uhrenganganpassung führt zu einer präzisen fehlertoleranten Zeitbasis, selbst bei Verwendung von ungenauen - und daher billigen - Oszillatoren.
KURZE BESCHREIBUNG DER ABBILDUNGEN Das vorab beschriebene Ziel und andere neue Eigenschaften der vorliegenden Erfindung werden in den angeführten Abbildungen erläutert.
Fig. 1 zeigt die Struktur eines verteilten Computersystems.
Fig. 2. zeigt die Korrekturintervalle zu einem Resynchronisationszeitpunkt.
BESCHREIBUNG EINER REALISIERUNG Im folgenden Abschnitt wird eine Realisierung des neuen Verfahrens an einem möglichen Beispiel mit vier Knotenrechnern, die über einen oder zwei replizierte Sternkoppler verbunden sind, gezeigt.
Fig. 1 zeigt ein verteiltes Computersystem mit einem Kommunikationssystem. Es besteht aus den vier Knotenrechner 111, 112, 113, und 114, die über je einen Kommunikationskontroller mit je einem bidirektionalen Kommunikationskanalanschluss zum Kommunikationskanal 109 verfügen. Über den Kommunikationskanal 109 werden periodisch Nachrichten ausgetauscht. In dem Kommunikationskanal kann sich ein intelligenter Sternkoppler 101 zur zentralen Steuerung der Kommunikation befinden. Jeder Knotenrechner 111, 112, 113, und 114, und der Sternkoppler verfügen über eine Echtzeituhr 121, 122, 123, 124 und 125. In einer anderen Ausprägung können die Kommunikationskanäle 109 über einen Bus verbunden sein. Die Kommunikationskanäle 109 können auch wireless, d. h. drahtlos sein.
In diesem Fall findet sich in jedem Knotenrechner ein Kommunikationskontroller der das drahtlose Senden und Empfangen von Nachrichten unterstützt. Fig. 1 geht davon aus, dass die vier Knotenrechner 111, 112, 113, und 114 time-
<Desc/Clms Page number 4>
keeping Knotenrechner sind, d. h., Knotenrechner die unter Anwendung eines verteilten Algorithmus, wie er in [10, S. 60], beschrieben ist, eine fehlertoleranten Zeitbasis aufbauen. Weitere Knotenrechner, die an dem Aufbau einer fehlertoleranten Zeitbasis nicht aktiv beteiligt sind, sondern sich auf die von den time-keeping Knotenrechnern aufgebaute Zeitbasis synchronisieren ohne die Zeitbasis zu beeinflussen, sind in Fig. 1 nicht dargestellt.
Fig. 2 zeigt die Folge der Zeitpunkte am Ende eines periodischen Uhrenstandresynchronisationsintervalls, zu denen die lokale Repräsentation der globalen Zeit in den vier time-keeping Uhren den nächsten periodischen Synchronisationszeitwert erreicht. Auf der Abzisse 200 von Fig. 2 ist Fortschreiten der Zeit dargestellt. Die Periode des Uhrenstandresynchronisationsintervalls sei r Zeiteinheiten lang. Da die vier Uhren einen unterschiedlichen Uhrengang haben, erreicht die Uhr 121 den Zeitwert bereits zum Zeitpunkt 221. Die Uhr 122 erreicht den gleichen Zeitwert zum Zeitpunkt 222, die Uhr 123 zum Zeitpunkt 223 und die Uhr 124 zum Zeitpunkt 224.
Die vier Knotenrechner errechnen mittels eines bekannten fehlertoleranten Synchronisationsalgorithmus (z. B. dem FTA Algorithmus in [10. S. 60]) den gemeinsamen Mittelwert des Uhrenstandes 230. Entsprechend diesem fehlertoleranten Algorithmus müssen die Uhren ihren lokalen Uhrenstand verändern, und zwar erhöht die Uhr 222 ihren lokalen Uhrenstand um den Wert 231 und die Uhr 224 erniedrigt ihren lokalen Uhrenstand um den Wert 232. Die beiden anderen Uhren 221 und 223 verfahren entsprechend. Erfindungsgemäss sei nun a priori festgelegt, dass die Uhr 224 die Rolle eines Uhrengangmasters einnimmt, d.h., alle anderen time-keeping Uhren müssen ihren Uhrengang periodisch innerhalb eines Uhrengangresynchronisationsintervalls (UGRSI) an den Uhrengang des Gangmasters 224 anpassen. Die Länge von UGRSI sei ein Vielfaches vom Uhrenstandresynchronisationsintervall r.
Entsprechend dem Algorithmus verändert der Gangmaster seinen Uhrengang nicht. Im folgenden sei die Uhrenganganpassung aus der Sicht der Uhr 222 beschrieben. Um die Uhrengangdifferenz zwischen der Uhr 222 und dem Gangmaster 224 während eines UGRSI zu bestimmen, muss die Uhr 222 in einem Zähler alle Korrekturwerte 231 der Uhr 222 und 232 der Uhr 224 summieren. Dividiert man diese Summe durch die Länge von UGRSI, so erhält man die Uhrengangdifferenz zwischen der Uhr 222 und dem Uhrengangmaster 224 während des letzten UGRSI.
Um ein fehlerhaftes Verhalten des Gangmasters zu erkennen, wird der Wert der errechneten Uhrengangdifferenz und die erste Ableitung der Uhrengangdifferenz überprüft ehe die Uhr 222 ihren Uhrengang korrigiert. Der Wert der Uhrengangdifferenz muss innerhalb eines Intervalls liegen, dass von den physikalischen Parametern der verwendeten Oszillatoren abhängt. Angenommen, der Hersteller der Oszillatoren garantiert eine Abweichung des Oszillators von der physikalischen Zeit von besser als 10-5 sec/sec, dann muss der maximale Wert der Uhrengangdifferenz von noch "guten" Oszillatoren kleiner sein als 2x10-5 sec/sec. Wenn die gemessene Uhrengangdifferenz grösser ist als dieser Maximalwert, dann ist entweder der Oszillator des Uhrengangmasters 224 fehlerhaft oder der Oszillator des Rechnerknotens 222 ist fehlerhaft.
In beiden Fällen wird vom Rechnerknoten 222 keine Anpassung der Uhrengangdifferenz durchgeführt und eine Diagnosemeldung an einen Diagnoserechner versandt. In weiterer Folge wird aufgrund dieses Fehlers der FTA Algorithmus zur Uhrenstandsynchronchronisation die fehlerhafte Uhr nicht weiter berücksichtigt.
Analog wird auch die Änderungsgeschwindigkeit der Uhrengangdifferenz überprüft. Aufgrund von physikalischen Gesetzmässigkeiten kann sich der Gang einer Uhr nur innerhalb bekannter Grenzen ändern. Wenn die Änderungsgeschwindigkeit einen vorgegebenen technologiebestimmten Maximalwert überschreitet, so muss auch ein Fehler vorliegen.
Wenn der Uhrengangmaster 114 fehlerhaft wird, so kann a priori ein Shadow Master bestimmt werden, der die Uhrengangkalibrierung übernimmt. Z. B. kann der Rechnerknoten 113 diese Rolle übernehmen, falls der Rechnerknoten 114 ausfällt.
Wenn nun die Uhr 222 festgestellt hat, dass die Uhrengangdifferenz zwischen dem Uhrengangmaster und der Uhr 222 innerhalb der erlaubten Grenzwerte von Uhrengang und erster
<Desc/Clms Page number 5>
Ableitung des Uhrengangs liegt, dann ändert der Rechnerknoten 112 den lokalen Parameter in seiner Uhrensynchronisationshardware, der das Verhältnis der Mikroticklänge zur Makroticklänge bestimmt (beschrieben in [8] ) derart, dass von nun an der Uhrengang der Uhr 222 dem Uhrengang des Uhrengangmasters 224 entspricht. Die Funktion des fehlertoleranten Uhrenstandalgorithmus wird durch diese Anpassung nicht verändert. Alle anderen time-keeping Knoten, die nicht die Funktion des Uhrengangmasters ausführen, verfahren analog.
Wenn der Uhrengangmaster 114 keinen Zugriff auf eine Referenzzeit hat, so bestimmt der Uhrengang des Uhrengangmasters somit den Uhrengang des gesamten Ensembles von Rechnerknoten. Es ist deshalb sinnvoll, im Uhrengangmaster einen besonders genauen Oszillator zu installieren.
Wenn hingegen der Uhrengangmaster 114 Zugriff auf eine externe Referenzzeit, z. B. auf einen GPS Empfänger [10, S. 65] hat, so wird er seinen Uhrengang dem Uhrengang der Referenzzeit anpassen. Sinnvollerweise wird der Uhrengangmaster in diesem Fall auch den Uhrenstand an den Uhrenstand der Referenzzeit anpassen. Dies bezeichnet man externe Synchronisation [10, S. 65]. Die externe Synchronisation kann in zwei Phasen geschehen. Die erste Phase betrifft den Systemstart. Nach dem Einschalten wird der Uhrengangmaster zuerst die Referenzzeit übernehmen und dann eine Initialisierungsnachricht mit dieser Referenzzeit an alle anderen Knoten des Ensembles senden. Die zweite Phase betrifft den laufenden Betrieb.
Wenn im laufenden Betrieb der Uhrenstand des Ensembles von der Referenzzeit abweichen sollte, dann wird der Uhrengangmaster 114 den Uhrengang des gesamten Ensembles langsam (innerhalb der beschriebenen Schranken) so beeinflussen, dass der Uhrenstand des Ensembles sich dem Uhrenstand der Referenzzeit anpasst.
Wenn der Uhrengangmaster 114 ausgefallen ist, so kann der Shadow Master 113 den Systemstart übernehmen. In diesem Fall muss der Shadow Master 113 auch Zugriff auf die externe Referenzzeit haben.
Wenn die externe Synchronisation fehlertolerant sein soll, so müssen mindestens drei Uhren vorhanden sein, die voneinander unabhängig Zugriff auf die Referenzzeit haben. Diese drei Uhren übernehmen dann den Systemstart und akzeptieren einen Zeitwert nur, wenn er von mindestens zwei der drei Uhren angeboten wird. Da zum Zeitpunkt des Systemstarts diese drei Uhren bereits über eine synchronisierte Zeitbasis (die Referenzzeit) verfügen, kann der Systemstart bereits nach einem a priori festgelegten Zeitplan erfolgen.
Die nicht time-keeping Uhren, die keinen Einfluss auf die Bildung der globalen Zeit haben, können ihren Uhrenstand und ihren Uhrengang an den durch den fehlertoleranten Algorithmus errechneten Mittelwert der time-keeping Uhren anpassen.
Da das beschriebene Verfahren zur Uhrengangkalibrierung vollkommen unabhängig ist von der fehlertoleranten Uhrenstandsynchronisation können in einem Ensemble auch unterschiedliche Rechnerknoten eingesetzt werden, d.h. solche die eine Uhrengangkalibrierung unterstützen und solche die eine Uhrengangkalibrierung nicht unterstützen. Dem Systemingenieur stehen somit zwei Alternativen offen : er kann zwischen einem aufwendigere Knotenrechner (mit Uhrenganganpassung) und einem billigen (ungenauen) Oszillator oder einem einfacheren Knotenrechner (ohne Uhrenganganpassung) und einem teureren (genaueren) Oszillator entscheiden, um eine Zeitbasis der gewünschten Genauigkeit aufzubauen. Bei kleinen Stückzahlen einer Serie wird die erste Alternative sinnvoll sein, bei grossen Stückzahlen die zweite.
Aufgrund der Struktur des vorgestellten Verfahrens ist es möglich nachzuweisen, dass dieses Verfahren stabil ist und zu keinen Schwingungen im Uhrensynchronisationssystem führen kann.
Es sei weiters bemerkt, dass das vorab beschriebene Verfahren zur Kalibrierung des Uhrengangs auch direkt in der Hardware eines Rechnerknotens realisiert werden kann.
<Desc/Clms Page number 6>
Abschliessend sei festgehalten dass sich durch das hier offengelegte Verfahren zur Kalibrierung des Uhrengangs folgende wirtschaftliche Vorteile ergeben: # Das Verfahren führt zu einer wesentlichen Verbesserung der Qualität der globalen Zeit in einem verteilten Echtzeitcomputersystem, selbst bei Verwendung von billigen Oszillatoren.
# Das Verfahren unterstützt die nahtlose Integration von interner und externer Uhrensynchro- nisation.
# Das Verfahren ermöglicht den Aufbau von verteilten Systemen mit gemischten Rechnerkno- ten, d. h. solche die die Uhrengangkalibrierung unterstützen und solche die sie nicht unter- stützen.
Patentansprüche : 1. Verfahren zur Synchronisation der Uhren in einem verteilten Echtzeitsystem, in dem n
Knotenrechnern mit je mindestens einer Echtzeituhr über ein Kommunikationssystem be- stehend aus einem oder mehreren Kommunikationskanälen periodisch Nachrichten aus- tauschen, und wo k der n Knotenrechner (k # n), die k time-keeping Uhren, mit einem ver- teilten fehlertoleranten Algorithmus eine verteilte globale Zeitbasis aufbauen durch ge- kennzeichnet, dass eine der k time-keeping Uhren a priori als Uhrengangmaster bestimmt wird und die anderen k-1 time-keeping Uhren ihren Uhrengang an den Gang des Uhren- gangmasters anpassen und wo der Uhrengangmaster, der Zugriff auf eine externe Zeitre- ferenz hat, bei Abweichung des Uhrenstandes der verteilten globalen Zeit vom Uhrenstand der externen Zeitreferenz seinen Uhrengang vorübergehend so ändert,
dass die Uhren- stände der time-keeping Uhren in der Folge den Uhrenstand der externen Zeitreferenz er- reichen.