DE102009025495A1 - Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal - Google Patents

Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal Download PDF

Info

Publication number
DE102009025495A1
DE102009025495A1 DE102009025495A DE102009025495A DE102009025495A1 DE 102009025495 A1 DE102009025495 A1 DE 102009025495A1 DE 102009025495 A DE102009025495 A DE 102009025495A DE 102009025495 A DE102009025495 A DE 102009025495A DE 102009025495 A1 DE102009025495 A1 DE 102009025495A1
Authority
DE
Germany
Prior art keywords
processor
data blocks
clock frequency
offset
receiver
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.)
Granted
Application number
DE102009025495A
Other languages
English (en)
Other versions
DE102009025495B4 (de
Inventor
Alexander Carot
Christian Prf. Dr. Werner
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.)
CAROT, ALEXANDER, PROF. DR.-ING., DE
WERNER, CHRISTIAN, PROF. DR.-ING., DE
Original Assignee
Universitaet zu Luebeck
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 Universitaet zu Luebeck filed Critical Universitaet zu Luebeck
Priority to DE102009025495.1A priority Critical patent/DE102009025495B4/de
Publication of DE102009025495A1 publication Critical patent/DE102009025495A1/de
Application granted granted Critical
Publication of DE102009025495B4 publication Critical patent/DE102009025495B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • 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/0682Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging

Abstract

Verfahren zur Synchronisation zweier örtlich beabstandeter Prozessoren durch Übermitteln einer die Taktfrequenz des ersten Prozessors ausdrückenden Information an den zweiten Prozessor und Anpassen der Taktfrequenz des zweiten Prozessors an die Taktfrequenz des ersten Prozessors, mit den folgenden Schritten: a) Versenden von mit je einem Zeitstempel versehenen Datenblöcken mit je K Nachrichten von dem ersten Prozessor an den zweiten Prozessor in gleichen Zeitabständen, wobei K eine festgelgte ganze Zahl ist, b) Empfangen der Datenblöcke des ersten Prozessors und Erzeugen von Datenblöcken mit je K Nachrichten auf dem zweiten Prozessor, c) Ermitteln der mittleren Laufzeit der Datenblöcke vom ersten zum zweiten Prozessor aus dem Vergleich der Zeitstempel des ersten Prozessors mit der Uhr des zweiten Prozessors, d) Messen des zeitlichen Versatzes zwischen dem Fertigstellen eines Datenblocks auf dem zweiten Prozessor und dem Eintreffen des nächsten Datenblocks vom ersten Prozessor, wobei eine Messung des Versatzes nur gültig ist, wenn die Differenz der Laufzeit des eintreffenden Datenblocks zur vorab ermittelten mittleren Laufzeit einen vorgegebenen Betrag nicht übersteigt, e) Replizieren des letzten gültigen Versatzmesswerts, wenn dessen Messung einen nicht gültigen Wert liefert, f) Bilden der Differenz zwischen zwei Versatzmesswerte auf dem zweiten Prozessor, zwischen deren Messung N Datenblöcke empfangen worden sind, wobei N eine festgelegte ganze Zahl ist, g) Anpassen ...

Description

  • Die Erfindung betrifft ein Verfahren zur Synchronisation technischer Prozessoren, wobei die Synchronisation über einen Kommunikationskanal erfolgen kann, der Informationen lediglich asynchron transportiert, d. h. in dem eine Datenübertragung ohne festen Zeittakt stattfindet.
  • Die zunehmende Verbreitung von Kommunikationsnetzen ermöglicht die Kopplung von Prozessen, die an unterschiedlichen Orten ablaufen. Häufig ist die enge zeitliche Kopplung der Prozessoren dabei wünschenswert. Synchronisation im Sinne der vorliegenden Erfindung bedeutet das Angleichen der Ablaufgeschwindigkeiten der Prozesse auf verschiedenen Prozessoren. Es sollen insbesondere die Taktraten auf verschiedenen Rechnern mit unterschiedlichen Architekturen angeglichen werden. Eine Uhrensynchronisation in realen verteilten Systemen – also das Einrichten einer Gleichzeitigkeit des Ablaufs von Prozessen auf verschiedenen Prozessoren – ist hingegen prinzipiell nicht exakt möglich (siehe Druckschrift: Leslie Lamport, Juli 1978, "Time, Clocks and the Ordering of Events in a Distributed System". Communications of the ACM 21 (7): 558–565).
  • Es ist nicht ohne weiteres möglich, an getrennten Orten zwei Taktsignale mit exakt gleichen Frequenzen zu generieren, da die hierzu verwendeten Bauteile, insbesondere Schwingquarze, Fertigungstoleranzen unterliegen und ihr Frequenzverhalten durch schwer kontrollierbare Umweltfaktoren (z. B. Temperatur) ändern. Aus diesem Grunde ist die Synchronisation von Prozessoren eine sehr anspruchsvolle technische Aufgabe.
  • Nach dem Stand der Technik kann diese Aufgabe durch drei unterschiedliche Verfahren gelöst werden:
    Die erste besteht darin, ein gemeinsames Taktsignal aus einem gemeinsamen Taktgenerator als Referenz für die Prozessoren vorzusehen. Dies ist allerdings nur dann möglich, wenn dieses Taktsignal über ein geeignetes Medium an die Prozessoren übertragen werden kann (gemeinsame Taktleitung). Ist dies aufgrund von nicht exakt determiniertem Zeitverhalten im Übertragungskanal (Jitter) – wie z. B. bei der Kommunikation via Internet – nicht möglich, so kann man dieses Verfahren nicht anwenden. (Trischitta, P., und Varma, E.: „Jitter in Digital Transmission Systems". Boston: Artech House, 1989, ISBN 0-890-06248-X).
  • Die zweite Möglichkeit ist, das Taktsignal nicht direkt an beide Prozessoren zu senden, sondern es aus einem anderen gemeinsamen Referenzsignal, das beide Prozessoren empfangen können, so genau wie möglich zurück zu gewinnen. Ein bekanntes Beispiel für ein solches Referenzsignal ist das hochgenaue 77,5-kHz-Signal des Langwellensenders DCF77. Durch Frequenzvervielfachung oder Frequenzteilung kann man aus diesem Referenzsignal ein Taktsignal generieren, das für die zu synchronisierenden Prozessoren geeignet ist. Der Empfang eines solchen Referenzsignals ist allerdings aufwendig und auch für das Erzeugen des abgeleiteten Taktsignals müssen vergleichsweise aufwendige Schaltungen vorgehalten werden (Egan, W.: „Frequency Synthesis by Phase-lock", John Wiley & Sons, 2000, ISBN 0-471-32104-4).
  • Die dritte Möglichkeit sieht vor, die Prozessoren mit Taktsignalen aus unabhängigen Taktgeneratoren zu speisen und durch geeignete technische Maßnahmen dafür zu sorgen, dass die jeweils erzeugten Frequenzen möglichst gleich sind. Beispiele hierfür sind hochgenaue, Quarze; durch einen Selektionsprozess kann sichergestellt werden, dass mehrere Quarze möglichst die gleichen physikalischen Eigenschaften aufweisen. Ein genauer Abgleich der Taktgeneratoren kann ihr Schwingverhalten weiter annähern. Auch Umwelteinflüsse, kann man durch geeignete technische Maßnahmen (z. B. Quarzöfen) begrenzen. Allerdings sind diese Maßnahmen sehr aufwendig. (Hewlett Packard: „Fundamentals of Quartz Oscillators, Application Note 200-2'', 1997)
  • Gegenwärtig wird für praktische Anwendungen zumeist eine gemeinsame Taktleitung realisiert, wenn dies aufgrund der räumlichen Anordnung möglich ist. Weiter entfernt liegende Prozessoren können durch getrennte Taktgeneratoren gespeist werden, wobei eine Phase-Locked-Loop-Schaltung (PLL) dafür sorgt, dass die Frequenz auf Empfängerseite an die Frequenz des Senders angeglichen wird. Allerdings ist auch hier erforderlich, dass es einen allein dem Datenaustausch zwischen Sender und Empfänger vorbehaltenen, von anderen Prozessen ungestörten Kommunikationskanal gibt. Dieses Verfahren kommt häufig bei Rundfunkanwendungen zum Einsatz, um eine Empfängerschaltung exakt auf die Trägerfrequenz eines Senders zu justieren.
  • Alternativ lassen sich Prozessoren über Telekommunikationsnetze (z. B. ISDN) miteinander koppeln, die synchron arbeiten. Hier wird ein globales Taktsignal im Netz bestmöglich repliziert und als Basis für sämtliche Kommunikationsvorgänge genutzt.
  • Durch die zunehmende Verbreitung von asynchronen Kommunikationsnetzen (insbesondere dem Internet) besteht ein zunehmender Bedarf an Synchronisationslösungen, die über asynchronen Datenverkehr realisiert werden können. Die Besonderheit bei asynchronen Netzen ist, dass die Übertragungszeit für Informationen im Netz gewissen Schwankungen (sog. Jitter) unterliegt. Eine präzise und zuverlässige Synchronisation ist unter diesen Bedingungen offenbar besonders schwierig.
  • Aufgabe der Erfindung ist daher die Angabe eines Verfahrens zur Synchronisation von Prozessoren über asynchrone Kommunikationskanäle, das keine aufwendigen Schaltungen und teure Spezialbaugruppen erfordert.
  • Die Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Hauptanspruchs. Die Unteransprüche geben vorteilhafte Ausgestaltungen an.
  • Die Erfindung setzt das Vorhandensein eines justierbaren Taktgenerators wenigstens auf der Empfängerseite voraus, der mit kostengünstigen elektronischen Standardschaltungen in an sich bekannter Weise realisiert werden kann. Es wird weiterhin vorausgesetzt, dass die zu synchronisierenden Maschinen technisch dafür ausgelegt sind, mit derselben Taktfrequenz arbeiten zu können, auch wenn die Architekturen möglicherweise nicht identisch sind.
  • Das erfindungsgemäße Verfahren beschreibt ein Messverfahren, mit dem die genaue Differenz der Taktfrequenzen zweier Prozessoren bestimmt werden kann. Mittels des Messergebnisses kann hiernach der justierbare Taktgenerator der Empfängerseite auf die Taktfrequenz des Senders eingestellt werden. Das erfindungsgemäße Verfahren erlaubt darüber hinaus die Taktfrequenzangleichung in extrem jitterbehafteten Netzwerken.
  • Die Grundzüge des Verfahrens werden zunächst für ein Netzwerk ohne Jitter erläutert:
    Ein beliebiger Prozess auf einem ersten Computer (i. F. Sender) generiert in gleichen Zeitabständen Nachrichten. Diese Nachrichten werden zu gleich großen Datenblöcken zusammengefasst, die in gleichen Zeitabständen über einen Kommunikationskanal an einen zweiten Computer (i. F. Empfänger) geschickt werden. Zusätzlich werden die Datenblöcke vom Sender mit einem Zeitstempel versehen, beispielsweise bei Beginn des Erstellens eines Datenblocks oder unmittelbar vor dessen Absenden an den Empfänger.
  • Die Datenblöcke benötigen eine Laufzeit durch den Kommunikationskanal zwischen Sender und Empfänger. In einem Kommunikationskanal ohne Jitter ist diese konstant und kann genau gemessen werden.
  • Der Empfänger empfängt die Datenblöcke, und es findet eine erste Taktangleichung statt, indem der Empfänger anhand der Zeitstempel und der Anzahl der Nachrichten in den empfangenen Datenblöcken die Senderfrequenz bestimmt und seinen justierbaren Taktgenerator auf diese einstellt. Alternativ kann der Sender auch eine Angabe seiner eigenen Taktfrequenz an den Empfänger senden, die der Empfänger dann bei sich einstellt. Diese erste Anpassung der Taktfrequenz des Empfängers erfolgt also auf der Basis der vom Sender – implizit oder explizit – übermittelten Taktfrequenz des Senders und ist natürlich Stand der Technik.
  • Das der Erfindung zugrunde liegende Problem besteht darin, dass Sender und Empfänger zwar beide behaupten, nunmehr identische Taktfrequenzen aufzuweisen, sich jedoch die physikalisch realen Taktfrequenzen – gemeinhin bei beiden Rechnern – von den nominellen unterscheiden. Entscheidend für eine genaue Synchronisation ist letzten Endes die Frage, wie der Empfänger die Taktfrequenz des Senders in Bezug auf seine eigene bewertet.
  • Erfindungsgemäß erzeugt daher der Empfänger genauso Nachrichten wie der Sender und stellt sie zu Datenblöcken derselben Größe zusammen. Hierbei ist der Empfänger auf seinen eigenen Zeittakt angewiesen. Auf den genauen Inhalt der Nachrichten kommt es dabei nicht an. Wesentlich ist vielmehr, dass die auf dem Empfänger erzeugten Datenblöcke genau dieselbe Anzahl an Nachrichten enthalten wie die vom Sender empfangenen. Da der Nachrichteninhalt der auf dem Empfänger erzeugten Daten nicht relevant ist, wird der Prozess der Datenerzeugung auf dem Sender nicht reproduziert, sondern nur „simuliert”, denn dem Empfänger stehen normalerweise keine ausreichenden Eingabedaten zur Verfügung, z. B. Mikrofonaufzeichnungen oder dergleichen.
  • Ziel ist es, sich Informationen über die Arbeitsgeschwindigkeit des Senders „aus der Sicht” des Empfänger zu verschaffen. Wenn Sender und Empfänger keine identische Taktfrequenz aufweisen, unterscheiden sich die zeitlichen Abstände, in denen Nachrichten auf Sender und Empfänger erzeugt werden.
  • Erfindungsgemäß wird nun immer zu dem Zeitpunkt eine Zeitmessung auf dem Empfänger gestartet, an dem der Empfänger das Zusammenstellen bei sich generierter Nachrichten zu einem Datenblock abschließt (Referenzzeitpunkt), Die Zeitmessung wird gestoppt, sobald der nächste Datenblock vom Sender empfangen wird. Das Ergebnis der Zeitmessung wird im folgenden t_versatz genannt.
  • Kerngedanke der Erfindung ist, dass die Zeitdifferenz t_versatz eine allein auf der Empfängerseite bestimmbare Observable ist, die sich eignet, um die Taktfrequenzen schnell und genau anzugleichen. Dies ist überraschend selbst dann möglich, wenn ein Netzwerkjitter die Observable t_versatz zwischen den Einzelmessungen stark streuen lässt.
  • Die Messung der Observable t_versatz erfolgt fortlaufend für alle auf dem Empfänger erzeugten und vom Sender eintreffenden Datenblöcke. Dabei zeigt sich:
    • a) Wird die Zeitdifferenz t_versatz mit der Zeit größer, ist der Prozess auf dem Empfänger schneller als auf dem Sender (der Sender kommt mit dem Nachliefern der Datenblöcke nicht hinterher);
    • b) wird die Zeitdifferenz t_versatz mit der Zeit kleiner, ist der Prozess auf dem Empfänger langsamer als auf dem Sender (der Sender liefert Datenblöcke schneller nach, als der Empfänger deren Erzeugung simulieren kann);
    • c) bleibt die Zeitdifferenz t_versatz gleich, stimmen Empfänger und Sender in der Frequenz überein.
  • Die gemessene Zeitdifferenz t_versatz lässt sich unmittelbar zur Berechnung der Frequenzdifferenz heranziehen: Die Differenz zweier aufeinander folgender t_versatz Messwerte, t_diff, ergibt addiert zur Blocklänge des Empfängers (die Zeit, die der Empfänger zum Erstellen eines Datenblocks benötigt) sofort die Blocklänge des Senders. Wird dieser Wert durch die Anzahl der mit einem Block empfangenen Nachrichten geteilt, erhält man die Periodendauer des Senderprozesses, deren Kehrwert die Frequenz des Senderprozesses, f_sender, angibt. f_sender = 1/((Blocklänge_empfänger + t_diff)/Anzahl_nachrichten)
  • Offenbar gilt ebenso f_sender = 1/((N·Blocklänge_empfänger + N·t_diff)/N·Anzahl_nachrichten) mit irgendeiner ganzen Zahl N. Es ist daher genauso möglich, den Wert N·t_diff als Differenz zweier t_versatz Werte zu bestimmen, zwischen deren Messung N Datenblöcke am Empfänger eingetroffen sind. Bei einer typischen Blocklänge um 5 ms und beispielsweise N = 200 reicht es aus, etwa einmal pro Sekunde die Senderfrequenz zu berechnen.
  • Die momentane Frequenz des Empfängers ist dem Empfänger selbst stets bekannt. Folglich ist hiernach auch die Frequenzdifferenz zwischen Empfänger und Sender bestimmt. Entsprechend der berechneten Frequenzdifferenz wird die Frequenz des empfängerseitigen Taktgenerators angepasst.
  • Die Observable t_versatz wird fortlaufend gemessen, so dass auch die Anpassung der Traktfrequenz auf der Empfängerseite fortlaufend erfolgen kann. Die Schrittweite der Anpassungsschritte nimmt dabei mit der Zeit ab, d. h. die Synchronisation wird immer besser. Der experimentell bestimmte Restfehler beträgt bei typischen Anwendungen weniger als 1 ppm, d. h. der verbleibende Taktunterschied beträgt weniger als einen millionsten Teil des Prozesstaktes.
  • Die Erfindung wird nachfolgend noch näher erläutert und auch im Zusammenhang mit Netzwerkjitter anhand der Figuren diskutiert. Dabei zeigt:
  • 1 Messwerte der Observable t_versatz bei der Kommunikation zweier nicht-synchroner Soundkarten in einem Local Area Network (LAN, praktisch kein Netzwerkjitter);
  • 2 Messwerte von t_versatz in der Konfiguration wie 1 während des Ablaufs des Synchronisationsverfahrens;
  • 3 Messwerte von t_versatz bei der Kommunikation zweier nicht-synchroner Soundkarten in einem Wide Area Network (WAN, starker Netzwerkjitter);
  • 4 Messwerte von t_versatz und ihre Replikate zur Jitter-Kompensation für die Konfiguration aus 3;
  • 5 Messwerte von t_versatz und ihre Replikate wie in 4 während des Ablaufs des Synchronisationsverfahrens.
  • In 1 sind exemplarisch Messwerte der Observable t_versatz gezeigt, die beim Datenaustausch zweier nicht-synchroner Soundkarten über ein – praktisch jitterfreies – lokales Netzwerk (LAN) entstehen. Die Observable nimmt dabei kontinuierlich ab, weil der Sender schneller Datenblöcke erzeugt und nachliefert, als der Empfänger in seinem Simulationsprozess. Erreicht t_versatz den Wert Null, so ist der Empfänger gerade mit dem Erstellen eines Datenblocks fertig als auch ein Datenblock vom Sender eintrifft. Der nachfolgend erzeugte Datenblock auf der Empfängerseite wird erst kurz nachdem der nächste vom Sender bereits eingetroffen ist, fertig, so dass die Messung von t_versatz fast eine ganze Blocklänge dauert, bis der übernächste Datenblock des Senders ankommt. Hieraus erklärt sich das Sägezahnmuster in den Daten. Offenbar würde bei fortgesetztem Datentransfer zwischen den beiden Soundkarten der Bufferspeicher des Empfängers irgendwann überlaufen bzw. Datenblöcke des Senders gingen verloren.
  • Das erfindungsgemäße Synchronisationsverfahren führt durch Anpassung der empfängerseitigen Taktfrequenz dazu, dass t_versatz mit der Zeit einen konstanten Wert annimmt, wie aus 2 zu ersehen ist. Zwar bleiben noch geringe Taktunterschiede erkennbar, aber diese bleiben durch die fortlaufende Anwendung der Synchronisation auf sehr kleine Werte beschränkt. Der Mittelwert von t_versatz in 2 entspricht der Laufzeit der Datenblöcke im Netz.
  • In Weitverkehrsnetzwerken (Wide Area Network, WAN) ist der Netzwerkjitter ein inhärentes Problem. Aufgrund des Netzwerkjitters können die eintreffenden Pakete um eine unbestimmte Zeitspanne verzögert sein und dadurch jeden einzelnen Messwert t_versatz verfälschen oder – abhängig vom Ausmaß des Fehlers – nutzlos machen. 3 zeigt die Observable t_versatz, bei der Kommunikation der Soundkarten über das Internet. Es ist hier aber anzumerken, dass man das bereits erwähnte Sägezahnmuster auch in 3 noch grob erkennen kann.
  • Um das beschriebene Synchronisationsverfahren trotz Netzwerkjitter einsetzen zu können, dürfen zu spät eintreffende Datenblöcke nicht mit in die Messung von t_versatz aufgenommen werden. Aus diesem Grunde werden die vom Sender generierten und an den Empfänger übermittelten Zeitstempel auf der Empfängerseite zusätzlich mit der Zeit des Empfängers verglichen. Zwar sind die internen Uhren von Sender und Empfänger selbst nicht synchronisiert, aber der Zeitvergleich von Datenblock zu Datenblock gibt dennoch Aufschluss darüber, welche Verzögerung vom Netzwerkjitter herrührt.
  • Die Differenz zwischen der Empfangszeit (gemessen am Empfänger) und der Sendezeit (gemessen am Sender und festgehalten im übertragenen Zeitstempel) ist eine im WAN möglicherweise stark streuende Messgröße, die nachfolgend Paketlaufzeit genannt werden soll und deren Mittelwert über einen längeren Zeitraum (z. B. 1 Sekunde) leicht bestimmt werden kann. Dabei ist anzumerken, dass die Messung der Paketlaufzeit natürlich auch durch die fehlende Taktsynchronisation von Sender und Empfänger fehlerbehaftet ist. Sie kann zudem durch unkontrollierbare Einflüsse auf die Netzwerkverbindung (etwa die Last) kurzfristig stark schwanken.
  • Erfindungsgemäß wird deshalb der Mittelwert der Paketlaufzeit wiederkehrend bestimmt, beispielsweise einmal pro Sekunde. Sobald dieser Mittelwert bestimmt ist, werden nur noch Datenblöcke zur Messung von t_versatz benutzt, deren tatsächliche Laufzeit im asynchronen Netz dem Mittelwert der Paketlaufzeit im Wesentlichen entspricht. Alle übrigen Datenblöcke werden für die Messung von t_versatz als ungültig verworfen.
  • Anstelle der wahren Werte von t_versatz, die infolge der Ungültigkeit von empfangenen Datenblöcken nicht fortlaufend neu bestimmt werden können, wird der letzte gültige Wert für t_versatz schlicht wiederholt (repliziert) bis das nächste gültige Datenpaket eintrifft. Durch dieses Vorgehen ergibt sich die Stufenfunktion aus 4 anstelle der stark streuenden Werte aus 3, wobei Lücken in den gemessenen Daten durch Replikate aufgefüllt werden. Die Verwendung der Replikate für den zuvor beschriebenen, kontinuierlich laufenden Synchronisationsvorgang (fortlaufendes Anpassen der empfängerseitigen Taktfrequenz) ist unkritisch und führt zu einem befriedigenden Ergebnis, wie 5 verdeutlicht. Zwar kommt es nur noch dann zu einer neuen Berechnung der Senderfrequenz und folglich zur Angleichung der Empfängerfrequenz, wenn ein neuer gültiger Datenblock am Empfänger eintrifft, doch ist dies häufig genug der Fall, um die gewünschte Taktsynchronisation zu erreichen. Die durch Selektion vom Einfluss des Jitters bereinigten Messwerte t_versatz nehmen schnell einen konstanten Wert an.
  • Das beschriebene Verfahren kann beispielsweise verwendet werden, um die Aufnahme- und Wiedergabeprozesse zweier Soundkarten an unterschiedlichen Standorten zu synchronisieren, wobei der Datenaustausch über das Internet erfolgt.
  • Bei herkömmlichen Soundkarten arbeitet man mit einer typischen Samplefrequenz von 48 kHz. Da die Taktgeneratoren herkömmlicher Soundkarten jedoch nicht exakt abgestimmt sind und auch einer gewissen Temperaturabhängigkeit unterliegen, hat man in der Praxis das Problem, dass eine aufnehmende Soundkarte an Standort A in einem festen Zeitintervall geringfügig mehr bzw. weniger Abtastwerte generiert als die wiedergebende Soundkarte an Standort B abspielt. Je nach Soundkarte ergeben sich Abweichungen von bis zu 100 ppm, so dass bei 48 kHz Samplefrequenz innerhalb einer Minute eine Differenz von 60 s × 48.000 1/s × 100/1.000.000 = 288 Samples entsteht. Neben einer geringfügig veränderten Tonhöhe macht sich in der Praxis vor allem negativ bemerkbar, dass in den empfängerseitigen Puffer durch dieses Ungleichgewicht von Zeit zu Zeit ein Unter- bzw. Überlauf stattfindet. Nach dem gegenwärtigen Stand der Technik wird dies (z. B. bei Voice-over-IP-Anwendungen) entweder in Kauf genommen oder durch Resampling bzw. gezieltes Weglassen oder Verdoppeln einzelner Samples softwareseitig ausgeglichen. Diese Ansätze führen jedoch zu einer Verfälschung des Signals.
  • Das erfindungsgemäße Verfahren ermöglicht nun die unverfälschte Wiedergabe des Signals. Jedes vom Sender gesendete Datenpaket repräsentiert eine feste Anzahl von Samples, z. B. Blöcke mit jeweils 128 Samples. Der Sender schickt das Datenpaket sofort ab, nachdem alle Samples für einen kompletten Block vorliegen. Der Empfänger empfängt die Blöcke und benutzt die übertragenen Daten, um den Prozess der Senderseite nachzuvollziehen; im Beispiel ist die Wiedergabe der Samples über die lokale Soundkarte eine adäquate Form der Simulation. Der Wiedergabeprozess läuft zunächst typisch schneller oder langsamer ab als der Aufnahmeprozess des Senders.
  • Zu jedem Referenzzeitpunkt der empfängerseitigen Soundkarte wird eine Zeitmessung gestartet. Diese Messung wird gestoppt, sobald ein Datenpaket über das Netzwerk eintrifft. Allerdings sind die so durchgeführten Messungen nicht immer brauchbar: Netzwerkjitter sorgt in der Regel dafür, dass die Abstände zwischen den Empfangszeitpunkten der Datenpakete nicht konstant sind. Um dadurch entstehende Messfehler zu vermeiden, werden die empfangenen Datenpakete einem Selektionsprozess unterzogen. Verzögerte Datenpakete führen dann zu ungültigen Zeitmessungen, die nicht weiter verwendet werden.
  • Laufen Sender und Empfängerprozess mit derselben Geschwindigkeit, so ist das gemessene Zeitintervall t_versatz im Mittel konstant. Anderenfalls wird die Taktfrequenz der Empfängersoundkarte verringert, sofern t_versatz zunimmt (Soundkarte des Empfängers arbeitet schneller als die des Senders), und erhöht, sofern t_versatz abnimmt (Soundkarte des Empfängers arbeitet langsamer als die des Senders). Dieser Anpassungsvorgang wird fortlaufend wiederholt.
  • Durch die dargestellte indirekte Form der Zeitmessung wird erreicht, dass empfängerseitig keine absolut exakte Uhr benötigt wird, um hieraus eine absolute Frequenz bzw. einen absoluten Frequenzfehler für die Justage des Taktgenerators abzuleiten. Stattdessen wird lediglich die Veränderung des Zeitintervalls betrachtet, das zwischen dem Referenzpunkt und dem Eintreffen des nächsten Pakets liegt. Hierfür ist keine absolute Zeitmessung notwendig, da lediglich die Veränderung einer Zeitspanne betrachtet wird – und zwar in Bezug auf eine beliebige Uhr, an die keine besonderen Genauigkeitsanforderungen gestellt werden.
  • Die Erfindung ist jedoch nicht auf Anwendungen in Verbindung mit Soundkarten beschränkt, sondern kann zur Synchronisation beliebiger technischer Prozesse verwendet werden, die im Empfänger nachvollzogen, d. h. simuliert werden können. Weitere Beispiele sind die Synchronisation von Produktionsprozessen, die durch Roboter ausgeführt werden, oder die Synchronisation von Software-Prozessen, die auf getrennten Rechnern ablaufen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - Leslie Lamport, Juli 1978, ”Time, Clocks and the Ordering of Events in a Distributed System”. Communications of the ACM 21 (7): 558–565 [0002]
    • - Trischitta, P., und Varma, E.: „Jitter in Digital Transmission Systems”. Boston: Artech House, 1989, ISBN 0-890-06248-X [0004]
    • - Egan, W.: „Frequency Synthesis by Phase-lock”, John Wiley & Sons, 2000, ISBN 0-471-32104-4 [0005]
    • - Hewlett Packard: „Fundamentals of Quartz Oscillators, Application Note 200-2'', 1997 [0006]

