DE4401168A1 - Vorrichtung zur fehlertoleranten Ausführung von Programmen - Google Patents

Vorrichtung zur fehlertoleranten Ausführung von Programmen

Info

Publication number
DE4401168A1
DE4401168A1 DE4401168A DE4401168A DE4401168A1 DE 4401168 A1 DE4401168 A1 DE 4401168A1 DE 4401168 A DE4401168 A DE 4401168A DE 4401168 A DE4401168 A DE 4401168A DE 4401168 A1 DE4401168 A1 DE 4401168A1
Authority
DE
Germany
Prior art keywords
computing units
units
redundancy
computing
transputer
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.)
Granted
Application number
DE4401168A
Other languages
English (en)
Other versions
DE4401168C2 (de
Inventor
Gerhard Urban
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.)
Airbus DS GmbH
Original Assignee
ERNO RAUMFAHRTTECHNIK GMBH 28199 BREMEN DE
Erno Raumfahrttechnik 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 ERNO RAUMFAHRTTECHNIK GMBH 28199 BREMEN DE, Erno Raumfahrttechnik GmbH filed Critical ERNO RAUMFAHRTTECHNIK GMBH 28199 BREMEN DE
Priority to DE4401168A priority Critical patent/DE4401168C2/de
Publication of DE4401168A1 publication Critical patent/DE4401168A1/de
Application granted granted Critical
Publication of DE4401168C2 publication Critical patent/DE4401168C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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

Description

