DE10327116B4 - Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren - Google Patents

Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren Download PDF

Info

Publication number
DE10327116B4
DE10327116B4 DE10327116A DE10327116A DE10327116B4 DE 10327116 B4 DE10327116 B4 DE 10327116B4 DE 10327116 A DE10327116 A DE 10327116A DE 10327116 A DE10327116 A DE 10327116A DE 10327116 B4 DE10327116 B4 DE 10327116B4
Authority
DE
Germany
Prior art keywords
clock
time
time stamp
reading
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10327116A
Other languages
English (en)
Other versions
DE10327116A1 (de
Inventor
Werner Heinrich
Andreas Weitl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Airbus Defence and Space GmbH
Original Assignee
EADS Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EADS Deutschland GmbH filed Critical EADS Deutschland GmbH
Priority to DE10327116A priority Critical patent/DE10327116B4/de
Priority to IT001129A priority patent/ITMI20041129A1/it
Priority to FR0406133A priority patent/FR2856162B1/fr
Priority to GB0413094A priority patent/GB2403566B/en
Priority to US10/866,097 priority patent/US7194648B2/en
Publication of DE10327116A1 publication Critical patent/DE10327116A1/de
Application granted granted Critical
Publication of DE10327116B4 publication Critical patent/DE10327116B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

Verfahren zur Zeitsynchronisation von mindestens zwei in einem Multiprozessorsystem enthaltenen Uhren, bei dem eine erste Uhr mit einer vorgegebenen Taktrate aufeinanderfolgende jeweilige die Zeit anzeigende Zeitstempel erzeugt und mindestens eine zweite Uhr, die eine einstellbare Taktrate aufweist, in bestimmten Zeitabständen mit der ersten Uhr synchronisiert wird, wobei
a) in vorgegebenen Zeitabständen die gegenseitige zeitliche Lage von den Übergang zwischen zwei aufeinanderfolgenden Zeitstempeln repräsentierenden Flanken der ersten Uhr und der zweiten Uhr erfasst wird,
b) aus der Änderung der gegenseitigen zeitlichen Lage der Übergangsflanken der ersten Uhr und der zweiten Uhr ein die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierender Korrekturfaktor bestimmt wird,
c) mittels des die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierenden Korrekturfaktors die Taktrate der zweiten Uhr im Sinne einer Verminderung der Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr neu eingestellt wird, und
d) die Schritte...

