DE19753288A1 - Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem - Google Patents
Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten EchtzeitsystemInfo
- Publication number
- DE19753288A1 DE19753288A1 DE19753288A DE19753288A DE19753288A1 DE 19753288 A1 DE19753288 A1 DE 19753288A1 DE 19753288 A DE19753288 A DE 19753288A DE 19753288 A DE19753288 A DE 19753288A DE 19753288 A1 DE19753288 A1 DE 19753288A1
- Authority
- DE
- Germany
- Prior art keywords
- successor
- message
- node computer
- checksum
- sender
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0796—Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
Zitierte Patente:
US Patent:
4,866,606, 12. 9. 1989, Kopetz, H.
4,866,606, 12. 9. 1989, Kopetz, H.
Europäisches Patent:
0 658 257, 18. 12. 96, Kopetz, H.
0 658 257, 18. 12. 96, Kopetz, H.
Internationale Patentanmeldung:
PCT/AT 93/00138, 2. 9. 1993, Kopetz, H.
PCT/AT 93/00138, 2. 9. 1993, Kopetz, H.
Andere Veröffentlichungen:
Kopetz, H. und Ochsenreiter, W.; Clock Synchronization in Distributed Real-Time Systems, IEEE Transactions on Computers, vol. C-36, pp. 933-940, August 1987
Kopetz, H., & Gruensteidl, G. (1993). TTP-A Time-Triggered Protocol for Fault- Tolerant Real-Time Systems. Proc. 23rd IEEE International Symposium on Fault-Tolerant Computing (FTCS-23). Toulouse, France. IEEE Press. (pp. 524-532), appeared also in a revised version in IEEE Computer. Vol. 24 (1). (pp. 14-22).
SAE Handbook 1992, Vol. 2, pp. 20.301-20.302, Society of Automotive Engineers, 400 Commonwealth Drive, Warrendale, Pa, USA, 1992
Kopetz, H. und Ochsenreiter, W.; Clock Synchronization in Distributed Real-Time Systems, IEEE Transactions on Computers, vol. C-36, pp. 933-940, August 1987
Kopetz, H., & Gruensteidl, G. (1993). TTP-A Time-Triggered Protocol for Fault- Tolerant Real-Time Systems. Proc. 23rd IEEE International Symposium on Fault-Tolerant Computing (FTCS-23). Toulouse, France. IEEE Press. (pp. 524-532), appeared also in a revised version in IEEE Computer. Vol. 24 (1). (pp. 14-22).
SAE Handbook 1992, Vol. 2, pp. 20.301-20.302, Society of Automotive Engineers, 400 Commonwealth Drive, Warrendale, Pa, USA, 1992
Diese Erfindung betrifft ein zeitgesteuertes Kommunikationsverfahren und eine
zeitgesteuerte Kommunikationskontrolleinheit zur Übertragung von Nachrichten in einem
verteilten fehlertoleranten Echtzeitcomputersystem.
Sicherheitskritische technische Anwendungen, d.s. Anwendungen wo ein Fehler im
Zeitbereich zu einer Katastrophe führen kann, werden zunehmend von verteilten
Computersystemen geführt.
In einem verteilten sicherheitskritischen Echtzeitcomputersystem, bestehend aus einer
Anzahl von Knotenrechnern und einem Echtzeitkommunikationssystem, muß der Ausfall
eines Knotenrechners mit geringer Verzögerung erkannt werden. Im Kern einer solchen
Computerarchitektur befindet sich ein fehlertolerantes Echtzeitkommunikationssystem zum
vorhersehbar schnellen und sicheren Austausch von Nachrichten. In einem
Echtzeitkommunikationssystem soll die Länge der Nachrichten so kurz wie nur möglich
sein, um eine schnelle Reaktion des Systems auch bei geringer verfügbarer Bandbreite zu
ermöglichen.
Bekannten Methoden der Nachrichtenübertragung in verteilten Echtzeitsystemen sind
J1850, CAN und andere. Eine Gegenüberstellung dieser Methoden findet sich im 1992
SAE Handbook, Vol., pp. 20.301-20.302, Society of Automotive Engineers, 400
Commonwealth Drive, Warrendale, Pa, USA. Keine dieser Methoden bietet spezielle
Dienste an, die den Bau von fehlertoleranten Rechnersystemen vereinfachen.
Die Implementierung der Fehlertoleranz in verteilten Computersystemen wird vereinfacht,
wenn das Kommunikationssystem folgende Leistungen erbringt: Rechtzeitige Übertragung
von Nachrichten auch im Fehlerfall, fehlertolerante Uhrensynchronisation, einen
Membershipdienst, um den Ausfall eines Knotens konsistent erkennen zu können, und
einen Rekonfigurationsdienst, um ausgefallene Knoten dynamisch ersetzen zu können.
Ein Protokoll, das diese Anforderungen erfüllt ist im zitierten Europäischen Patent 0 658 257
v. 18.12.96 sowie in der Internationalen Patenanmeldung PCT/AT 93/00 138
beschrieben. Das Protokoll ist unter dem Namen "Time-Triggered Protokoll (TTP)
bekannt geworden. TTP verwendet ein Verfahren zur fehlertoleranten
Uhrensynchronisation, das im US Patent: 4,866,606 offengelegt wurde.
In TTP werden replizierte fail-silent Knotenrechner zu einer fehlertoleranten Einheit (Fault-
Tolerant Unit-FTU) zusammengefaßt. Solange ein Knotenrechner einer FTU funktioniert,
werden die Dienste der FTU im Zeit- und Wertebereich erbracht. Die Membership in TTP
bezieht sich auf die Funktion der FTU.
Wenn nun in einer Anwendung replizierte und nicht replizierte Knotenrechner
nebeneinander eingesetzt werden, so ergeben sich beim TTP folgende Nachteile:
- (i) Die nicht replizierten Knotenrechner beanspruchen die volle Bandbreite einer FTU, was zu einem Verlust von 50% der Bandbreite führt.
- (ii) Wenn alle Nachrichten eines nicht replizierten Knotenrechners gestört werden verliert der Knotenrechner seine Membership und kann aufgrund des impliziten Quittungsmechanismus von TTP die nächste Nachricht nicht richtig empfangen.
Diese Nachteile werden durch die vorliegende Erfindung behoben.
Es ist das wesentliche Ziel der vorliegenden Erfindung die Dateneffizienz, Robustheit und
Flexibilität von zeitgesteuerten Protokollen, wie z. B. von TTP, durch ein neues implizites
Quittungsverfahren wesentlich zu verbessern.
Dieses Ziel wird dadurch erreicht, daß sich die Membership auf die Funktion der
Knotenrechner (und nicht auf die Funktion der FTU) bezieht und daß auf die in einem
zeitgesteuerten Protokoll vorgesehenen Quittungsbits im Nachrichtenkopf verzichtet wird.
Entsprechend dieser Erfindung erfolgt die Quittung der Nachrichten implizit über ein
erweitertes Auswerteverfahren des Membershipvektors.
Das vorab beschriebene Ziel und andere neue Eigenschaften der vorliegenden Erfindung
werden in den angeführten Abbildungen erläutert.
Fig. 1 zeigt die Struktur eines verteilten Computersystems mit fünf Knotenrechnern, die
über duplizierte Kommunikationskanäle verbunden sind.
Fig. 2 zeigt die Struktur eines Knotenrechners, bestehend aus einer
Kommunikationskontrolleinheit und einem Host Computer, die über das Communication
Network Interface (CNI) kommunizieren.
Fig. 3 zeigt die Datenstruktur, die den Sendezeitpunkt von Nachrichten vorgibt.
Fig. 4 zeigt die Folge von Nachrichten, wie sie auf den beiden Kommunikationskanälen
gesendet werden.
Fig. 5 zeigt den Aufbau des Membershipvektors.
Fig. 6 zeigt den Aufbau einer Nachricht.
Fig. 7 zeigt die Felder, die bei der CRC Berechnung normaler Nachrichten berücksichtigt
werden.
Im folgenden Abschnitt wird eine Realisierung des neuen Verfahrens an einem Beispiel mit
fünf Knotenrechnern, die über zwei replizierte Kommunikationskanäle verbunden sind,
gezeigt. Die Objekte in den Abbildungen sind so numeriert, daß die erste der dreistelligen
Objektziffern immer die Bildnummer angibt.
Fig. 1 zeigt ein System von fünf Knotenrechnern 110, 120, 130, 140, und 150. Ein
Knotenrechner bildet eine austauschbare Einheit (SRU, smallest replaceable unit). Jeder
Knotenrechner ist über zwei Anschlüsse mit den replizierten Kommunikationskanälen 101
und 102 verbunden. Die beiden Kommunikationskanäle unterstützen Broadcast, d. h., jede
Nachricht kann im fehlerfreien Fall von allen Knotenrechnern empfangen werden.
Fig. 2 zeigt den inneren Aufbau eines Knotenrechners. Er besteht aus zwei Subsystemen
der Kommunikationskontrolleinheit 210, die mit den replizierten Kommunikationskanälen
201 und 202 verbunden ist, und den Host Computer 220, auf dem die
Anwendungsprogramme des Knotenrechners ausgeführt werden. Diese beiden
Subsystemen sind über das Communication Network Interface (CNI) 241 und eine
Signalleitung 242 verbunden. Das CNI besteht aus einem Speicher (Dual Ported RAM,
DPRAM) 241 auf das beide Subsysteme zugreifen können. Die beiden Subsysteme
tauschen über diesen gemeinsamen Speicher 241 die Kommunikationsdaten aus. Die
Signalleitung 242 dient zur Übertragung der synchronisierten Zeitsignale. Diese
Signalleitung ist im angeführten US Patent 4,866,606 genau beschrieben. Die
Kommunikationskontrolleinheit 210 verfügt über eine Kommunikationskontrolleinheit
211 und eine Datenstruktur 212 die angibt, zu welchen Zeitpunkten Nachrichten gesendet
und empfangen werden müssen. Die Datenstruktur 212 wird als Message Descriptor List
(MEDL) bezeichnet.
Die Datenstruktur 212 hat die Form einer Tabelle wie in Fig. 3 dargestellt. In der ersten
Spalte dieser Tabelle 301 sind die Zeitpunkte der global synchronisierten Zeit eingetragen
zu denen Nachrichten empfangen oder gesendet werden müssen. Die nächste Spalte 302
gibt an, von welcher Adresse des DPRAM 241 die Nachrichten gelesen werden oder
wohin im DPRAM 241 die Nachrichten geschrieben werden. Die dritte Spalte 303 enthält
weitere Attribute der Nachrichten, wie die Nachrichtenlänge und ob es sich bei der
Nachricht um eine Eingabenachricht oder eine Ausgabenachricht handelt.
Fig. 4 zeigt den zeitlichen Verlauf einer Senderunde auf den beiden
Kommunikationskanälen 101 und 102. Die globale Zeit schreitet von links nach rechts.
Die Knotenrechner senden ihre Nachrichten nach dem bekannten zyklischen
Zeitscheibenverfahren (Time-Division Multiple Access TDMA). Jeder Knotenrechner
sendet in jeder TDMA Runde gleichzeitig eine Nachricht auf jedem der beiden replizierten
Kanäle, dem Kanal 401 und dem Kanal 402. Zwischen dem Senden von zwei
aufeinanderfolgenden Nachrichten erfolgt eine Pause, die als Interframe Gap (IFG)
(411, 421, 431, 441, 451) bezeichnet wird. Im Zeitintervall 410 sendet Knotenrechner
110 mit dem folgenden IFG 411, anschließend sendet Knotenrechner 120 während dem
Zeitintervall 420 mit dem IFG 421, dann Knotenrechner 130 während dem Zeitintervall
430 mit dem IFG 431, dann Knotenrechner 140 während dem Zeitintervall 440 mit dem
IFG 441 und schließlich Knotenrechner 150 während dem Zeitintervall 450 mit dem IFG
451.
Fig. 5 zeigt den Membershipvektor eines Knotenrechners. Der Membershipvektor ist ein
Bitvektor, dessen Länge der Anzahl der Knotenrechner entspricht. Jedem Knotenrechner
ist eine Bitposition im Membershipvektor zugeordnet. Im gegebenen Beispiel hat der
Membershipvektor eine Länge von 5 Bits. Bit 510 ist dem Knotenrechner 110, Bit 520
ist dem Knotenrechner 120, Bit 530 ist dem Knotenrechner 130. Bit 540 ist dem
Knotenrechner 140 und Bit 550 ist dem Knotenrechner 150 zugeordnet. Wenn ein
Knotenrechner funktioniert, so ist das entsprechende Bit "WAHR", wenn er nicht
funktioniert, so ist das entsprechende Bit "FALSCH". Jeder Knotenrechner verfügt über
eine eigene Sicht des Membershipvektors. Diese verschiedene Sichten werden durch das
Protokoll konsistent gehalten.
Fig. 6 zeigt den Aufbau einer Nachricht. Eine Nachricht besteht aus drei Feldern, dem
Header 601, dem Datenfeld variabler Länge 602, und dem Prüfsummenfeld 603. Der
Header 601 besteht aus 4 Bits, dem Initialisierungs/Normal (I/N) Bit 611 das angibt ob es
sich bei der Nachricht um eine Initialisierungsnachricht oder eine normale Nachricht
handelt, und drei Modewechselbits (612, 613, 614) die angeben, ob nach dem Empfang
der Nachricht ein Betriebsartenwechsel durchgeführt werden soll.
Fig. 7 zeigt die Datenfelder, die bei der CRC Berechnung berücksichtigt werden.
Entsprechend dem Europäischen Patent 0 658 257 wird die Prüfsumme jeder normalen
Nachricht über die Verkettung des Headers 701, des Datenfeldes 702, und dem inneren
Zustand des Senders 703 gebildet. Der innere Zustand des Senders besteht aus der
globalen Zeit des Senders, der gegenwärtigen Position in der MEDL 212 und dem
Membershipvektor (Fig. 5). Der Empfänger überprüft das CRC unter Berücksichtigung
des inneren Zustandes des Empfängers und kann daher erkennen, ob der Sender und
Empfänger den gleichen Membershipvektor besitzen.
Nachdem die einzelnen Bausteine beschrieben wurden, wird nun die Realisierung der
Erfindung anhand eines Ablaufs entsprechend den Abb. 1-7 erklärt. Zuerst wird
ein fehlerfreier Ablauf der Kommunikation beschrieben.
Im IFG 401 bereitet sich der Knotenrechner 110 auf das Senden der Nachricht 410 vor.
Er setzt sein Membership Bit 510 auf "WAHR" und berechnet die Prüfsumme unter
Berücksichtigung seines aktuellen inneren Zustands. Dann beginnt Knotenrechner 110 mit
dem Senden der Nachricht auf beiden Kommunikationskanälen 101 und 102. Im IFG
411 empfängt Knotenrechner 120 die beiden Nachrichten von Knotenrechner 110.
Knotenrechner 120 verkettet die empfangene Nachricht 410 mit seinem aktualisierten
Membershipvektor und errechnet die Prüfsumme der Nachricht 410. Der
Membershippunkt eines Knotenrechners ist das IFG nach dem Senden der Nachricht, also
IFG 411 für den Knotenrechner 110. Wenn die Prüfsumme bei mindestens einer der
beiden Nachrichten richtig ist, so schließt Knotenrechner 120, daß Knotenrechner 110 im
IFG 411 funktioniert hat und der innere Zustand 703 von Knotenrechner 110 mit dem
inneren Zustand 703 von Knotenrechner 120 übereinstimmt. Knotenrechner 120 setzt
sein Membershipbit 510 von Knotenrechner 110 auf "WAHR". Knotenrechner 120
bereitet sich während IFG 411 auf das Senden seiner Nachricht vor. Er setzt sein
Membershipbit 520 auf "WAHR" und berechnet die Nachrichtenprüfsumme mit seinem
neuen aktuellen inneren Zustand. Dann sendet Knotenrechner 120 im Zeitintervall 420
seine Nachricht. Im IFG 421 empfängt Knotenrechner 110 die Nachricht vom
Knotenrechner 120. Knotenrechner 110 errechnet sich die Prüfsumme der Nachricht 420
unter der Annahme, daß er zu seinem Membership Punkt aus der Sicht von Knotenrechner
120 funktioniert hat (Auswertung 1: AW1). Stimmt die Prüfsumme so ist die Annahme
bestätigt und die Quittung der Nachricht 410 von Knotenrechner 110 durch den
Nachfolger 120 positiv ausgefallen. Im fehlerfreien Fall wird dieser Algorithmus nach
jedem Sendevorgang in gleicher Weise ausgeführt. Der Nachfolger von Knotenrechner
150 ist Knotenrechner 110, entsprechend dem Ablauf des TDMA Verfahrens.
Der folgende Abschnitt beschreibt die Funktion des innovativen Quittungsverfahrens im
Fehlerfall. Es wird hier angenommen, daß innerhalb einer TDMA Runde einer der
folgenden Fehler auftreten kann:
- (i) Der sendende Knotenrechner macht einen Fehler.
- (ii) Beide Nachrichten von einem Knotenrechner werden beim Transport gestört.
- (iii) Der empfangene Knotenrechner macht einen Fehler.
Wenn im vorab beschriebenen Fall die Überprüfung der Nachricht 420 durch
Knotenrechner 110 negativ ausfällt, so setzt Knotenrechner 110 vor einer zweiten
Berechnung der Prüfsumme (die parallel oder sequentiell zur ersten Berechnung ausgeführt
werden kann) sein Membershipbit 510 auf "FALSCH" (Auswertung 2: AW2). Wenn auch
diese zweite Überprüfung durch Knotenrechner 110 keine richtige Prüfsumme ergibt, so
nimmt Knotenrechner 110 an, daß beide Nachrichten vom Knotenrechner 120 gestört
wurden. Knotenrechner 110 nimmt Knotenrechner 120 aus der Membership indem er
das Membershipbit 520 von Knotenrechner 120 auf "FALSCH" setzt. Von nun an ist
Knotenrechner 130 der direkte Nachfolger von Knotenrechner 110.
Stimmt die zweite Überprüfung, so hat sich die Hypothese bestätigt daß Knotenrechner
120 annimmt, Knotenrechner 110 sei fehlerhaft. Diese Situation kann zwei Gründe haben
- (i) Die Nachrichten von Knotenrechner 110 wurden auch von anderen Knotenrechnern nicht richtig empfangen, d. h. Knotenrechner 110 ist fehlerhaft.
- (ii) Knotenrechner 120 ist fehlerhaft.
Die Entscheidung welche dieser Alternativen stimmt, wird Knotenrechner 130 übertragen.
Wenn nun die Nachricht 430 von Knotenrechner 130 bei Knotenrechner 110 eintrifft, so
berechnet Knotenrechner 110 zwei Prüfsummen mit folgenden Annahmen:
- (i) Knotenrechner 110 setzt das Membershipbit 510 auf "FALSCH" und Membershipbit 520 auf "WAHR". Das bedeutet, daß Knotenrechner 110 annimmt er wird als fehlerhaft und Knotenrechner 120 als richtig angesehen (Auswertung 3: AW3).
- (ii) Knotenrechner 110 setzt Membershipbit 510 auf "WAHR" und Membershipbit 520 auf "FALSCH". Das bedeutet, daß Knotenrechner 110 annimmt er wird als richtig und Knotenrechner 120 als fehlerhaft angesehen (Auswertung 4: AW4).
Wenn die Prüfsumme unter der Annahme (i) stimmt, dann hat Knotenrechner 130
entschieden daß Knotenrechner 120 recht hat. Knotenrechner 110 setzt sein
Membershipbit 510 auf "FALSCH" und das Membershipbit 520 von Knotenrechner 120
auf "WAHR".
Wenn die Prüfsumme unter der Annahme (ii) stimmt, dann hat Knotenrechner 130
entschieden, daß Knotenrechner 110 recht hat. Knotenrechner 110 setzt sein
Membershipbit 510 auf "WAHR" und das Membershipbit 520 von Knotenrechner 120
auf "FALSCH".
Wenn keine dieser Annahmen zu einer richtigen Prüfsumme führt, so nimmt
Knotenrechner 110 an daß ein Doppelfehler vorliegt. Um die fail-silent Eigenschaft zu
wahren, setzt er sein Membershipbit 510 auf "FALSCH".
Insgesamt werden vom ursprünglichen Sender 110 zwei CRC Auswertungen der
Nachricht des Nachfolgers 120 und zwei CRC Auswertungen der Nachricht des
Nachfolgers des Nachfolgers 130 vorgenommen:
Es ergeben sich somit folgende Fallunterscheidungen beim ursprünglichen Sender einer
Nachricht:
Gegenüber dem im Europäischen Patent 0 658 257 veröffentlichten Protokoll bietet die
vorliegende Erfindung die folgenden wirtschaftlichen Vorteile
- (i) Die Knotenrechnermembership ermöglicht die Bildung von unterschiedlichen
FTU Konfigurationen, z. B., eine FTU mit zwei failsilent Rechnern, wie in
TTP, oder eine FTU mit drei Rechnern (TMR-Triple Modular Redundancy).
Da vorgesehen ist, das vorliegende Protokoll in einem VLSI Chip zu implementieren wird das Einsatzgebiet eines solchen Chips wesentlich erweitert. - (ii) Wenn in einem System ein nicht replizierter Knotenrechner eingesetzt wird, so ist auch nur eine einzige Sendezeitscheibe vorzusehen. In einem System mit zwei replizierten und vier nicht replizierten Knotenrechnern führt dies zu einer Dateneffizienzsteigerung von 33% gegenüber der FTU Membership.
- (iii) Ein Knotenrechner, dessen Nachrichten gestört wurden und der deshalb seine Membership verliert, kann alle weiteren Nachrichten empfangen. Dies erleichtert die Reintegration des Knotenrechners.
- (iv) Auf die Quittungsbits im Nachrichtenkopf kann verzichtet werden, was zu einer weiteren Erhöhung der Dateneffizienz führt. Nimmt man an, daß eine Nachricht eine Nutzdatenlänge von 12 Bit hat (entpricht einem Sensorwert), so wird allein durch den Wegfall der Quittungsbits die Dateneffizienz gegenüber dem TTP Protokoll um ca. 10% verbessert.
Abschließend sei festgehalten, daß diese Erfindung sich nicht auf die beschriebene
Realisierung mit fünf Knotenrechnern und zwei Bussen beschränkt. Die beschriebene
Auswertelogik zur Quittung der Nachrichten kann in einem hochintegrierten
Mikrokontroller der alle in Fig. 2 gezeigten Funktionseinheiten auf einem einzigen Chip
beinhaltet, in Software oder in Hardware realisiert werden.
Claims (4)
1. Methode zur Übertragung von Nachrichten in einem zeitgesteuerten verteilten
fehlertoleranten Computersystem, indem eine Vielzahl von Knotenrechnern über einen oder
mehrere Broadcast Kommunikationskanäle verbunden sind, und wo jeder Knotenrechner
über eine autonome Kommunikationskontrolleinheit mit den entsprechenden Anschlüssen
an die Kommunikationskanäle verfügt und wo der Zugriff auf die Kommunikationskanäle
entsprechend einem zyklischen Zeitscheibenverfahren erfolgt, und wo die Prüfsumme der
Nachricht beim Sender über die zu sendende Nachricht verkettet mit dem inneren Zustand
des Senders und beim Empfänger über die empfangene Nachricht verkettet mit dem inneren
Zustand des Empfängers errechnet wird, dadurch gekennzeichnet, daß die Quittung
der Nachricht eines sendenden Knotenrechners implizit aus dem Ergebnis von je zwei
Prüfsummenauswertungen betreffend die Nachricht des Nachfolger des Senders und die
Nachricht des Nachfolgers des Nachfolgers des Senders derart abgeleitet wird, daß zuerst
im Membershipvektor angenommen wird der ursprüngliche Sender und der Nachfolger sind
funktionsfähig was zu einer positiven Quittung der Nachricht führt, oder daß der
ursprüngliche Sender annimmt, der Nachfolger betrachte den ursprünglichen Sender als
fehlerhaft, was zu einer Verlagerung der endgültigen Entscheidung, wer funktionsfähig ist,
an den Nachfolger des Nachfolgers führt, wobei die Auswertung der Prüfsumme des
Nachfolgers des Nachfolgers entscheidet, ob der Nachfolger oder der ursprünglich
sendende Knotenrechner fehlerhaft ist.
2. Kommunikationsmethode nach Anspruch 1, dadurch gekennzeichnet, daß die
Nachfolgerelation dynamisch aus dem zum Zeitpunkt der Auswertung gültigen Zustand des
Membershipvektors abgeleitet wird.
3. Kommunikationsmethode nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet,
daß die Nachricht auf dem Übertragungskanal aus einem Nachrichtenheader, bestehend
aus einem I/N Bit und drei Betriebsartenänderungsbits, einem Datenfeld variabler Länge,
und einem Prüfsummenfeld besteht.
4. Kommunikationskontrolleinheit zur Übertragung von Nachrichten in einem
zeitgesteuerten verteilten fehlertoleranten Computersystem, indem eine Vielzahl von
Knotenrechnern über einen oder mehrere Broadcast Kommunikationskanäle verbunden
sind und wo jeder Knotenrechner über eine autonome Kommunikationskontrolleinheit mit
den entsprechenden Anschlüssen an die Kommunikationskanäle verfügt und wo der
Zugriff auf die Kommunikationskanäle entsprechend einem zyklischen
Zeitscheibenverfahren erfolgt, und wo die Prüfsumme der Nachricht beim Sender über die
zu sendende Nachricht verkettet mit dem inneren Zustand des Senders und beim Empfänger
über die empfangene Nachricht verkettet mit dem inneren Zustand des Empfängers
errechnet wird, dadurch gekennzeichnet, daß die Quittung der Nachricht eines
sendenden Knotenrechners implizit aus dem Ergebnis von je zwei
Prüfsummenauswertungen betreffend die Nachricht des dynamischen Nachfolger des
Senders und die Nachricht des dynamischen Nachfolgers des Nachfolgers des Senders
derart abgeleitet wird, daß zuerst im Membershipvektor angenommen wird der
ursprüngliche Sender und der Nachfolger sind funktionsfähig was zu einer positiven
Quittung der Nachricht führt, oder daß der ursprüngliche Sender annimmt, der dynamische
Nachfolger betrachte den ursprünglichen Sender als fehlerhaft was zu einer Verlagerung
der endgültigen Entscheidung wer funktionsfähig ist an den Nachfolger des Nachfolgers
führt, wobei die Auswertung der Prüfsumme des Nachfolgers des Nachfolgers entscheidet,
ob der Nachfolger oder der ursprünglich sendende Knotenrechner fehlerhaft ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT210496 | 1996-12-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19753288A1 true DE19753288A1 (de) | 1998-06-04 |
Family
ID=3527846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19753288A Withdrawn DE19753288A1 (de) | 1996-12-03 | 1997-12-01 | Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19753288A1 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002079972A2 (de) * | 2001-03-30 | 2002-10-10 | Tttech Computertechnik Ag | Verfahren zum betrieb eines verteilten computersystems |
DE10152508A1 (de) * | 2001-10-24 | 2003-05-08 | Bosch Gmbh Robert | Verfahren zum Aktivieren eines Systems zur Steuerung und/oder Regelung von Betriebsabläufen in einem Kraftfahrzeug mit mehreren gleichberechtigten Steuergeräten |
EP1769993A3 (de) * | 2005-10-03 | 2008-06-18 | Hitachi, Ltd. | Fahrzeugsteuerungsystem |
-
1997
- 1997-12-01 DE DE19753288A patent/DE19753288A1/de not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002079972A2 (de) * | 2001-03-30 | 2002-10-10 | Tttech Computertechnik Ag | Verfahren zum betrieb eines verteilten computersystems |
WO2002079972A3 (de) * | 2001-03-30 | 2003-09-12 | Tttech Computertechnik Ag | Verfahren zum betrieb eines verteilten computersystems |
US7023870B2 (en) | 2001-03-30 | 2006-04-04 | Tttech Computertechnik Ag | Method for operating a distributed computer system |
DE10152508A1 (de) * | 2001-10-24 | 2003-05-08 | Bosch Gmbh Robert | Verfahren zum Aktivieren eines Systems zur Steuerung und/oder Regelung von Betriebsabläufen in einem Kraftfahrzeug mit mehreren gleichberechtigten Steuergeräten |
US6728618B2 (en) | 2001-10-24 | 2004-04-27 | Robert Bosch Gmbh | Method for activating a system for controlling and/or regulating operational sequences in a motor vehicle having several equal-access control units |
DE10152508B4 (de) * | 2001-10-24 | 2008-01-31 | Robert Bosch Gmbh | Verfahren zum Aktivieren eines Systems zur Steuerung und/oder Regelung von Betriebsabläufen in einem Kraftfahrzeug mit mehreren gleichberechtigten Steuergeräten |
EP1769993A3 (de) * | 2005-10-03 | 2008-06-18 | Hitachi, Ltd. | Fahrzeugsteuerungsystem |
US7729827B2 (en) | 2005-10-03 | 2010-06-01 | Hitachi, Ltd. | Vehicle control system |
US8165745B2 (en) | 2005-10-03 | 2012-04-24 | Hitachi, Ltd. | Vehicle control system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AT407582B (de) | Nachrichtenverteilereinheit mit integriertem guardian zur verhinderung von ''babbling idiot'' fehlern | |
AT509700B1 (de) | Verfahren und apparat zur fehlertoleranten zeitgesteuerten echtzeitkommunikation | |
EP1648117B1 (de) | Verfahren zur Synchronisation in einem redundanten Kommunikationssystem | |
EP0658257B1 (de) | Kommunikationskontrolleinheit und verfahren zur übermittlung von nachrichten | |
DE10259327A1 (de) | USB-Verbundgerät und Verfahren zum Realisieren desselben | |
DE102005061392A1 (de) | Bus-Guardian eines Teilnehmers eines Kommunikationssystems, sowie Teilnehmer für ein Kommunikationssystem | |
WO2013045323A1 (de) | Verfahren zum betreiben einer kommunikationsanordnung | |
EP0974901B1 (de) | Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerkes | |
DE102019130756A1 (de) | Steuerungseinheit-Diagnosevorrichtung und Verfahren davon | |
EP3042473A1 (de) | Verfahren zur übertragung von nachrichten in einem computernetzwerk sowie computernetzwerk | |
DE69927762T2 (de) | Verfahren zur Übertragung von grossen Informationspaketen über Netze | |
AT410491B (de) | Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem | |
DE19753288A1 (de) | Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem | |
DE19921179C2 (de) | Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds | |
EP0133577B1 (de) | Datenübertragungsverfahren in einem digitalen Übertragungsnetzwerk und Vorrichtung zur Durchführung des Verfahrens | |
DE69025242T2 (de) | Kommunikationseinrichtung zur Überwachung der übertragenen Datenmenge | |
EP3435179B1 (de) | Verfahren zum gemäss einer sicherheitsnorm funktional sicheren austausch von informationen | |
DE3125723A1 (de) | Taktschaltung fuer den empfangsteil eines pcm-signaluebertragungssystems | |
DE102009000581A1 (de) | Synchronisierung zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems | |
DE3110614C2 (de) | Fernwirkeinrichtung mit mehreren Bereichsnetzen | |
DE3922384C2 (de) | Verfahren zum automatischen Übertragungskanalwechsel | |
DE102015014210B4 (de) | Netzwerkmanagement für ein zweikanaliges FlexRay-Netzwerk | |
DE102004061343B4 (de) | Netzwerk mit mehreren Stationen, Station für ein derartiges Netzwerk sowie Verfahren zur Synchronisierung von Stationen | |
EP3744021A1 (de) | Teilnehmerstation für ein serielles kommunikationsnetzwerk und verfahren zur korrektur von einzelfehlern in einer nachricht eines seriellen kommunikationsnetzwerks | |
EP1535156B1 (de) | Verfahren und apparat zur fehlererkennung in einem verteilten echtzeitcomputersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |