DE19753288A1 - Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem - Google Patents

Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem

Info

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
Application number
DE19753288A
Other languages
English (en)
Inventor
Hermann Prof Dr Kopetz
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.)
FTS Computertechnik GmbH
Original Assignee
FTS Computertechnik GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FTS Computertechnik GmbH filed Critical FTS Computertechnik GmbH
Publication of DE19753288A1 publication Critical patent/DE19753288A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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/2007Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-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

LITERATUR
Zitierte Patente:
US Patent:
4,866,606, 12. 9. 1989, Kopetz, H.
Europäisches Patent:
0 658 257, 18. 12. 96, Kopetz, H.
Internationale Patentanmeldung:
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
TECHNISCHES UMFELD
Diese Erfindung betrifft ein zeitgesteuertes Kommunikationsverfahren und eine zeitgesteuerte Kommunikationskontrolleinheit zur Übertragung von Nachrichten in einem verteilten fehlertoleranten Echtzeitcomputersystem.
HINTERGRUND DIESER ERFINDUNG
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.
ZUSAMMENFASSUNG
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.
KURZE BESCHREIBUNG DER ABBILDUNGEN
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.
BESCHREIBUNG EINER REALISIERUNG
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.
DE19753288A 1996-12-03 1997-12-01 Effizientes Quittungsverfahren in einem verteilten zeitgesteuerten Echtzeitsystem Withdrawn DE19753288A1 (de)

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)

* Cited by examiner, † Cited by third party
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

Cited By (9)

* Cited by examiner, † Cited by third party
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