Description

  • Die Erfindung betrifft ein Verfahren zur Zeitsynchronisation von mindestens zwei einem Multiprozessorsystem enthaltenen Uhren.
  • In einem Multiprozessorsystem, wie es beispielsweise zur Verarbeitung von großen Datenmengen und/oder verschiedenen Aufgaben in Echtzeit verwendet wird, besteht eine Schwierigkeit darin, die Uhren der einzelnen Prozessoren so zu synchronisieren, dass sie gleich laufen, d.h., dass deren zeitliche Abweichung einen bestimmten vorgegebenen Toleranzwert nicht überschreitet. Als „Uhr" soll hierbei ein Zeitgeber oder Taktgeber in Form von beispielsweise einem „Counter" oder einem „Timer"verstanden werden, welcher eine, zunächst relative, Zeitangabe in Form eines Zeitstempels erzeugt, die jedoch auf die aktuelle Zeit nach Art einer Absolutzeituhr umgerechnet werden kann. Ein „Counter" wird meist durch einen präzisen Schwingquarz realisiert, der mit einer bestimmten Frequenz schwingt, welche abhängig von Güte und Art des Quarzes mehr oder weniger präzise ist. Mit dem Quarz verbunden ist meist ein Zählregister, welches nach jeder Periodendauer P oder einem Bruchteil davon um 1 inkrementiert wird. Ähnlich dem „Counter" ist auch der „Timer", der demgegenüber ein zusätrliches Register in Form eines sogenannten Halteregisters aufweist. Nach jeder Periodendauer T des Quarzes oder eines Vielfachen davon wird das Zählregister dekrementiert. Sobald dieses auf Null dekrementiert ist, wird ein Interrupt generiert und das Zählregister auf den Wert im Halteregister gesetzt.
  • Ein Problem ist einerseits eine grundsätzliche Abweichung der Schwingung des Quarzes, indem dieser zu schnell oder zu langsam „geht", und andererseits ein „Wegdriften" in Abhängigkeit der Temperatur. In 2a) ist die Gangabweichung eines Quarzes bei konstanter Temperatur dargestellt, in 2b) das Wegdriften zunächst bei Temperaturänderung, beispielsweise beim Anlaufen des Prozessors, und dann eine konstante Gangabweichung bei konstanter Temperatur.
  • Aus der EP 1 294 116 A2 ist ein Verfahren zur Synchronisation von Uhren in einem Netzwerk bekannt, bei denen Zeitstempel verwendet werden.
  • Aus der US 6 125 368 ist ein Verfahren zur Synchronisation verschiedener Uhren im einem komplexen Netzwerk bekannt, wobei jedem Knoten des Netzwerks eine logische Uhr zugeordnet ist.
  • Weiterhin sind Verfahren zur Synchronisation von Prozessoren aus den Aufsätzen „Time Synchronization on SP1 and SP2 Parallel Systems"von ABALI et al (In: 9th International Parallel Processing Symposium, Proceedings, 1995, S. 666-672), „Event Composition in Time-dependent Distributed Systems" von LIEBIG et al (In: International Conference on Cooperative Information Systems, CooplS'99, Proceedings, 1999, S, 70-78), der US 5 875 320 und der US 6 011 823 bekannt.
  • Die Erfindung geht aus von einem Verfahren zur Zeitsynchronisation von mindestens zwei in einem Multiprozessorsystem enthaltenen Uhren, bei dem eine erste Uhr mit einer vorgegebenen Taktrate aufeinanderfolgende jeweilige die Zeit anzeigende Zeitstempel erzeugt und mindestens eine zweite Uhr, die eine einstellbare Taktrate aufweist, in bestimmten Zeitabständen mit der ersten Uhr synchronisiert wird.
  • Die Aufgabe der Erfindung ist es, ein Verfahren dieser Art so zu schaffen, dass ein Bus, durch welchen die Prozessoren des Multiprozessorsystems miteinander verbunden sind, durch die Zeitsynchronisation möglichst wenig belastet wird.
  • Diese Aufgabe wird erfindungsgemäß durch das im Anspruch 1 angegebene Verfahren zur Zeitsynchronisation gelöst.
  • Vorteilhafte Weiterbildungen des erfindungsgemäßen Verfahrens sind in den Unteransprüchen angegeben.
  • Durch die Erfindung wird ein Verfahren zur Zeitsynchronisation von mindestens zwei in einem Multiprozessorsystem enthaltenen Uhren geschaffen, bei dem eine erste Uhr mit einer vorgegebenen Taktrate aufeinanderfolgende jeweilige die Zeit anzeigende Zeitstempel erzeugt und mindestens eine zweite Uhr, die eine einstellbare Taktrate aufweist, in bestimmten Zeitabständen mit der ersten Uhr synchronisiert wird. Erfindungsgemäß ist es vorgesehen, dass a) in vorgegebenen Zeitabständen die gegenseitige zeitliche Lage von den Übergang zwischen zwei aufeinanderfolgenden Zeitstempeln repräsentierenden Flanken der ersten Uhr und der zweiten Uhr erfasst wird, dass b) aus der Änderung der gegenseitigen zeitlichen Lage der Übergangsflanken der ersten Uhr und der zweiten Uhr ein die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierender Korrekturfaktor bestimmt wird, dass c) mittels des die Zeltabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierenden Korrekturfaktor die Taktrate der zweiten Uhr im Sinne einer Verminderung der Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr neu eingestellt wird, und dass d) die Schritte a) bis c) wiederholt werden.
  • Gemäß einem Aspekt der Erfindung kann die zeitliche Lage der Übergangsflanken der ersten Uhr und/oder der zweiten Uhr durch Polling erfasst werden, indem der Zeitstempel der betreffenden Uhr mindestens zweimal hintereinander ausgelesen und die dabei erhaltenen Zeitstempel miteinander verglichen werden und das Auslesen des Zeitstempels solange wiederholt wird bis sich der zuletzt erhaltene Zeitstempel von dem vorherigen Zeitstempel unterscheidet.
  • Gemäß einem anderen Aspekt der Erfindung kann die Änderung der zeitlichen Lage der Übergangsflanken der ersten Uhr und der zweiten Uhr durch eine zweistufige Flankensuche erfasst werden, indem der Zeitstempel der betreffenden Uhr einmal vor einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln und einmal nach einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln ausgelesen und jeweils der erhaltene Zeitstempel mit dem für den Zeitpunkt des Auslesens erwarteten Zeitstempel verglichen wird und dieser Vorgang fortgesetzt wird, wobei i) eine Übereinstimmung sowohl des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel als auch des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel im Sinne einer korrekten Lage der angenommenen Übergangsflanke gewertet wird, ii) eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem früheren als den erwarteten Zeitstempel im Sinne einer verspäteten Lage der angenommenen Übergangsflanke bzw. im Sinne eines zu frühen, Zeitpunkts des Auslesens gewertet wird, und iii) eine Überein stimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem späteren als dem erwarteten Zeitstempel im Sinne einer verfrühten Lage der angenommenen Übergangsflanke bzw. im Sinne eines zu späten Zeitpunkts des Auslesens gewertet wird.
  • Das Auslesen der Zeitstempel kann jeweils vor und nach derselben angenommenen Übergangsflanke zwischen denselben zwei aufeinanderfolgenden Zeitstempeln erfolgen.
  • Vorzugsweise jedoch erfolgt das Lesen der Zeitstempel jeweils vor und nach verschiedenen angenommenen Übergangsflanken zwischen jeweiligen verschiedenen zwei aufeinanderfolgenden Zeitstempeln, insbesondere abwechselnd.
  • Insbesondere vorteilhaft ist es, das Lesen der Zeitstempel jeweils abwechselnd vor und nach verschiedenen angenommenen Übergangsflanken vorzunehmen, die in gleichen Zeitabständen aufeinanderfolgen.
  • Gemäß einem besonders vorteilhaften Ausführungsbeispiel der Erfindung ist es vorgesehen, dass am Anfang des Synchronisierungsvorgangs die Lage der Übergangsflanken durch Polling erfasst wird, indem der Zeitstempel der betreffenden Uhr mindestens zweimal hintereinander ausgelesen und die dabei erhaltenen Zeitstempel miteinander verglichen werden und das Auslesen des Zeitstempels solange wiederholt wird bis sich der zuletzt erhaltene Zeitstempel von dem vorherigen Zeitstempel unterscheidet, und dass dann die Änderung der zeitlichen Lage durch eine zweistufige Flankensuche erfasst wird, indem der Zeistempel der betreffenden Uhr einmal vor einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln und einmal nach einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln ausgelesen und jeweils der erhaltene Zeitstempel mit dem für den Zeitpunkt des Auslesens erwarteten Zeitstempel verglichen wird und dieser Vorgang fortgesetzt wird, wobei i) eine Übereinstimmung sowohl des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel als auch des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel im Sinne einer korrekten Lage der angenommenen Übergangsflanke gewertet wird, ii) eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem früheren als den erwarteten Zeitstempel im Sinne einer verspäteten Lage der angenommenen Übergangsflanke bzw. im Sinne eines zu frühen Zeitpunkts des Auslesens gewertet wird, und iii) eine Übereinstimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem späteren als dem erwarteten Zeitstempel im Sinne einer verfrühten Lage der angenommenen Über gangsflanke bzw. im Sinne eines zu späten Zeitpunkts des Auslesens gewertet wird.
  • Vorzugsweise ist es vorgesehen, dass der die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierende Korrekturfaktor bestimmt wird durch Vergleich des zeitlichen Abstandes zwischen jeweils zwei einander entsprechenden Übergangsflanken der ersten und der zweiten Uhr.
  • Gemäß einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens ist es vorgesehen, dass die Taktrate der zweiten Uhr im Sinne einer Verminderung der Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr dann neu eingestellt wird (Schritt c)), wenn mindestens zwei aufeinanderfolgende Auslesevorgänge eine Zeitabweichung in der gleichen Richtung im Sinne entweder einer verspäteten Lage der angenommenen Übergangsflanken bzw. im Sinne eines zu frühen Zeitpunkts des Auslesens oder im Sinne einer verfrühten Lage der angenommenen Übergangsflanken bzw. im Sinne eines zu späten Zeitpunkts des Auslesens ergeben hat.
  • Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens die erste Uhr eine zentrale ganggenaue Uhr.
  • Vorzugsweise ist die mindestens eine zweite Uhr eine interne Uhr eines in dem Multiprozessorsystem enthaltenen Prozessors.
  • Vorzugsweise ist die zweite, interne Uhr eine virtuelle Uhr, die durch Software erzeugt wird.
  • Vorzugsweise enthält das Multiprozessorsystem mehrere Prozessoren mit mehreren diesen zugeordneten zweiten Uhren, die mit der ersten Uhr bzw. mittels dieser synchronisiert werden.
  • Hierbei ist es vorzugsweise vorgesehen, dass die mehreren zweiten Uhren jeweils zu verschiedenen nacheinander folgenden Zeitpunkten mit der ersten Uhr synchronisiert werden.
  • Im folgenden werden Ausführungsbeispiele des erfindungsgemäßen Verfahrens anhand der Zeichnung erläutert.
  • Es zeigt:
  • 1 eine schematisierte Darstellung eines Multiprozessorsystems, bei dem mehrere Prozessoren mittels einer zentralen Uhr synchronisiert werden;
  • 2a) und b) Diagramme zur Erläuterung des Wegdriftens der mittels eines Schwingquarzes gemessenen Zeit;
  • 3 ein Diagramm zur Erläuterung einer stetigen Synchronisation einer virtuellen Uhr in Bezug auf eine zentrale, ganggenaue Uhr;
  • 4 ein Diagramm zur Erläuterung einer unstetigen Synchronisation einer virtuellen Uhr in Bezug auf eine zentrale, ganggenaue Uhr;
  • 5 ein Diagramm zur Erläuterung der Problematik des Lesezugriffs bei der Synchronisation zweier Uhren;
  • 6 eine Diagramm zur Erläuterung einer sogenannten zweistufigen Flankensuche bei der Durchführung des erfindungsgemäßen Verfahrens;
  • 7 ein Diagramm zur Erläuterung des maximalen Lesefehlers bei zweistufiger Flankensuche;
  • 8 ein Diagramm zur Erläuterung einer Synchronisation, bei der eine interne Uhr eines Prozessors ideal mit einer zentralen, ganggenauen Uhr synchronisiert ist;
  • 9 ein Diagramm zur Erläuterung einer Synchronisation, bei der eine interne Uhr eines Prozessors zu langsam läuft gegenüber einer zentralen, ganggenauen Uhr;
  • 10 ein Diagramm zur Erläuterung einer Synchronisation, bei der eine interne Uhr Prozessors zu schnell läuft gegenüber einer zentralen, ganggenanuen Uhr.
  • 11a) und b) jeweils ein Diagramm zur Erläuterung der Bildung eines Korrekturfaktors bei einer zu schnell bzw. zu langsam laufenden internen Uhr eines Prozessors;
  • 12 ein Diagramm zur Erläuterung der Durchführung einer Startkorrektur am Anfang der Durchführung des erfindungsgemäßen Synchronisationsverfahrens gemäß einem Ausführungsbeispiel der Erfindung;
  • 13 ein Diagramm zur Erläuterung der Bestimmung eines Korrekturfaktors bei einer zu langsam laufenden internen Uhr eines Prozessors;
  • 14 ein Diagramm zur Erläuterung der Bestimmung eines Korrekturfaktors bei einer zu schnell laufenden internen Uhr eines Prozessors;
  • 15 ein Diagramm zur Erläuterung des Problems des „Schaukelns", wie es bei einer zu direkten Änderung des Korrekturfaktors entstehen kann;
  • 16 und 17 Diagramme zur Erläuterung der Änderung des Korrekturfaktors bei zu langsam bzw. zu schnell laufender interner Uhr eines Prozessors gemäß einem Ausführungsbeispiel des erfindungsgemäßen Verfahrens;
  • 18 ein Diagramm zur Erläuterung des Prinzips einer Verteilung von Zugriffen auf einen gemeinsamen Bus des Multiprozessorsystems;
  • 19 ein Diagramm zur Erläuterung unterschiedlicher Zeitbereiche, während derer verschiedene Prozessoren Zugriff auf den gemeinsamen Bus haben; und
  • 20 ein Diagramm, welches einen Gesamtüberblick über ein Synchronisationsverfahren gemäß einem Ausführungsbeispiel der Erfindung darstellt.
  • 1 zeigt in einer schematisierten Darstellung ein Multiprozessorsystem, bei dem mehrere Prozessoren CPU 1 bis CPU 16 über eine Busverbindung in Form eines VME-Bus miteinander verbunden sind. Zur Synchronisation von diesem Multiprozessorsystem ist eine erste Uhr vorgesehen, die als Mem Clock bezeichnet ist. Diese soll durch einen schwingenden Quarz realisiert sein, mit welchem ein Zählregister gekoppelt ist, das nach jeder Periodendauer T des Quarzes um 1 inkrementiert wird.
  • Jeder der Prozessoren CPU 1 bis CPU 16 verfügt über eine interne, virtuelle Uhr, die eine von mehreren zweiten Uhren im Sinne der Erfindung ist, die mit der ersten Uhr synchronisiert werden sollen. Diese virtuellen Uhren sind durch Software realisiert, nicht durch Hardware. Ziel bei dem beschriebenen Ausführungsbeispiel soll es sein eine gewünschte Maximalabweichung jeder der zweiten, virtuellen Uhren zu der ersten Uhr, der Mem Clock einzuhalten. Diese Abweichung kann beispielsweise auf weniger als ± 5 μs vorgesehen sein. Dies bedeutet, dass zwei verschiedene der Prozessoren CPU 1 bis CPU 16 nicht mehr als 10 μs voneinander abweichen dürfen.
  • Ohne besondere Maßnahmen zur Synchronisation der ersten und zweiten Uhren würde es ein „Wegdriften" ergeben, wie es bereits eingangs unter Bezugnahme auf die 2a)und b) beschrieben worden ist.
  • Zur Synchronisation der zweiten, virtuellen Uhren mit der ersten Uhr gibt es im wesentlichen zwei Möglichkeiten, durch Korrektur das Gangverhalten jeder zweiten Uhr an die erste Uhr anzupassen. Die erste, in 3 dargestellte Möglichkeit ist es, die zweite Uhr stetig der ersten Uhr nachzuführen, das heißt, zu jeweiligen Synchronisationszeitpunkten S die Ganggeschwindigkeit der zweiten Uhr so zu korrigieren, dass sie um den Gang der ersten Uhr herum pendelt. Die virtuelle Uhr läuft somit kontinuierlich weiter, sie wird nur jeweils schneller oder langsamer eingestellt, um sie der ersten Uhr nachzuführen.
  • Bei der in 4 dargestellten unstetigen Synchronisation wird zu jeweiligen Synchronisierungszeitpunkten S die zweite, virtuelle Uhr auf den Wert der ersten, zentralen Uhr zurückgesetzt und von dort aus neu gestartet. Die virtuelle Uhr „springt" also auf einen anderen Zeitpunkt und, je nachdem, ob die virtuelle Uhr zu schnell oder zu langsam war, entsteht in der Zeitlinie eine Lücke (um die „verlorene" Zeit aufzuholen) bzw. es wird ein Zeitraum wiederholt (um die „überschüssige" Zeit zu überschreiben).
  • Ein stetiges Zeitverhalten, wie es in 3 dargestellt ist, ist meistens vorzuziehen, sind die Sprünge bei einem System mit unstetigem Zeitverhalten gemäß 4 jedoch klein genug, sind auch Lösungen mit unstetigem Zeitverhalten praktikabel.
  • Eine Problematik liegt im Auflösungsvermögen der ersten Uhr, der Mem Clock. Beträgt dieses beispielsweise 10 μs, d.h. das Zählregister wird alle 10 μs inkrementiert, so kann dies beim instantanen Auslesen des Zeitstempels der Mem Clock einen Fehler von bis zu 10 μs bedeuten, wie es in 5 gezeigt ist. Für den Zeitstempel 150 μs kann beispielsweise beim Lesen kurz nach der letzten Flanke der Wert 150 μs ausgegeben werden, der reale Wert wäre etwa 151 μs. Bei einem anderen Lesezugriff kurz vor der nächsten Flanke würde wiederum ein Wert von 150 μs ausgegeben werden, der reale Wert wäre jedoch 159 μs. Dies entspricht einem absoluten Fehler von 9 μs, was zuviel für eine sinnvolle Synchronisierung ist. Als Flanke wird die Schwelle zwischen zwei Zeitstempeln verstanden, also beispielsweise zwischen dem Zeitstempel 140 μs und 150 μs oder zwischen dem Zeitstempel 150 μs und 160 μs. Es ist also nicht so einfach möglich, den Zeitstempel-Wert der Mem Clock zu holen, ohne dabei einen größeren Lesefehler auszuschließen.
  • Eine einfache Möglichkeit ist es, die Flanke per Polling zu suchen, d.h. der jeweilige Prozessor CPU 1 ... 16 liest den Zeitstempel der Mem Clock mindestens zweimal hintereinander und vergleicht die beiden Zeitstempel. Sind diese gleich, liest die CPU noch einen Zeitstempel von der Mem Clock. Dies wird solange wiederholt, bis sich der zuletzt gelesene Zeitstempel von dem vorherigen unterscheidet. Ist dies der Fall, so ist die Flanke der Mem Clock gefunden. Dieses Prinzip ist recht einfach zu implementieren, hat jedoch den Nachteil einer großen Busbelastung.
  • Eine bessere, mit einer geringeren Busbelastung verbundene Möglichkeit besteht in einem Vorgehen, welches hier als "zweistufige Flankensuche" bezeichnet werden soll. Die Idee hierbei ist es, mittels lediglich zwei verschiedenen Lesevorgängen möglichst nahe bei der angenommenen Flanke der Mem Clock deren Flanke zu finden und dadurch die Driftrate der internen Uhr der jeweiligen CPU festzustellen und diese auf die Geschwindigkeit der Mem Clock zu synchronisieren.
  • In 6 sind mit den dicken und dünnen langen Balken Flanken zwischen jeweiligen Zeitstempeln dargestellt. Hier sollen als Beispiel die Flanken bei 100 μs 1100 μs und 2100 μs, also jeweils alle 1000 μs erfasst werden. Bei 100 μs erfolgt ein Lesen kurz vor der erwarteten Flanke, es wird als SBF (SyncBeforeFlank) bezeichnet. Bei 1100 μs wird kurz nach der erwarteten Flanke gelesen, was als SAF (SyncAfterFlank) bezeichnet wird. Bei 2100 μs erfolgt wieder ein Lesen SBF. Diese beiden Lese- bzw. Synchronisierungsvorgänge werden abwechselnd ausgeführt. Der Abstand zwischen zwei Synchronisationsvorgängen, d.h. das Synchronisationsintervall tsyncIntervall ist konstant und soll möglichst groß sein, um eine geringe Busbelastung zu verursachen. Aus Gründen der Übersichtlichkeit wurde in der Graphik ein Synchronisationsintervall tsyncIntervall = 1 ms verwendet, in der Realität würde man jedoch ein größeres verwenden. Für das Auslesen SBF bei 100 μs wird der Zeitstempel 90 μs erwartet. Wird dieser tatsächlich ausgelesen, so hat tatsächlich ein Lesevorgang vor der Flanke stattgefunden. Bei der Flanke 1100 μs wird für das Auslesen SAF ein Zeitstempel 1100 μs erwartet. Wird dieser tatsächlich ausgelesen, so hat tatsächlich ein Auslesen nach der Flanke stattgefunden. Für die Flanke 2100 μs wird wiederum für ein Auslesen SBF der Zeitstempel 2080 μs erwartet. Wird dieser tatsächlich ausgelesen, so hat das Auslesen tatsächlich vor der Flanke stattgefunden.
  • Würde jedoch bei 100 μs anstelle den Zeitstempel 90 μs bereits der Zeitstempel 100 μs gelesen, so wäre die Flanke 100 μs der Mem Clock zu früh, was gleichbedeutend damit ist, dass die interne Uhr der CPU zu spät gelesen hat, also zu langsam läuft. Sinngemäß das gleiche gilt für das Auslesen SBF an der Flanke 1100 μs. Wird jedoch beim Auslesen SAF an der Flanke 1100 μs anstelle des erwarteten Zeitstempels 1100 μs nur der Zeitstempel 1090 μs gelesen, so wäre die Flanke 1100 μs der Mem Clock zu langsam, was gleichbedeutend damit ist, dass die interne Uhr der CPU demgegenüber zu schnell gelaufen ist.
  • Diese zweistufige Flankensuche ist in 7 nochmals in der Weise dargestellt, dass die beiden Lese- bzw. Synchronisationsvorgänge vor der Flanke SBF bzw. nach der Flanke SAF für ein und dieselbe Flanke zu einem Vorgang zusammengefasst sind. Das Intervall zwischen SBF und SAF entspricht gleichzeitig dem maximalen Lesefehler.
  • Damit die zweistufige Flankensuche in dieser Weise erfolgreich durchgeführt werden kann, ist es vorteilhaft, wenn am Anfang eine Flanke durch Polling in der eingangs beschriebenen Weise gefunden und dann die zweistufige Flankensuche gestartet wird.
  • 8 die Synchronisation einer internen CPU-Uhr, die ideal synchroni siert mit der Mem Clock lauft. Die Synchronisationen SAF kurz nach der angenommenen Flanke bzw. SBF kurz vor der angenommenen Flanke liegen jeweils im korrekten Zeitstempel, es muss also keine Korrektur durchgeführt werden.
  • In 9 ist ein Fall gezeigt, wo die interne CPU-Uhr gegenüber der Mem Clock zu langsam läuft. Bei 1, 2 und 3 liegen die Synchronisationen SAF, SBF und SAF noch in den gültigen, erwarteten Zeitstempel, die Gangabweichung wird noch nicht erkannt. Bei 4 jedoch liefert der Auslesevorgang SBF den Zeitstempel der Mem Clock, der bereits nach der Flanke liegt, erwartet wird jedoch der Zeitstempel vor der Flanke. Hier wird die Drift erkannt, die Flanke bei der Mem Clock hat bereits stattgefunden, die interne CPU-Uhr war also zu langsam. Wird nun die interne CPU-Uhr korrigiert, so liefert bei 6 ein Auslesen SBF tatsächlich wieder den erwarteten Wert vor der Flanke. Bei 5 wird ohnehin beim Auslesen SAF der Wert nach der Flanke geliefert.
  • Bei dem in 10 gezeigten Fall läuft die interne CPU-Uhr zu schnell gegenüber der Mem Clock. Während bei 1 und 2 das Auslesen SAF nach der Flanke und SBF vor der Flanke den jeweils erwarteten korrekten Wert für den Zeitstempel liefert, wird bei 3 beim Auslesen SAF der Wert des Zeitstempels nach der Flanke erwartet, tatsächlich aber der Wert des Zeitstempels vor der Flanke geliefert. Das bedeutet, dass die Flanke bei 3 später liegt als erwartet bzw. dass die interne CPU-Uhr zu schnell gelaufen ist. Mit Verringerung der Taktrate wird bei 5 dann wieder der korrekte Wert des Zeitstempels nach der Flanke geliefert, wie für das Auslesen SAF erwartet. Bei 4 wird ohnehin für das Auslesen SBF vor der Flanke der korrekte Zeitstempel geliefert.
  • Die 11a) und b) zeigen Beispiele des Korrekturfaktors für eine zu schnelle Uhr bzw. für eine zu langsame Uhr.
  • In 11a) läuft die interne Uhr zu schnell, für das tatsächliche Zeitintervall tDistanz = 1 Sekunde der Mem Clock benötigt die interne Uhr auf ihrer Zeitachse ein korrigiertes Intervall tKorrDistanz=1,00000655 s.
  • In 11b) läuft die interne Uhr zu langsam, für das tatsächliche Zeitintervall tDistanz = 1 s benötigt die interne Uhr auf ihrer Zeitachse lediglich ein korrigiertes Zeitintervall tKorrDistanz = 0,99999345 s.
  • Anhand der Synchronisationsvorgänge lässt sich nun ein Korrekturfaktor in der folgenden Weise ermitteln. Zunächst wird per Polling eine Flanke der Mem Clock, ein fester Zeitraum gewartet und wieder die Flanke der Mem Clock mittels Polling ermittelt. Dabei wird die Zeit der internen Uhr für diesen Zeitraum vermessen. Ebenso wird die Zeit der Mem Clock für diesen Zeitraum vermessen. Daraus lässt sich ein erster Konekturfaktor berechnen kF = tintrnDifferenz/tMemClockDifferenz – 1 (1)vergleiche 12.
  • Mit diesem Startkorrekturfaktor kann die Synchronisation beginnen. Wird während der Synchronisation eine Fehlabweichung erkannt, muss der Korrekturfak- tor angepasst werden.
  • 13 zeigt die Korrekturfaktorberechnung für eine zu langsam laufende interne Uhr auf der Zeitachse der Mem Clock. Die Abstände tsyncIntervall zwischen den Synchronisationsvorgängen SBF, SAF sind absichtlich sehr kurz gewählt, um das Prinzip der Korrekturfaktorberechnung sichtbar zu machen, normalerweise liegen diese weiter auseinander. Bei 1 wurde für ein Auslesen SBF der Wert des Zeitstempels kurz nach der Flanke der Mem Clock gelesen, die interne Uhr war also zu langsam und musste korrigiert werden. Bei 2 wurde für ein Auslesen SBF wieder der Zeitstempel kurz nach der Flanke der Mem Clock gelesen, anstelle des erwarteten Zeitstempels vor der Flanke, die interne Uhr ist immer noch zu langsam und muss nochmals korrigiert werden. Zwischen den beiden erkannten Fehlabweichungen der internen Uhr von der Mem Clock liegen fünf Synchronisationsvorgänge bzw. ein Zeitintervall von tgesIntervall = 6 · tsyncIntervall. Ferner ist der bisherige Korrekturfaktor kF bekannt. Der neue Korrekturfaktor lässt sich berechnen zu kF = kF – tKorrZeit/tgesIntervall (2)Wobei tKorrZeit = tmaxFlankIntervalll2 (3)mit dem in 7 gezeigten maximalen Lesefehler tmaxFlankIntenrvall. Der neue Fehler muss abgezogen werden, weil die interne Uhr zu langsam ist. Diese Formel gilt folglich nur für das Auslesen SBF.
  • Ist die interne Uhr zu schnell, was während des Auslesens SAF erkannt wird, muss der Korrekturfaktor geändert werden, dann gilt kF = kF + tKorrZeit/tgesIntervall (4)
  • Die Korrektur der zu schnellen internen Uhr ist in 14 gezeigt.
  • Würde sofort bei Erkennen eines zu schnellen oder zu langsamen Ganges der internen Uhr verglichen mit der Mem Clock der Korrekturfaktor geändert werden, so könnte dies zu einem "Schaukeln" in der Weise führen, dass bei jedem Synchronisationsvorgang SAF, bei dem anstelle des nach der Flanke erwarteten Zeitstempels der vor der Flanke liegende Zeitstempel ausgelesen wird, gleichbedeutend mit einem zu schnellen Gang der internen Uhr, diese soweit verlangsamt wird, dass bei dem darauf folgenden Auslesen SBF anstelle des erwarteten Zeitstempels vor der Flanke bereits der Wert des der Flanke folgenden Zeitstempels ausgelesen wird, worauf die interne Uhr wieder beschleunigt wird, was wieder zu einem zu schnellen Lauf führt und so weiter und so fort. Ein solcher übertriebener Synchronisationsablauf ist in 15 gezeigt.
  • Damit dies verhindert wird, erfolgt eine Änderung des Korrekturfaktors kF erst dann, wenn eine konstante Drift in der Weise erkannt wird, dass auf ein erstmaliges Erfassen einer Gangabweichung in einer bestimmten Richtung noch ein zweitmaliges Erfassen einer Gangabweichung in der gleichen Richtung folgt, wie es in 16 für eine konstante Drift einer zu langsam laufenden Uhr und in 17 für eine konstante Drift einer zu schnell laufenden Uhr dargestellt ist.
  • 18 zeigt das Prinzip der Verteilung der Buszugriffe mehrerer in dem Multiprozessorsystem enthaltener Prozessoren CPU 0 bis CPU 15 mit dem Ziel, eine Kollision zu vermeiden. In der Initialisierungsphase am Anfang des Synchronisierungsvorgangs holt sich jede CPU einen Zeitstempel der Mem Clock als Referenzwert, mit dessen Hilfe sich der Startzeitpunkt der Synchronisation berechnen lässt. Dazu muss jede CPU eine eindeutige Kennzeichnung besitzen, um für jede CPU einen unterschiedlichen Startzeitpunkt bereitstellen zu können. Jeder weiter Synchronisationsvorgang bzw. Zugriff auf die Mem Clock darf dann nur nach Vielfachen eines vorher definierten Mindestintervalls stattfinden. Dadurch wird sichergestellt, dass sich die CPUs beim Lesezugriff auf die Mem Clock nicht gegenseitig blockieren.
  • In 19 sind jeweilige durch einen ausreichenden Sicherheitsabstand getrennte Zeitbereiche dargestellt, in welchen die einzelnen CPUs hier die CPU 1 und die CPU 2 den Zeitstempel der Mem Clock lesen können, dargestellt auf der Zeitachse der Mem Clock.
  • 20; zeigt nun im Gesamtüberblick ein Synchronisationsmodell gemäß einem Ausführungsbeispiel der Erfindung, bei dem die „interne Zeit" mehrerer in einem Multiprozessorsystem enthaltener Prozessoren auf eine von einer Mem Clock gelieferte „echte Zeit" synchronisiert werden. Die einzelnen Prozessoren liefern dann zur Verwendung durch ihre jeweilige Applikation eine „virtuelle Zeit", die höchstens um eine vorgegebene Zeittoleranz von der „echten Zeit" abweicht. Hier wird die Mem Clock rein passiv als Slave eingesetzt.
  • In der Initialisierungsphase müssen die Bus-Lesezugriffe der verschiedenen CPUs auf die Mem Clock so verteilt werden, dass sie sich untereinander nicht stören bzw. so dass Verzögerungen beim Zugriff auf die Mem Clock ausgeschlossen sind. Dazu wird während der Initialisierung ein erster gültiger Mem Clock-Zugriffszeitpunkt und der Startzeitpunkt für den ersten Synchronisationsvorgang für jede CPU berechnet, wie bereits vorher erläutert.
  • Zur Synchronisation wird die zweistufige Flankensuche eingesetzt, d.h. es existieren zwei unterschiedliche Synchronisationsvorgänge, nämlich eine Synchronisation kurz vor der nächsten Flanke SBF und eine Synchronisation kurz nach der letzten Flanke SAF. Diese werden abwechseln mit einem bestimmten Synchronisationsintervall tsyncIntervall gestartet.
  • Schließlich wird die virtuelle Uhr zeitgesteuert und zyklisch korrigiert, d.h. nach einem bestimmten Update-Intervall wird die aktuelle Uhrendifferenz zwischen der internen und der virtuellen Uhr bestimmt. Dieser Vorgang wird UpdateVirtualClock (UVC) genannt.
  • Es existieren somit zwei „Synchronisations-Algorithmen", nämlich „SyncBeforeFlank" bzw. „SyncAfterFlank" zur Berechnung bzw. Aktualisierung des Korrekturfaktors aus der „echten Zeit" der Mem Clock und der internen Zeit des Zeitbasisregisters CPU, und „UpdateVirtualClock" zur Berechnung bzw. Aktualisierung der Uhrendifferenz der internen und der virtuellen Uhr aus deren Referenzzeitwerten dem aktuellen Korrekturfaktor kF und einer aktuellen internen Zeit des Zeitbasisregisters.
  • Bei dem vorstehend beschriebenen Ausführungsbeispiel wurde die zentrale, ganggenaue Mem Clock als erste Uhr im Sinne der Erfindung angesehen, deren Flanken mit Auslesevorgängen SAF kurz nach der Flanke und SBF kurz vor der Flanke basierend auf der Zeitbasis der jeweiligen internen CPU-Uhr als zweite Uhr gefunden wurden wurden. Mit anderen Worten, die Auslesevorgänge SAF bzw. SBF, die das Ziel haben, die angenommenen Flanken der Mem Clock zu erhalten, sind „getriggert" durch die Flanken der jeweiligen internen CPU-Uhr.
  • Unter entsprechender Modifikation des Synchronisationsalgorithmus kann die zweistufige Flankensuche jedoch auch in der anderen Richtung erfolgen, nämlich dass die Auslesevorgänge SAF bzw. SBF durch die Mem Clock „getriggert" werden, um die angenommenen Flanken der jeweiligen internen CPU-Uhr zu finden. Dazu wären lediglich in den 8 bis 17 „Mem Clock" und „interne CPU-Uhr" zu vertauschen und in den Gleichungen (1) bis (4) entsprechende Änderungen vornehmen.

