-
Gegenstand
der Erfindung
-
Die
vorliegende Erfindung behandelt generell das Gebiet der Rechnernetzwerke,
dabei besonders das Gebiet der Echtzeitanwendungen in der Regelungs-
und Steuerungstechnik. Speziell betrifft die vorliegende Erfindung
das Fachgebiet der gegenseitigen Synchronisierung von Rechnerknoten
in Netzwerken von Rechnern. Bevorzugte Realisierungen der vorliegenden
Erfindung stellen allen Knoten des Netzwerks eine gemeinsame Zeitbasis
zur Verfügung.
Dies gilt auch im Falle von beschränkten Nachrichtenverlusten
bei der Kommunikation zwischen Rechnerknoten.
-
Hintergrund
der Erfindung
-
Es
existieren eine Reihe von weithin bekannten Protokollen für Echtzeitkommunikation
in Regelungs- und Steuerungsanwendungen in der Automatisierungstechnik
oder auch Anwendungen in der Automobilelektronik. Unter diesen Standards
sind z.B. (1) das CAN (Controller Area Network) Protokoll, das den
dominierenden Standard in der europäischen Autombilelektronik darstellt
und darüber
hinaus auch in der Automatisierungstechnik weit verbreitet ist,
(2) das Protokoll TTP (Time-Triggered Protocol), und (3) der sich
in der Entwicklung befindliche F1exRay-Standard z.B. für automobile
Anwendungen. Während
die letzteren zwei Standards eine einheitliche, fehlertolerante
Zeitbasis für
alle teilnehmenden Knoten eines Netzwerks herstellen, ist eine solche
Zeitbasis in schwächer
synchronisierten Protokollen wie CAN nicht vorgesehen.
-
Eine
gemeinsame Zeitbasis für
einige oder alle Knoten in einem Netzwerken ist aus mehreren Gründen hilfreich.
Zum einen können
aufeinanderfolgende Ereignisse, die sich in verteilten Umgebungen abspielen,
mit Zeitstempeln der gemeinsamen Zeitbasis versehen werden, so dass ihre
kausale Abfolge ermittelt werden kann. Das ist für verschiedene Anwendungen
nützlich,
so wie z.B. Diagnose (die Kette der Ereignisse im Vorfeld eines
Fehlers kann so rekonstruiert werden.) Zum anderen können Anwendungsprogramme
für Regelungs-
und Steuerungsanweddungen mit verteilter Ausführung auf mehreren Rechnern
geeigneterweise als synchrone Programme mit einem gemeinsamen logischen
Taks ausgedrückt
werden. In einem solchen synchronen Programm ist die verteilte Ausführung mehrerer
Prozesse typischerweise deterministisch, d.h. das Ergebnis der gesamten
Berechnung hängt
allein vom anfänglichen
inneren Zustand des Systems und den Eingaben an das System, aber
nicht von der relativen Ausführungsgeschwindigkeit
auf den verschiedenen Rechnern ab. Als weiterer Vorteil dieses Ansatzes kann
angeführt
werden, dass Regelungs- und Steuerungstechniker den Entwurf eines
Systems typischerweise mit der intuitiven Vorstellung einer uniform
fortschreitenden physikalischen Zeitbasis verbinden, die in der
logischen Zeitbasis des synchronen Programms eine klare Entsprechung
findet. Der synchrone Ansatz zur Programmierung ist deshalb für den Entwurf
von Echtzeitsystemen in der Regelungs- und Steuerungstechnik verbreitet
anzutreffen, wie durch den Erfolg von Entwurfswerkzeugen für Regelungstechnik
(z.B. MATLAB Simulink von The MathWorks, Inc.) praktisch belegt
ist.
-
Aus
verschiedenen Gründen
werden einfache und etablierte Protokolle wie CAN nach wie vor für eine große Anzahl
von Anwendungen bevorzugt eingesetzt. So sind z.B. in der Automobilelektronik aufgrund
der hohen produzierten Stückzahlen
die Entscheidungen im Systementwurf sehr eng an die Stückkosten
für Hardware
wie z.B. Schaltkreise für die
Netzwerkanbindung, gekoppelt. Die Einführung neuer Protokolle wie
z.B. TTP oder FlexRay kann deshalb typischerweise erst dann in Erwägung gezogen
werden, sobald die nötigen
Schaltkreise in der Massenproduktion mit entsprechend geringen Stückkosten
verfügbar
sind. Des weiteren wir der Übergang
zu neuen Bussystemen mit eigener Zeitbasis von dem großen potenziellen
Aufwand der Umstellung sowohl für
die Hersteller selbst als auch für
deren Zulieferer behindert. So existieren z.B. für die Entwicklung eines neuen
Automobils typischerweise einige eingebettete Rechnerknoten (Steuergeräte), die
im Falle der Beibehaltung des existierenden Bussystems ohne größere Änderungen
und somit Kosten verwendet werden können.
-
Wenn
eine synchronisierte Zeitbasis im Kontext eines nichtsynchronisierten
Basisprotokolls gefordert wird, ist es eine naheliegende Idee, einen Synchronisationsdienst
auf der Grundlage der Dienste des Basisprotokolls zu verwenden.
Das Basisprotokoll wird somit sowohl für den Austausch von Nachrichten
der eigentlichen Anwendung als auch für den Informationsaustausch
des Synchronisationsdienstes verwendet. Eine typische technische
Randbedingung ist dabei, dass der Synchronisationsdienst so wenige
zusätzliche
Rechnerressourcen als möglich verwenden
soll. Dies gilt vor allem für
kostensensitive Anwendungen wie z.B. der erwähnten Automobilelektronik,
wo zusätzliche
Rechnerressourcen oft aus Kostengründen nicht bereitgestellt werden
können.
-
Für das CAN-Protokoll
gibt es bereits veröffentlichte
Arbeiten zu Synchronisationsdiensten, wie z.B. das TT-CAN-Protokoll
der Robert Bosch GmbH. Die deutsche Patentanmeldung
DE 102 08 650 A1 legt Teile
des Synchronisationsdienstes von TT-CAN offen. Das TT-CAN-Protokoll beschreibt
zwei alternative Synchronisationsdienste, einer unter Verwendung
zusätzlicher
Hardwarebausteine (Level 2), einer ohne (Level 1). Knoten in einem
TT-CAN-Netzwerk sind grundsätzlich
an einen statisch bestimmten Ablaufplan (Schedule, Nachrichtenslots)
gebunden, der die zeitliche Abfolge der Kommunikation auf dem Bus
regelt. Dies bringt offensichtlich Probleme mit sich für den Fall,
dass Steuergeräte
integriert werden sollen, die sich inhärent nicht an den Ablaufplan
halten. Ein Beispiel für
ein solches Szenario ist die, wie bereits erwähnt, die Integration von Steuergeräten früherer Fahrzeuggenerationen
in der Automobilelektronik. TT-CAN gewährt solchen Knoten grundsätzlich Lese-,
aber keine Schreibzugriffe.
-
Zusammenfassung
der Erfindung
-
Es
ist ein Gegenstand der vorgelegten Erfindung, einen Synchronisationsdienst
für ein
Netzwerk von Rechnerknoten zur Verfügung zu stellen.
-
Es
ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten
Erfindung, einen Synchronisationsdienst mittels eines kommerziell
etablierten Protokolles als Basisprotokoll zur Verfügung zu
stellen.
-
Es
ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten
Erfindung, den Synchronisationsdienst mit minimalem zusätzlichen
Aufwand and Rechnerressourcen zur Verfügung zu stellen.
-
Es
ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten
Erfindung, einen Synchronisationsdienst bereitzustellen, der eine beschränkte Anzahl
von verlorenen oder gestörten Nachrichten
toleriert.
-
Es
ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten
Erfindung, einen Synchronisationsdienst zur Verfügung zu stellen, der kompatibel
ist mit der Integration von Rechnerknoten, die nicht spezifisch
für die
Verwendung mit dem Synchronisationsdienst entwickelt wurden, in
einer Art und Weise, die es erlaubt, dass solche Rechnerknoten sowohl
Schreib- als auch Lesezugriffe auf das Kommunikationsmedium erhalten.
-
Einer
oder mehrere der beschriebenen Gegenstände werden erreicht, ganz oder
zum Teil, durch ein Verfahren zur Synchronisation eines ersten Rechnerknotens
mit einem zweiten Knoten, in einem Netzwerk mit einer Anzahl Knoten,
wobei:
- 1. der erste Knoten periodisch synchronisierende Nachrichten
versendet
- 2. der zweite Knoten periodisch Berechnungszyklen durchläuft, wobei
jeder Berechnungszyklus aus einem empfänglichen Zeitintervall besteht,
in dem der zweite Knoten eine synchronisierende Nachricht vom ersten
Knoten erwartet, und
- 3. für
mindestens einige der Berechnungszyklen:
(a) der zweite Knoten
bestimmt, ob vor Ablauf des empfänglichen
Zeitintervalls eine synchronisierende Nachricht empfangen wurde
oder nicht,
(b) der zweite Knoten, falls er eine synchronisierende
Nachricht vom ersten Knoten innerhalb seines empfänglichen
Zeitintervalls empfängt,
Informationen speichert, die indizieren, dass die synchronisierende
Nachricht innerhalb des empfänglichen
Zeitintervalls des derzeitigen Berechnungszyklus empfangen wurde,
(c)
der zweite Knoten, falls er keine synchronisierende Nachricht vom
ersten Knoten innerhalb seines empfänglichen Zeitintervalls empfängt, Informationen
speichert, die zumindest bis zu einer gegebenen Schranke indizieren,
für wie
viele Berechnungszyklen in Folge keine synchronisierenden Nachrichten
während
der jeweiligen empfänglichen
Intervalle des zweiten Knoten empfangen wurden.
-
Einer
oder mehrere der obigen Gegenstände werden
erreicht, ganz oder zum Teil, durch ein Verfahren zur gegenseitigen
Synchronisiereung eines Senderknotens mit einem Empfängerknoten
in einem Netzwerk, wobei:
- 1. der Sender periodisch
Nachrichten versendet, die möglicherweise
zur Datenkommunikation der Anwendung verwendet werden, und keine
explizite Dateninformation im Zusammenhang mit dem Synchronisierungsdienst
enthalten müssen,
- 2. der Empfänger
periodisch Rechenzyklen durchläuft,
- 3. sowohl Sender als auch Empfänger eine Möglichkeit haben, eine lokale
Zeitbasis zu etablieren, zum Beispiel mit Hilfe eines eigenständigen Oszillators,
oder durch Zählen
von Prozessorzyklen,
- 4. der Empfänger
einen Zähler
besitzt, und zwischen verschiedenen Betriebszuständen im Hinblick auf den Zustand
der Synchronisierung unterscheidet,
- 5. der Empfänger,
für einen
gegebenen Rechenzyklus, mit Hilfe seiner lokalen Zeitbasis in der Lage
ist, den Ablaufzeitpunkt oder den Start- und Ablaufzeitpunkt eines
definierten empfänglichen Zeitintervalls
zu bestimmen, in dem eine Nachricht vom Sender erwartet wird,
- 6. der Empfänger
für einen
gegebenen Rechenzyklus im Falle des Nachrichtenempfangs vom Sender
innerhalb des empfänglichen
Zeitintervalls den nächsten
Rechenzyklus initiiert,
- 7. der Empfänger
für einen
gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des
Senders innerhalb des empfänglichen
Zeitintervalls, falls sein lokaler Zähler kleiner ist als ein gegebener,
nicht notwendigerweise konstanter Wert, in einen Betriebszustand
eintritt, der indiziert, dass innerhalb des letzten empfänglichen Intervalls
keine Nachricht empfangen wurde, und seinen lokalen Zähler hochzählt,
- 8. der Empfänger
für einen
gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des
Senders innerhalb des empfänglichen
Zeitintervalls, falls sein lokaler Zähler größer ist als ein gegebener,
nicht notwendigerweise konstanter Wert, in einen Betriebszustand
eintritt, der indiziert, dass für
eine gegebene Anzahl von Rechenzyklen keine Nachricht innerhalb
des empfänglichen
Zeitintervalls empfangen wurde.
-
Einer
oder mehrere der obigen Gegenstände werden
erreicht, ganz oder zum Teil, durch eine Vorrichtung, die aus einem
Netzwerk mit einer Anzahl von Knoten besteht, die sich wie oben
beschrieben verhalten.
-
Einer
oder mehrere der obigen Gegenstände werden
erreicht, ganz oder zum Teil, durch einen Netzwerkknoten bestehend
aus:
- 1. einem Eingabepuffer, mit einem speziellen
Register für
eine synchronisierende Nachricht, der zum Empfang von eingehenden
Nachrichten von einem Kommunikationsmedium verwendet wird,
- 2. einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber
sowie auf eingehende synchronisierende Nachrichten reagiert,
- 3. einem Puffer für
empfangene eingehende Nachrichten, mit einem speziellen Register
für eine
synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden
Nachrichten verwendet wird,
- 4. einem Puffer für
wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende
Nachricht, der zum speichern von ausgehenden Nachrichten verwendet
wird, die zum Senden auf das Kommunikationsmedium bereitstehen,
- 5. einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende
Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet
wird,
- 6. einer Sende-/Empfangssteuerung, die periodisch Werte aus
dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten
kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten
in den Ausgabepuffer kopiert, und
- 7. einer Berechnungssteuerung, der periodisch die spezifische
Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird,
ausführt,
die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten
verwendet, und neue Werte für
den Puffer für
wartende ausgehende Nachrichten berechnet.
-
Einer
oder mehrere der obigen Gegenstände werden
erreicht, ganz oder zum Teil, durch ein Netzwerk mit einer Anzahl
von Knoten, jeder Netzwerkknoten bestehend aus:
- 1.
einem Eingabepuffer, mit einem speziellen Register für eine synchronisierende
Nachricht, der zum Empfang von eingehenden Nachrichten von einem
Kommunikationsmedium verwendet wird,
- 2. einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber
sowie auf eingehende synchronisierende Nachrichten reagiert,
- 3. einem Puffer für
empfangene eingehende Nachrichten, mit einem speziellen Register
für eine
synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden
Nachrichten verwendet wird,
- 4. einem Puffer für
wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende
Nachricht, der zum speichern von ausgehenden Nachrichten verwendet
wird, die zum Senden auf das Kommunikationsmedium bereitstehen,
- 5. einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende
Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet
wird,
- 6. einer Sende-/Empfangssteuerung, die periodisch Werte aus
dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten
kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten
in den Ausgabepuffer kopiert, und
- 7. einer Berechnungssteuerung, der periodisch die spezifische
Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird,
ausführt,
die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten
verwendet, und neue Werte für
den Puffer für
wartende ausgehende Nachrichten berechnet.
-
Die
im weiteren Verlauf des Dokuments geschilderten Ansprüche definieren
bevorzugte Realisierungen der vorliegenden Erfindung.
-
In
bevorzugten Realisierungen der vorliegenden Erfindung werden die
Rechnerknoten logisch zu einem gewurzelten Baum im graphentheoretischen
Sinne arrangiert, mit einem "Masterknoten" als Wurzel des Baums.
Jede gerichtete Kante des Baums führt von einem "Elternknoten" zu seinem jeweiligen "Kindknoten". Die Synchronisierung
des gesamten Netzwerks wird dann durch das oben beschriebene Verfahren
erreicht.
-
Als
Vorteil gegenüber
bisher veröffentlichten Lösungen benötigt der
Synchronisationsdienst, der durch die vorliegende Erfindung oder
durch ihre bevorzugten Realisierungen bereitgestellt wird, keine zusätzlichen
Ressourcen des Kommunikationsmediums für die Synchronisation, falls
existierende periodische Nachrichten der Anwendung als synchronisierende
Nachrichten verwendet werden.
-
Als
weiterer Vorteil tolerieren die vorliegende Erfindung oder ihre
bevorzugten Realisierungen eine beschränkte Anzahl von Nachrichtenverlusten
oder -störungen
auf dem Medium, wo mit der Synchronisationsdienst robust gegenüber physikalischen
Störungen
oder solchen Verletzungen von Zeitschranken, die in Nachrichtenverlust
resultieren, ist.
-
Obschon
der Synchronisationsdienst der vorliegenden Erfindung oder ihrer
bevorzugten Realisierungen für
ein spezifisches Protokoll wie CAN geeignet ist, besteht ein Vorteil
gegenüber
CAN-spezifischen Lösungen
darin, dass die Erfindung auf eine breite Vielfalt von Punkt-zu-Punkt-
oder Broadcast-Protokollen mit beschränkbaren Kommunikationslatenzen
als Basisprotokoll adaptiert werden kann.
-
Als
weiterer Vorteil der vorliegenden Erfindung oder ihrer bevorzugten
Realisierungen ist die zeitliche Abfolge der Nachrichtenkommunikation
auf dem Medium nicht an einen statisch bestimmten Ablaufplan (Schedule)
gebunden, so dass Lese- und Schreibzugriff für Rechnerknoten, die nicht
spezifisch für
die Verwendung mit der Erfindung entworfen sind, möglich ist.
-
Kurzbeschreibung
der Abbildungen
-
Weitere
Merkmale, Gegenstände
und Vorteile der vorliegenden Erfindung werden durch die folgende
exemplarische Beschreibung von bevorzugten beispielhaften Realisierungen
herausgearbeitet werden. Es wird dabei Bezug genommen zu den beigelegten
schematischen Zeichnungen, mit jeweils folgendem Inhalt:
-
1:
Struktur der Teile eines Knotens in Blockdiagrammdarstellung, entsprechend
einer beispielhaften Realisierung der vorliegenden Erfindung,
-
2:
Zeitlicher Verlauf der Bearbeitungsphasen für einen Berechnungszyklus k
eines Knotens Ni, entsprechend einer beispielhaften
Realisierung der vorliegenden Erfindung,
-
3:
Automatendarstellung der Zustandssteuerung entsprechend einer beispielhaften
Realisierung der vorliegenden Erfindung, und
-
4:
Beschreibung eines Verfahrens zur Implementierung der Zustandssteuerung
entsprechend einer beispielhaften Realisierung der vorliegenden
Erfindung.
-
Detaillierte
Beschreibung von beispielhaften Realisierungen der Erfindung In
der hier beschriebenen beispielhaften Realisierung der Erfindung
sind Rechnerknoten logisch in einem Baum im graphentheoretischen
Sinne arrangiert, mit einem "Masterknoten" als Wurzel des Baumes.
Die von der Wurzel abwärts
gerichteten Kanten des Baumes werden im Folgenden als "synchronisierende
Kanäle" bezeichnet, wobei
jeder Kanal eine periodische Nachricht ("synchronisierende Nachricht") kommuniziert, die vom
jeweiligen Empfänger
("Kindknoten" verwendet wird,
um sich mit dem Sender ("Elternknoten") zu synchronisieren.
-
Ziel
der hier beschriebenen beispielhaften Realisierung der Erfindung
ist vor allem die gegenseitige Synchronisierung von Paaren von Eltern-/Kindknoten.
Im nicht gestörten
Betrieb, wo keine Nachrichten im Netzwerk gestört oder verloren werden, sendet
der Elternknoten periodisch synchronisierende Nachrichten, und der
Kindknoten readiert auf den Empfang einer synchronisierenden Nachricht
durch Auslösung
eines neuen Berechnungszyklus. Der Kindknoten verwendet einen Zeitgeber,
um den Endzeitpunkt (und möglicherweise
den Startzeitpunkt) des "empfänglichen
Zeitintervalls" zu
bestimmen. Für einen
gegebenen Berechnungszyklus wird, falls eine synchronisierende Nachricht
vom Elternknoten innerhalb des empfänglichen Intervalls empfangen
wird, der nächste
Berechnungszyklus ausgelöst.
Für den Fall,
dass die synchronisierende Nachricht nicht innerhalb des empfänglichen
Intervalls empfangen wird, wird ein Zähler hochgezählt. Falls
die Abwesenheit der synchronisierenden Nachricht für mehr als eine
gegebene Anzahl von Zyklen bestehen bleibt, geht der Kindknoten
in einen Betriebszustand über, der
einen Verlust der Synchronisation mit dem Elternknoten anzeigt.
-
Die
Daten, welche durch die synchronisierende Nachricht transportiert
werden, können
beliebige Daten der Anwendung sein, und für den Synchronisationsdienst
müssen
keine weiteren eigenständigen
Daten kommuniziert werden.
-
In
der hier beschriebenen beispielhaften Realisierung der Erfindung
ist eine gemeinsame Basisperiode T für das Netzwerk definiert.
-
Da
die logische Kommunikationstopologie der Anwendung sich typischerweise
nicht auf eine Baumform beschränken
lässt,
kann der Baum zu einem gerichteten Multigraph erweitert werden,
indem gestrichelte Kanten eingeführt
werden. Die gestrichelten Kanten werden "nichtsynchronisierende Kanäle" genannt: die empfängerseitige
Aktivierung des Berechnungszyklus wird nicht durch den Eingangszeitpunkt
von nichtsynchronisierenden Nachrichten beeinflusst.
-
In
der hier beschriebenen beispielhaften Realisierung der Erfindung
kann sich ein Knoten in einem der drei Betriebszustände EXTERNALLY_TRIGGERED,
MESSAGE_ABSENT oder SELF_TRIGGERED befinden. Im Zustand EXTERNALLY_TRIGGERED
ist der Knoten mit seinem Elternknoten synchronisiert. Im Zustand MESSAGE_ABSENT
hat der Knoten eine (möglicherweise
vorübergehende)
Abwesenheit der synchronisierenden Nachricht erkannt. Im Zustand SELF_TRIGGERED
wird der Knoten periodisch durch seinen lokalen Zeitgeber aktiviert,
unabhängig von
eingehenden synchronisierenden Nachrichten.
-
Eine
Anordnung, welche das Synchronisationsverfahren der hier beschriebenen
beispielhaften Realisierung der Erfindung umsetzt, ist in 1 gezeigt:
Nachrichten vom Kommunikationsmedium kommen periodisch am Eingabepuffer 100 an,
der jeweils die zuletzt empfangene Nachricht enthält. Eine Zustandssteuerung 101 wird
entweder von einem periodisch ablaufenden lokalen Zeitgeber 102 oder durch
die Ankunft einer synchronisierenden Nachricht am Eingabepuffer 100 aktiviert.
Die Zustandssteuerung berechnet den nächsten Betriebszustand des
Knotens und aktiviert im Anschluss die Sende-/Empfangssteuerung 103,
die dafür
verantwortlich ist, Werte vom Eingabepuffer 100 zum Puffer
für empfangene
eingehende Nachrichten 105 sowie vom Puffer für wartende
ausgehende Nachrichten 107 zum Ausgabepuffer 110 zu
kopieren. Um den speziellen Wert für die synchronisierende Nachricht im
Puffer für
empfangene eingehende Nachrichten 105 zu erhalten, wird
entweder die tatsächlich
empfange synchronisierende Nachricht aus dem Eingabepuffer 100 oder
eine vorgegebene synchronisierende Nachricht 104 verwendet.
Um den speziellen Wert für
die synchronisierende Nachricht im Ausgabepuffer 105 zu
erhalten, wird entweder die tatsächlich
berechnete Nachricht aus dem Puffer für wartende ausgehende Nachrichten 107 oder
eine vorgegebene synchronisierende Nachricht 109 verwendet. Nachdem
die Werte durch die Sende-/Empfangssteuerung kopiert wurden, aktiviert
diese die Berechnungssteuerung, welche die eigentliche Berechnung der
Anwendung basierend auf den empfangenen eingehenden Nachrichten 105 ausführt. Die
anwendungsseitige Berechung ist dann dafür zuständig, die Werte für den Puffer
für wartende
ausgehende Nachrichten 107 zu berechnen. Parallel zu den
Aktivitäten der
einzelnen Steuerungen wird beständig
versucht, die Werte aus dem Ausgabepuffer 110 auf das Kommunikationsmedium
zu schreiben, wobei jeder Wert maximal einmal pro Berechnungszyklus
versandt wird. Eine Nachrichtenrückzugssteuerung 111 ist
für manche
Basisprotokolle optional notwendig, um die zeitlichen Obergrenzen
für die
Kommunikation ausgehender synchronisierender Nachrichten, die durch die
statische Analyse für
maximale Verbleibzeiten im Ausgabepuffer ermittelt wurden, wie im folgenden
beschrieben, auch unter nicht vorhergesehenen Betriebsbedingungen
tatsächlich
einzuhalten. Zu diesem Zweck wird von der Nachrichtenrückzugssteuerung 111 gegebenenfalls
die ausgehende Nachricht zurückbehalten.
-
Die
laufende Berechnungsphase kann durch die nächste Sende-/Empfangsphase
unter bestimmten Umständen
unterbrochen werden, so dass nicht alle Werte im Puffer für wartende
ausgehende Nachrichten 107 berechnet werden konnten. Es
wird dann angenommen, dass die Sende-/Empfangssteuerung 103 einen
vorgegebenen Werte 109 für die ausgehende synchronisierende
Nachricht verwendet. Folglich hängt
die Verfügbarkeit
einer synchronisierenden Nachricht für den nächsten Zyklus aufseiten eines Kindknotens
nicht vom Abschluss des Berechnungszyklus aufseiten des Elternknotens
ab.
-
2 zeigt
den zeitlichen Ablauf der Operationen, welche durch die hier beschriebene
beispielhafte Realisierung der Erfindung ausgeführt werden. Während jedes
Berechnungszyklus führt
ein Knoten zwei aufeinanderfolgende Phasen aus: eine "Sende-/Empfangsphase" 200 sowie
eine "Berechnungsphase" 201. Zeitpunkt
ti,k 202 bezeichnet den Aktivierungszeitpunkt
eines Knotens mit dem Index i in dem Berechnungszyklus mit dem Index
k.
-
Die
Sende-/Empfangsphase wird beim Masterknoten durch einen periodisch
ablaufenden Zeitgeber und beim Nicht-Masterknoten durch die synchronisierende
Nachricht 203 ausgelöst.
Während dieser
Phase wird die eingehende synchronisierende Nachricht 203 sowie
die nichtsynchronisierenden Nachrichten, die während der letzten Sende-/Empfangsphase
empfangen wurden 204, gelesen, und alle ausgehenden synchronisierenden
Nachrichten 205 und nichtsynchronisierenden Nachrichten 206, die
während
der letzten Berechnungsphase berechnet wurden, werden in den Ausgabepuffer
geschrieben. Da die Sende-/Empfangsphase eine bestimmte Zeit für ihre Ausführung benötigt, existiert
ein definiertes "stilles
Intervall", das
die Sende-/Empfangsphase
vollständig überdeckt,
und während
dessen der Knoten nicht in der Lage sein muss, eingehende synchronisierende
Nachrichten zu verarbeiten. Der verbleibende Teil des Berechnungszyklus
wird als "empfängliches
Intervall" bezeichnet.
Für nichtsynchronisierende
Nachrichten, die innerhalb des stillen Intervalls ankommen, kann
der Knoten entweder die Nachricht sofort lesen, und somit in der
folgenden Berechnungsphase berücksichtigen,
oder sie im Eingabepuffer lassen, so dass sie erst in einer späteren Berechnungsphase
berücksichtigt
wird. Das stille Intervall (0, Q] beginnt am Anfang eines Berechnungszyklus.
Die hier beschriebene beispielhafte Umsetzung der Erfindungs stellt
sicher, dass ein Knoten unter gegebenen Betriebsbedingungen keine
synchronisierenden Nachrichten im Intervall (0, Q] erhält.
-
In
der Berechnungsphase 201 wird die Berechnung der Anwendung
ausgeführt,
die empfangenen eingehenden Nachrichten 203, 204 werden
verarbeitet, und die nächsten
Werte für
die ausgehenden Nachrichten werden berechnet. Ausgehende Nachrichten
werden bis zur Aktivierung der nächsten Sende-/Empfangsphase
gespeichert und dann ausgegeben 205, 206.
-
Das
detaillierte Verhalten der Zustandssteuerung 101 für einen
Knoten, der entsprechend der hier beschriebenen beispielhaften Realisierung
der Erfindung ausgeführt
ist, zeigen 3 und 4. In 3 ist
die Zustandssteuerung initial entweder in Zustand EXTERNALLY_-TRIGGERED 300 (Nicht-Masterknoten)
oder in Zustand SELF_TRIGGERED 302 (Masterknoten). Der
Parameter Tma wird als "Abwesenheits-Erkennungszeit" bezeichnet. Er bezeichnet
das Zeitintervall, nach dessen Ablauf im Falle des Nichtempfangs
einer synchronisierenden Nachricht ein Knoten im Zustand EXTERNALLY_TRIGGERED 300 in
den Zustand MESSA-GE_ABSENT 301 übergeht.
Aus dem Zustand EXTERNALLY_TRIGGERED 300 schaltet die Zustandssteuerung
in den Zustand MESSAGE_ABSENT 301 sobald der Zeitgeber
mit dem Wert Tma abgelaufen ist und keine
synchronisierende Nachricht im Zeitintervall [ti,k,
ti,k + Tma) im k-ten Zyklus
empfangen wurde. Der Parameter npf ist die "Elternknoten-Defekterkennungs-Anzahl". Sie bezeichnet
die maximale Anzahl von Zyklen, welche ein Knoten im Zustand MESSAGE_ABSENT
verbleibt, falls im gesamten Zeitraum keine synchronisierende Nachricht
erkannt wurde. Vom Zustand MESSAGE_ABSENT 301 schaltet
die Zustandssteuerung in den Zustand EXTERNALLY_TRIGGERED 300 wenn
eine synchronisierende Nachricht zur Verfügung steht und der Zähler einen
Wert kleiner als npf besitzt. Die Zustandssteuerung
schaltet in Zustand SELF_TRIGGERED 302 falls der Zähler den
Wert npf erreicht. Diese Methode der Eltern-Defekterkennung für Nicht-Masterknoten
kann dann optional ein Rückfallverhalten
initiieren, falls entweder der Elternknoten oder das Kommunikationsmedium
tatsächlich
für eine
längere
Zeit ausfällt.
-
4 zeigt
das detaillierte Verhalten der Zustandssteuerung in Form von Pseudocode.
Die "Nachricht-Verfügbar-Routine" ("message available handler") 400 wird
aktiviert sobald eine synchronisierende Nachricht im Eingabepuffer 100 verfügbar ist, während die
Zeitgeber-Routine
("timer handler") 406 durch
den Zeitgeber 102 ausgelöst wird, sobald der Zeitgeber
den Wert T oder Tma erreicht. Die Nachricht-Verfügbar-Routine
ist im Zustand SELF_TRIGGE-RED
nicht aktiviert 401, 402. In den anderen Zuständen wird
der Zeitgeber durch die Nachricht- Verfügbar-Routine
zurückgesetzt 403,
der Zustand wird nach EXTERNALLY_TRIGGERED geschaltet, und die Sende-/Empfangssteuerung 103 wird
mit der Instruktion aktiviert, die empfangene synchronisierende
Nachricht in den Puffer für
empfangene eingehende Nachrichten 105 zu kopieren. Die Zeitgeber-Routine
setzt im Zustand SELF_TRIGGERED 407, den Zeitgeber zurück 409 und
aktiviert die Sende-/Empfangssteuerung 103 mit der Instruktion,
eine vorgegebene Nachricht in den Puffer für empfangene eingehende Nachrichten 105 zu
kopieren. Im Zustand MESSAGE_ABSENT 411 setzt die Zeitgeber-Routine
den Zeitgeber zurück, zählt den
Elternknoten-Defekterkennungs-Zähler nach
oben 413, und ruft die Sende-/Empfangssteuerung unter Verwendung
der vorgegebenen Nachricht 416 alle T Zeiteinheiten auf 408.
Falls der Elternknoten-Defekterkennungs-Zähler größer oder gleich der Elternknoten-Defekterkennungs-Anzahl
npf ist, wird in den Zustand SELF_TRIGGERED
geschaltet. In Zustand EXTERNALLY_TRIGGERED 417 werden
bei Ablauf von Tma Zeiteinheiten nach dem
letzten Zurücksetzen 418 sowohl
der Zeitgeber als auch Elternknoten-Defekterkennungs-Zähler zurückgesetzt 419 und
in den Zustand MESSAGE_ABSENT geschaltet.
-
Nach
der Initialisierung eines Netzwerkes von Knoten, die in einem Synchronisationsbaum
entsprechend der hier beschriebenen bevorzugten Realisierung der
Erfindung angeordnet sind, befindet sich der Masterknoten in Zustand
SELF_TRIGGERED, während
alle anderen Knoten in Zustand EXTERNALLY_TRIGGERED sind. In Zustand EXTERNALLY_TRIGGERED
ist jeder Kindknoten mit seinem Elternknoten synchronisiert, und
die Sende-/Empfangsphase wird periodisch durch den Eingang der synchronisierenden
Nachricht aktiviert. Im Zustand MESSA-GE_ABSENT hat der Knoten eine (möglicherweise
vorübergehende)
Abwesenheit der synchronisierenden Nachricht festgestellt. Die Sende-/Empfangsphase
wird in diesem Zustand durch den lokalen periodisch ablaufenden
Zeitgeber aktiviert. Die gegebene Parametrisierung mit der Abwesenheits-Erkennungszeit
und Elternknoten-Defekterkennungs-Anzahl sowie die gegebenen Einschränkungen
für die
relative Drift der lokalen Zeitgeber stellen sicher, dass ein Knoten,
während
er sich in Zustand MESSAGE_ABSENT befindet, jederzeit in der Lage
ist, sich mit seinem Elternknoten neu zu synchronisieren. Im Zustand
SELF_TRIGGERED wird ein Knoten periodisch durch seinen lokalen Zeitgeber aktiviert,
und es gibt keine Zusicherungen über
die Möglichkeit
der Re-Synchronisation mit dem Elternknoten, falls ein solcher existiert.
-
Jeder
Knoten verwendet einen lokalen Zeitgeber
102, der zum Beispiel
durch einen Oszillator oder durch Zählen von Prozessorzyklen realisiert wird,
um die Operationen der Zustands steuerung
101 sowie nachfolgende
Operationen der Sende-/Empfangssteuerung
103 und der Berechnungssteuerung
106 zu
aktivieren. Zeitgeber sind als physikalische Elemente nichtideal
und gewissen Schwankungen unterworfen. timer(t) sei der Wert eines
solchen nichtidealen Zeitgebers zum Zeitpunkt t. Für das korrekte
Verhalten des synchronisierten Netzwerks ist es notwendig, dass
es eine Konstante ε gibt,
so dass die relative Drift für
alle Zeitgeber eines Netzwerks durch ε begrenzt ist:
-
In
Kombination mit einer gemeinsamen Basisperiode T stellt die Annahme über beschränkte Zeitgeberdrift
sicher, dass die tatsächliche,
nichtideale physikalische Basisperiode jedes Knotens durch [T/(1
+ ε), T/(1 – ε)] begrenzt
ist, und dass die tatsächliche,
nichtideale Abwesenheits-Erkennungszeit durch
[Tma/(1 + ε), Tma/(1 – ε)] begrenzt
ist.
-
Für jeden
logischen Kanal l des Netzwerks wird die pessimistische Nachrichtenjitter-Annahme, d.h.
die Differenz im maximalen Falle zwischen der kürzestmöglichen und der längstmöglichen
Nachrichtenverzögerung,
als Δli(l) bezeichnet. Diese Nachrichtenjitter-Annahme
fasst den Jitter von Ende zu Ende eines logischen Kanals zusammen,
d.h. im Falle eines synchronisierenden Kanals vom Zeitpunkt der
Aktivierung einer Sende-/Empfangsphase am Elternknoten bis zur Aktivierung
der korrespondierenden Sende-/Empfangsphase 202 beim Kindknoten. Die
pessimistische Nachrichtenjitter-Annahme wird typischerweise beinhalten
(1) den Ausführungszeit-Jitter
der Sende-/Empfangssteuerung des Senders 103, (2) der Warteschlangen-Jitter
aufseiten des Senders, der vom verzögerten Versand der Nachricht aus
dem Ausgabepuffer verursacht wird 110, (3) Nachrichtentransport-Jitter
des Kommunikationsmediums, (4) Antwortzeit-Jitter für die Aktivierung
der empfängerseitigen
Sende-/Empfangssteuerung 103 in Folge der Ankunft einer
synchronisierenden Nachricht im Eingabepuffer 100.
-
Da
der Nachrichtenjitter den Warteschlangen-Jitter aufseiten des Senders
beinhaltet, kann eine angenommene obere Schranke für den Nachrichtenjitter
ungültig
sein für
den Fall, dass das Kommunikationsmedium keine Nachrichten akzeptiert, z.B.
durch nicht vorhergesehene Überlast
oder externe Störungen.
In der hier beschriebenen beispielhaften Umsetzung der Erfindung
wird der vorausgesagte Warteschlangenjitter aufseiten des Senders
immer eingehalten, so dass nach Ablauf des Jitterintervalls keine
Nachricht versandt wird. Für
manche Basisprotokolle wie z.B. CAN muss die Nachricht, die im Vorfeld
in den Ausgabepuffer 110 geschrieben wurde eigens durch
eine Nachrichtenrückzugssteuerung 111 zurückgezogen
werden für
den Fall, dass der vorausgesagte Warteschlangenjitter überschritten
wird.
-
Für das korrekte
Verhalten des Netzwerks, das durch die hier beschriebene beispielhafte
Realisierung der Erfindung synchronisiert wird, muss der Nachrichtenjitter
vom Masterknoten zu einem beliebigen anderen Knoten beschränkt sein.
Li(N) bezeichne die Menge aller synchronisierenden Kanäle, die einen
Pfad vom Masterknoten bis zum Knoten N bilden. Als Voraussetzung
für das
korrekte Verhalten des Netzwerks, das durch die hier beschriebene
beispielhafte Realisierung der Erfindung synchronisiert wird, muss
das Netzwerk einen beschränkten
Nachrichtenjitter auf allen möglichen
Pfaden Li(n) aufweisen. Ein Netzwerk hat einen beschränkten Nachrichtenjitter
auf allen möglichen
Pfaden falls:
-
Ein
Synchronisierungsverfahren sollte bevorzugterweise robust gegenüber beschränktem Verlust
von Nachrichten sein. Solche Verluste können auch Ergebnis eines senderseitigen
Abbruchs des Nachrichtenversands sein, wie z.B. im Fall des Überschreitens
des angenommenen Warteschlangenjitters und folgendem Eingreifen
der Nachrichtenrückzugssteuerung 111.
Verluste können
auch auf dem Kommunikationsmedium selbst auftreten. Als "n-beschränkter verlustbehafteter
Kanal" wird ein
logischer Kanal bezeichnet, der höchstens n – 1 aufeinanderfolgende Nachrichten
verliert. Ein Netzwerk ist ein "n-beschränktes verlustbehaftetes
Netzwerk" falls alle
synchronisierenden Pfade vom Masterknoten zu anderen Knoten n-beschränkte verlustbehaftete
Kanäle
sind. Das Synchronisationsverfahren der hier beschriebenen beispielhaften
Realisierung der Erfindung garantiert für alle Nicht-Masterknoten,
dass niemals in den Zustand SELF_TRIGGERED geschaltet wird für den Fall,
dass das Netzwerk npf-beschränkt verlustbehaftet
ist.
-
Die
speziellen technischen Lösungen,
welche in der obigen Beschreibung von beispielhaften Realisierungen
der Erfindung ausgeführt
sind, sollten nicht als Einschränkung
des Umfanges der Erfindung verstanden werden, sondern als Beispiele
für bevorzugte
Realisierungen der Erfindung. Demgemäß soll der Umfang der Erfindung
nicht durch die veranschaulichten Ausführungsbeispiele, sondern durch die
angehängten
Ansprüche
und ihre rechtlichen Äquivalente
bestimmt werden.