DE102009025495B4 - Method for synchronizing processors operating at different locations via an asynchronous communication channel - Google Patents

Method for synchronizing processors operating at different locations via an asynchronous communication channel Download PDF

Info

Publication number
DE102009025495B4
DE102009025495B4 DE102009025495.1A DE102009025495A DE102009025495B4 DE 102009025495 B4 DE102009025495 B4 DE 102009025495B4 DE 102009025495 A DE102009025495 A DE 102009025495A DE 102009025495 B4 DE102009025495 B4 DE 102009025495B4
Authority
DE
Germany
Prior art keywords
processor
data blocks
offset
clock frequency
data
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.)
Active
Application number
DE102009025495.1A
Other languages
German (de)
Other versions
DE102009025495A1 (en
Inventor
Alexander Carot
Prf. Dr. Werner Christian
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/en
Publication of DE102009025495A1 publication Critical patent/DE102009025495A1/en
Application granted granted Critical
Publication of DE102009025495B4 publication Critical patent/DE102009025495B4/en
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

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, gekennzeichnet durch a) Versenden von mit je einem Zeitstempel versehenen ersten Datenblöcken gleicher Größe 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 ersten Datenblöcke des ersten Prozessors durch den zweiten Prozessor, c) Erzeugen von zweiten Datenblöcken mit je K Nachrichten auf dem zweiten Prozessor, wobei die zweiten Datenblöcke die gleiche Größe wie die ersten Datenblöcke besitzen und der Prozess der Datenerzeugung auf dem ersten Prozessor simuliert wird, d) Ermitteln der mittleren Laufzeit der ersten Datenblöcke vom ersten zum zweiten Prozessor aus dem Vergleich der Zeitstempel des ersten Prozessors mit der Uhr des zweiten Prozessors, e) Messen des zeitlichen Versatzes zwischen dem Fertigstellen eines zweiten Datenblocks auf dem zweiten Prozessor und dem Eintreffen des nächsten ersten 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, f) Replizieren des letzten gültigen Versatzmesswerts, wenn dessen Messung einen nicht gültigen Wert liefert, g) 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, h) Anpassen der Taktfrequenz des zweiten Prozessors derart, dass die auf dem zweiten Prozessor gebildete Differenz minimiert wird und i) fortlaufendes Wiederholen der Schritte b) bis h).A method for synchronizing two locally spaced processors by transmitting to the second processor an information expressing the clock frequency of the first processor and adjusting the clock frequency of the second processor to the clock frequency of the first processor, characterized by a) sending one time stamped first data blocks of the same size with K each messages from the first processor to the second processor at equal intervals, where K is a fixed integer, b) receiving the first data blocks of the first processor by the second processor, c) generating second data blocks with each K messages on the second processor, wherein the second data blocks have the same size as the first data blocks and the process of data generation is simulated on the first processor, d) determining the average runtime of the first data blocks from the first to the second processor from the comparison of the time stamps e) measuring the time offset between the completion of a second data block on the second processor and the arrival of the next first data block from the first processor, wherein a measurement of the offset is valid only if the difference of the first processor F) replicating the last valid offset measured value if its measurement gives an invalid value, g) forming the difference between two offset measured values on the second processor between whose measurement N data blocks h, where N is a fixed integer, h) adjusting the clock frequency of the second processor such that the difference formed on the second processor is minimized, and i) continuously repeating steps b) through h).

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.The invention relates to a method for the synchronization of technical processors, wherein the synchronization can take place via a communication channel which transports information only asynchronously, d. H. in which a data transmission takes place without fixed timing.

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).The increasing spread of communication networks allows the coupling of processes that take place in different places. Frequently, the close temporal coupling of the processors is desirable. Synchronization in the sense of the present invention means the adaptation of the execution rates of the processes on different processors. In particular, the clock rates on different computers with different architectures should be aligned. On the other hand, clock synchronization in real distributed systems - ie setting up a simultaneous process sequence on different processors - is in principle not exactly possible (see publication: Leslie Lamport, July 1978, "Time, Clocks and the Ordering of Events in a Distributed System"). Communications of the ACM 21 (7): 558-565).

WO 2006/011867 A1 betrifft ein Empfangsgerät das die Sampling-Rate bei der Wiedergabe anpasst und einen Pufferspeicher überwacht, um Abweichungen in der Rate zwischen einem Sendegerät und einem Empfangsgerät auszugleichen. Das Empfangsgerät beobachtet seinen Pufferspeicher und passt die Sampling-Rate bei der Wiedergabe an, um sich der Rate des Sendegeräts und des Empfangsgeräts anzupassen oder um Jitter zu kompensieren. WO 2006/011867 A1 relates to a receiving device that adjusts the sampling rate during playback and monitors a buffer memory to compensate for variations in the rate between a transmitting device and a receiving device. The receiver monitors its buffer memory and adjusts the sampling rate during playback to match the rate of the transmitter and receiver, or to compensate for jitter.

DE 103 11 541 A1 betrifft eine Vorrichtung zum Erfassen der Nullpunktabweichung zwischen zwei Uhren. Die Vorrichtung weist eine Hardwareimplementierung einer Bewertungseinrichtung für die Nullpunktabweichung der Uhr auf. Die Bewertungseinrichtung überwacht empfangene Pakete, die einem Datenstrom zugewiesen sind, und zieht einen Zeitstempel, der durch eine Quellenuhr erzeugt worden ist, aus jedem Paket. Eine Differenz d zwischen dem herausgezogenen Zeitstempel und der lokalen Zeit wird gegen einen Referenzwert d_ref verglichen, um festzustellen, ob das Paket früh oder spät empfangen wurde. Auf einem vorgeschriebenen Zeitplan wird der Grad des späten und frühen Empfangens von Paketen gegen einen Toleranzwert verglichen, um festzustellen, ob eine relative Nullpunktabweichung zwischen der Schrittsteuerung der Quellenuhr und der Schrittsteuerung der lokalen Uhr vorliegt. Die Erfassung der Nullpunktabweichung zwischen den beiden Uhren bietet Unterstützung für Service Level-Garantien beim Bereitstellen von Daten-Streaming-Diensten in paketgeschalteten Umgebungen. DE 103 11 541 A1 relates to a device for detecting the zero deviation between two clocks. The apparatus includes a hardware implementation of a zero point offset estimator of the clock. The evaluator monitors received packets assigned to a data stream and extracts a timestamp generated by a source clock from each packet. A difference d between the extracted timestamp and the local time is compared against a reference value d_ref to determine if the packet was received early or late. On a prescribed schedule, the degree of late and early packet receipt against a tolerance value is compared to determine if there is a relative zero offset between the source clock step control and the local clock step control. Zero offset detection between the two clocks provides support for service level guarantees when deploying data streaming services in packet-switched environments.

US 2005/0013394 A1 betrifft die Taktsynchronisation in verteilten Systemen für Echtzeitanwendungen. Dabei werden gleichzeitig in jedem Knoten des Netzes die Taktabweichung und das Taktlesen korrigiert. US 2005/0013394 A1 relates to clock synchronization in distributed systems for real-time applications. At the same time, the clock deviation and the clock reading are corrected in each node of the network.

US 5,276,659 betrifft ein taktsynchrones System mit sicherer Taktsynchronisation in einem Netzwerk mit einer Master-Station und mehreren Slave-Stationen. Das System beobachtet ständig die Zeitdifferenz zwischen der Referenzzeit der Master-Station und der lokalen Zeit der Slave-Stationen. Wenn die Abweichung eine Schwelle überschreitet, dividiert das System die Zeitdifferenz durch einen bestimmenden Korrekturwert, um einen Zeitkorrekturkoeffizienten zu bestimmen korrigiert den Zeitunterschied der Slave-Station basierend auf diesem Korrekturwert. US 5,276,659 relates to an isochronous system with secure clock synchronization in a network with a master station and multiple slave stations. The system constantly monitors the time difference between the reference time of the master station and the local time of the slave stations. When the deviation exceeds a threshold, the system divides the time difference by a determining correction value to determine a time correction coefficient corrects the time difference of the slave station based on this correction value.

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.It is not readily possible to generate two clock signals at exactly the same frequencies at separate locations, since the components used for this purpose, in particular quartz crystals, are subject to manufacturing tolerances and change their frequency behavior due to difficultly controllable environmental factors (eg temperature). For this reason, the synchronization of processors is a very demanding technical task.

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).
According to the prior art, this object can be achieved by three different methods:
The first is to provide a common clock signal from a common clock generator as a reference for the processors. However, this is only possible if this clock signal can be transmitted to the processors via a suitable medium (common clock line). Is this due to not exactly determined timing in the transmission channel (jitter) - such. For example, when communicating via the Internet - not possible, so you can not use this method. (Trischitta, P., and 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).The second option is not to send the clock signal directly to both processors, but to recover it from another common reference signal that both processors can receive as accurately as possible. A well-known example of such a reference signal is the high-precision 77.5 kHz signal of the long-wave transmitter DCF77. By frequency multiplication or frequency division can be generated from this reference signal, a clock signal that is suitable for the processors to be synchronized. However, the reception of such a reference signal is complicated and comparatively complex circuits must also be provided for the generation of the derived clock signal (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).The third possibility is to feed the processors with clock signals from independent clock generators and to ensure, by means of suitable technical measures, that the respectively generated frequencies are as equal as possible. Examples are highly accurate, quartz; By means of a selection process, it can be ensured that several quartzes have as far as possible the same physical properties. A precise adjustment of the clock generators can further approximate their oscillation behavior. Environmental influences can also be limited by suitable technical measures (eg quartz furnaces). However, these measures are very expensive. (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.At present, for practical applications, a common clock line is usually realized, if this is possible due to the spatial arrangement. More remote processors can be fed by separate clock generators, with a phase-locked loop (PLL) circuit ensuring that the frequency on the receiver side matches the frequency of the transmitter. However, it is also necessary here for there to be a communication channel reserved solely for data exchange between sender and receiver and undisturbed by other processes. This method is often used in broadcasting applications to adjust a receiver circuit exactly to the carrier frequency of a transmitter.

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.Alternatively, processors can be coupled together via telecommunications networks (eg, ISDN) that operate synchronously. Here, a global clock signal in the network is replicated in the best possible way and used as the basis for all communication processes.

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.Due to the increasing spread of asynchronous communication networks (especially the Internet), there is an increasing demand for synchronization solutions that can be realized via asynchronous data traffic. The special feature of asynchronous networks is that the transmission time for information in the network is subject to certain fluctuations (so-called jitter). Accurate and reliable synchronization seems to be particularly difficult under these conditions.

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.The object of the invention is therefore to specify a method for the synchronization of processors via asynchronous communication channels, which requires no expensive circuits and expensive special modules.

Die Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Hauptanspruchs. Die Unteransprüche geben vorteilhafte Ausgestaltungen an.The object is achieved by a method having the features of the main claim. The dependent claims indicate advantageous embodiments.

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.The invention requires the presence of an adjustable clock generator at least on the receiver side, which can be realized with inexpensive standard electronic circuits in a conventional manner. It is further assumed that the machines to be synchronized are technically designed to operate at the same clock frequency, even if the architectures may not be identical.

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.The method according to the invention describes a measuring method with which the exact difference of the clock frequencies of two processors can be determined. By means of the measurement result, the adjustable clock generator of the receiver side can then be set to the clock frequency of the transmitter. The inventive method also allows the clock frequency equalization in extremely jitter-prone networks.

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 Datennblöcke vom Sender mit einem Zeitstempel versehen, beispielsweise bei Beginn des Erstellens eines Datenblocks oder unmittelbar vor dessen Absenden an den Empfänger.
The basic features of the method are first explained for a network without jitter:
Any process on a first computer (i.f., transmitter) generates messages at the same time intervals. These messages are combined into equally sized data blocks, which are sent at the same time over a communication channel to a second computer (i. In addition, the data blocks are provided with a time stamp by the transmitter, for example at the beginning of the creation of a data block or immediately before it is sent to the receiver.

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.The data blocks require a transit time through the communication channel between sender and receiver. In a communication channel without jitter, this is constant and can be measured accurately.

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.The receiver receives the data blocks and a first clock equalization takes place in which the receiver determines the transmitter frequency based on the time stamps and the number of messages in the received data blocks and adjusts its adjustable clock generator. Alternatively, the transmitter can also send an indication of its own clock frequency to the receiver, which the receiver then adjusts itself. This first adjustment of the clock frequency of the receiver thus takes place on the basis of the transmitter - implicitly or explicitly - transmitted clock frequency of the transmitter and is of course state of the art.

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.The problem underlying the invention is that transmitter and receiver Although both claim to have now identical clock frequencies, but the physically real clock frequencies - commonly differ in both computers - from the nominal. The decisive factor for an exact synchronization is ultimately the question of how the receiver evaluates the clock frequency of the transmitter in relation to its own.

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.According to the invention, therefore, the receiver generates messages as well as the sender and assembles them into data blocks of the same size. Here, the receiver is dependent on its own time clock. The exact content of the news is not important. Rather, it is essential that the data blocks generated on the receiver contain exactly the same number of messages as those received by the sender. Since the message content of the data generated on the receiver is not relevant, the process of data generation on the transmitter is not reproduced, but only "simulated" because the receiver is usually not sufficient input data available, eg. As microphone recordings or the like.

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.The aim is to obtain information about the operating speed of the transmitter "from the perspective" of the receiver. If the sender and receiver do not have the same clock frequency, the time intervals in which messages are generated on the sender and receiver differ.

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.According to the invention, a time measurement is now always started at the receiver at which the receiver completes the compilation of generated messages into a data block (reference time). The time measurement is stopped as soon as the next data block is received by the transmitter. The result of the time measurement is called t_offset in the following.

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.The core idea of the invention is that the time difference t_offset is an observable which can be determined solely on the receiver side and which is suitable for quickly and precisely matching the clock frequencies. Surprisingly, this is possible even if a network jitter causes the observable t_offset to scatter strongly between the individual measurements.

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.
The measurement of the observable t_offset occurs continuously for all data blocks generated on the receiver and arriving from the transmitter. It shows:
  • a) If the time difference t_offset increases with time, the process on the receiver is faster than on the transmitter (the transmitter does not lag behind with the delivery of the data blocks);
  • b) if the time difference t_offset becomes smaller over time, the process is slower at the receiver than at the transmitter (the transmitter feeds data blocks faster than the receiver can simulate their generation);
  • c) if the time difference t_offset remains the same, the receiver and the transmitter match in frequency.

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) The measured time difference t_offset can be used directly to calculate the frequency difference: The difference between two successive t_offset measured values, t_diff, adds up to the block length of the receiver (the time that the receiver needs to create a data block) immediately the block length of the transmitter. If this value is divided by the number of messages received with a block, one obtains the period of the transmitter process whose reciprocal indicates the frequency of the transmitter process, f_sender. f_sender = 1 / ((block_length_receiver + t_diff) / number_of_messages)

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.Apparently the same applies f_sender = 1 / ((N * block_length_receiver + N * t_diff) / N * number_messages) with any integer N. It is therefore equally possible to determine the value N * t_diff as the difference between two t_offset values between whose measurement N data blocks have arrived at the receiver. For a typical block length around 5 ms and for example N = 200, it is sufficient to calculate the transmitter frequency about once per second.

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.The instantaneous frequency of the receiver is always known to the receiver itself. Consequently, the frequency difference between the receiver and the transmitter is determined hereafter. According to the calculated frequency difference, the frequency of the receiver-side clock generator is adjusted.

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.The observable t_shift is continuously measured, so that the adjustment of the track frequency on the receiver side can be carried out continuously. The step size of the adaptation steps decreases with time, d. H. the synchronization is getting better. The experimentally determined residual error is less than 1 ppm in typical applications, i. H. the remaining clock difference is less than a millionth part of the process clock.

Die Erfindung wird nachfolgend noch näher erläutert und auch im Zusammenhang mit Netzwerkjitter anhand der Figuren diskutiert. Dabei zeigt:The invention will be explained in more detail below and also discussed in connection with network jitter with reference to the figures. Showing:

1 Messwerte der Observable t_versatz bei der Kommunikation zweier nicht-synchroner Soundkarten in einem Local Area Network (LAN, praktisch kein Netzwerkjitter); 1 Measurements of the observable t_offset in the communication of two non-synchronous sound cards in a Local Area Network (LAN, practically no network jitter);

2 Messwerte von t_versatz in der Konfiguration wie 1 während des Ablaufs des Synchronisationsverfahrens; 2 Measured values of t_offset in the configuration like 1 during the course of the synchronization process;

3 Messwerte von t_versatz bei der Kommunikation zweier nicht-synchroner Soundkarten in einem Wide Area Network (WAN, starker Netzwerkjitter); 3 Measurements of t_offset in the communication of two non-synchronous sound cards in a Wide Area Network (WAN, strong network jitter);

4 Messwerte von t_versatz und ihre Replikate zur Jitter-Kompensation für die Konfiguration aus 3; 4 Metric values of t_offset and their replicas for jitter compensation for the configuration 3 ;

5 Messwerte von t_versatz und ihre Replikate wie in 4 während des Ablaufs des Synchronisationsverfahrens. 5 Measurements of t_offset and their replicas as in 4 during the course of the synchronization process.

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.In 1 By way of example, measured values of the observable t_offset are shown, which arise during data exchange between two non-synchronous sound cards via a - virtually jitter-free - local area network (LAN). The observable decreases continuously because the transmitter generates and delivers data blocks faster than the receiver in its simulation process. If t_ offset reaches zero, the receiver is just finished creating a data block and a data block arrives from the transmitter. The subsequently generated data block on the receiver side is finished shortly after the next one has already arrived from the transmitter, so that the measurement of t_offset takes almost a whole block length until the next but one data block of the transmitter arrives. This explains the sawtooth pattern in the data. Apparently, if the data transfer between the two sound cards continued, the buffer memory of the receiver would eventually overflow or data blocks of the transmitter were lost.

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.By adapting the receiver-side clock frequency, the synchronization method according to the invention leads to t_ offset assuming a constant value over time, as is the case 2 can be seen. Although there are still slight clock differences, they are limited to very small values due to the continuous use of synchronization. The mean of t_offset in 2 corresponds to the runtime of the data blocks in the network.

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.In wide area networks (WAN), network jitter is an inherent problem. Due to the network jitter, the incoming packets may be delayed by an indeterminate amount of time and thereby falsify each individual metric t_ offset or - depending on the extent of the error - render it useless. 3 shows the observable t_location, when communicating the sound cards over the internet. It should be noted, however, that the aforementioned sawtooth pattern can also be found in 3 can still roughly recognize.

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.In order to be able to use the described synchronization method despite network jitter, incoming data blocks too late must not be included in the measurement of t_offset. For this reason, the timestamp generated by the sender and transmitted to the receiver on the receiver side are additionally compared with the time of the receiver. Although the internal clocks of the transmitter and receiver are not synchronized themselves, the time comparison of data block to data block still provides information about the delay resulting from the network jitter.

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.The difference between the reception time (measured at the receiver) and the transmission time (measured at the transmitter and recorded in the transmitted timestamp) is possibly a strongly scattering measured variable in the WAN, which is referred to below as packet delay and whose average value over a longer period of time (eg. 1 second) can be easily determined. It should be noted that the measurement of the packet transit time of course is also affected by the lack of clock synchronization of transmitter and receiver error. It can also fluctuate in the short term by uncontrollable influences on the network connection (such as the load).

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.According to the invention, therefore, the mean value of the packet transit time is determined recurrently, for example once per second. As soon as this mean value is determined, only data blocks for measuring t_offset are used whose actual runtime in the asynchronous network essentially corresponds to the mean value of the packet transit time. All remaining data blocks are rejected as invalid for the measurement of t_offset.

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.Instead of the true values of t_offset, which can not be continuously redetermined due to the invalidation of received data blocks, the last valid value for t_offset is simply repeated (replicated) until the next valid data packet arrives. This procedure results in the step function 4 instead of the strongly scattering values 3 in which gaps in the measured data are replenished by replicas. The use of the replicas for the previously described, continuously running synchronization process (continuous adaptation of the receiver-side clock frequency) is not critical and leads to a satisfactory result, such as 5 clarified. Although it only comes to a new calculation of the transmitter frequency and thus to the adjustment of the receiver frequency when a new valid data block arrives at the receiver, but this is often enough the case to achieve the desired clock synchronization. The measured values t_sharp adjusted by selection from the influence of the jitter quickly assume a constant value.

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.The described method can be used, for example, to synchronize the recording and playback processes of two sound cards at different locations, whereby the data exchange takes place via the Internet.

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.With conventional sound cards one works with a typical sample frequency of 48 kHz. However, since the clock generators of conventional sound cards are not exactly tuned and are also subject to a certain temperature dependence, the problem in practice is that a receiving sound card at location A generates slightly more or fewer samples at a fixed time interval than the reproducing sound card at location B. happening. Depending on the sound card, deviations of up to 100 ppm result, so that a difference of 60 s × 48,000 1 / s × 100 / 1,000,000 = 288 samples occurs at 48 kHz sample frequency within one minute. In addition to a slightly changed pitch makes in practice, especially negative, that in the receiver-side buffer from this imbalance from time to time underflow or overflow takes place. According to the current state of the art, this is either accepted (for example in the case of Voice-over-IP applications) or compensated by resampling or deliberate omission or duplication of individual samples on the software side. However, these approaches lead to a distortion of the signal.

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.The inventive method now allows the pure reproduction of the signal. Each data packet transmitted by the transmitter represents a fixed number of samples, e.g. B. blocks of 128 samples each. The sender sends the data packet immediately after all samples are available for a complete block. The receiver receives the blocks and uses the transmitted data to track the process of the transmitter side; In the example, playing the samples over the local sound card is an adequate form of simulation. The playback process is typically faster or slower than the recording process of the transmitter.

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.At each reference time of the receiver-side sound card, a time measurement is started. This measurement is stopped as soon as a data packet arrives over the network. However, the measurements thus made are not always useful: Network jitter usually ensures that the intervals between the reception times of the data packets are not constant. In order to avoid resulting measurement errors, the received data packets are subjected to a selection process. Delayed data packets will then result in invalid time measurements that will be discontinued.

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.If the transmitter and receiver process are running at the same speed, then the measured time interval t_offset is constant on average. Otherwise, the clock frequency of the receiver sound card will be reduced if t_offset increases (the receiver's sound card works faster than that of the transmitter), and increases if t_offset decreases (the receiver's sound card is slower than that of the transmitter). This adjustment process is repeated continuously.

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.The illustrated indirect form of the time measurement ensures that the receiver side no absolutely exact clock is needed to derive an absolute frequency or an absolute frequency error for the adjustment of the clock generator. Instead, only the change in the time interval between the reference point and the arrival of the next packet is considered. Absolute timekeeping is not necessary for this, as it only looks at the change in a time span - with respect to any clock to which no special accuracy requirements are made.

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.However, the invention is not limited to applications in connection with sound cards, but can be used to synchronize any technical processes that were traced in the receiver, i. H. can be simulated. Further examples are the synchronization of production processes, which are carried out by robots, or the synchronization of software processes, which run on separate computers.

Claims (4)

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 ersten Datenblöcken gleicher Größe 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 ersten Datenblöcke des ersten Prozessors durch den zweiten Prozessor, c) Erzeugen von zweiten Datenblöcken mit je K Nachrichten auf dem zweiten Prozessor, wobei die zweiten Datenblöcke die gleiche Größe wie die ersten Datenblöcke besitzen und der Prozess der Datenerzeugung auf dem ersten Prozessor simuliert wird, d) Ermitteln der mittleren Laufzeit der ersten Datenblöcke vom ersten zum zweiten Prozessor aus dem Vergleich der Zeitstempel des ersten Prozessors mit der Uhr des zweiten Prozessors, e) Messen des zeitlichen Versatzes zwischen dem Fertigstellen eines zweiten Datenblocks auf dem zweiten Prozessor und dem Eintreffen des nächsten ersten 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, f) Replizieren des letzten gültigen Versatzmesswerts, wenn dessen Messung einen nicht gültigen Wert liefert, g) 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, h) Anpassen der Taktfrequenz des zweiten Prozessors derart, dass die auf dem zweiten Prozessor gebildete Differenz minimiert wird und i) fortlaufendes Wiederholen der Schritte b) bis h).A method for synchronizing two locally spaced processors by transmitting to the second processor an information expressing the clock frequency of the first processor and adjusting the clock frequency of the second processor to the clock frequency of the first processor, characterized by a) sending one time stamped first data blocks of the same size with K each messages from the first processor to the second processor at equal intervals, where K is a fixed integer, b) receiving the first data blocks of the first processor by the second processor, c) generating second data blocks with each K messages on the second processor, wherein the second data blocks have the same size as the first data blocks and the process of data generation is simulated on the first processor, d) determining the average runtime of the first data blocks from the first to the second processor from the comparison of the time stamps the first processor with the clock of the second processor, e) measuring the time offset between the completion of a second data block on the second processor and the arrival of the next first data block from the first processor, wherein a measurement of the offset is valid only if the difference of the duration of the incoming data block to the previously determined average run time f) replicating the last valid offset measurement if its measurement provides an invalid value; g) forming the difference between two offset measurements on the second processor between whose measurement N data blocks have been received, where N is a fixed integer h) adjusting the clock frequency of the second processor such that the difference formed on the second processor is minimized, and i) continuously repeating steps b) to h). 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.A method according to claim 1, characterized in that the adaptation of the clock frequency of the second processor by matching to the previously calculated from the difference of the offset values clock frequency of the first processor. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Ermitteln der mittleren Laufzeit der ersten Datenblöcke durch Mittelwertbildung der Laufzeiten einzelner Datenblöcke über etwa 1 Sekunde erfolgt.Method according to one of the preceding claims, characterized in that the determination of the average transit time of the first data blocks is effected by averaging the transit times of individual data blocks over approximately 1 second. 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.Method according to one of the preceding claims, characterized in that the integer N is specified such that the product N · block length is about 1 second.
DE102009025495.1A 2009-06-19 2009-06-19 Method for synchronizing processors operating at different locations via an asynchronous communication channel Active DE102009025495B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102009025495.1A DE102009025495B4 (en) 2009-06-19 2009-06-19 Method for synchronizing processors operating at different locations via an asynchronous communication channel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009025495.1A DE102009025495B4 (en) 2009-06-19 2009-06-19 Method for synchronizing processors operating at different locations via an asynchronous communication channel

Publications (2)

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

Family

ID=43298813

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009025495.1A Active DE102009025495B4 (en) 2009-06-19 2009-06-19 Method for synchronizing processors operating at different locations via an asynchronous communication channel

Country Status (1)

Country Link
DE (1) DE102009025495B4 (en)

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 (en) * 2002-03-20 2003-10-09 Zarlink Semiconductor Vn Inc Procedure for detecting zero point deviations between two clocks
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 (en) * 2002-03-20 2003-10-09 Zarlink Semiconductor Vn Inc Procedure for detecting zero point deviations between two clocks
WO2006011867A1 (en) * 2004-06-25 2006-02-02 Numerex Corporation Method and system for adjusting digital audio playback sampling rate

Also Published As

Publication number Publication date
DE102009025495A1 (en) 2011-01-05

Similar Documents

Publication Publication Date Title
DE102006019475B4 (en) Method for synchronizing modules of a base station
DE69228376T2 (en) METHOD FOR MEASURING CHANNEL DELAY
DE69321558T2 (en) Video and audio signal multiplexing and separating devices
DE102011087472B4 (en) Method for synchronizing clocks in nodes of a vehicle network and for implementing the method of established nodes
EP1265124B1 (en) Method for transmitting time information in a packet data network
DE19933753B4 (en) Time synchronization in a system having a set of nodes coupled to a communication link
EP2294732B1 (en) Method and system for the synchronisation of a central station and several transmitters, in particular in a single-frequency network
DE10127901B4 (en) Synchronous system for periodic control
DE102006012466A1 (en) Systems and methods for synchronizing a time across networks
DE10311541A1 (en) Procedure for detecting zero point deviations between two clocks
EP2467993B1 (en) Method and arrangement for synchronising data streams in networks and a corresponding computer program and corresponding computer-readable storage medium
DE102008023908A1 (en) Transparent Spider
DE4330054A1 (en) Simultaneous transmission system
DE10064928A1 (en) Method, clock module and receiver module for synchronizing a receiver module
DE60316758T2 (en) System for the synchronization of commands, as well as a method, a control device and a target device for the same system
EP2002580A1 (en) Synchronizing assembly for the high-frequency transmitters of a common frequency network
DE3927681C2 (en)
DE2050718C3 (en) Method for communication via an earth satellite by means of time division multiplex and device for carrying out the method
EP2534775A1 (en) Method for time synchronization in a communication network
WO2019072598A1 (en) Method and system for recording and synchronizing audio and video signals and audio and video recording and synchronization system
EP1172954B1 (en) Method, module and module program for synchronisation
DE19912556A1 (en) Wireless network with user clock synchronization
WO2000031610A1 (en) Network subscriber
DE69424844T2 (en) Method and device for synchronizing the transmission frequency of two base stations
DE69221938T2 (en) Radio transmission arrangement with measurement and regulation of the transmission delay

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