Die Erfindung betrifft eine Vorrichtung zur fehler­ toleranten Ausführung von Programmen, insbesondere zur Ausführung von Digitalrechnerprogrammen, die eine Mehrzahl von Recheneinheiten aufweist, die zur Bereit­ stellung einer Fehlertoleranz mit einer sie parallel betreibenden Steuerung verbunden sind und bei der jede der als Redundanzeinheiten ausgebildeten Recheneinhei­ ten über eine Schnittstelle mit einem dreifachredundan­ ten Datenbus verbunden ist und eine redundante Prozeß­ peripherie an den Datenbus angeschlossen ist.
Derartige Vorrichtungen sind als sogenannte Parallel­ rechner bekannt und ermöglichen zum einen eine Erhöhung einer Rechengeschwindigkeit und zum anderen die Reali­ sierung einer Fehlertoleranz bei einem Ausfall von Kom­ ponenten. Beispielsweise kann bei drei parallel ge­ schalteten Rechnern und paralleler Durchführung der gleichen Rechenoperationen verglichen werden, ob alle Rechner zu einem gleichen Ergebnis gekommen sind. Weicht das Ergebnis des einen Rechners vom Ergebnis der beiden anderen Rechner ab, so wird dieses abweichende Ergebnis verworfen.
Bekannte fehlertolerante Architekturen für Rechenvor­ richtungen bestehen beispielsweise aus mehrfach vorhan­ denen, busorientierten Rechnerstrukturen. Eine Ver­ netzung kann über einen gemeinsamen Bus oder über zusätzliche serielle Datenübertragungskanäle erfolgen. Die Realisierung eines derartigen Konzeptes weist jedoch eine Mehrzahl von Nachteilen auf. Insbesondere liegt nur eine begrenzte Vernetzungsfähigkeit vor, da für die Durchführung der Kommunikation ein hoher Aufwand sowohl bezüglich der Hardware als auch bezüg­ lich des Betriebssystems getrieben werden muß. Darüber hinaus ist die Anzahl der Redundanzeinheiten durch die busorientierten Rechnerstrukturen begrenzt. Schließlich ist ganz generell ein hoher Aufwand an Hard- und Software erforderlich, der entsprechende Kosten zur Folge hat.
Aus der DE 39 18 962 A1 ist bereits ein Mehrrechner­ system bekannt, bei dem eine Mehrzahl von Prozessoren vorgesehen ist, die einen programmtechnischen Ablauf gleichzeitig ausführen. Zur Durchführung eines Auswahl­ verfahrens werden zusätzliche Ein- und Ausgabeanschalt­ baugruppen verwendet. Aufgrund einer gleichzeitigen Ausführung des gleichen Programmes auf mehreren Rechen­ einheiten ist es möglich, eine auftretende Fehlfunktion zu erkennen und diese zu korrigieren. Es ist jedoch nicht möglich, eine fehlerhafte Komponente zu isolieren bzw. zu deaktivieren.
In der Zeitschrift "Elektronik 13/1991", Seite 44 bis 50 wird beschrieben, daß grundsätzlich die Verwendung von Transputerknoten im Bereich von Parallelrechner­ strukturen bereits bekannt ist. Grundsätzlich ist auch eine Verwendung derartiger Transputerknoten zur Aus­ bildung von Redundanzstrukturen bereits beschrieben. Es wird eine Rücksetzlogik verwendet, bei der jeder Prozessor jeden anderen Prozessor in einer unmittel­ baren Umgebung zurücksetzen kann. Durch diese Ver­ kopplung ist es somit nicht möglich, eine zustands­ abhängige Isolierung einzelner Redundanzeinheiten vor­ zunehmen. Beim Auftreten von Fehlern ist vielmehr damit zu rechnen, daß ein fehlerhafter Prozessor auf die in seiner Umgebung befindlichen funktionsfähigen Pro­ zessoren einwirken kann.
Aufgabe der vorliegenden Erfindung ist es daher, eine Vorrichtung der einleitend genannten Art derart auszu­ bilden, daß eine hohe Vernetzungsfähigkeit und eine Verwendung einer großer Anzahl von Redundanzeinheiten ermöglicht wird.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß jede der Recheneinheiten im wesentlichen aus mindestens einem Transputerknoten besteht, daß zur schaltungs­ technischen Realisierung einer Redundanz entsprechend der byzantinischen Fehlertoleranz aus mindestens vier Recheneinheiten eine Redundanzgruppe ausgebildet ist und daß jede der Recheneinheiten innerhalb der Redundanzgruppe mit mindestens drei weiteren Rechen­ einheiten verbunden ist.
Durch diese Merkmalskombination ist eine nahezu belie­ bige Vernetzungsfähigkeit gegeben und es können vorgeb­ bare Anzahlen an Redundanzeinheiten verwendet werden. Darüber hinaus wird der erforderliche Aufwand an Hard- und Software reduziert. Durch die Kombination der aus Transputerknoten ausgebildeten Redundanzeinheiten und dem redundanten Datenbus ist es möglich, die Konfigura­ tion des Parallelrechners unabhängig von einem Prozeß­ interface vorzunehmen.
Zur Unterstützung des modularen Konstruktionsprinzips wird vorgeschlagen, daß der Datenbus seriell ausgebil­ det ist.
Eine redundante Anordnung der Recheneinheiten erfolgt dadurch, daß die Recheneinheiten eine Torus-Konfigura­ tion ausbilden.
Zur Ermöglichung eines Signalaustausches zwischen den Recheneinheiten wird vorgeschlagen, daß bitserielle Transputerverbindungen vorgesehen sind.
Zur Gewährleistung einer ausreichenden Kopplung der einzelnen Funktionsbaugruppen wird vorgeschlagen, daß die Transputerverbindungen differenziell ausgebildet sind.
Eine Entkopplung kann auch dadurch erfolgen, daß die Transputerverbindungen als Lichtwellenleiter ausgebil­ det sind.
Zur Bereitstellung von konfigurierbaren Anzahlen redun­ danter Gruppen von Recheneinheiten wird vorgeschlagen, daß die Recheneinheiten sowohl in einer horizontalen als auch in einer vertikalen Strukturierung angeordnet sind.
Eine zweckmäßige Anordnung besteht darin, daß maximal vier horizontal angeordnete Recheneinheiten sowie eine beliebige Anzahl vertikaler Recheneinheiten vorgesehen sind.
Durch die vorgeschlagene Merkmalskombination ist es möglich, eine Ausführung von Digitalrechnerprogrammen fehlertolerant durchzuführen. Fehlertoleranz bedeutet dabei insbesondere auch, daß mehrfach auftretende Fehler sowohl im Bereich des Digitalrechners als auch im Bereich der angeschlossenen Rechnerperipherie erkannt und korrigiert werden. Hierdurch ist es möglich, daß die gewünschte Funktion des Digital­ rechnerprogrammes auch im Fehlerfall erhalten bleibt.
In Abhängigkeit von der realisierten Komplexität der Verschaltung ist es möglich, einen beliebigen Redun­ danzgrad vorzugeben. Beim Auftreten eines Fehlers wird die vorgegebene Komplexität schrittweise abgebaut, so daß eine Redundanzreserve zur Verfügung steht, bis alle Redundanzen durch kompensierte Fehler abgebaut sind. Der vorgegebene Redundanzgrad ist durch das physika­ lische Vorhandensein der redundanten Komponenten bestimmt. Es ist somit nicht erforderlich, zur Er­ zeugung der Redundanz spezielle Software-Konfigura­ tionen zu realisieren.
Insbesondere ist es auch möglich, in Abhängigkeit von einer jeweiligen Anwendungssituation redundante Komponenten zu- bzw. abzuschalten. Bei einer ent­ sprechenden Erkennung einer Reduzierung der Redundanz­ reserve ist es somit möglich, zusätzliche Redundanz­ einheiten zu aktivieren, ohne daß diese während eines vorhergehenden Betriebes mit Betriebsenergie versorgt werden müßten.
Durch die vorgeschlagene Verknüpfung der Redundanz­ einheiten kann die byzantinische Fehlertoleranz besonders effektiv und kostengünstig realisiert werden. Unabhängig vom Ort des Auftretens des Fehlers wird der Fehler erkannt und das Ergebnis der Rechenoperationen durch Isolierung oder Deaktivierung der fehlerhaften Komponente korrigiert.
Im Gegensatz zu nach dem Stand der Technik bekannten redundanten Mehrrechnersystemen ist es möglich, standardisierte und normierte Feldbusse zu verwenden. Dies hat für einen Anwender den Vorteil, daß in großen Serien gefertigte preisgünstige Ein- und Ausgabeein­ heiten verwendet werden können und daß diese Einheiten von einer Vielzahl von Herstellern angeboten werden.
In der Zeichnung sind Ausführungsbeispiele der Erfin­ dung schematisch dargestellt. Es zeigen:
Fig. 1 ein Blockschaltbild einer aus Recheneinheiten ausgebildete Redundanzgruppe,
Fig. 2 ein detailliertes Blockschaltbild zum Aufbau einer Recheneinheit,
Fig. 3 ein Zeitdiagramm zur Veranschaulichung einer Zwangssynchronisierung der Recheneinheiten,
Fig. 4 die im Bereich jeder Recheneinheit realisier­ ten Datentabellen für einen zweifachen byzan­ tinischen Datenaustausch,
Fig. 5 den Aufbau von Datenfeldern nach dem Ausfall einer kompletten Recheneinheit,
Fig. 6 die Datenfelder nach dem Ausfall einer zweiten Recheneinheit,
Fig. 7 einen prinzipiellen Aufbau von peripheren Ein- und Ausgabeeinheiten,
Fig. 8 eine Prinzipskizze zur Veranschaulichung einer möglichen Parallelisierung von Programmab­ läufen auf mehreren Recheneinheiten,
Fig. 9 eine Verbindung der Ein- und Ausgabeeinheiten über genormte Feldbusse,
Fig. 10 ein Prinzipschaltbild zur Verdeutlichung der Anordnung der verwendeten Komponenten,
Fig. 11 eine Prinzipdarstellung zur Veranschaulichung möglicher Konfigurierungen.
Die in Fig. 10 stark schematisiert dargestellte Vor­ richtung zur Ausführung von Programmen besteht im wesentlichen aus Recheneinheiten (1), die als Trans­ puterknoten ausgebildet sind. Die Recheneinheiten (1) und Schnittstellen (2) sind an einen dreifachredundan­ ten Datenbus (3) angeschlossen. Der Datenbus (3) kann beispielsweise als Feldbus oder als MIL-Bus ausgebildet sein. Es sind bei dem in Fig. 10 dargestellten Aus­ führungsbeispiel jeweils Gruppen aus drei Rechenein­ heiten (1) gebildet, die miteinander verkoppelt sind. Darüber hinaus sind ein elektronischer Versorgungs­ schalter (4), ein erweiterter elektronischer Ver­ sorgungsschalter (5) sowie ein komplex aufgebauter Ver­ sorgungsschalter (6) vorgesehen. Der Versorgungs­ schalter (4) wird bei einem Anschluß eines störungs­ sicheren Gerätes, der Versorgungsschalter (5) zur Ermöglichung einer Ein-Fehler-Toleranz und der Versorgungsschalter (6) zur Ansteuerung der redundanten Recheneinheiten (1) derart eingesetzt, daß eine Zwei- Aus-Sechs-Überprüfung zur Eliminierung von maximal zwei auftretenden Fehlfunktionen möglich ist.
Die Recheneinheiten (1) sind jeweils mit einem inter­ nen Bus (7) versehen. An den internen Bus (7) sind ein I/O-Bauelement (18) sowie Funktionseinheiten (8, 9) an­ geschlossen. Die Funktionseinheit (8) bildet eine An­ kopplung an den Datenbus (3) und die Funktionseinheit (9) einen Controller aus.
Die Verbindung zwischen den jeweils einander zugeordne­ ten Recheneinheiten (1) ist als eine bitserielle Lei­ tung (10) ausgebildet. Hierdurch wird es ermöglicht, daß Schaltungsausfälle im Bereich einer der Rechenein­ heiten (1) nicht die Funktionsfähigkeit der anderen Recheneinheiten (1) beeinflußt. Insbesondere wird diese Isolierung der Funktionsfähigkeiten dadurch unter­ stützt, daß die bitseriellen Leitungen (10) als diffe­ renzielle Verbindungen oder als Lichtwellenleiter aus­ gebildet werden. Eine entsprechende Kopplung kann auch im Bereich der Schnittstellen (2) eingesetzt werden.
Über den Datenbus (3) erfolgt die Anbindung an externe Geräte, insbesondere an eine vorgesehene Peripherie. Als Vorrichtung für die Durchführung von Eingaben und Ausgaben wird eine Einheit benutzt, die sowohl die er­ forderlichen prozeßspezifischen Ein- und Ausgabefunkti­ onen enthält und darüber hinaus mit Hilfe der Parallel­ rechnerstruktur über den Datenbus (3) abgefragt und kommandiert werden kann. Die Ein- und Ausgabefunktionen können beispielsweise über Relais bzw. digitale Ein- oder Ausgaben bzw. analoge Ein- oder Ausgaben reali­ siert sein. Der Zugang der Parallelrechnerstruktur zu den jeweils zu verarbeitenden Prozeßsignalen erfolgt ausschließlich über diese Einheit, die im wesentlichen die Schnittstelle (2) ausbildet. Die Anzahl der ver­ wendbaren Einheiten wird lediglich durch die vorliegen­ den Busparameter des verwendeten seriellen Datenbusses (3) begrenzt. Es ist möglich, für jedes zu verwendende Prozeßinterface eine individuelle Anzahl von Einheiten vorgebbarer Ausführung zu verwenden. Die Vielfalt der verwendbaren Komponenten ist insbesondere bei einem Einsatz eines industriellen Feldbusses als Datenbus (3) umfangreich.
Aus der Darstellung in Fig. 11 ist ersichtlich, daß die aus den Recheneinheiten (1) aufgebaute Parallelrechner­ struktur als ein Prozessortorus konfiguriert ist. In Fig. 11 sind beispielhaft ein Quadruplex (11), ein Triplex (12) sowie ein Duplex (13) eingezeichnet. Die Steuerung erfolgt mit Hilfe einer Prozeßleitstelle (14) und die Anordnung einer Prozeßperipherie (15) kann bei­ spielsweise in einer MIL-Ausführung (16) oder in einer Feldbus-Ausführung (17) erfolgen. Grundsätzlich ist es denkbar, die in Fig. 11 eingezeichnete Prozeßperipherie (15) und die in Fig. 10 eingezeichneten Schnittstellen (2) zusammengefaßt auszubilden.
Zur Ausbildung des Prozessortorus ist insbesondere daran gedacht, eine Anordnung von bis zu vier horizon­ talen Recheneinheiten (1) und einer beliebigen Anzahl vertikaler Recheneinheiten (1) zu verwenden. Jeweils eine horizontale Gruppe von Recheneinheiten (1) stellt eine redundante Gruppe dar. Zur Ermöglichung einer parallelen Abarbeitung einer vorliegenden Automatisie­ rungsaufgabe werden mehrere redundante Gruppen von Recheneinheiten (1) vertikal miteinander kombiniert. Grundsätzlich ist es möglich, jede der redundanten Gruppen mit einem eigenen redundanten Datenbus (3) zu versehen.
Ein Verarbeitungsablauf kann beispielsweise derart vor­ gegeben werden, daß zur Realisierung einer Fehlertole­ ranzstrategie drei aktive, identische Prozesse mit einer Zwei-Aus-Drei-Abstimmung realisiert werden. Im Falle des Auftretens eines Fehlers wird automatisch auf die vorgesehene Reserveeinheit umgeschaltet. Es ist aber auch möglich, vier aktive, identische Prozesse mit byzantinischer Fehlertoleranz zu realisieren.
Insbesondere ist daran gedacht, eine jeweils zweck­ mäßige Zuteilung der redundanten Datenbusse zu den aktiven Prozessen automatisch durchzuführen. Als Be­ triebssystem sind insbesondere verteilte Systeme geeig­ net, die frei von zentralen Ressourcen sind.
Fig. 1 zeigt eine vereinfachte Darstellung einer aus vier Recheneinheiten aufgebauten Redundanzgruppe ent­ sprechend der grundsätzlichen Verschaltung gemäß Fig. 10. Die Recheneinheiten (1) sind untereinander über Redundanzschnittstellen (19) verbunden. Insbe­ sondere ist daran gedacht, zur Vermeidung einer elek­ trischen Übertragung von Fehlerzuständen die Redundanz­ schnittstellen (19) als Lichtwellenleiter-Schnitt­ stellen auszubilden. Zur Synchronisierung sind Fehler­ toleranztaktgeber (20) vorgesehen. Die Recheneinheiten (1) werden jeweils mit einem gleichen Digitalrechner­ programm geladen. Die Recheneinheiten (1) sind über bitserielle Punkt zu Punkt Verbindungen derart ver­ bunden, daß jede Recheneinheit (1) über die Redundanz­ schnittstellen (19) mit drei anderen Recheneinheiten (1) verbunden ist. Zur Ermöglichung einer Mehrfach­ fehlertoleranz kann diese beschriebene Verbindungs­ technik entsprechend erhöht werden. Bei einer vorge­ gebenen Anzahl zu tolerierender Fehler ergibt sich die Anzahl der erforderlichen Verbindungen als doppelte Fehleranzahl zuzüglich eins.
Entsprechend der byzantinischen Theorie tauschen die Recheneinheiten (1) ihre Daten untereinander aus. Durch die Realisierung der bitseriellen Punkt zu Punkt Ver­ bindungen ist es nicht erforderlich, die Daten über Register, einen gemeinsamen Datenbus oder Dualport­ speicher auszutauschen. Durch die Ausbildung der Ver­ bindungen als Lichtwellenleiter wird gleichzeitig eine galvanische Trennung bereitgestellt.
Ein detaillierter Aufbau der Recheneinheit (1) ist in Fig. 2 dargestellt. Das Kernstück bilden zwei Trans­ puterprozessoren (21, 22). Eine Taktung erfolgt über den Taktgeber (20), der an eine Synchronisationsschnitt­ stelle (23) angeschlossen ist. Zur Auswertung der Redundanzschnittstellen (19) ist eine Auswahleinheit (24).
Durch die Kombination der Transputerprozessoren (21, 22) und der Redundanzschnittstellen (19) unter Einbeziehung der Lichtleiterverbindungen ist es möglich, eine Daten­ rate von 20 Megabit pro Sekunde zu realisieren. Die Auswahleinheit (24) vergleicht ankommende Rücksetz­ signale der benachbarten Recheneinheiten. Falls zeit­ gleich drei Rücksetzsignale eintreffen, wird die ge­ samte Recheneinheit (1) inaktiv geschaltet. Dies be­ deutet, daß mindestens drei Recheneinheiten (1) eine vierte Recheneinheit als fehlerhaft erkennen müssen, um diese fehlerhafte Recheneinheit (1) zu deaktivieren. Die Rücksetzsignale werden mit einem speziellen Puls­ code-Verfahren über die Lichtwellenleiter gesendet. Es ist somit kein zusätzlicher Verdrahtungsaufwand er­ forderlich, und es kann eine galvanische Trennung der Recheneinheiten (1) gewährleistet werden. Der Trans­ puter (21) kann seinerseits Rücksetzsignale an alle benachbarten Recheneinheiten (1) versenden, falls eine fehlerhafte Komponente detektiert wurde. Im Bereich des Transputerprozessors (21) ist somit zweckmäßigerweise ein Fehlererkennungs- und Fehlerauswertungsverfahren implementiert.
Im Bereich des Transputerprozessors (22) läuft das vor­ gesehene Anwenderprogramm ab. Die Transputerprozessoren (21, 22) sind über Linkverbindungen miteinander ver­ koppelt.
In Fig. 3 ist der zeitliche Ablauf für eine Bearbeitung der zugeordneten Digitalrechnerprogramme veranschau­ licht. Durch die Aufteilung des Fehlerbehandlungsver­ fahrens auf den Transputerprozessor (21) und und des Anwenderprogramms auf den Transputerprozessor (22) ist es möglich, die Programme zeitlich parallel ablaufen zu laufen. Hieraus resultiert eine effiziente Realisierung des byzantinischen Fehlertoleranzverfahrens. Zusätzlich zu den Eingangs- und Ausgangssignalen wird auch der Systemzustand aus einem vorangegangenen Abtastzyklus verglichen und ausgewertet. Ein Fehler innerhalb der Recheneinheit wird somit im nächstfolgenden Abtast­ intervall detektiert.
Über einen Synchrontakt werden die Recheneinheiten zwangssynchronisiert. Dieser Synchronisationstakt ist in Fig. 3 als Puls dargestellt. Der Synchrontakt wirkt auf einen Interrupt-Eingang des Transputerprozessors (21). Hierdurch wird die Abfrage der Sensordaten inner­ halb einer Millisekunde vorgenommen.
Zusätzlich ist auch der Taktgeber (20) fehlertolerant ausgeführt. Jeder Recheneinheit (1) ist ein Taktgeber (20) zugeordnet. Über einen speziellen Algorithmus und über galvanisch getrennte Synchronisierungsleitungen werden die Taktgeber (20) ebenfalls nach dem byzan­ tinischen Fehlertoleranzverfahren synchronisiert. Der entsprechende Algorithmus kann in einem zugeordneten programmierbaren Logikbaustein implementiert sein.
In Fig. 4 sind Datentabellen (25) dargestellt, die im Bereich jeder der Recheneinheiten (1) zur Realisierung eines zweifachen byzantinischen Datenaustausches implementiert sind. Die Bezeichnung d (xx) hat hierbei die Bedeutung eines kompletten Datenfeldes. Es werden somit die erfaßten Sensordaten und die Systemzustands­ daten zusammengefaßt. Der erste Index kennzeichnet den Datenerzeuger, der zweite Index kennzeichnet den Daten­ übermittler. Es werden somit nicht lediglich Register­ inhalte verglichen, sondern es erfolgt ein Vergleich kompletter Datenfelder. Hierdurch können auch Konstant­ speicherstellen und Systemzustandsdaten im Anwender­ programm in die Vergleichsoperationen einbezogen werden. Es ist somit möglich, Bitfehler zu erkennen und zu maskieren. Die in Fig. 4 rechteckförmig umrandeten Datentabellen (25) müssen unabhängig von den Sensor­ werten bitgleich sein. Die Auswertung der Datensätze liefert Informationen darüber, in welcher Recheneinheit (1) ein Fehler aufgetreten ist. Mit einem speziellen Algorithmus, der diese Datensätze auswertet, ist jede Recheneinheit (1) in der Lage, eine andere fehlerhafte Recheneinheit (1) zu erkennen und diese mit dem Rück­ setzsignal zu deaktivieren.
Nach der Auswertung der umrandet eingezeichneten Daten­ tabellen (25) werden die Ergebnisse dreier vertikaler Datenfelder verglichen. Mit diesem zweiten Vergleich kann ein Sensorfehler erkannt und korrigiert werden. Die Vorrichtung ist somit ebenfalls in der Lage, Fehler innerhalb des Rechensystems unabhängig von Sensor­ fehlern zu erkennen und zu korrigieren, bzw. die fehlerhafte Recheneinheit (1) zu isolieren.
Fehler der Sensoren selber werden ebenfalls mit einem zwei aus drei Auswahlverfahren korrigiert. Es ist somit sichergestellt, daß die Anwendungs-Software im Bereich aller Recheneinheiten (1) mit identischen fehler­ korrigierten Sensorwerten rechnet.
Im Fig. 4 ist für einen ersten Datenaustausch ein durchgezeichneter erster Datenaustauschweg (26) ein­ getragen, und für einen zweiten Datenaustausch ist ein gestrichelt eingezeichneter zweiter Datenaustauschweg (27) vorgesehen.
In Fig. 5 ist die Anordnung gemäß Fig. 4 nach dem Aus­ fall einer kompletten Recheneinheit (1) dargestellt. In diesem Fall arbeitet die Vorrichtung weiter als ein Dreifachsystem mit einem zwei aus drei Vergleicher. Trotz des Ausfalles einer vollständigen Recheneinheit (1) sind aufgrund der byzantinischen Fehlererkennung noch Rechenfehler unabhängig von den Sensorwerten erkennbar. Es ist jedoch nicht mehr möglich, ein weitere fehlerhafte Recheneinheit (1) zu isolieren.
In Fig. 6 sind die Datenfelder entsprechend Fig. 4 und Fig. 5 nach dem Ausfall einer weiteren Recheneinheit (1) skizziert. Die Vorrichtung kann nunmehr noch als ein Zweifachsystem weiterarbeiten. Es erfolgt jedoch nur noch eine Überprüfung der beiden Datensätze auf Gleichheit. Eine Abweichung der Daten voneinander führt zu einer Abschaltung der gesamten Vorrichtung.
Aus der Gegenüberstellung von Fig. 4, Fig. 5 und Fig. 6 ist erkennbar, daß aufgrund der byzantinischen Fehler­ erkennung bei einem Auftreten eines Fehlers im Bereich einer Redundanzgruppe ausgehend von einem Vierfach­ system zunächst zu einem Dreifachsystem und bei einem zusätzlichen Fehler zu einem Zweifachsystem umgeschaltet wird. Es ist somit möglich, zwei nacheinander auf­ tretende Fehler unabhängig voneinander zu kompensieren. Nach dem Auftreten des ersten Fehlers, der eine Iso­ lierung einer ersten Recheneinheit (1) zur Folge hat, übernimmt eine bis dahin passive Recheneinheit (1) aktiv den Feldbus der deaktivierten Recheneinheit (1). Dies bedeutet, daß die Vorrichtung nach der Deakti­ vierung der ersten fehlerhaften Recheneinheit (1) zur Peripherie hin weiter als ein Dreifachsystem arbeitet.
Der prinzipielle Aufbau der peripheren Ein- und Aus­ gabeeinheiten ist in Fig. 7 dargestellt. Die Ein- und Ausgabeeinheiten werden über zwei redundante Feldbusse mit drei aktiven Recheneinheiten (1) verbunden. Die Feldbusse sind als standardisierte Zweidrahtverbin­ dungen ausgebildet. Die Feldbusse werden zur Über­ tragung der Ausgabewerte bzw. zum Einlesen der Sensor­ werte benutzt. Drei Peripheriegeräte werden zu einer dreikanaligen Ein- und Ausgabeeinheit konfiguriert. Es sind somit jeweils drei Aktorausgänge vorhanden, die einer zwei aus drei Auswahl unterzogen werden. Dies wird die über dargestellte Relaislogik realisiert. Fehlerhafte Kommandos auf einem Kanal werden somit unterdrückt unabhängig davon, ob sie durch Rechen­ fehler, Übertragungsfehler oder Fehler in der Ausgabe­ einheit selbst hervorgerufen werden. Dieses elektrische zwei aus drei Vergleichsverfahren an den Ausgabeein­ heiten stellt die Sicherheit des Gesamtsystems im Fehlerfall in jedem Fall sicher. Dies gilt selbst bei einem totalen Ausfall der Vorrichtung.
In Fig. 8 ist eine Parallelisierung einer Anwendungs- Software auf mehreren Redundanzgruppen dargestellt. Bei einer Parallelisierung der Programmabläufe werden jeweils auf den vier Recheneinheiten (1) einer Redun­ danzgruppe die gleichen Programme ausgeführt, jede der Redundanzgruppen bearbeitet hingegen unterschiedliche Programmteile. Jeweils eine Redundanzgruppe ist in Fig. 8 aus vier horizontal angeordneten Recheneinheiten (1) ausgebildet. Grundsätzlich ist es möglich, die Recheneinheiten (1) innerhalb einer vertikalen Gruppie­ rung mit einer gemeinsamen Stromversorgung zu be­ treiben. Jede der Redundanzgruppen verfügt über einen eigenen dreifach redundanten Feldbus sowie über einen eigenen fehlertoleranten Taktgeber (20). Die Ein- und Ausgabebaugruppen (28) sind an den Datenbus (3) ange­ schlossen.
Aus Fig. 9 ergibt sich die Verbindung der Ein- und Ausgabebaugruppen (28) über den als genormten Feldbus ausgebildeten Datenbus (3) in einer gegenüber Fig. 8 vereinfachten Darstellung mit einer Redundanzgruppe.

Claims (10)

1. Vorrichtung zur fehlertoleranten Ausführung von Programmen, insbesondere zur Ausführung von Digi­ talrechnerprogrammen, die eine Mehrzahl von Recheneinheiten aufweist, die zur Bereitstellung einer Fehlertoleranz mit einer die Recheneinheiten parallel betreibenden Steuerung verbunden sind und bei der jede der als Redundanzeinheiten ausgebilde­ ten Recheneinheiten über eine Schnittstelle mit einem dreifachredundanten Datenbus verbunden ist und eine redundante Prozeßperipherie an den Daten­ bus angeschlossen ist, dadurch gekennzeichnet, daß jede der Recheneinheiten (1) im wesentlichen aus mindestens einem Transputerknoten besteht, daß zur schaltungstechnischen Realisierung einer Redundanz entsprechend der byzantinischen Fehlertoleranz aus mindestens vier Recheneinheiten (1) eine Redundanz­ gruppe ausgebildet ist und daß jede der Rechenein­ heiten (1) innerhalb der Redundanzgruppe mit mindestens drei weiteren Recheneinheiten (1) ver­ bunden ist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeich­ net, daß der Datenbus (3) seriell ausgebildet ist.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, daß die Recheneinheiten (1) eine Torus- Konfiguration ausbilden.
4. Vorrichtung nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, daß bitserielle Transputer­ verbindungen vorgesehen sind.
5. Vorrichtung nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß die Transputerverbindun­ gen zur Auswertung von Signalveränderungen diffe­ renziell ausgebildet sind.
6. Vorrichtung nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß die Transputerverbindun­ gen als Lichtwellenleiter ausgebildet sind.
7. Vorrichtung nach einem der Ansprüche 1 bis 6, da­ durch gekennzeichnet, daß die Recheneinheiten (1) sowohl in einer horizontalen als auch in einer ver­ tikalen Strukturierung angeordnet sind.
8. Vorrichtung nach einem der Ansprüche 1 bis 7, da­ durch gekennzeichnet, daß maximal vier horizontal angeordnete Recheneinheiten (1) sowie eine be­ liebige Anzahl vertikaler Recheneinheiten (1) vor­ gesehen sind.
9. Vorrichtung nach einem der Ansprüche 1 bis 8, da­ durch gekennzeichnet, daß fehlerredundante Taktgeber (20) zur Zwangssynchronisierung im Bereich der Recheneinheiten (1) angeordnet sind.
10. Vorrichtung nach einem der Ansprüche 1 bis 9, da­ durch gekennzeichnet, daß im Bereich jeder Rechen­ einheit (1) zwei Transputerprozessoren (21, 22) an­ geordnet sind.
DE4401168A 1993-02-01 1994-01-17 Vorrichtung zur fehlertoleranten Ausführung von Programmen Expired - Lifetime DE4401168C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4401168A DE4401168C2 (de) 1993-02-01 1994-01-17 Vorrichtung zur fehlertoleranten Ausführung von Programmen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4302772 1993-02-01
DE4401168A DE4401168C2 (de) 1993-02-01 1994-01-17 Vorrichtung zur fehlertoleranten Ausführung von Programmen

Publications (2)

Publication Number Publication Date
DE4401168A1 true DE4401168A1 (de) 1994-08-18
DE4401168C2 DE4401168C2 (de) 1996-06-27

Family

ID=6479372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4401168A Expired - Lifetime DE4401168C2 (de) 1993-02-01 1994-01-17 Vorrichtung zur fehlertoleranten Ausführung von Programmen

Country Status (1)

Country Link
DE (1) DE4401168C2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0952520A2 (de) 1998-04-04 1999-10-27 DaimlerChrysler Aerospace AG Vorrichtung zur fehlertoleranten Ausführung von Programmen
EP1050814A2 (de) * 1999-05-07 2000-11-08 DaimlerChrysler Aerospace AG Fehlertolerantes System nach byzantinem Algorithmus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473133A (zh) * 2013-09-25 2013-12-25 浪潮电子信息产业股份有限公司 一种面向高可用系统的冗余进程同步方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3918962A1 (de) * 1989-06-09 1990-12-13 Siemens Ag Mehrrechnersystem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3918962A1 (de) * 1989-06-09 1990-12-13 Siemens Ag Mehrrechnersystem

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LALA, J.H., und andere: A Design Approach for Ultrareliable Real-Time Systems, in: COMPUTER, Mai 1991, S. 12-22 *
LANGHAMMER, F.: Supermassive Computer-Architektur,in: Elektronik 13/1991, S. 44-50 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0952520A2 (de) 1998-04-04 1999-10-27 DaimlerChrysler Aerospace AG Vorrichtung zur fehlertoleranten Ausführung von Programmen
US6434712B1 (en) 1998-04-04 2002-08-13 Daimlerchrysler Aerospace Ag Method and apparatus for fault tolerant execution of computer programs
EP0952520A3 (de) * 1998-04-04 2006-04-12 DaimlerChrysler Aerospace AG Vorrichtung zur fehlertoleranten Ausführung von Programmen
EP1050814A2 (de) * 1999-05-07 2000-11-08 DaimlerChrysler Aerospace AG Fehlertolerantes System nach byzantinem Algorithmus
US6567927B1 (en) 1999-05-07 2003-05-20 Daimlerchrysler Aerospace Ag Logic unit operable under the byzantine algorithm, computer unit having such logic unit, composite assembly comprised of logic units or computer units, and method of operating such an assembly
EP1050814A3 (de) * 1999-05-07 2007-05-23 Astrium GmbH Fehlertolerantes System nach byzantinem Algorithmus

Also Published As

Publication number Publication date
DE4401168C2 (de) 1996-06-27

Similar Documents

Publication Publication Date Title
DE60014938T2 (de) Skalierbares datenerfassungs-/ und rechengerät
EP2504740B1 (de) Sicherheitsmodul für ein automatisierungsgerät
EP1927914B1 (de) Sicherheitsmodul und Automatisierungssystem
EP1297394B1 (de) Redundantes steuerungssystem sowie steuerrechner und peripherieeinheit für ein derartiges steuerungssystem
DE2741886A1 (de) Datenuebertragungseinrichtung
EP1952238B1 (de) Busmodul zum anschluss an ein bussystem sowie verwendung eines solchen busmoduls in einem as-i-bussystem
DE102016000126B4 (de) Serielles Bussystem mit Koppelmodulen
EP1743225B1 (de) Redundantes automatisierungssystem umfassend ein master- und ein stand-by-automatisierungsgerät
DE102007061437A1 (de) Bladeserververwaltungssystem
EP1450223A1 (de) Universeller konfigurierbarer Schnittstellenschaltkreis für E/A-Ankopplungen zum einem Prozess
DE2612100A1 (de) Digitale datenverarbeitungsanordnung, insbesondere fuer die eisenbahnsicherungstechnik
DE3328405C2 (de)
DE4416795C2 (de) Redundant konfigurierbares Übertragungssystem zum Datenaustausch und Verfahren zu dessen Betrieb
DE102006055867A1 (de) Integrierte Schaltung mit Strahlungsschutz
WO2004034260A2 (de) Verfahren und schaltungsanordnung zur synchronisation synchron oder asynchron getakteter verarbeitungseinheiten
DE4401168C2 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
DE60104336T2 (de) Fehlertolerante synchronisationseinrichtung für ein echtzeit-computernetzwerk
DE102008045590B3 (de) Bussystem
DE102011051629B3 (de) Sicherheitsbussystem
DE19626184C2 (de) Vorrichtung zum Betreiben eines Systems mit zwei funktionsmäßig in einem Rechner parallel geschalteten Prozessoren
DE10302456A1 (de) Vorrichtung für sicherheitskritische Anwendungen und sichere Elektronik-Architektur
DE69737573T2 (de) Redundantes Datenverarbeitungssystem
EP1287435B1 (de) Vorrichtung und verfahren zur synchronisation eines systems von gekoppelten datenverarbeitungsanlagen
DE3918962C2 (de) System mit mehreren asynchron arbeitenden Rechnern
EP1266285B1 (de) Rechnerknotenarchitektur mit dediziertem middleware prozessor

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: DAIMLER-BENZ AEROSPACE AKTIENGESELLSCHAFT, 80804 M

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: DAIMLERCHRYSLER AEROSPACE AKTIENGESELLSCHAFT, 8099

8327 Change in the person/name/address of the patent owner

Owner name: ASTRIUM GMBH, 85521 OTTOBRUNN, DE

8327 Change in the person/name/address of the patent owner

Owner name: EADS SPACE TRANSPORTATION GMBH, 28199 BREMEN, DE

8327 Change in the person/name/address of the patent owner

Owner name: ASTRIUM GMBH, 85521 OTTOBRUNN, DE

8327 Change in the person/name/address of the patent owner

Owner name: ASTRIUM GMBH, 82024 TAUFKIRCHEN, DE

R071 Expiry of right
R071 Expiry of right