Claims (12)

  1. Verfahren zur Zeitsynchronisation von mindestens zwei in einem Multiprozessorsystem enthaltenen Uhren, bei dem eine erste Uhr mit einer vorgegebenen Taktrate aufeinanderfolgende jeweilige die Zeit anzeigende Zeitstempel erzeugt und mindestens eine zweite Uhr, die eine einstellbare Taktrate aufweist, in bestimmten Zeitabständen mit der ersten Uhr synchronisiert wird, wobei a) in vorgegebenen Zeitabständen die gegenseitige zeitliche Lage von den Übergang zwischen zwei aufeinanderfolgenden Zeitstempeln repräsentierenden Flanken der ersten Uhr und der zweiten Uhr erfasst wird, b) aus der Änderung der gegenseitigen zeitlichen Lage der Übergangsflanken der ersten Uhr und der zweiten Uhr ein die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierender Korrekturfaktor bestimmt wird, c) mittels des die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierenden Korrekturfaktors die Taktrate der zweiten Uhr im Sinne einer Verminderung der Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr neu eingestellt wird, und d) die Schritte a) bis c) wiederholt werden, dadurch gekennzeichnet, dass die Änderung der zeitlichen Lage der Übergangsflanke der ersten Uhr und der zweiten Uhr durch eine zweistufige Flankensuche erfasst wird, indem der Zeitstempel der betreffenden Uhr einmal vor einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln und einmal nach einer angenommenen Übergangsflanke zwischen zwei aufeinanderfolgenden Zeitstempeln ausgelesen und jeweils der erhaltene Zeitstempel mit dem für den Zeitpunkt des Auslesens erwarteten Zeitstempel verglichen wird und dieser Vorgang fortgesetzt wird, wobei i) eine Übereinstimmung sowohl des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel als auch des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel im Sinne einer korrekten Lage der angenommenen Übergangsflanke gewertet wird, ii) eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem früheren als dem erwarteten Zeitstempel im Sinne einer verspäteten Lage der angenommenen Übergangsflanke gewertet wird, und iii) eine Übereinstimmung des beim Auslesen nach der angenommenen Übergangsflanke erhaltenen Zeitstempels mit dem erwarteten Zeitstempel und eine Übereinstimmung des beim Auslesen vor der angenommenen Übergangsflanke erhaltenen Zeitstempels jedoch mit einem späteren als dem erwarteten Zeitstempel im Sinne einer verfrühten Lage der angenommenen Übergangsflanke gewertet wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Lesen der Zeitstempel jeweils vor und nach derselben angenommenen Übergangsflanke zwischen denselben zwei aufeinanderfolgenden Zeitstempeln erfolgt.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Lesen der Zeitstempel jeweils vor und nach verschiedenen angenommenen Übergangsflanken zwischen jeweiligen verschiedenen zwei aufeinanderfolgenden Zeitstempeln erfolgt.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das Lesen der Zeitstempel jeweils abwechselnd vor und nach verschiedenen angenommenen Übergangsflanken erfolgt, die in gleichen Zeitabständen aufeinanderfolgen.
  5. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der die Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr repräsentierende Korrekturfaktor bestimmt wird durch Vergleich des zeitlichen Abstandes zwischen jeweils zwei einander entsprechenden Übergangsflanken der ersten und zweiten Uhr.
  6. Verfahren nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass die Taktrate der zweiten Uhr im Sinne einer Verminderung der Zeitabweichung zwischen der ersten Uhr und der zweiten Uhr dann neu eingestellt wird (Schritt c)), wenn mindestens zwei aufeinanderfolgende Auslesevorgänge eine Zeitabweichung in der gleichen Richtung im Sinne entweder einer verspäteten Lage oder einer verfrühten Lage der angenommenen Übergangsflanken ergeben hat.
  7. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die erste Uhr eine zentrale ganggenaue Uhr ist.
  8. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die mindestens eine zweite Uhr eine interne Uhr eines in dem Multiprozessorsystem enthaltenen Prozessors ist.
  9. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die zweite, interne Uhr eine virtuelle Uhr ist, die durch Software erzeugt wird.
  10. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass das Multiprozessorsystem mehrere Prozessoren mit mehreren diesen zugeordneten zweiten Uhren enthält, die mit der ersten Uhr synchronisiert werden.
  11. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die mehreren zweiten Uhren jeweils zu verschiedenen nacheinander folgenden Zeitpunkten mit der ersten Uhr synchronisiert werden.
  12. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass am Anfang des Synchronisierungsvorgangs die Lage der Übergangsflanken durch Polling erfasst wird, indem der Zeitstempel der betreffenden Uhr mindestens zweimal hintereinander ausgelesen und die dabei erhaltenen Zeitstempel miteinander verglichen werden und das Auslesen des Zeitstempels solange wiederholt wird, bis sich der zuletzt erhaltene Zeitstempel von dem vorherigen Zeitstempel unterscheidet und dass dann die Änderung der zeitlichen Lage durch eine zweistufige Flankensuche nach Anspruch 1 erfasst wird.
DE10327116A 2003-06-13 2003-06-13 Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren Expired - Fee Related DE10327116B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE10327116A DE10327116B4 (de) 2003-06-13 2003-06-13 Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren
IT001129A ITMI20041129A1 (it) 2003-06-13 2004-06-04 Procedimento per sincronizzare almeno due orologi contenuti in un sistema microprocessore
FR0406133A FR2856162B1 (fr) 2003-06-13 2004-06-07 Procede pour la synchronisation d'au moins deux horloges d'un systeme microprocesseurs.
GB0413094A GB2403566B (en) 2003-06-13 2004-06-11 Synchronisation of clocks in a multiprocessor system
US10/866,097 US7194648B2 (en) 2003-06-13 2004-06-14 Process for time synchronization of at least two clocks in a microprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10327116A DE10327116B4 (de) 2003-06-13 2003-06-13 Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren

Publications (2)

Publication Number Publication Date
DE10327116A1 DE10327116A1 (de) 2005-01-13
DE10327116B4 true DE10327116B4 (de) 2006-03-16

Family

ID=32731189

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10327116A Expired - Fee Related DE10327116B4 (de) 2003-06-13 2003-06-13 Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren

Country Status (5)

Country Link
US (1) US7194648B2 (de)
DE (1) DE10327116B4 (de)
FR (1) FR2856162B1 (de)
GB (1) GB2403566B (de)
IT (1) ITMI20041129A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237152B2 (en) * 2003-10-24 2007-06-26 Honeywell International Inc. Fail-operational global time reference in a redundant synchronous data bus system
US7512826B2 (en) * 2005-04-20 2009-03-31 International Business Machines Corporation Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer
DE102006012421B3 (de) * 2006-03-17 2007-12-13 Görlitz Ag Verfahren zum Abgleich der Geräteuhr eines Energiemessgeräts
US8108364B2 (en) * 2008-08-06 2012-01-31 International Business Machines Corporation Representation of system clock changes in time based file systems
DE102008049161A1 (de) * 2008-09-24 2010-04-01 Siemens Aktiengesellschaft Mikroprozessorsystem mit mehreren signaltechnisch miteinander verbundenen Mikroprozessoren
US8977881B2 (en) 2011-08-12 2015-03-10 Apple Inc. Controller core time base synchronization
US9759703B2 (en) * 2013-09-27 2017-09-12 Li-Cor, Inc. Systems and methods for measuring gas flux
US9705892B2 (en) * 2014-06-27 2017-07-11 Intel Corporation Trusted time service for offline mode
US9507646B2 (en) * 2015-02-11 2016-11-29 International Business Machines Corporation Cycle-level thread alignment on multi-threaded processors
US10838450B2 (en) * 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11962306B2 (en) 2021-06-29 2024-04-16 Nvidia Corporation Clock anomaly detection
US20230244264A1 (en) * 2022-01-31 2023-08-03 Nvidia Corporation Fast Clock Detection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875320A (en) * 1997-03-24 1999-02-23 International Business Machines Corporation System and method for synchronizing plural processor clocks in a multiprocessor system
US6011823A (en) * 1998-01-06 2000-01-04 Maker Communications, Inc. Combined synchronous residual time stamp generator and service clock regenerator architecture
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
EP1294116A2 (de) * 2001-09-18 2003-03-19 Nortel Networks Limited Technik zur Synchronisierung von Takten in einem Netzwerk

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH675183A5 (de) * 1987-11-23 1990-08-31 Koechler Erika Fa
US5896524A (en) * 1997-02-06 1999-04-20 Digital Equipment Corporation Off-line clock synchronization for multiprocessor event traces
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
US6449291B1 (en) * 1998-11-24 2002-09-10 3Com Corporation Method and apparatus for time synchronization in a communication system
FI108489B (fi) * 1999-12-30 2002-01-31 Nokia Corp Synkronointi pakettivõlitteisessõ tietoliikennejõrjestelmõssõ
WO2002080440A1 (en) * 2001-03-29 2002-10-10 Nokia Corporation Method for synchronizing a first clock to a second clock, processing unit and synchronization system
US20030179780A1 (en) * 2002-03-20 2003-09-25 Zarlink Semiconductor V.N. Inc. Method of detecting drift between two clocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
US5875320A (en) * 1997-03-24 1999-02-23 International Business Machines Corporation System and method for synchronizing plural processor clocks in a multiprocessor system
US6011823A (en) * 1998-01-06 2000-01-04 Maker Communications, Inc. Combined synchronous residual time stamp generator and service clock regenerator architecture
EP1294116A2 (de) * 2001-09-18 2003-03-19 Nortel Networks Limited Technik zur Synchronisierung von Takten in einem Netzwerk

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ABALI, B. (u.a.): Time Synchronization on SP1 and SP2 Parallel Systems. In: 9th International Paral- lel Processing Symposium, Proceedings, 1995, S. 666-672
ABALI, B. (u.a.): Time Synchronization on SP1 and SP2 Parallel Systems. In: 9th International Paral-lel Processing Symposium, Proceedings, 1995, S. 666-672 *
LIEBIG, C. (u.a.): Event Composition in Time-de- pendent Distributed Systems. In: International Conference on Cooperative Information Systems, CoopIS '99, Proceedings, 1999, S. 70-78 (hand- schriftlich von der Prüfungsstelle paginiert) *

Also Published As

Publication number Publication date
US7194648B2 (en) 2007-03-20
DE10327116A1 (de) 2005-01-13
US20050066211A1 (en) 2005-03-24
ITMI20041129A1 (it) 2004-09-04
GB2403566A (en) 2005-01-05
FR2856162A1 (fr) 2004-12-17
GB2403566B (en) 2006-03-22
GB0413094D0 (en) 2004-07-14
FR2856162B1 (fr) 2008-05-16

Similar Documents

Publication Publication Date Title
DE10327116B4 (de) Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren
EP2039568B1 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
DE19933753B4 (de) Zeitsynchronisierung in einem System mit einem Satz von Knoten, die mit einer Kommunikationsverbindung gekoppelt sind
DE102007021619A1 (de) Taktsynchronisierungsverfahren und -vorrichtung
DE10291119B4 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren Bussen, wobei mindestens einer der Busse ein TTCAN Bus ist, sowie entsprechendes Bussystem
EP2093913A2 (de) Schaltungsanordnung und Verfahren zur Synchronisation von Uhren in einem Netz
EP2040402B1 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
DE2631685A1 (de) Verfahren und system zur gegenseitigen synchronisation eines leitzeitbasissystems und eines lokalen zeitbasissystems
EP1249099A2 (de) Verfahren und vorrichtung zum austausch von daten zwischen wenigstens zwei mit einem bussystem verbundenen teilnehmern
WO2005119951A1 (de) Verfahren zur etablierung einer globalen zeitbasis in einem zeitgesteuerten kommunikationssystem und kommunikationssystem
DE3803525C2 (de) Vorrichtung zum Betrieb von absoluten Echtzeituhren in einem eine Zentraluhr und Teilnehmer enthaltenden Prozeßsteuersystem
EP1763768B1 (de) Verfahren und vorrichtung zur steuerung eines bussystems sowie entsprechendes busysstem
DE10327548B4 (de) Verfahren und Vorrichtung zum Austausch von Daten über ein Bussystem
EP2645200B1 (de) Verfahren und Datenverarbeitungsanlage zum Bereitstellen eines Zeitstempels
EP2982063B1 (de) Automatisierungseinrichtung und verfahren zur reduzierung von jittern
DE10191695B4 (de) Verfahren und Kommunikationskontrolleinheit zur Multimaster Uhrensynchronisation in einem verteilten Echtzeitcomputersystem
DE10018190C2 (de) Unterbrechnungsloses Umschalten zwischen zwei Oszillator-Präzisionstaktgebern
DE10053525A1 (de) Verfahren und System zur Synchronisation von Teilnehmern einer Kommunikationsverbindung
EP1126645B1 (de) Kommunikationsnetzwerk mit zeitgesteuertem Kommunikationsprotokoll
DE3743434A1 (de) Zeitsignalgeber
DE102011003738B4 (de) Verfahren und Vorrichtung zur Verringerung von Signalflankenjitter in einem Ausgangssignal eines numerisch kontrollierten Oszillators
EP2928110B1 (de) Verfahren zur Synchronisation eines isochronen Systems mit einem übergeordneten Taktsystem
DE10057026A1 (de) Einrichtung und Verfahren zur digitalen Erzeugung von äquidistanten synchronen frequenzvervielfachten Takten
DE19509600C1 (de) Verfahren zur Synchronisation von Zeitintervallen
DE10234662B4 (de) Verfahren zur digitalen Phasendetektion und digitaler Phasendetektor zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R081 Change of applicant/patentee

Owner name: AIRBUS DEFENCE AND SPACE GMBH, DE

Free format text: FORMER OWNER: EADS DEUTSCHLAND GMBH, 85521 OTTOBRUNN, DE

Effective date: 20140819

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee