DE4412310A1 - Fehlertolerantes Rechnersystem - Google Patents
Fehlertolerantes RechnersystemInfo
- Publication number
- DE4412310A1 DE4412310A1 DE19944412310 DE4412310A DE4412310A1 DE 4412310 A1 DE4412310 A1 DE 4412310A1 DE 19944412310 DE19944412310 DE 19944412310 DE 4412310 A DE4412310 A DE 4412310A DE 4412310 A1 DE4412310 A1 DE 4412310A1
- Authority
- DE
- Germany
- Prior art keywords
- computer
- data
- computers
- stage
- connection
- 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/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
- G06F11/188—Voting techniques where exact match is not required
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Description
Die Erfindung betrifft ein fehlertolerantes Rechnersystem,
das bei bis zu zwei gleichzeitig auftretenden Fehlern aus
toleranzbehafteten Eingangsdaten in der Mehrheit gleiche und
fehlerfreie Ergebnisse erzeugt.
Nun läßt sich die Fehlerwahrscheinlichkeit durch bessere
Technologien bei der Herstellung und Prüfung der Komponenten
und Anlagen reduzieren, eine Restfehlerwahrscheinlichkeit
kann aber in keinem Fall beseitigt werden. Eine
Fehlererkennung und -Korrektur, wie sie bei der Speicherung
und Übertragung von Daten angewendet werden kann, versagt
aber, sobald verschiedene Verarbeitungsfunktionen ausgeführt
werden. Hier ist die Anwendung fehlertoleranter Systeme
erforderlich, die durch mehrfache Anordnung von Teilsystemen
realisiert werden, die alle die gleiche Funktion ausführen.
Das Grundprinzip für ein 1-Fehler-tolerantes System besteht
darin, daß man eine Aufgabe an drei Rechner gibt und von
jedem Rechner ein Ergebnis ermitteln läßt (Theuretzbacher, N.;
"Votrics": Voting triple modular computing system, Digest of
Papers FTCS-11, conference proceedings IEEE 1981, Pages 159-164).
Anschließend wird durch einen "Voter" das richtige
Ergebnis dadurch ausgewählt, daß diejenigen Ergebnisse als
richtig angesehen werden, die identisch gleich sind. Dabei
geht man davon aus, daß die Fehlerwahrscheinlichkeit klein
ist, also die Wahrscheinlichkeit für zwei Fehler noch
wesentlich kleiner ist und die Wahrscheinlichkeit, daß zwei
absolut gleiche Fehler (außer einem Totalausfall, der
erkennbar ist) auftreten, vernachlässigt werden kann. Dieses
Prinzip der Mehrheitsentscheidung läßt sich auch auf mehrfach
fehlertolerante Systeme nach der Beziehung
N ⇒ 2m + 1
anwenden, wenn m die Anzahl der Fehler und N die Anzahl der
vorzusehenden Rechner ist. Der wesentliche Nachteil eines
solchen Prinzips ist, daß beim Ausfall des Voters das
Gesamtsystem ausfällt, das heißt, daß diese Komponente nicht
fehlertolerant ist. Die fehlertolerante Ausführung des Voters
ist zwar mit zusätzlichem Aufwand möglich, bedingt aber
wiederum eine Entscheidung, welcher Voter das richtige
Ergebnis liefert. Hierin besteht ein erstes Problem
fehlertoleranter Systeme.
Ein zweites Problem besteht darin, daß Rechner nicht nur
ausfallen, sondern auch bedingt ausfallen, undefinierte
Fehlfunktionen ausführen sowie durch Kurzschlüsse oder
Überspannung an Verbindungen zu anderen Komponenten auch die
Funktionsfähigkeit der anderen Komponenten beeinträchtigen
können. Das Ausfallen eines fehlertoleranten Gesamtsystems
durch diese "bösartigen" (byzantinischen) Fehler wurde nach
Literaturangaben schon beobachtet.
Das dritte Problem ergibt sich dadurch, daß ein System seine
Daten aus der Umwelt mit Hilfe von Sensoren gewinnen muß.
Diese liefern aber Daten, die toleranzbehaftet sind. Nun muß
ein fehlertolerantes System aber in allen Teilsystemen mit
genau gleichen Daten arbeiten, damit am Ausgang eine
Mehrheitsentscheidung für gleiche Ergebnisse gebildet werden
kann. Eine vermaschte Verbindung der Sensoren mit den
Eingängen der Rechner ist aufwendig und sichert nicht, daß
alle Rechner die Daten zu genau dem gleichen Zeitpunkt
erhalten und somit bei zeitabhängigen Daten auch gleiche
Daten erhalten oder es wird eine zentrale Steuerung für die
Verteilung der Eingangsdaten vorgesehen, bei deren Ausfall
ebenfalls das Gesamtsystem ausfällt.
Auf diese Probleme wurde hingewiesen von
- - Lamport, L., Shostak, R. und Pease, M. in dem Artikel:
"The Byzantine Generals Problem"
ACM Transactions on Languages and Systems, Vol. 4, No. 3, July 1982 Pages 382-401 - - Lamport, L., Shostak, R. und Pease, M. in dem Artikel:
"Reaching Agreement in the present of Faults"
Journal of the Assoziation for Computer Machinery, Vol. 27, No. 2, April 1980, Pages 228-234 - - Lala, J.H., Harper, R.E. und Alger, L.S. in dem Artikel:
"A design approach for ultrareliable Real-Time-Systems"
Computer, May 1991, Pages 12-22 - - Harper, R.E. und Lala, J.H. in dem Artikel:
"Fault Tolerant Parallel Processors"
American Institute of Aeronautics and Astronautics, Vol. 14, No. 3, 1991, Pages 554-563
und weiteren Autoren, die sich auf die obengenannten Artikel
beziehen. Durch den Vergleich mit den byzantinischen
Generälen, die eine fremde Stadt belagern und bei dem sich
alle loyalen Generäle auch bei Anwesenheit von Verrätern auf
einen einheitlichen und guten Plan durch den
Nachrichtenaustausch über Boten einigen müssen, wird folgende
Arbeitsweise entwickelt:
- - Jeder Rechner erhält die Daten von einem Sensor. (Jeder General beobachtet den Feind)
- - Jeder Rechner erhält die Daten von den anderen Prozessoren durch Nachrichtenaustausch. (Die Generäle verständigen sich über Boten)
- - Alle fehlerfreien Rechner müssen sich auf die gleichen und richtigen Daten einigen. (Die loyalen Generäle müssen sich auf einen einheitlichen und guten Plan einigen)
- - Kein Rechner kann die Arbeitsweise eines anderen Rechners beeinflussen. (Jeder General entscheidet für sich).
Durch den Datenaustausch kann jeder fehlerfreie Rechner für
sich auf die richtigen Daten schließen, wodurch ein
getrennter Voter mit seinen Problemen entfällt. Während von
den genannten Autoren stillschweigend vorausgesetzt wird, daß
beim Vorhandensein einheitlicher Anfangsdaten für die
Tolerierung von m Fehlern
N ⇒ 2m + 1
Rechner erforderlich sind, wird von den genannten Autoren
angegeben, daß zur Gewinnung einheitlicher Anfangsdaten
folgende Forderungen zu erfüllen sind, wenn jeder Rechner nur
die Daten von einem Sensor erhält:
N ⇒ 3m + 1: Anzahl Rechner,
K ⇒ 2m + 1: Verbindungsdichte (Anzahl Anschlüsse an jedem Rechner),
R ⇒ m + 1: Anzahl der Runden des Datenaustausches.
K ⇒ 2m + 1: Verbindungsdichte (Anzahl Anschlüsse an jedem Rechner),
R ⇒ m + 1: Anzahl der Runden des Datenaustausches.
Nach diesem Prinzip aufgebaute Rechner, die völlig unabhängig
voneinander arbeiten, also mit getrennter Strom- und
Taktversorgung und Sicherung gegen Beeinflussung durch
Überspannung oder Kurzschluß, berechnen unabhängig von der
Art der Fehler immer in der Mehrheit gleiche und richtige
Ergebnisse. Durch die direkte Verbindung von Rechner und
Sensor sind diese Einheiten jeweils als ein
"Fehlerenthaltender Bereich" (FCR = Fault Containment Region)
anzusehen, das heißt unabhängig davon, ob ein Fehler im
Sensor oder in dem mit dem Sensor verbundenen Rechner
auftritt, ist dieser Bereich fehlerhaft. Die Rechner selbst
bilden untereinander getrennte FCRs.
Obwohl das dargestellte Prinzip eine vollständige Sicherheit
bis zu den projektierten Grenzen gewährleistet, hat es zwei
entscheidende Nachteile:
- 1. Es ist eine höhere Anzahl von Rechnern zur Gewinnung einheitlicher Anfangsdaten erforderlich, als zur Arbeit mit gleichen Daten notwendig wäre.
- 2. Die Anzahl auszutauschender Daten wächst mit steigender Anzahl von Rechnern überproportional an.
Das zeigen die folgenden Beispiele:
Aus diesen Zahlen folgt, daß 2-Fehler-tolerante Systeme einen
erheblichen Aufwand (7 Rechner) erfordern und auf Grund des
umfangreichen Datenaustausches mit erheblichen
Effektivitätsverlusten arbeiten. Die Realisierung von
3-Fehler-toleranten Systemen verbietet sich somit von selbst.
Es wird in der Literatur zwar darauf hingewiesen, daß mit
gekennzeichneten Nachrichten Vereinfachungen möglich sein
können, Lösungen werden aber nicht angegeben.
Aufgabe der Erfindung ist es, den Aufwand und die
Effektivität fehlertoleranter Systeme bei vollständiger
Einhaltung der Fehlertoleranzeigenschaften zu verbessern.
Erfindungsgemäß wird die Aufgabe dadurch gelöst, daß für ein
2-Fehler-tolerantes System fünf untereinander über
bidirektionale Verbindungswege voll vernetzte Rechner
angeordnet werden und die Gewinnung fehlertoleranter
Anfangsdaten durch den Austausch von Daten erfolgt und für
den Datenaustausch mit gekennzeichneten Nachrichten
gearbeitet wird, d. h. die Daten werden vor dem ersten Senden
mit einem zyklischen Kontrollzeichen (CRC) ergänzt. Hierbei
arbeitet jeder Prozessor mit einem eigenen CRC-Polynom. In
einer ersten Runde sendet der Rechner seine Daten an die
anderen vier Rechner. In einer zweiten Runde sendet jeder
Rechner die empfangenen Daten aus der ersten Runde jeweils
unverändert an diejenigen drei Rechner, die nicht Quelle
dieser Daten sind. In einer dritten Runde sendet jeder
Rechner die in der zweiten Runde empfangenen Daten
unverändert an diejenigen zwei Rechner, die nicht Quelle
dieser Daten in der ersten und zweiten Runde waren. Eine
erste Auswertung erfolgt, indem aus den Quell- und den zwei
Zieldaten der dritten Runde, die von der gleichen Quelle in
der zweiten und ersten Runde stammen, 4*3=12 erste Ergebnisse
gebildet werden, die dann einen gültiger Wert erhalten, wenn
die als CRC-fehlerfrei erkannten Daten gleich sind und
wenigstens ein CRC-fehlerfreier Wert empfangen wurde, in
jedem anderen Fall erhalten sie einen ungültiger Wert. In
einer zweiten Auswertung werden in jedem Rechner vier
Zwischenergebnisse von den Daten ermittelt, die aus der
ersten Runde und aus der ersten Auswertung jeweils vom
gleichen Rechner als Quelle stammen, sie erhalten dann einen
gültigen Wert, wenn alle gültigen und CRC-fehlerfreien Daten
gleich sind und die Anzahl der gültigen Daten und CRC-feh
lerfreien Daten mindestens zwei beträgt. Für alle
fehlerfreien Rechner ergeben sich dann die endgültigen
Anfangsdaten aus dem Mittelwert der eigenen Daten und der
vier Zwischenergebnisse, wobei zu stark abweichende Werte aus
der Mittelwertsbildung eliminiert werden können.
Zur Verkürzung des Ablaufes im fehlerfreien Fall und in
Fällen einfacher Fehler wird von jedem Rechner ein
vorläufiger Mittelwert gebildet, der in einer ersten
Zwischenrunde von jedem Rechner an jeden anderen Rechner
übertragen wird. Die Mehrheit dieser fünf Mittelwerte stellt
für jeden Rechner bereits dann die gültigen Anfangsdaten dar,
wenn wenigstens vier der fünf Rechner mindestens drei gleiche
Daten zur Mittelwertsbildung hatten. Dazu wird bei der
Mittelwertsbildung die Anzahl gleicher Daten gezählt und
diese Zahl wird in einer zweiten Zwischenrunde wiederum
zwischen allen Rechnern ausgetauscht. Die Gültigkeit wird- nun
dadurch ermittelt daß jeder Rechner in der zweiten
Zwischenrunde wenigstens viermal eine Zahl gleich oder größer
als drei empfangen hat, anderenfalls wird die vollständige
Auswertung nach der ersten Runde fortgesetzt.
Alle Schritte des Datenaustausches werden von allen Rechnern
parallel in der gleichen Weise ausgeführt, indem die
Vernetzung der Rechner so erfolgt, daß bei zyklischer
Anordnung der Rechner die Verbindung zum darauffolgenden
Rechner über einen ersten Anschluß, die Verbindung zum
übernächsten Rechner über einen zweiten Anschluß, die
Verbindung zum dritten Rechner über einen dritten Anschluß
und die Verbindung zum vierten Rechner über einen vierten
Anschluß hergestellt wird.
Es ist aber auch möglich, daß die fehlerfreien Rechner eines
fehlertolerantes Rechnersystem, das entsprechend einem
Pipelinesystem aus zwei Stufen mit jeweils fünf Rechnern
besteht, von denen die fünf Rechner der ersten Stufe einen
Eingang für Datenquellen haben, bei zwei beliebigen Fehlern
in der einen Stufe und einem beliebigen Fehler in der anderen
Stufe aus toleranzbehafteten Eingangsdaten richtige
Ergebnisse berechnen. Hierzu sind die fünf Rechner der ersten
Stufe und die fünf Rechner der zweiten Stufe jeweils über
bidirektionale Datenwege zu einem Ring zusammengeschaltet und
es ist je ein bidirektionaler Verbindungsweg von einem
Rechner der ersten Stufe zu dem jeweils nachfolgenden Rechner
der zweiten Stufe und ein Verbindungsweg zu dem jeweils
vorhergehenden Rechner der zweiten Stufe vorgesehen. Für die
Erzeugung der Fehlertoleranz wird mit einem Austausch von
Daten gearbeitet, die vor dem ersten Senden mit einem
zyklischen Kontrollzeichen ergänzt werden, wobei jeder
Rechner ein ihm individuell zugeordnetes CRC-Polynom
verwendet.
Für den Datenaustausch innerhalb einer Stufe erfolgen die
Übertragungen zum jeweils benachbarten Rechner direkt und zu
den anderen Rechnern über Rechner der zweiten Stufe, wobei
die Übertragungen dadurch fehlertolerant sind, daß die
Übertragungen doppelt ausgeführt werden, indem sie in der
einen Richtung über einen Rechner der zweiten Stufe und in
der anderen Richtung über zwei nebeneinanderliegende Rechner
der zweiten Stufe geführt werden. Die Überprüfung des
Datenaustausches zu den nicht direkt erreichbaren Rechnern
erfolgt dadurch, daß die empfangenen Daten dann einen
gültigen Wert erhalten, wenn die CRC-fehlerfreien Daten
gleich sind und die Anzahl der CRC-fehlerfreien Daten
wenigstens eins ist.
Für die Übertragung von der ersten Stufe zur zweiten Stufe
empfängt jeder Rechner der zweiten Stufe die Ergebnisse des
vorhergehenden und des nachfolgenden Rechners der ersten
Stufe direkt. Die Ergebnisse der anderen Rechner erhält jeder
Rechner 3-Fehler-tolerant über die vier möglichen voneinander
völlig unabhängigen Wege und wertet diese Ergebnisse aus,
indem das Ergebnis aller von einem Rechner kommenden Daten
dann einen gültigen Wert erhält, wenn alle CRC-fehlerfreien
Daten gleich sind und die Anzahl der CRC-fehlerfrei
empfangenen Daten wenigstens eins ist. Aus diesen fünf
Ergebnissen werden durch Mehrheitsentscheidung über die
gleichen Daten bei allen fehlerfreien Rechnern gleiche und
fehlerfreie Anfangsdaten für die zweite Stufe berechnet.
Alle Rechner einer Stufe können alle Datenaustauschfunktionen
parallel und in der gleichen Weise ausführen, indem die
Verbindung eines Rechners der einen Stufe zu dem
darauffolgenden Rechner dieser Stufe über einen ersten
Anschluß, zu dem darauffolgenden Rechner der anderen Stufe
über einen zweiten Anschluß, zu dem davorliegenden Rechner
der anderen Stufe über einen dritten Anschluß und zu dem
davorliegenden Rechner der gleichen Stufe über einen vierten
Anschluß erfolgt.
Ebenso kann aber auch ein fehlertolerantes Rechnersystem, das
entsprechend einem Pipelinesystem aus zwei Stufen mit je fünf
Rechnern aufgebaut ist in jeder Stufe zwei beliebige Fehler
tolerieren, indem die Rechner in jeder Stufe untereinander
vollständig über bidirektionale Datenwege vernetzt sind und
die fehlerfreien Rechner der ersten Stufe aus den
toleranzbehafteten Eingangsdaten gleiche und fehlerfreie
Anfangsdaten berechnen. Danach werden die Ergebnisse der
Berechnungen mit zyklischen Kontrollzeichen ergänzt und von
jedem Rechner der ersten Stufe über je fünf unabhängige Wege
zu jedem Rechner der zweiten Stufe übertragen, indem jeder
Rechner der ersten Stufe das Ergebnis seiner Berechnung an
alle anderen Rechner der ersten Stufe überträgt, jeder
Rechner der ersten Stufe sein Ergebnis und die Ergebnisse der
anderen Rechner der ersten Stufe zu dem ihm zugeordneten
Rechner der zweiten Stufe überträgt und jeder Rechner der
zweiten Stufe alle zu ihm übertragenen Ergebnisse zu allen
anderen Rechnern der zweiten Stufe überträgt. Die Rechner der
zweiten Stufe ermitteln nun die richtigen Daten aus den je
fünffach übertragenen Ergebnissen jedes Rechners der ersten
Stufe, indem sie in einem ersten Schritt jeweils alle
Ergebnisse, die von einem der Rechner der ersten Stufe als
Quelle kommen auf fehlerfreie Übertragung durch Nachrechnung
des zyklischen Kontrollzeichens überprüft werden und daß sich
aus diesen Werten dann ein gültiges Ergebnis ergibt, wenn
alle Werte mit fehlerfreien Kontrollzeichen gleich sind und
wenigstens ein Wert mit fehlerfreiem Kontrollzeichen
übertragen wurde und in jedem anderen Fall einen ungültigen
Wert erhält. In einem zweiten Schritt werden die gültigen
Anfangsdaten der zweiten Stufe aus der Mehrheitsentscheidung
der gültigen Ergebnisse der fünf Rechner der ersten Stufe
gebildet.
Alle Schritte des Datenaustausches werden von allen Rechnern
einer Stufe parallel und in der gleichen Weise ausgeführt,
indem die Vernetzung der Rechner in jeder Stufe so erfolgt,
daß bei zyklischer Anordnung der Rechner die Verbindung zum
darauffolgenden Rechner der gleichen Stufe über einen ersten
Anschluß, die Verbindung zum übernächsten Rechner über einen
zweiten Anschluß, die Verbindung zum dritten Rechner der
gleichen Stufe über einen dritten Anschluß und die Verbindung
zum vierten Rechner der gleichen Stufe über einen vierten
Anschluß hergestellt wird.
Weitere Merkmale der Erfindung sind in den Unteransprüchen
beschrieben.
So benutzt eine Ausgestaltung der erfindungsgemäßen Lösung
Verbindungswege zwischen den Rechnern und zu den Ein- und
Ausgangseinheiten, die bitseriell arbeiten und bei denen die
elektrische Trennung der Rechner untereinander und zu den
Ein- und Ausgangseinheiten über zwischengeschaltete
Optokoppler erfolgt.
Eine weitere Ausgestaltung besteht darin, daß die Kopplung zu
den Ein- und Ausgängen über an das Bussystem angeschlossene
Ports erfolgt.
Als Ausgestaltungsbeispiel werden die Verarbeitungseinheiten
der Rechner mit Transputern aufgebaut und die
Verbindungswege durch Links gebildet.
Als weiteres Ausgestaltungsbeispiel werden die seriellen
Verbindungswege zu den Ein- und Ausgängen des Rechnersystems
über an das Bussystem der Rechner angeschlossene Linkadapter
hergestellt.
Vorteile dieser Lösung sind
- - die Reduzierung der Anzahl der Rechner von sieben auf fünf, um bei bis zu zwei gleichzeitig auftretenden Fehlern mit Hilfe des Datenaustausches aus toleranzbehafteten Eingangsdaten gleiche und in der Mehrzahl richtige Ergebnisse zu berechnen. Damit reduziert sich auch die Anzahl der für die Vernetzung erforderlichen Anschlüsse je Rechner sowie die zur Gewährleistung der Fehlertoleranz erforderliche Anzahl auszutauschender Daten.
- - nur vier erforderliche Anschlüsse je Rechner für die Vernetzung, um mit fünf Rechnern je Stufe in einem zweistufigen System auch dann noch in der Mehrzahl gleiche und richtige Ergebnisse aus toleranzbehafteten Eingangsdaten zu berechnen, wenn gleichzeitig in der einen Stufe zwei und in der anderen Stufe ein Fehler auftritt.
- - die Tolerierung von zwei Fehlern je Stufe in einem mehrstufigen System mit je fünf Rechnern in jeder Stufe wobei nur eine einfache 1 : 1-Verbindung der Rechner von Stufe zu Stufe erforderlich ist.
- - ein sehr einfacher Aufbau, der sich beim Einsatz von Transputern als zentrale Verarbeitungseinheit in den Rechnern ergibt.
Das Prinzip und die Einzelheiten der erfindungsgemäßen Lösung
werden anhand von Ausführungsbeispielen dargestellt. Zur
Erklärung dient die nachstehende Zeichnung. Diese zeigt im
Einzelnen:
Fig. 1 Den Aufbau eines 1-Fehler-toleranten
Rechnerystems, wie es in der Literatur angegeben
ist.
Fig. 2 Den Aufbau eines 1-Fehler-toleranten
Rechnersystems nach dem erfindungsgemäßen
Prinzip.
Fig. 3 Die erfindungsgemäße Lösung eines
2-Fehler-toleranten Rechnersystems.
Fig. 4 Eine Tabelle für die Datenaustausche und die
Anordnung der Daten im Speicher.
Fig. 5 Eine Tabelle für die Durchführung des
Datenaustausches für Rechner, die mit ihren
Anschlüssen im Halbduplexbetrieb parallel
arbeiten können.
Fig. 6 Die Zusammenschaltung in einem zweistufigen
System mit 1-Fehler-toleranten Stufen.
Fig. 7 Die erfindungsgemäße Zusammenschaltung in einem
zweistufigen System mit 2-Fehler-toleranten
Stufen.
Fig. 8 Tabellen für die Datenaustausche und die
Anordnung der Daten im Speicher.
Fig. 9 Eine Tabelle für die Durchführung des
Datenaustausches für Rechner, die mit ihren
Anschlüssen im Halbduplexbetrieb parallel
arbeiten können.
Fig. 10 Eine erfindungsgemäße Lösung eines zweistufigen
Systems mit 2-Fehler-toleranten Stufen.
Fig. 11 Tabellen für die Datenaustausche und die
Anordnung der Daten im Speicher.
Fig. 12 Eine Tabelle für die Durchführung des
Datenaustausches für Rechner, die mit ihren
Anschlüssen im Halbduplexbetrieb parallel
arbeiten können.
In der Zeichnung werden Rechner P₁ bis Pn durch Kreise und
die Verbindungswege durch Doppellinien dargestellt.
Das Prinzip der in der Literatur angegebenen Lösung eines
1-Fehler-toleranten Systems zeigt Fig. 1. Das System enthält
vier Rechner, die untereinander voll vernetzt sind, das
heißt, jeder Rechner ist mit jedem anderen Rechner verbunden.
Jeder Rechner Pi erhält von einer nicht dargestellten
Datenquelle seine eigenen Daten Vii . Die Herstellung
einheitlicher Anfangsdaten erfolgt mit Hilfe des
Datenaustausches nach dem folgenden Schema:
In einer ersten Runde des Datenaustausches sendet jeder
Rechner seine eigenen Daten an jeden anderen Rechner. Damit
entstehen die als Viÿ gekennzeichneten Werte. In einer
zweiten Runde sendet jeder Rechner die in der ersten Runde
empfangenen Daten an die anderen Rechner, die nicht Quelle
der Daten in der ersten Runde waren. Damit ergeben sich die
als Viÿk gekennzeichneten Werte. Die Auswertung erfolgt in
zwei Schritten. Der erste Schritt ist eine
Mehrheitsentscheidung, d. h. die (2 aus 3) Mehrheit der Daten
wird als richtiger Wert angesehen. Dabei werden in jedem
Rechner aus den Quell- und Zielwerten der zweiten Runde, die
von einer Quelle in der ersten Runde stammenden Daten
ausgewertet. Das wird für die Rechner Pi, Pj, Pk und Pm
dargestellt durch:
Vi′ik = majority {Viik, Viÿk, Viimk}
Damit ist gesichert, daß jeder fehlerfreie Rechner mit den
gleichen Daten arbeitet. In dem zweiten Schritt der
Auswertung wird daraus ein Mittelwert gebildet. Dieser soll
als "begrenzter Mittelwert" (limited mean value) bezeichnet
werden, bei dem zu stark abweichende Werte aus der
Mittelwertsbildung ausgeschlossen werden:
V′i = lmv{Vii , Vj′ji, Vk′ki,Vm′mi}
Somit haben auch alle fehlerfreien Rechner bei jeder
beliebigen Art eines auftretenden Fehlers den gleichen
Mittelwert, mit dem anschließend gearbeitet wird. Für dieses
Verfahren sind aber immer
N = 3m + 1
Rechner erforderlich, um bei der Erzeugung übereinstimmender
Anfangsdaten m Fehler tolerieren zu können, obwohl
anschließend mit
N = 2m + 1
Rechnern gearbeitet werden kann, weil dann einheitliche
Anfangsdaten vorausgesetzt werden können. Das Prinzip
funktioniert auch dann noch, wenn nur drei der vier Rechner
eigene Daten haben.
Die Anordnung nach Fig. 2. dient zur Darstellung des
erfindungsgemäßen Prinzips. Es sind drei Rechner P₁, P₂ und
P₃ dargestellt, die zu einem Ring zusammengeschaltet sind,
wodurch die Bedingung der vollständigen Vernetzung erfüllt
wird. Mit dieser Anordnung wird für alle fehlerfreien Rechner
auch dann noch die Erzeugung einheitlicher Anfangsdaten
gewährleistet, wenn ein beliebiger Fehler auftritt. Dazu ist
folgender Datenaustausch erforderlich:
Vor Beginn des Datenaustausches ergänzt jeder Rechner Pi
seine eigenen Daten Vi i mit einem zyklischen Kontrollzeichen,
wobei jeder Rechner sein eigenes CRC-Polynom verwendet. Diese
Vorgehensweise wird auch als Arbeit mit gekennzeichneten
Nachrichten bezeichnet. Der Datenaustausch erfolgt ebenfalls
in zwei Runden, wobei aber wesentlich weniger Daten
ausgetauscht werden müssen. Das Ergebnis der ersten Runde ist
mit Viÿ und das Ergebnis der zweiten Runde mit Viÿk
gekennzeichnet. Die Lösung ist aber nur dadurch anwendbar,
daß eine andere Auswertung im ersten Auswertungsschritt
anstelle der Mehrheitsentscheidung angewendet wird. Zunächst
werden die empfangenen Daten auf CRC-Fehler überprüft. Eine
Verfälschung durch einen fehlerhaften Rechner ist damit
erkennbar. Die Sicherheit, daß sich nach einer Verfälschung
eine fehlerfreie CRC-Kontrolle ergibt, kann durch geeignete
Wahl der Polynome beliebig hoch gewählt werden. Alle Daten
können somit durch zwischengeschaltete Rechner nicht
verfälscht werden, ohne daß es erkannt wird. Um Eindeutigkeit
auch für den Fall zu erreichen, daß der Rechner, der als
Datenquelle arbeitet, unterschiedliche Daten mit richtigem
CRC-Zeichen aussendet, müssen die Daten, die zweimal mit
richtigem CRC-Zeichen aber unterschiedlichem Inhalt empfangen
wurden, als ungültig gekennzeichnet werden. Bezeichnet man
mit
Vi′ÿ = ident1,2 {Viÿ, Viikj}
die Funktion, die Vi′ÿ nur dann den Wert aus der Klammer
zuordnet, wenn die in der Klammer stehenden CRC-fehlerfreien
Werte gleich sind und wenigstens einer der zwei Werte
CRC-fehlerfrei ist, dann können damit für alle fehlerfreien
Rechner gleiche Anfangsdaten auch dann erzeugt werden, wenn
ein Rechner ein beliebiges Fehlerverhalten zeigt. Mit Hilfe
der bereits dargestellten lmv-Funktion werden dann gleiche
Mittelwerte für alle fehlerfreien Rechner erzeugt. Daraus
folgt, daß diese fehlerfreien Rechner nach der Ausführung
ihres Programms auch alle das gleiche Ergebnis berechnen. Für
jede weitere Berechnung und Auswertung kann danach durch eine
2-aus-3-Mehrheitsentscheidung immer auf die richtigen Daten
geschlossen werden.
Für 2-Fehler-tolerante Systeme müßten nach der bekannten
Lösung sieben untereinander voll vernetzte Rechner vorgesehen
werden, bei denen mit 156 auszutauschenden Daten je Rechner
einheitliche Anfangsdaten ermittelt werden können.
Fig. 3 zeigt die erfindungsgemäße Lösung eines
2-Fehler-toleranten Rechnersystems mit fünf Rechnern P₁ bis
P₅. Jeder Rechner hat vier Anschlüsse a, b, c, d und ist über
bidirektionale Verbindungswege a-d, b-c, c-b, d-a mit jedem
anderen Rechner verbunden, d. h. die Anordnung ist voll
vernetzt. Jeder der Rechner P₁ bis P₅ erhält seine eigenen
Daten Vii über die gestrichelt dargestellten Wege z. B. von
dem einem dem Rechner zugeordneten Sensor, der in Fig. 3
nicht dargestellt ist. Damit bildet jeweils ein Rechner
zusammen mit seinem Sensor eine FCR. Zur Erzeugung
einheitlicher Anfangsdaten werden diese Daten vor dem ersten
Senden mit zyklischen Kontrollzeichen ergänzt, wobei jeder
Rechner ein individuell zugeordnetes CRC-Polynom verwendet.
Danach überträgt jeder Rechner seine Daten Vii in einer
ersten Runde an die vier anderen der Rechner P₁ bis P₅. In
einer zweiten Runde sendet jeder Rechner P₁ bis P₅ die in der
ersten Runde empfangenen Daten Viÿ unverändert an diejenigen
drei anderen Rechner, die nicht Quelle der Daten in der
ersten Runde waren. In einer dritten Runde sendet jeder
Rechner P₁ bis P₅ seine in der zweiten Runde empfangenen
Daten Vi ÿk unverändert an diejenigen zwei Rechner weiter,
die nicht Quelle der Daten in der ersten und zweiten Runde
des Datenaustausches waren. Diese Daten sind mit Viÿkm bzw.
Viÿkn bezeichnet. Die Verteilung der vom Rechner P₁
ausgehenden Daten zeigt die nachfolgende Tabelle:
Von jedem Rechner P₁ bis P₅ als erste Quelle wird die gleiche
Anzahl Daten mit den anderen Rechnern ausgetauscht.
Für die Auswertung wird die bereits dargestellte
ident-Funktion benutzt, die in verallgemeinerter Form als
ident x, y { }
bezeichnet werden soll. Das bedeutet, daß das Ergebnis den
Wert erhält, den die CRC-fehlerfreien Daten haben, wenn diese
gleich sind und wenigstens x von den insgesamt y in der
Klammer stehenden Daten CRC-fehlerfrei sind. In allen anderen
Fällen ergibt sich ein ungültiger Wert (NIL). Die erste
Auswertung faßt die Daten der dritten Runde des
Datenaustausches so zusammen, daß aus den Quell- und
Zieldaten, die in der zweiten und ersten Runde von der
gleichen Quelle stammen, in jedem Rechner (P1 bis P5) 4*3=12
erste Ergebnisse gebildet werden:
Vi′ÿk = ident1,3{Vi ÿk, Viÿmk,Viÿnk}
In einer zweiten Auswertung werden vier Zwischenergebnisse
ermittelt, indem die Ergebnisse der ersten Auswertung und die
Daten aus der ersten Runde, die alle von der gleichen Quelle
der ersten Runde stammen, so zusammengefaßt werden, daß sie
dann einen gültigen Wert bilden, wenn alle CRC-fehlerfreien
Daten gleich sind und die Zahl der CRC-fehlerfreien Daten
mindestens zwei beträgt:
Vi′ik = ident2,4 {fViik, Vi′ÿk ,Vi′imk, Vi′ink}
Damit hat jeder fehlerfreie Rechner genau die gleichen Daten
mindestens von jedem anderen fehlerfreien Rechner erhalten.
Aus den vier Zwischenergebnissen der zweiten Auswertung und
den eigenen Daten des Rechners wird dann der Mittelwert
berechnet, wobei durch die lmv-Funktion zu weit abweichende
Werte eliminiert werden:
V′k = lmv{Vkk , Vi′ik, Vj′jk, Vm′mk, Vn′nk}
Somit hat jeder fehlerfreie Rechner genau die gleichen
Anfangsdaten, mit dem er seine Arbeitsaufgabe durchführen
kann und wird das gleiche Ergebnis berechnen.
Dieses Verhalten soll nachstehend anhand der von dem Rechner
P₁ als erste Quelle gesendeten Daten überprüft werden. In
einem ersten Beispiel wird angenommen, daß die Rechner P₂ und
P₃ fehlerhaft sind. Dabei werden die durch den Rechner P₂
verfälschten Daten V1 als V1 (2) und die durch den Rechner P₃
verfälschten Daten V1 als V1 (3) gekennzeichnet. Ein
unterschiedliches Verhalten auf getrennten Übertragungswegen
wird durch (2′) bzw. (2′′) bezeichnet. Können beide
fehlerhaften Rechner P₂ und P₃ die Daten V1 verfälschen, dann
wird das durch V1 (23) dargestellt.
Nach der ident1,3-Funktion ergeben sich bei den fehlerhaften
Rechnern P₂ und P₃ beliebige Ergebnisse Y und Z und die zwei
Rechner P₄ und P₅ erhalten je vier Zwischenergebnisse. Diese
können in Abhängigkeit von der Verfälschung durch P₂ bzw. P₃
NIL oder V1 sein, dargestellt durch NIL(V1). Alle
fehlerfreien Rechner erhalten nach der ident2,4-Funktion den
Wert V1.
Für den Fall, daß die Rechner P₁ und P₂ fehlerhaft sind,
müssen drei verschiedene Fehlerarten des Rechners P₁
betrachtet werden:
- A) Der Rechner P₁ sendet an P₂ den Wert a, an P₃ bis P₅ den Wert b.
- B) Der Rechner P₁ sendet an P₂ und P₃ den Wert a, an P₄ und P₅ den Wert b.
- C) Der Rechner P₁ sendet an P₂ bis P₄ den Wert a, an P₅ den Wert b.
Bei diesen Darstellungen wird immer angesetzt, daß ein
fehlerhafter, die Quelle bildender Rechner P₁ anstelle seiner
Daten V1₁ beliebige Werte a oder b mit richtigem
CRC-Kontrollzeichen sendet und daß das Ergebnis der
ident1,3-Funktion und damit auch der ident2,4-Funktion bei
den fehlerhaften Rechnern einen beliebigen Wert X oder Y
ergeben kann. Es entstehen dabei immer gleiche Daten bei den
fehlerfreien Rechnern. Die Ergebnisse für alle anderen Fälle
sind einfach zu erkennen:
- - P₁ sendet vier unterschiedliche Daten: Es entsteht NIL.
- - P1 sendet vier gleiche Daten: Diese werden von der ident2,4-Funktion immer als gültig erkannt.
- - P1 sendet mehr als zweimal NIL: Es entsteht NIL.
Zur Verkürzung des Ablaufes im fehlerfreien Fall und in
Fällen einfacher Fehler wird nach der ersten Runde des
Datenaustausches ein vorläufiger Mittelwert gebildet.
Dieser wird in einer ersten Zwischenrunde von jedem Rechner
P₁ bis P₅ an jeden anderen der Rechner P₁ bis P₅ übertragen.
Die Mehrheit dieser fünf Mittelwerte stellt bereits dann
gültige Anfangsdaten dar, wenn wenigstens vier der fünf
Rechner mindestens drei gleiche Daten zur Mittelwertsbildung
hatten. Dazu wird bei der Mittelwertsbildung die Zahl der
gleichen Daten gezählt und diese Zahl in einer zweiten
Zwischenrunde wiederum zwischen allen Rechnern ausgetauscht.
Jeder Rechner ermittelt die Gültigkeit der nach der ersten
Zwischenrunde berechneten Anfangsdaten dadurch, daß er in der
zweiten Zwischenrunde wenigstens viermal eine Zahl gleich
oder größer als drei in der zweiten Zwischenrunde empfangen
hat. Anderenfalls wird die vollständige Auswertung nach der
ersten Runde des Datenaustausches fortgesetzt.
Für den vollständigen Datenaustausch sind von jedem der fünf
Rechner insgesamt 40 Nachrichten zu senden und zu empfangen.
Verbindet man die fünf Rechner mit ihren vier Anschlüssen a,
b, c und d so miteinander, wie es in Fig. 3 dargestellt ist,
also man verbindet den Anschluß a mit dem nachfolgenden
Rechner, den Anschluß b mit dem übernächsten Rechner, den
Anschluß c mit dem dritten und den Anschluß d mit dem vierten
Rechner, dann können alle Rechner die gleichen Schritte des
Datenaustausches parallel in der gleichen Weise, d. h. mit dem
gleichen Programm, ausführen.
In Fig. 4 ist als Tabelle dargestellt, in welchen
Speicherplatz (Nr.) mit welchem Transfer welche Daten bei den
einzelnen Rechnern (P₁ bis P₅) eingetragen werden (Ergebnis
am Ziel). Es ist sofort zu erkennen, daß innerhalb der
Bereiche Nr. 2 . . . Nr. 11, Nr. 12 . . . Nr. 21, Nr. 22 . . . Nr. 31 und
Nr. 32 . . . Nr. 41 gleiche CRC-Polynome gelten, da die Daten vom
gleichen Rechner als Quelle ausgesendet wurden. Die erste
Auswertung mit der ident1,3-Funktion ist bei jedem Rechner
für die Bereiche 3-5, 6-8, 9-11, 13-15, 16-18 usw. bis 39-41
durchzuführen. Die ident2,4-Funktion faßt dann immer die
Ergebnisse aus den Bereichen gleicher CRC-Polynome zusammen.
Fig. 5 zeigt eine Tabelle für die Ausführung des
Datenaustausches. In jedem Schritt kann jeder der Rechner
P₁ bis P₅ über je zwei Anschlüsse (a und b bzw. c und d)
senden und gleichzeitig über je zwei Anschlüsse (c und d bzw.
a und b) empfangen. Dabei wird vorausgesetzt, daß jeder
Rechner mit allen vier Anschlüssen gleichzeitig im
Halbduplexbetrieb arbeiten kann. Hier ist zu erkennen, daß
die insgesamt 5*40=200 Nachrichten in 20 Schritten
ausgetauscht werden. Für den Fall, daß Vollduplexbetrieb
möglich ist, lassen sich jeweils zwei Schritte gleichzeitig
ausführen.
Als Möglichkeit zur Erhöhung der Leistung ist die Anwendung
des Pipeline-Prinzipes bekannt, bei dem das Programm auf zwei
oder mehr hintereinandergeschaltete Rechner (Stufen)
aufgeteilt wird und die Teile aufeinanderfolgender Aufgaben
in den Stufen gleichzeitig bearbeitet werden.
Ein zweistufiges System mit 1-Fehler-toleranten Stufen ist in
Fig. 6 dargestellt. Die drei Rechner P₁ bis P₃ der ersten
Stufe und die drei Rechner P′₁ bis P′₃ der zweiten Stufe sind
jeweils zu einem Ring zusammengeschaltet, d. h. sie sind
jeweils untereinander voll vernetzt. Jeder Rechner Pi der
ersten Stufe ist mit dem ihm zugeordneten Rechner P′i der
zweiten Stufe verbunden. Weiterhin wird jeder der Rechner der
ersten Stufe (P₁ bis P₃) über die gestrichelt dargestellten
Wege mit einer Datenquelle (z. B. einem Sensor) und jeder der
Rechner der zweiten Stufe (P₁′ bis P₃′) über die gestrichelt
dargestellten Wege mit einer Datensenke (z. B. einem Aktor)
verbunden. Wird für die Übertragung von den Rechnern P₁ bis
P₃ zu den Rechnern P₁′ bis P₃′ nur die direkte Verbindung
genutzt, dann kann in dem System nur dann ein zweiter Fehler
toleriert werden, wenn dieser in der gleichen Spalte
auftritt, da sonst in der zweiten Stufe nicht in der Mehrheit
gleiche Anfangsdaten für die fehlerfreien Rechner
bereitstehen, weil nur einer der fehlerfreien Rechner der
zweiten Stufe fehlerfreie Ergebnisse von der ihm zugeordneten
ersten Stufe erhält. Diese Eigenschaft läßt sich verbessern,
wenn man für die Übertragung von der ersten Stufe zur zweiten
Stufe alle möglichen Übertragungswege nutzt:
Verwendet man für die Übertragung auch hier gekennzeichnete
Nachrichten, d. h. ergänzt die Daten vor dem Senden durch
zyklische Kontrollzeichen, dann sind alle über Umwege
geführten Übertragungen auf Grund der drei unabhängigen Wege
2-Fehler-tolerant. Jeder fehlerfreie Rechner erhält mit Hilfe
der ident1,3-Funktion alle Ergebnisse der ersten Stufe und
kann durch Mehrheitsentscheidung die richtigen Ergebnisse als
Anfangsdaten ermitteln. Somit kann das System einen
beliebigen Fehler in der ersten Stufe und einen beliebigen
Fehler in der zweiten Stufe tolerieren.
Das gleiche Problem tritt auch bei Systemen auf, deren Stufen
selbst 2-Fehler-tolerant sind. Hier ist entweder nur ein
Fehler je Stufe zulässig oder es sind je Stufe maximal dann
zwei Fehler zulässig, wenn diese in zwei gleichen Spalten
auftreten. Diese Nachteile können mit der erfindungsgemäßen
Anordnung nach Fig. 7 beseitigt werden.
In Fig. 7 sind die fünf Rechner P₁ bis P₅ der ersten Stufe
und die fünf Rechner P₁′ bis P₅′ der zweiten Stufe über
bidirektionale Verbindungswege a-d, d-a zu einem Ring
zusammengeschaltet. Weiterhin ist jeder der Rechner P₁ bis P₅
der ersten Stufe mit dem jeweils nachfolgenden der Rechner
P₁′ bis P₅′ über einen bidirektionalen Verbindungsweg b-c und
dem jeweils vorhergehenden der Rechner P₁′ bis P₅′ der
zweiten Stufe über einen bidirektionalen Verbindungsweg c-b
verbunden. Zur Erzeugung der Fehlertoleranz wird mit einem
Austausch von Daten gearbeitet, die vor dem ersten Senden mit
einem zyklischen Kontrollzeichen ergänzt werden, wobei jeder
Rechner ein ihm individuell zugeordnetes CRC-Polynom
verwendet. Die Übertragungen für den Datenaustausch zum
jeweils benachbarten Rechner erfolgt in jeder Stufe direkt.
Die in Fig. 7 für die volle Vernetzung der einzelnen Stufen
nicht direkt vorhandenen Verbindungen zum jeweils
übernächsten Rechner werden über die zweite Stufe
hergestellt. Dabei wird diese Verbindung dann
1-Fehler-tolerant, wenn die Übertragungen doppelt über zwei
unabhängige Wege ausgeführt werden:
Diese Wege sind auch in entgegengesetzter Richtung nutzbar.
Durch die Anwendung gekennzeichneter Nachrichten und
Auswertung mit der ident1,2-Funktion wird die Fehlertoleranz
erreicht, d. h. der Datenaustausch zu den nicht direkt
erreichbaren Rechnern wird dadurch überprüft, daß die
empfangenen Daten dann einen gültigen Wert erhalten, wenn die
CRC-fehlerfreien Daten gleich sind und die Anzahl der CRC-feh
lerfreien Daten wenigstens eins ist. Damit kann jede Stufe
so arbeiten, als wäre sie in sich voll vernetzt.
Für die Übertragung von der ersten Stufe zur zweiten Stufe
erhält jeder Rechner P₁′ bis P₅′ der zweiten Stufe das
Ergebnis von jedem Rechner P₁ bis P₅ der ersten Stufe, indem
jeder Rechner der zweiten Stufe die Ergebnisse des
vorhergehenden und des nachfolgenden Rechners der ersten
Stufe direkt empfängt und die Ergebnisse der anderen Rechner
der ersten Stufe 3-Fehler-tolerant über die vier möglichen,
völlig voneinander unabhängigen Wege vierfach erhält. Hierbei
ergeben sich zum Beispiel für die Übertragungen vom Rechner
P₁ aus die folgenden Wege:
Die Übertragungswege für das Senden der anderen Rechner
(P₂ bis P₅) ergeben sich hieraus durch zyklisches
Vertauschen.
Hierbei werden alle nicht direkt vorhandenen Verbindungen
durch vier unabhängige Wege realisiert und sind somit bei
Anwendung gekennzeichneter Nachrichten 3-Fehler-tolerant,
wenn sie mit der ident1,4-Funktion ausgewertet werden, d. h.
die Daten sind dann gültig, wenn alle von einem Rechner der
ersten Stufe kommenden und CRC-fehlerfreien Daten gleich sind
und die Zahl der CRC-fehlerfreien Daten wenigstens eins ist.
Durch Mehrheitsentscheidung ermitteln alle fehlerfreien
Rechner der zweiten Stufe gleiche und fehlerfreie
Anfangsdaten. Damit wird die Bedingung erfüllt, daß in einer
Stufe zwei beliebige Fehler und in der anderen Stufe ein
beliebiger Fehler auftreten darf.
Wendet man dabei die Zuordnung der Anschlüsse zu den
Verbindungen an, wie sie in Fig. 7 dargestellt sind, also zum
nachfolgenden Rechner der jeweils gleichen Stufe Anschluß a,
zum nachfolgenden Rechner der jeweils anderen Stufe Anschluß
b, zum vorhergehenden Rechner der jeweils anderen Stufe
Anschluß c und zum vorhergehenden Rechner der jeweils
gleichen Stufe Anschluß d, so können immer alle Rechner die
gleichen Funktionen für die Datenaustauschfunktion parallel
und in der gleichen Weise anwenden, d. h. mit gleichem
Programm ausführen.
In Fig. 8 ist als Tabelle dargestellt, in welche
Speicherbereiche (Nr.) bei jedem Rechner (P₁ bis P₅ bzw.
P₁′ bis P₅′) welche Daten zu speichern sind und mit welchen
Transfers sich die jeweiligen Daten an dieser Stelle ergeben.
Dabei zeigt Fig. 8a die Speicherbelegung der ersten Stufe und
Fig. 8b die Speicherbelegung der zweiten Stufe. Auch sind die
Daten so geordnet, daß die Bereiche 1′-4′, 6′-9′ und 10′-13′
je mit gleichem CRC-Polynom zu kontrollieren sind. Die
Anwendung der ident1,4-Funktion erfolgt ebenfalls auf diese
Bereiche. Damit stehen in jedem Rechner der zweiten Stufe die
Ergebnisse von allen fünf Rechnern der ersten Stufe zur
Verfügung. Die gültigen Anfangsdaten der zweiten Stufe
ergeben sich in jedem Rechner aus der Mehrheitsentscheidung
über diese fünf Ergebnisse.
Die Reihenfolge für die Ausführung der einzelnen Transfers
für Rechner die mit ihren Anschlüssen im Halbduplexbetrieb
parallel arbeiten können, zeigt die Tabelle in Fig. 9. In
jedem Schritt ist angegeben, über welchen Anschluß jeder der
Rechner P₁ bis P₅ und P₁′ bis P₅′ sendet oder empfängt, wenn
alle Anschlüsse parallel im Halbduplexbetrieb arbeiten
können. Die insgesamt 18*5=90 Transfers können bei dieser
Arbeitsweise in sieben Schritten ausgeführt werden.
Fig. 10 zeigt ein zweistufiges System, bei dem jede Stufe
2-Fehler-tolerant ist. Die fünf Rechner P₁ bis P₅ der ersten
Stufe und die fünf Rechner P₁′ bis P₅′ der zweiten Stufe sind
über bidirektionale Datenwege a-d, b-c, c-b, d-a jeweils
untereinander vollständig vernetzt. Jeder Rechner Pi der
ersten Stufe ist mit dem ihm zugeordneten Rechner Pi′ der
zweiten Stufe über einen Datenweg e-e direkt verbunden.
Weiterhin ist jeder Rechner P₁ bis P₅ der ersten Stufe über
eine gestrichelt dargestellte Verbindung mit einer ihm
zugeordneten Datenquelle (z. B. einem Sensor) und jeder
Rechner P₁′ bis P₅′ der zweiten Stufe mit einer ihm
zugeordneten Datensenke (z. B. einem Aktor) verbunden, wobei
in Fig. 10 Datenquellen und Datensenken nicht dargestellt
sind.
In der ersten Stufe werden aus den toleranzbehafteten
Eingangsdaten in der bereits dargestellten Weise in der
Mehrheit einheitliche und richtige Anfangsdaten berechnet,
indem jeder Rechner P₁ bis P₅ der ersten Stufe seine eigenen
Daten mit einem zyklischen Kontrollzeichen ergänzt, die Daten
in drei Runden austauscht, zwei Auswertungen durchführt sowie
über die vier Zwischenergebnisse und die eigenen Daten die
Mehrheitsentscheidung durchführt. Die Ergebnisse der
Berechnungen der ersten Stufe werden mit zyklischen
Kontrollzeichen ergänzt. Um die richtigen Ergebnisse der
ersten Stufe auch richtig an die fehlerfreien Rechner der
zweiten Stufe übertragen zu können, muß diese Übertragung
4-Fehler-tolerant sein, denn es sollen zwei Fehler in der
ersten Stufe und zwei Fehler in der zweiten Stufe toleriert
werden. Das erfordert bei der Anwendung gekennzeichneter
Nachrichten die Übertragung über fünf unabhängige Wege, wenn
keine direkte Verbindung vorhanden ist. Dazu überträgt jeder
Rechner P₁ bis P₅ das Ergebnis seiner Berechnung an jeden der
Rechner P₁ bis P₅ der ersten Stufe, jeder Rechner der ersten
Stufe überträgt sein Ergebnis und alle zu ihm übertragenen
Ergebnisse zu dem ihm zugeordneten Rechner der zweiten Stufe
und jeder Rechner P₁′ bis P₅′ der zweiten Stufe überträgt
alle zu ihm übertragenen Ergebnisse zu allen anderen Rechnern
der zweiten Stufe. Als Beispiel sollen die Übertragungen
dienen, die vom Rechner P₁ ausgehen:
Die Übertragungen, die von den anderen Rechnern der ersten
Stufe ausgehen, erhält man durch zyklische Vertauschung.
Somit hat jeder Rechner die Daten von den Rechnern, die nicht
direkt miteinander verbunden sind fünffach erhalten. Vor der
Übertragung werden die Ergebnisse mit einem jedem Rechner P₁
bis P₅ individuell zugeordneten CRC-Zeichen ergänzt. Zur
Ermittlung der richtigen Daten werden diese in zwei Schritten
ausgewertet. In einem ersten Schritt werden jeweils alle
Ergebnisse, die von einem der Rechner P₁ bis P₅ der ersten
Stufe kommen, auf CRC-Fehlerfreiheit überprüft und das
gültige Ergebnis für einen sendenden Rechner wird von jedem
empfangenden Rechner durch die ident1,5-Funktion ermittelt,
das heißt, alle CRC-fehlerfreien Daten dieses Rechners müssen
gleich sein, und es muß wenigstens ein Wert ohne CRC-Fehler
empfangen worden sein. Anderenfalls wird für diesen Rechner
der Wert NIL eingesetzt. Somit hat jeder Rechner von jedem
sendenden Rechner einen gültigen Wert oder NIL empfangen. In
einem zweiten Schritt werden die gültigen Anfangsdaten für
jeden Rechner der zweiten Stufe durch Mehrheitsentscheidung
aller gültigen Ergebnisse der fünf Rechner der ersten Stufe
gebildet.
Alle Schritte des Datenaustausches werden parallel
ausgeführt, indem die Vernetzung der Rechner P₁ bis P₅ und
P₁′ bis P₅′ in jeder Stufe so erfolgt, daß bei zyklischer
Anordnung der Rechner die Verbindung zum darauffolgenden
Rechner der gleichen Stufe über einen ersten Anschluß a, die
Verbindung zum übernächsten Rechner der gleichen Stufe über
einen zweiten Anschluß b, die Verbindung zum dritten Rechner
der gleichen Stufe über einen dritten Anschluß c und die
Verbindung zum vierten Rechner der gleichen Stufe über einen
vierten Anschluß d hergestellt wird.
Fig. 11 zeigt als Tabelle, in welche Speicherbereiche (Nr.)
welche Daten bei den Rechnern (P₁ bis P₅ und P₁′ bis P₅′) zu
speichern sind und mit welchen Transfers sich diese Daten
ergeben. Dabei zeigt Fig. 11a die Speicherbelegung der ersten
Stufe und Fig. 11b die Speicherbelegung der zweiten Stufe. Die
Daten sind in der zweiten Stufe so geordnet, daß die Bereiche
1′, 2′-6′, 7′-11′, 12′-16′ und 17′-21′ jeweils mit den
gleichen CRC-Polynomen zu kontrollieren sind. Die Anwendung
der ident1,5-Funktion erfolgt auf die gleichen Bereiche
(außer Bereich 1′). Die gültigen Anfangsdaten ergeben sich
dann aus der Mehrheitsentscheidung über die fünf Bereiche.
Die Reihenfolge für die Ausführung der einzelnen Transfers
für Rechner die mit ihren Anschlüssen im Halbduplexbetrieb
parallel arbeiten können zeigt die Tabelle in Fig. 12. In
jedem Schritt ist angegeben, über welche Anschlüsse jeder der
Rechner P₁ bis P₅ bzw. P₁′ bis P₅′ sendet bzw. empfängt, wenn
die Anschlüsse an jedem Rechner gleichzeitig im
Halbduplexbetrieb arbeiten können. Die insgesamt 25 * 5=125
Transfers können bei dieser Arbeitsweise in 9 Schritten
ausgeführt werden.
Es ergeben sich einfache Lösungen, wenn die Verbindungswege
a-d, b-c, c-b, d-a zwischen den Rechnern P1 bis P5 bzw. P1′
bis P5′ sowie von dem Rechnersystem zu den Ein- und
Ausgangseinheiten bitseriell arbeiten. Für die elektrische
Trennung zum Schutz vor Überspannung und Kurzschlüssen sind
Optokoppler zwischenzuschalten.
In einer Ausgestaltung des Rechnersystems werden die
Datenquellen und -senken für die Ein- und Ausgabe mit Ports
verbunden, die an das Bussystem der Rechnern P₁ bis P₅ bzw.
P₁′ bis P₅′ angeschlossen sind. Das ist besonders dann
günstig, wenn die Ein- und Ausgabeeinheiten mit paralleler
Datenübertragung arbeiten.
Besonders einfache Lösungen ergeben sich, wenn die
Verarbeitungseinheiten für die Rechner mit Transputern
aufgebaut werden und die Verbindungen a-d, b-c, c-b, d-a an
die Links angeschlossen werden.
Zur Erhöhung der Anzahl der Übertragungswege werden
Linkadapter zwischen Datenquellen und Datensenken mit
serieller Übertragung und die Bussysteme der Rechner
P₁ bis P₅ bzw. P₁′ bis P₅′ geschaltet. Bei Transputersystemen
erhält man einheitliche Anschlüsse, wenn die Portseite des
Linkadapters mit dem Bussystem verbunden wird.
Claims (7)
1. Fehlertolerantes Rechnersystem mit selbständig arbeitenden
Rechnern und je einem Dateneingang an jedem Rechner, der mit
jeweils einer Datenquelle verbunden ist, dessen fehlerfreie
Rechner bei bis zu zwei beliebigen, gleichzeitig auftretenden
Fehlern aus toleranzbehafteten Eingangsdaten gleiche und
fehlerfreie Ergebnisse erzeugen, dadurch gekennzeichnet,
daß fünf Rechner (P₁ bis P₅) über bidirektionale Verbindungswege (a-d, b-c, c-b, d-a) untereinander vollständig vernetzt sind, daß die Gewinnung der fehlertoleranten Anfangsdaten durch einen Austausch von Daten in drei Runden derart erfolgt, daß die Daten vor dem ersten Senden mit einem zyklischen Kontrollzeichen ergänzt werden, wobei jeder Rechner (P₁ bis P₅) ein individuell zugeordnetes CRC-Polynom verwendet, daß jeder Rechner (P₁ bis P₅) seine Daten in einer ersten Runde an die vier anderen der Rechner (P₁ bis P₅) sendet, in einer zweiten Runde jeder Rechner (P₁ bis P₅) die empfangenen Daten aus der ersten Runde jeweils unverändert an diejenigen drei der Rechner (P₁ bis P₅) weitersendet, die nicht Quelle dieser Daten sind und in einer dritten Runde jeder Rechner (P₁ bis P₅) die in der zweiten Runde empfangenen Daten unverändert an diejenigen zwei der Rechner (P₁ bis P₅) weitersendet, die nicht Quelle dieser Daten in der ersten und in der zweiten Runde des Datenaustausches waren und daß in einer ersten Auswertung jeweils aus den Quell- und den zwei Zieldaten der dritten Runde, die von der gleichen Quelle in der zweiten und ersten Runde stammen, in jedem Rechner (P₁ bis P₅) 4*3=12 erste Ergebnisse gebildet werden, die jeweils dann einen gültigen Wert besitzen, wenn die als CRC-fehlerfrei erkannten Daten gleich sind und wenigstens ein CRC-fehlerfreier Wert empfangen wurde und in jedem anderen Fall einen ungültigen Wert erhalten, und in einer zweiten Auswertung in jedem Rechner (P₁ bis P₅) vier Zwischenergebnisse ermittelt werden, indem von den Daten, die aus der ersten Runde und den vier Ergebnissen aus der ersten Auswertung, die jeweils vom gleichen Rechner (P₁ bis P₅) als Quelle der ersten Runde stammen, die dann einen gültigen Wert erhalten, wenn alle gültigen und CRC-fehlerfreien Daten gleich sind und die Anzahl der gültigen Daten und CRC-fehlerfreien Daten mindestens zwei beträgt, wobei sich die für alle der Rechner (P₁ bis P₅), die fehlerfrei sind, die endgültigen Anfangsdaten dann aus dem Mittelwert der eigenen Daten und den vier Zwischenergebnissen aus der zweiten Auswertung ergibt, wobei in jedem Rechner zu stark abweichende Werte aus der Mittelwertbidung eliminiert werden,
daß zur Verkürzung des Ablaufes im fehlerfreien Fall und in Fällen einfacher Fehler nach der ersten Runde des Datenaustausches ein vorläufiger Mittelwert von jedem Rechner (P₁ bis P₅) gebildet wird, der in einer ersten Zwischenrunde von jedem Rechner (P₁ bis P₅) an jeden anderen der Rechner (P₁ bis P₅) übertragen wird und daß die Mehrheit dieser fünf Mittelwerte für jeden Rechner (P₁ bis P₅) dann bereits gültige Anfangsdaten darstellen, wenn wenigstens vier der fünf Rechner (P1 bis P5) mindestens drei gleiche Daten zur Mittelwertbildung hatten, indem bei der Mittelwertsbildung die Anzahl gleicher Daten gezählt wird und diese Zahl in einer zweiten Zwischenrunde wiederum zwischen allen Rechnern (P₁ bis P₅) ausgetauscht wird, so daß jeder Rechner (P₁ bis P₅) die Gültigkeit dadurch ermittelt, daß er wenigstens viermal eine Zahl gleich oder größer als drei in der zweiten Zwischenrunde empfangen hat und anderenfalls die vollständige Auswertung nach der ersten Runde des Datenaustausches fortsetzt,
und daß alle Schritte des Datenaustausches von alle Rechnern (P₁ bis P₅) parallel in der gleichen Weise durchgeführt werden, indem die Vernetzung der Rechner (P₁ bis P₅) so erfolgt, daß bei zyklischer Anordnung der Rechner (P₁ bis P₅) die Verbindung zum darauffolgenden Rechner über einen ersten Anschluß (a), die Verbindung zum übernächsten Rechner über einen zweiten Anschluß (b), die Verbindung zum dritten Rechner über einen dritten Anschluß (c) und die Verbindung zum vierten Rechner über einen vierten Anschluß (d) hergestellt wird.
daß fünf Rechner (P₁ bis P₅) über bidirektionale Verbindungswege (a-d, b-c, c-b, d-a) untereinander vollständig vernetzt sind, daß die Gewinnung der fehlertoleranten Anfangsdaten durch einen Austausch von Daten in drei Runden derart erfolgt, daß die Daten vor dem ersten Senden mit einem zyklischen Kontrollzeichen ergänzt werden, wobei jeder Rechner (P₁ bis P₅) ein individuell zugeordnetes CRC-Polynom verwendet, daß jeder Rechner (P₁ bis P₅) seine Daten in einer ersten Runde an die vier anderen der Rechner (P₁ bis P₅) sendet, in einer zweiten Runde jeder Rechner (P₁ bis P₅) die empfangenen Daten aus der ersten Runde jeweils unverändert an diejenigen drei der Rechner (P₁ bis P₅) weitersendet, die nicht Quelle dieser Daten sind und in einer dritten Runde jeder Rechner (P₁ bis P₅) die in der zweiten Runde empfangenen Daten unverändert an diejenigen zwei der Rechner (P₁ bis P₅) weitersendet, die nicht Quelle dieser Daten in der ersten und in der zweiten Runde des Datenaustausches waren und daß in einer ersten Auswertung jeweils aus den Quell- und den zwei Zieldaten der dritten Runde, die von der gleichen Quelle in der zweiten und ersten Runde stammen, in jedem Rechner (P₁ bis P₅) 4*3=12 erste Ergebnisse gebildet werden, die jeweils dann einen gültigen Wert besitzen, wenn die als CRC-fehlerfrei erkannten Daten gleich sind und wenigstens ein CRC-fehlerfreier Wert empfangen wurde und in jedem anderen Fall einen ungültigen Wert erhalten, und in einer zweiten Auswertung in jedem Rechner (P₁ bis P₅) vier Zwischenergebnisse ermittelt werden, indem von den Daten, die aus der ersten Runde und den vier Ergebnissen aus der ersten Auswertung, die jeweils vom gleichen Rechner (P₁ bis P₅) als Quelle der ersten Runde stammen, die dann einen gültigen Wert erhalten, wenn alle gültigen und CRC-fehlerfreien Daten gleich sind und die Anzahl der gültigen Daten und CRC-fehlerfreien Daten mindestens zwei beträgt, wobei sich die für alle der Rechner (P₁ bis P₅), die fehlerfrei sind, die endgültigen Anfangsdaten dann aus dem Mittelwert der eigenen Daten und den vier Zwischenergebnissen aus der zweiten Auswertung ergibt, wobei in jedem Rechner zu stark abweichende Werte aus der Mittelwertbidung eliminiert werden,
daß zur Verkürzung des Ablaufes im fehlerfreien Fall und in Fällen einfacher Fehler nach der ersten Runde des Datenaustausches ein vorläufiger Mittelwert von jedem Rechner (P₁ bis P₅) gebildet wird, der in einer ersten Zwischenrunde von jedem Rechner (P₁ bis P₅) an jeden anderen der Rechner (P₁ bis P₅) übertragen wird und daß die Mehrheit dieser fünf Mittelwerte für jeden Rechner (P₁ bis P₅) dann bereits gültige Anfangsdaten darstellen, wenn wenigstens vier der fünf Rechner (P1 bis P5) mindestens drei gleiche Daten zur Mittelwertbildung hatten, indem bei der Mittelwertsbildung die Anzahl gleicher Daten gezählt wird und diese Zahl in einer zweiten Zwischenrunde wiederum zwischen allen Rechnern (P₁ bis P₅) ausgetauscht wird, so daß jeder Rechner (P₁ bis P₅) die Gültigkeit dadurch ermittelt, daß er wenigstens viermal eine Zahl gleich oder größer als drei in der zweiten Zwischenrunde empfangen hat und anderenfalls die vollständige Auswertung nach der ersten Runde des Datenaustausches fortsetzt,
und daß alle Schritte des Datenaustausches von alle Rechnern (P₁ bis P₅) parallel in der gleichen Weise durchgeführt werden, indem die Vernetzung der Rechner (P₁ bis P₅) so erfolgt, daß bei zyklischer Anordnung der Rechner (P₁ bis P₅) die Verbindung zum darauffolgenden Rechner über einen ersten Anschluß (a), die Verbindung zum übernächsten Rechner über einen zweiten Anschluß (b), die Verbindung zum dritten Rechner über einen dritten Anschluß (c) und die Verbindung zum vierten Rechner über einen vierten Anschluß (d) hergestellt wird.
2. Fehlertolerantes Rechnersystem, das entsprechend einem
Pipelinesystem aus zwei Stufen mit jeweils mehreren Rechnern
besteht, von denen die Rechner der ersten Stufe einen Eingang
für Datenquellen haben und dessen fehlerfreie Rechner bei
zwei beliebigen Fehlern in der einer Stufe und bei einem
beliebigen Fehler in der jeweils anderen Stufe aus
toleranzbehafteten Eingangsdaten gleiche und fehlerfreie
Ergebnisse berechnen, dadurch gekennzeichnet,
daß fünf Rechner (P₁ bis P₅) in der ersten Stufe und fünf Rechner (P₁′ bis P₅′) in der zweiten Stufe vorhanden sind, die jeweils zu einem Ring über bidirektionale Verbindungswege (a-d, d-a) zusammengeschaltet sind und daß je ein bidirektionaler Verbindungsweg (b-c) von einem der Rechner (P₁ bis P₅) der ersten Stufe zu dem jeweils nachfolgenden der Rechner (P₁′ bis P₅′) der zweiten Stufe und je ein Verbindungsweg (c-b) zu dem jeweils vorhergehenden der Rechner (P₁′ bis P₅′) der zweiten Stufe vorhanden ist, daß für die Erzeugung der Fehlertoleranz mit einem Austausch von Daten gearbeitet wird, die vor dem ersten Senden mit einem zyklischen Kontrollzeichen ergänzt werden, wobei jeder Rechner ein ihm individuell zugeordnetes CRC-Polynom verwendet,
daß für den Datenaustausch innerhalb einer Stufe die Übertragungen zum jeweils benachbarten der Rechner (P₁ bis P₅) direkt und zu den anderen der Rechner (P₁ bis P₅) über Rechner (P₁′ bis P₅′) der zweiten Stufe erfolgen, die dadurch fehlertolerant sind, daß die Übertragungen doppelt ausgeführt werden, indem sie in der einen Richtung über einen Rechner (P₁′ bis P₅′) der zweiten Stufe und in der anderen Richtung über zwei nebeneinanderliegende Rechner (P₁′ bis P₅′) der zweiten Stufe geführt werden und der Datenaustausch zu den nicht direkt erreichbaren Rechnern dadurch überprüft wird, daß die empfangenen Daten dann einen gültigen Wert erhalten, wenn die CRC-fehlerfreien Daten gleich sind und die Anzahl der CRC-fehlerfrei empfangenen Daten wenigstens eins ist,
daß für die Übertragung von der ersten Stufe zur zweiten Stufe jeder Rechner (P₁′ bis P₅′) der zweiten Stufe das Ergebnis von jedem Rechner (P₁ bis P₅) der ersten Stufe erhält, indem jeder Rechner (P₁′ bis P₅′) der zweiten Stufe die Ergebnisse des vorhergehenden und des nachfolgenden Rechners (P₁ bis P₅) der ersten Stufe direkt empfängt und die Ergebnisse der anderen Rechner 3-Fehler-tolerant über die vier möglichen, voneinander völlig unabhängigen Wege vierfach erhält und diese Ergebnisse auswertet, indem das Ergebnis aller von einem Rechner kommenden Daten dann einen gültigen Wert erhält, wenn alle CRC-fehlerfreien Daten gleich sind und die Anzahl der CRC-fehlerfrei empfangenen Daten wenigstens eins ist und aus diesen fünf Ergebnissen durch Mehrheitsentscheidung über die gleichen Daten bei allen fehlerfreien Rechnern gleiche und fehlerfreie Anfangsdaten für die zweite Stufe berechnet werden,
und daß die Rechner (P₁ bis P₅, P₁′ bis P₅′) in jeder Stufe alle Datenaustauschfunktionen parallel und in der gleichen Weise ausführen, indem die Verbindung eines Rechners (P₁ bis P₅ bzw. P₁′ bis P₅′) der einen Stufe zu dem darauffolgenden der Rechner (P₁ bis P₅ bzw. P₁′ bis P₅′) dieser Stufe über einen ersten Anschluß (a), zu dem darauffolgenden der Rechner (P₁′ bis P₅′ bzw. P₁ bis P₅) der jeweils anderen Stufe über einen zweiten Anschluß (b), zu dem davorliegenden der Rechner (P₁′ bis P₅′ bzw. P₁ bis P₅) der jeweils anderen Stufe über einen dritten Anschluß (c) und zu dem davorliegenden der Rechner (P₁ bis P₅ bzw. P₁′ bis P₅′) der gleichen Stufe über einen vierten Anschluß (d) erfolgt.
daß fünf Rechner (P₁ bis P₅) in der ersten Stufe und fünf Rechner (P₁′ bis P₅′) in der zweiten Stufe vorhanden sind, die jeweils zu einem Ring über bidirektionale Verbindungswege (a-d, d-a) zusammengeschaltet sind und daß je ein bidirektionaler Verbindungsweg (b-c) von einem der Rechner (P₁ bis P₅) der ersten Stufe zu dem jeweils nachfolgenden der Rechner (P₁′ bis P₅′) der zweiten Stufe und je ein Verbindungsweg (c-b) zu dem jeweils vorhergehenden der Rechner (P₁′ bis P₅′) der zweiten Stufe vorhanden ist, daß für die Erzeugung der Fehlertoleranz mit einem Austausch von Daten gearbeitet wird, die vor dem ersten Senden mit einem zyklischen Kontrollzeichen ergänzt werden, wobei jeder Rechner ein ihm individuell zugeordnetes CRC-Polynom verwendet,
daß für den Datenaustausch innerhalb einer Stufe die Übertragungen zum jeweils benachbarten der Rechner (P₁ bis P₅) direkt und zu den anderen der Rechner (P₁ bis P₅) über Rechner (P₁′ bis P₅′) der zweiten Stufe erfolgen, die dadurch fehlertolerant sind, daß die Übertragungen doppelt ausgeführt werden, indem sie in der einen Richtung über einen Rechner (P₁′ bis P₅′) der zweiten Stufe und in der anderen Richtung über zwei nebeneinanderliegende Rechner (P₁′ bis P₅′) der zweiten Stufe geführt werden und der Datenaustausch zu den nicht direkt erreichbaren Rechnern dadurch überprüft wird, daß die empfangenen Daten dann einen gültigen Wert erhalten, wenn die CRC-fehlerfreien Daten gleich sind und die Anzahl der CRC-fehlerfrei empfangenen Daten wenigstens eins ist,
daß für die Übertragung von der ersten Stufe zur zweiten Stufe jeder Rechner (P₁′ bis P₅′) der zweiten Stufe das Ergebnis von jedem Rechner (P₁ bis P₅) der ersten Stufe erhält, indem jeder Rechner (P₁′ bis P₅′) der zweiten Stufe die Ergebnisse des vorhergehenden und des nachfolgenden Rechners (P₁ bis P₅) der ersten Stufe direkt empfängt und die Ergebnisse der anderen Rechner 3-Fehler-tolerant über die vier möglichen, voneinander völlig unabhängigen Wege vierfach erhält und diese Ergebnisse auswertet, indem das Ergebnis aller von einem Rechner kommenden Daten dann einen gültigen Wert erhält, wenn alle CRC-fehlerfreien Daten gleich sind und die Anzahl der CRC-fehlerfrei empfangenen Daten wenigstens eins ist und aus diesen fünf Ergebnissen durch Mehrheitsentscheidung über die gleichen Daten bei allen fehlerfreien Rechnern gleiche und fehlerfreie Anfangsdaten für die zweite Stufe berechnet werden,
und daß die Rechner (P₁ bis P₅, P₁′ bis P₅′) in jeder Stufe alle Datenaustauschfunktionen parallel und in der gleichen Weise ausführen, indem die Verbindung eines Rechners (P₁ bis P₅ bzw. P₁′ bis P₅′) der einen Stufe zu dem darauffolgenden der Rechner (P₁ bis P₅ bzw. P₁′ bis P₅′) dieser Stufe über einen ersten Anschluß (a), zu dem darauffolgenden der Rechner (P₁′ bis P₅′ bzw. P₁ bis P₅) der jeweils anderen Stufe über einen zweiten Anschluß (b), zu dem davorliegenden der Rechner (P₁′ bis P₅′ bzw. P₁ bis P₅) der jeweils anderen Stufe über einen dritten Anschluß (c) und zu dem davorliegenden der Rechner (P₁ bis P₅ bzw. P₁′ bis P₅′) der gleichen Stufe über einen vierten Anschluß (d) erfolgt.
3. Fehlertolerantes Rechnersystem, das entsprechend einem
Pipelinesystem aus mehreren Stufen mit jeweils mehreren
Rechnern besteht, wobei jeder Rechner einen Anschluß zum
Empfangen von Eingangsdaten und einen Anschluß zum Senden der
Ergebnisse hat und dessen fehlerfreie Rechner aus
toleranzbehafteten Eingangsdaten fehlerfreie Ergebnisse
berechnen, wobei in jeder Stufe zwei beliebige Fehler
toleriert werden können, dadurch gekennzeichnet,
daß in jeder Stufe fünf Rechner (P₁ bis P₅, P₁′ bis P₅′) über bidirektionale Datenwege (a-d, b-c, c-b, d-a) untereinander vollständig vernetzt sind und jeder Rechner (P₁ bis P₅) der ersten Stufe mit dem entsprechenden Rechner (P₁′ bis P₅′) verbunden ist, daß in der ersten Stufe aus den toleranzbehafteten Eingangsdaten in der Mehrheit gleiche und fehlerfreie Anfangsdaten berechnet werden, indem jeder der Rechner (P₁ bis P₅) der ersten Stufe seine eigenen Daten mit einem zyklischen Kontrollzeichen ergänzt, die Daten in drei Runden austauscht, zwei Auswertungen durchführt sowie über die vier Zwischenergebnisse und die eigenen Daten die Mehrheitsentscheidung durchführt und daß die Ergebnisse der Berechnungen von jedem Rechner (P₁ bis P₅) der ersten Stufe mit zyklischen Kontrollzeichen ergänzt und von jedem Rechner (P₁ bis P₅) der ersten Stufe zu jedem Rechner (P₁′ bis P₅′) der zweiten Stufe über fünf unabhängige Wege übertragen werden, indem jeder der Rechner (P₁ bis P₅) der ersten Stufe das Ergebnis seiner Berechnung an alle anderen der Rechner (P₁ bis P₅) der ersten Stufe überträgt, daß jeder der Rechner (P₁ bis P₅) der ersten Stufe sein Ergebnis und die Ergebnisse der anderen der Rechner (P₁ bis P₅) zu dem ihm zugeordneten der Rechner (P₁′ bis P₅′) der zweiten Stufe überträgt und daß jeder Rechner (P₁′ bis P₅′) der zweiten Stufe alle zu ihm übertragenen Ergebnisse zu allen anderen der Rechner (P₁′ bis P₅′) der zweiten Stufe überträgt und daß die Rechner (P₁′ bis P₅′) der zweiten Stufe die richtigen Daten aus den je fünffach übertragenen Ergebnissen der Rechner (P₁ bis P₅) der ersten Stufe ermitteln, indem in einem ersten Schritt jeweils alle Ergebnisse, die von einem der Rechner (P₁ bis P₅) der ersten Stufe als Quelle kommen auf fehlerfreie Übertragung durch Nachrechnung des zyklischen Kontrollzeichens überprüft werden und daß aus diesen Werten dann ein gültiges Ergebnis dieses Rechners (P1 bis P₅) gebildet wird, wenn alle Werte mit fehlerfreiem Kontrollzeichen gleich sind und wenigstens einer der Werte mit fehlerfreiem Kontrollzeichen übertragen wurde und in jedem anderen Fall einen ungültigen Wert erhalten und daß in einem zweiten Schritt die gültigen Anfangsdaten der zweiten Stufe aus der Mehrheitsentscheidung aller gültigen Ergebnisse der fünf Rechner (P₁ bis P₅) der ersten Stufe gebildet wird,
und daß alle Schritte des Datenaustausches von allen Rechnern (P₁ bis P₅, P₁′ bis P₅′) einer Stufe parallel und in der gleichen Weise ausgeführt werden, indem die Vernetzung der Rechner (P₁ bis P₅, P₁′ bis P₅′) in jeder Stufe so erfolgt, daß bei zyklischer Anordnung der Rechner (P₁ bis P₅, P₁′ bis P₅′) die Verbindung zum darauffolgenden der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen ersten Anschluß (a), die Verbindung zum übernächsten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen zweiten Anschluß (b), die Verbindung zum dritten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen dritten Anschluß (c) und die Verbindung zum vierten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen vierten Anschluß (d) hergestellt wird.
daß in jeder Stufe fünf Rechner (P₁ bis P₅, P₁′ bis P₅′) über bidirektionale Datenwege (a-d, b-c, c-b, d-a) untereinander vollständig vernetzt sind und jeder Rechner (P₁ bis P₅) der ersten Stufe mit dem entsprechenden Rechner (P₁′ bis P₅′) verbunden ist, daß in der ersten Stufe aus den toleranzbehafteten Eingangsdaten in der Mehrheit gleiche und fehlerfreie Anfangsdaten berechnet werden, indem jeder der Rechner (P₁ bis P₅) der ersten Stufe seine eigenen Daten mit einem zyklischen Kontrollzeichen ergänzt, die Daten in drei Runden austauscht, zwei Auswertungen durchführt sowie über die vier Zwischenergebnisse und die eigenen Daten die Mehrheitsentscheidung durchführt und daß die Ergebnisse der Berechnungen von jedem Rechner (P₁ bis P₅) der ersten Stufe mit zyklischen Kontrollzeichen ergänzt und von jedem Rechner (P₁ bis P₅) der ersten Stufe zu jedem Rechner (P₁′ bis P₅′) der zweiten Stufe über fünf unabhängige Wege übertragen werden, indem jeder der Rechner (P₁ bis P₅) der ersten Stufe das Ergebnis seiner Berechnung an alle anderen der Rechner (P₁ bis P₅) der ersten Stufe überträgt, daß jeder der Rechner (P₁ bis P₅) der ersten Stufe sein Ergebnis und die Ergebnisse der anderen der Rechner (P₁ bis P₅) zu dem ihm zugeordneten der Rechner (P₁′ bis P₅′) der zweiten Stufe überträgt und daß jeder Rechner (P₁′ bis P₅′) der zweiten Stufe alle zu ihm übertragenen Ergebnisse zu allen anderen der Rechner (P₁′ bis P₅′) der zweiten Stufe überträgt und daß die Rechner (P₁′ bis P₅′) der zweiten Stufe die richtigen Daten aus den je fünffach übertragenen Ergebnissen der Rechner (P₁ bis P₅) der ersten Stufe ermitteln, indem in einem ersten Schritt jeweils alle Ergebnisse, die von einem der Rechner (P₁ bis P₅) der ersten Stufe als Quelle kommen auf fehlerfreie Übertragung durch Nachrechnung des zyklischen Kontrollzeichens überprüft werden und daß aus diesen Werten dann ein gültiges Ergebnis dieses Rechners (P1 bis P₅) gebildet wird, wenn alle Werte mit fehlerfreiem Kontrollzeichen gleich sind und wenigstens einer der Werte mit fehlerfreiem Kontrollzeichen übertragen wurde und in jedem anderen Fall einen ungültigen Wert erhalten und daß in einem zweiten Schritt die gültigen Anfangsdaten der zweiten Stufe aus der Mehrheitsentscheidung aller gültigen Ergebnisse der fünf Rechner (P₁ bis P₅) der ersten Stufe gebildet wird,
und daß alle Schritte des Datenaustausches von allen Rechnern (P₁ bis P₅, P₁′ bis P₅′) einer Stufe parallel und in der gleichen Weise ausgeführt werden, indem die Vernetzung der Rechner (P₁ bis P₅, P₁′ bis P₅′) in jeder Stufe so erfolgt, daß bei zyklischer Anordnung der Rechner (P₁ bis P₅, P₁′ bis P₅′) die Verbindung zum darauffolgenden der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen ersten Anschluß (a), die Verbindung zum übernächsten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen zweiten Anschluß (b), die Verbindung zum dritten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen dritten Anschluß (c) und die Verbindung zum vierten der Rechner (P₁ bis P₅, P₁′ bis P₅′) der gleichen Stufe über einen vierten Anschluß (d) hergestellt wird.
4. Fehlertolerantes Rechnersystem nach Anspruch 1, 2 oder 3,
dadurch gekennzeichnet, daß die Verbindungswege
(a-d, b-c, c-b, d-a) zwischen den Rechnern (P₁ bis P₅,
P₁′ bis P₅′) sowie von dem Rechnersystem zu den Ein- und
Ausgangseinheiten bitseriell arbeiten und daß zur
elektrischen Trennung der Rechner (P₁ bis P₅, P₁′ bis P₅′)
untereinander und zu den Ein- und Ausgangseinheiten
Optokoppler zwischengeschaltet sind.
5. Fehlertolerantes Rechnersystem nach einem der Ansprüche
1 bis 4, dadurch gekennzeichnet, daß Datenquellen und -senken
für die Ein- und Ausgabe mit Ports verbunden werden, die an
das Bussystem der Rechner (P₁ bis P₅, P₁′ bis P₅′)
angeschlossen sind.
6. Fehlertolerantes Rechnersystem nach Anspruch 4 oder 5,
dadurch gekennzeichnet, daß die Verarbeitungseinheit jedes
der Rechner (P₁ bis P₅, P₁′ bis P₅′ mit Transputern
aufgebaut ist und die Verbindungen (a-d, b-c, c-b, d-a) an
die Links angeschlossen werden.
7. Fehlertolerantes Rechnersystem nach Anspruch 6, dadurch
gekennzeichnet, daß zwischen Datenquellen und Datensenken mit
serieller Übertragung und die Bussysteme der Rechner
(P₁ bis P₅, P₁′ bis P₅′) Linkadapter geschaltet werden.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944412310 DE4412310A1 (de) | 1994-04-09 | 1994-04-09 | Fehlertolerantes Rechnersystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944412310 DE4412310A1 (de) | 1994-04-09 | 1994-04-09 | Fehlertolerantes Rechnersystem |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4412310A1 true DE4412310A1 (de) | 1995-11-30 |
Family
ID=6515032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19944412310 Withdrawn DE4412310A1 (de) | 1994-04-09 | 1994-04-09 | Fehlertolerantes Rechnersystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4412310A1 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19742918A1 (de) * | 1997-09-29 | 1999-04-01 | Cit Alcatel | Verfahren zum Austausch von Datenpaketen innerhalb eines sicheren Mehrrechnersystems |
DE19745963A1 (de) * | 1997-10-17 | 1999-04-22 | Cit Alcatel | Rechnerknotennetzwerk für den Datenaustausch zwischen Rechnerknoten in sicherheitskritischen Anwendungen sowie Verfahren hierfür |
EP1059835A2 (de) * | 1999-06-11 | 2000-12-13 | BODENSEEWERK GERÄTETECHNIK GmbH | Datenübermittlung zwischen Modulen eines elektrischen Geräts |
EP1193949A2 (de) * | 2000-08-21 | 2002-04-03 | Alcatel | Rechnersystem mit mehrkanaligen, signaltechnish sicheren Ubertragung |
-
1994
- 1994-04-09 DE DE19944412310 patent/DE4412310A1/de not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19742918A1 (de) * | 1997-09-29 | 1999-04-01 | Cit Alcatel | Verfahren zum Austausch von Datenpaketen innerhalb eines sicheren Mehrrechnersystems |
DE19745963A1 (de) * | 1997-10-17 | 1999-04-22 | Cit Alcatel | Rechnerknotennetzwerk für den Datenaustausch zwischen Rechnerknoten in sicherheitskritischen Anwendungen sowie Verfahren hierfür |
EP1059835A2 (de) * | 1999-06-11 | 2000-12-13 | BODENSEEWERK GERÄTETECHNIK GmbH | Datenübermittlung zwischen Modulen eines elektrischen Geräts |
US6651112B1 (en) | 1999-06-11 | 2003-11-18 | Bodenseewerk Geratetechnik Gmbh | Data transmission between connected modules wherein each module separately and directly communication with each other modules |
EP1059835B1 (de) * | 1999-06-11 | 2004-01-02 | BODENSEEWERK GERÄTETECHNIK GmbH | Datenübermittlung zwischen Modulen eines elektrischen Geräts |
EP1193949A2 (de) * | 2000-08-21 | 2002-04-03 | Alcatel | Rechnersystem mit mehrkanaligen, signaltechnish sicheren Ubertragung |
EP1193949A3 (de) * | 2000-08-21 | 2003-12-10 | Alcatel | Rechnersystem mit mehrkanaligen, signaltechnish sicheren Ubertragung |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60309928T2 (de) | Verfahren zur erhöhung der sicherheitsintegritätsstufe eines kontrollsystems | |
EP0512240B1 (de) | System zur Steuerung eines Kraftfahrzeuges | |
DE2908316C2 (de) | Modular aufgebaute Multiprozessor-Datenverarbeitungsanlage | |
DE2724409A1 (de) | Datenverarbeitungssystem | |
DE3840969A1 (de) | Integrierte halbleiter-schaltungsvorrichtung | |
DE102017210156B4 (de) | Vorrichtung und Verfahren zum Ansteuern eines Fahrzeugmoduls | |
WO2008040641A2 (de) | Verfahren und vorrichtung zur fehlerverwaltung | |
DE19831720A1 (de) | Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks | |
EP4235323A2 (de) | Verfahren und vorrichtung zur automatischen validierung von sicherheitsfunktionen an einem modular aufgebauten sicherheitssystem | |
DE4412310A1 (de) | Fehlertolerantes Rechnersystem | |
DE2441351C2 (de) | Selbstprüfende Fehlerprüfschaltung | |
EP3273352B1 (de) | Computerisiertes system | |
DE1125208B (de) | Elektrisches Vergleichsschaltungssystem | |
DE102015222321A1 (de) | Verfahren zum Betrieb eines Mehrkernprozessors | |
EP0246218B1 (de) | Fehlertolerantes Datenverarbeitungssystem | |
DE1187403B (de) | Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden | |
DE19905841A1 (de) | Vorrichtung zum Verarbeiten sicherheitsrelevanter Daten | |
DE10302456A1 (de) | Vorrichtung für sicherheitskritische Anwendungen und sichere Elektronik-Architektur | |
EP2198349A1 (de) | Verfahren zum beschreiben eines verhaltens einer technischen einrichtung | |
DE1946365A1 (de) | Einrichtung zum Erkennen oder Korrigieren von einzelnen Blockfehlern | |
DE1937259C3 (de) | Selbstprüf ende Fehlererkennungsschaltung | |
EP1050814A2 (de) | Fehlertolerantes System nach byzantinem Algorithmus | |
WO2005001692A2 (de) | Verfahren und vorrichtung zur überwachung eines verteilten systems | |
EP0193711B1 (de) | Schaltungsanordnung zur Funktionsüberwachung eines arithmetische Operationen ausführenden Rechenwerkes anhand von Paritätsbits | |
DE19619886C2 (de) | Steuer- und Datenübertragungsanlage mit teilweise redundantem Bussystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: CINDATEC INGENIEURTECHNISCHE DIENSTE GMBH COMPUTER |
|
8139 | Disposal/non-payment of the annual fee |