Claims (4)

  1. Verfahren zur Synchronisation zweier örtlich beabstandeter Prozessoren durch Übermitteln einer die Taktfrequenz des ersten Prozessors ausdrückenden Information an den zweiten Prozessor und Anpassen der Taktfrequenz des zweiten Prozessors an die Taktfrequenz des ersten Prozessors, gekennzeichnet durch a) Versenden von mit je einem Zeitstempel versehenen Datenblöcken mit je K Nachrichten von dem ersten Prozessor an den zweiten Prozessor in gleichen Zeitabständen, wobei K eine festgelegte ganze Zahl ist, b) Empfangen der Datenblöcke des ersten Prozessors und Erzeugen von Datenblöcken mit je K Nachrichten auf dem zweiten Prozessor, c) Ermitteln der mittleren Laufzeit der Datenblöcke vom ersten zum zweiten Prozessor aus dem Vergleich der Zeitstempel des ersten Prozessors mit der Uhr des zweiten Prozessors, d) Messen des zeitlichen Versatzes zwischen dem Fertigstellen eines Datenblocks auf dem zweiten Prozessor und dem Eintreffen des nächsten Datenblocks vom ersten Prozessor, wobei eine Messung des Versatzes nur gültig ist, wenn die Differenz der Laufzeit des eintreffenden Datenblocks zur vorab ermittelten mittleren Laufzeit einen vorgegebenen Betrag nicht übersteigt, e) Replizieren des letzten gültigen Versatzmesswerts, wenn dessen Messung einen nicht gültigen Wert liefert, f) Bilden der Differenz zwischen zwei Versatzmesswerte auf dem zweiten Prozessor, zwischen deren Messung N Datenblöcke empfangen worden sind, wobei N eine festgelegte ganze Zahl ist, g) Anpassen der Taktfrequenz des zweiten Prozessors derart, dass die auf dem zweiten Prozessor gebildete Differenz minimiert wird und h) fortlaufendes Wiederholen der Schritte b) bis g).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Anpassen der Taktfrequenz des zweiten Prozessors durch Angleichen an die zuvor aus der Differenz der Versatzwerte berechnete Taktfrequenz des ersten Prozessors erfolgt.
  3. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Ermitteln der mittleren Laufzeit der Datenblöcke durch Mittelwertbildung der Laufzeiten einzelner Datenblöcke über etwa 1 Sekunde erfolgt.
  4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die ganze Zahl N derart vorgegeben wird, dass das Produkt N·Blocklänge etwa 1 Sekunde beträgt.
DE102009025495.1A 2009-06-19 2009-06-19 Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal Active DE102009025495B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102009025495.1A DE102009025495B4 (de) 2009-06-19 2009-06-19 Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009025495.1A DE102009025495B4 (de) 2009-06-19 2009-06-19 Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal

Publications (2)

Publication Number Publication Date
DE102009025495A1 true DE102009025495A1 (de) 2011-01-05
DE102009025495B4 DE102009025495B4 (de) 2015-08-06

Family

ID=43298813

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009025495.1A Active DE102009025495B4 (de) 2009-06-19 2009-06-19 Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal

Country Status (1)

Country Link
DE (1) DE102009025495B4 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276659A (en) * 1990-04-16 1994-01-04 Kabushiki Kaisha Toshiba Clock synchronous system for a network station
DE10311541A1 (de) * 2002-03-20 2003-10-09 Zarlink Semiconductor Vn Inc Verfahren zum Erfassen von Nullpunktabweichungen zwischen zwei Uhren
US20050013394A1 (en) * 2001-07-26 2005-01-20 Mathias Rausch Clock synchronization in a distributed system
WO2006011867A1 (en) * 2004-06-25 2006-02-02 Numerex Corporation Method and system for adjusting digital audio playback sampling rate

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276659A (en) * 1990-04-16 1994-01-04 Kabushiki Kaisha Toshiba Clock synchronous system for a network station
US20050013394A1 (en) * 2001-07-26 2005-01-20 Mathias Rausch Clock synchronization in a distributed system
DE10311541A1 (de) * 2002-03-20 2003-10-09 Zarlink Semiconductor Vn Inc Verfahren zum Erfassen von Nullpunktabweichungen zwischen zwei Uhren
WO2006011867A1 (en) * 2004-06-25 2006-02-02 Numerex Corporation Method and system for adjusting digital audio playback sampling rate

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Egan, W.: "Frequency Synthesis by Phase-lock", John Wiley & Sons, 2000, ISBN 0-471-32104-4
Hewlett Packard: "Fundamentals of Quartz Oscillators, Application Note 200-2'', 1997
Leslie Lamport, Juli 1978, "Time, Clocks and the Ordering of Events in a Distributed System". Communications of the ACM 21 (7): 558-565
Trischitta, P., und Varma, E.: "Jitter in Digital Transmission Systems". Boston: Artech House, 1989, ISBN 0-890-06248-X

Also Published As

Publication number Publication date
DE102009025495B4 (de) 2015-08-06

Similar Documents

Publication Publication Date Title
DE102006019475B4 (de) Verfahren zur Synchronisation von Baugruppen einer Basisstation
EP1265124B1 (de) Verfahren zum Übermitteln von Zeitinformation über ein Datenpaketnetz
DE102006012466A1 (de) Systeme und Verfahren zum Synchronisieren einer Zeit über Netze hinweg
DE102011087472B4 (de) Verfahren zur Synchronisation von Uhren in Knoten eines Fahrzeugnetzes und zur Durchführung des Verfahrens eingerichteter Knoten
EP2294732B1 (de) Verfahren und system zur zeitsynchronisierung zwischen einer zentrale und mehreren sendern insbesondere in einem gleichwellennetz
DE112005000406T5 (de) System und Verfahren zum Aufrechterhalten eines gemeinsamen Zeittaktes und einem Netzwerksegment
DE10311541A1 (de) Verfahren zum Erfassen von Nullpunktabweichungen zwischen zwei Uhren
EP2467993B1 (de) Verfahren und anordnung zur synchronisation von datenströmen in netzwerken sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium
DE2702959A1 (de) Synchronisationssignal-wiedergewinnungsschaltung fuer grundband-datensignale
EP1283611A2 (de) Verfahren zur Synchronisierung eines Kommunikationssystems über ein paketorientiertes Datennetz
DE60316758T2 (de) System zur Synchronisierung von Befehlen, sowie ein Verfahren, ein Steuerungsgerät und ein Zielgerät für dasselbe System
DE102008023908A1 (de) Transparent-Spinne
WO2011123877A1 (de) Verfahren und apparat zur fehlertoleranten zeitgesteuerten echtzeitkommunikation
DE4330054A1 (de) Simultanübertragungssystem
DE3927681C2 (de)
EP2534775A1 (de) Verfahren zur zeitsynchronisation in einem kommunikationsnetz
DE102019104384A1 (de) Erzeugen eines Zeitstempels
DE10128396A1 (de) Verfahren und Schaltungsanordnung zum Übertragen von Daten von ein mit einem ersten Takt betriebenes System an ein mit einem zweiten Takt betriebenes System
DE10013313A1 (de) Verfahren, Module und Programm-Module zur Synchronisierung
EP2801174A1 (de) Verfahren und vorrichtung zur konsistenten änderung der zeitpläne in einer zeitgesteuerten vermittlung
DE19710971A1 (de) Verfahren zur Bestimmung der Laufzeit eines Telegramms sowie Teilnehmer zur Durchführung des Verfahrens
DE102010003248B4 (de) Verfahren und Vorrichtung zur Verarbeitung von Daten in einem Netzwerk eines Fahrzeugs
EP1295481B1 (de) Verfahren und vorrichtung zur zeitsynchronen weiterleitung von signalen
DE60109020T2 (de) Vorrichtung und Verfahren zur Synchronisation von Endgeräten
DE102009025495B4 (de) Verfahren zur Synchronisation an unterschiedlichen Orten arbeitender Prozessoren über einen asynchronen Kommunikationskanal

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

Representative=s name: BOEHMERT & BOEHMERT, DE

Representative=s name: BOEHMERT & BOEHMERT, 28209 BREMEN, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: CAROT, ALEXANDER, PROF. DR.-ING., DE

Free format text: FORMER OWNER: UNIVERSITAET ZU LUEBECK, 23562 LUEBECK, DE

Owner name: WERNER, CHRISTIAN, PROF. DR.-ING., DE

Free format text: FORMER OWNER: UNIVERSITAET ZU LUEBECK, 23562 LUEBECK, DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE