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

Vorrichtung zur fehlertoleranten Ausführung von Programmen

Info

Publication number
DE19815263A1
DE19815263A1 DE19815263A DE19815263A DE19815263A1 DE 19815263 A1 DE19815263 A1 DE 19815263A1 DE 19815263 A DE19815263 A DE 19815263A DE 19815263 A DE19815263 A DE 19815263A DE 19815263 A1 DE19815263 A1 DE 19815263A1
Authority
DE
Germany
Prior art keywords
computing unit
computing
units
module
unit
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
DE19815263A
Other languages
English (en)
Other versions
DE19815263C2 (de
Inventor
Gerhard Urban
Heinrich Fischer
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
DaimlerChrysler Aerospace AG
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 DaimlerChrysler Aerospace AG filed Critical DaimlerChrysler Aerospace AG
Priority to DE19815263A priority Critical patent/DE19815263C2/de
Priority to EP99104451.2A priority patent/EP0952520B1/de
Priority to US09/286,174 priority patent/US6434712B1/en
Publication of DE19815263A1 publication Critical patent/DE19815263A1/de
Application granted granted Critical
Publication of DE19815263C2 publication Critical patent/DE19815263C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component

Abstract

Es werden eine Vorrichtung zur fehlertoleranten Ausführung von Programmen, insbesondere zur Ausführung von Digitalrechnerprogrammen, durch parallelen Betrieb von als Redundanzeinheiten ausgebildeten Recheneinheiten sowie solche Recheneinheiten beschrieben. Die Vorrichtung zeichnet sich insbesondere dadurch aus, daß jede Recheneinheit eine Mikroprozessoreinheit zur Steuerung der Funktionen der Recheneinheit in der Weise aufweist, daß die Vorrichtung mit einer oder mehreren Recheneinheiten betreibbar ist, wobei entsprechend einem vorbestimmten Redundanzgrad der Vorrichtung eine beliebige Anzahl von Recheneinheiten über eine Datenleitung zur Übertragung von Daten, eine Taktleitung zur Zwangssynchronisierung und eine Resetleitung zum Ein- und Ausschalten jeder Recheneinheit parallelschaltbar ist.

Description

Die Erfindung betrifft eine Vorrichtung zur Fehlertoleranten Ausführung von Programmen, insbesondere zur Ausführung von Digitalrechnerprogrammen, durch parallelen Betrieb von als Redundanzeinheiten ausgebildeten Recheneinheiten, sowie solche Recheneinheiten.
Eine Vorrichtung dieser Art ist aus der DE 44 01 168 bekannt. Der Redundanzgrad dieser Vorrichtung kann durch einfaches Zu- und Abschaltung von Redundanzeinheiten variabel gestaltet werden. Ferner können verschiedene serielle Businterface-Arten, wie z. B. Feldbus oder MIL-1553 Bus etc. verwendet werden. Die parallel betriebene Steuerung ist dabei unabhängig von dem Prozeßinterface betreibbar. Schließlich wird auch beschrieben, wie die Redundanzeinheiten miteinander zu verbinden sind, damit die Vorrichtung eine fehlertolerante Ausführung der Anwenderprogramme erlaubt.
Diese Vorrichtung hat jedoch auch verschiedene Nachteile. Einerseits muß vor der Konstruktion der Vorrichtung der maximal gewünschte Redundanzgrad bekannt sein, d. h. die Herstellung der Redundanzeinheiten kann nicht unabhängig von der spezifischen Anwendung erfolgen, für die die Vorrichtung vorgesehen ist.
Weiterhin ist bei der Integration verschiedener serieller Businterface-Arten oder Prozessschnittstellen in der Vorrichtung ein erheblicher technischer Aufwand erforderlich, der hohe Kosten zur Folge hat, da keine standardisierten Schnittstellen für eine Anbindung solcher Busse zur Verfügung stehen.
Schwierigkeiten können auch bei Wartungsarbeiten entstehen, wenn eine oder mehrere Redundanzeinheiten abgeschaltet werden müssen. Dies betrifft auch einen eventuellen Stand-by Betrieb zum Beispiel bei Anwendung in einer Automatisierungsanlage.
Der Erfindung liegt deshalb die Aufgabe zugrunde, eine Vorrichtung zur fehlertoleranten Ausführung von Programmen der eingangs genannten Art zu schaffen, die wesentlich flexibler auch für verschiedene Anwendungen einsetzbar ist.
Gelöst wir diese Aufgabe mit einer solchen Vorrichtung dadurch, daß jede Recheneinheit eine Mikroprozessoreinheit zur Steuerung der Funktionen der Recheneinheit in der Weise aufweist, daß die Vorrichtung mit einer oder mehreren Recheneinheiten betreibbar ist, wobei entsprechend einem durch Kodierung vorbestimmten Redundanzgrad der Vorrichtung eine beliebige Anzahl von Recheneinheiten über eine Datenleitung zur Übertragung von Daten, eine Taktleitung zur Zwangssynchronisierung und eine Resetleitung zum Ein- und Ausschalten jeder Recheneinheit paralleischaltbar ist und daß die Datenleitung, die Taktleitung und die Resetleitung jeweils eine erste, eine zweite bzw. eine dritte Crossstrapping-Verbindung sind, wobei durch einen ein- oder mehrfachen seriellen Feldbus, mit dem jede Recheneinheit über eine dieser zugeordneten seriellen Bus-Steuereinheit verbunden ist.
Dadurch ist es möglich, die Vorrichtung generisch für viele unabhängige Anwendungen einzusetzen, ohne daß besondere technische Anpassungen erforderlich sind. Dies hat auch zur Folge, daß die erfindungsgemäße Vorrichtung in großen Stückzahlen hergestellt werden kann. Im Gegensatz zu den bekannten Vorrichtungen, die aus diskreten Bauteilen aufgebaut sind, können nun hochintegrierte Schaltkreise wirtschaftlich hergestellt werden, so daß ein fehlertoleranter Rechner in ähnlichem Format gebaut werden kann, wie es derzeit für einfache Rechner üblich ist.
Während zum Beispiel der in DE 44 01 168 beschriebene, fehlertolerante Rechner in einem Raumfahrtprojekt vier unabhängige Computerboxen erfordert, die mit bis zu drei VME Boards bestückt werden, ist mit der erfindungsgemäßen Lösung eine Realisierung eines solchen Rechners auf einer einzigen VME Platine möglich. Der Gesamtaufwand an Hardware beträgt also nur noch einige wenige hochintegrierte Module von dem Aufwand, wie er bei bekannten, aufgrund der geringen Stückzahlen aus diskreten Bauelementen aufgebauten Rechnern erforderlich ist.
Ein weiterer Vorteil dieser Lösung besteht darin, daß es im Gegensatz zum Stand der Technik möglich ist, ein fehlertolerantes Anwenderprogramm ohne Modifikation sowohl auf einer erfindungsgemäßen Vorrichtung mit mehreren Recheneinheiten (d. h. Redundanzeinheiten), als auch auf einer solchen Vorrichtung mit nur einer Recheneinheit (Simplexbetrieb) auszuführen.
Der verfügbare Redundanzgrad im Simplexbetrieb ist zwar nicht größer als der eines Einfachrechners, ein solcher Betrieb bietet dem Anwender jedoch erhebliche Erleichterungen z. B. bei der Erstinbetriebnahme des Anwenderprogramms, da der Simplexbetrieb zunächst alle Fehler, die durch das Voting entstehen, ausblendet. Außerdem erleichtert der Simplexbetrieb den Stand-by Betrieb einer Automatisierungsanlage erheblich, da nur noch ein n-tel des ursprünglichen Stromverbrauches auftritt. Dieser Vorteil ist besonders bei Raumfahrtanwendungen erheblich. Wenn ein Raumfahrzeug einen sicheren Orbit erreicht hat, kann der Betreiber des Raumfahrzeuges nämlich alle Redundanzeinheiten bis auf eine abschalten, um Energie zu sparen, und zwar ohne Unterbrechung der Anwenderfunktion.
Ein besonderer Vorteil dieser Lösung ergibt sich auch im Falle einer Wartung einer Automatisierungsanlage. So kann z. B. die Automatisierungsanlage für begrenzte Zeit im Simplexbetrieb gefahren werden, während auf den anderen Redundanzeinheiten, die sich dabei in der Wartestellung befinden, ein Austausch der Anwendersoftware erfolgt.
Die Unteransprüche haben vorteilhafte Weiterbildungen der Erfindung zum Inhalt.
Jeder Recheneinheit ist vorzugsweise eine externe Speichereinrichtung zugeordnet.
Außerdem kann mindestens ein Anwendungsprozessor vorgesehen sein, der über einen Mehrprozessor-Bus, wie einen VME-Bus, mit den mindestens einer Recheneinheit verbunden ist.
Eine Recheneinheit zur Anwendung in einer erfindungsgemäßen Vorrichtung zeichnet sich durch ein PPE-Modul mit mindestens einer Mikroprozessor-Steu­ ereinheit zur Steuerung der Funktionen der Recheneinheit sowie zur Durchführung eines Datenvergleichs und eines Datenaustauschs mit anderen gleichen Recheneinheiten aus.
Dieses Modul kann durch ein Multichip Modul, durch eine Hybrid Schaltung, durch ein Piggy Pack Modul, durch ein "System on a Chip" oder durch ein ähnliches Miniaturmodul realisiert sein. Im folgenden wird dieses Modul Processor Pool Element (PPE) genannt.
Das PPE Modul weist dabei vorzugsweise einen elektrisch lösch- und programmierbaren Lesespeicher für Programme zur Steuerung der Recheneinheit auf.
Weiterhin kann das PPE Modul ein standardisiertes, paralleles Businterface mit Daten- und Steuerleitungen zur Verbindung der Recheneinheit mit mindestens einem seriellen Bus umfassen.
Das PPE Modul weist vorzugsweise eine Steuereinheit zur Fehlerbehandlung sowie ein dieser zugeordnetes, erstes Cross Strapping Interface zur seriellen Verbindung mit anderen Recheneinheiten auf.
Das PPE Modul kann auch eine fehlertolerante Taktgeberschaltung zur Zwangssynchronisierung der Recheneinheit mit anderen Recheneinheiten sowie ein zweites, dieser zugeordnetes Cross Strapping Interface zur seriellen Verbindung mit anderen Recheneinheiten umfassen.
Weiterhin umfaßt das PPE Modul vorzugsweise eine Schaltung zur fehlertoleranten Resetsteuerung sowie ein drittes, dieser zugeordnetes Cross Strapping Interface zur entfernten Resetsteuerung auf.
Schließlich ist das PPE Modul vorzugsweise mit einer Schaltung versehen, mit der der Recheneinheit eine diese identifizierende Kennung zugewiesen wird.
Weitere Einzelheiten, Merkmale und Vorteile ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen anhand der Zeichnungen. Es zeigen:
Fig. 1 ein Prinzipschaltbild einer erfindungsgemäßen Vorrichtung,
Fig. 2 eine erste äußere Beschaltung einer Recheneinheit für komplexe Fehlertolerante Systeme,
Fig. 3 eine zweite äußere Beschaltung einer Recheneinheit, für einfache Fehlertolerante Systeme und
Fig. 4 ein Blockschaltbild des inneren Aufbaus einer Recheneinheit.
Durch die Erfindung wird gemäß Fig. 1 prinzipiell eine flexible Prozessor-Pooltechnologie mit generischen Prozessor-Pool-Elementen (Recheneinheiten (1) geschaffen, mit der der erreichbare Redundanzgrad soweit flexibilisiert wird, daß dieser erstens für die Produktion der Computerkomponenten im voraus nicht mehr bekannt sein muß, und daß zweitens der Redundanzgrad bis auf eine Null-Redundanz, auch bezeichnet mit Simplex-Betrieb, reduziert werden kann, ohne daß die Anwenderfunktion unterbrochen wird. Gleichzeitig führt die Erfindung standardisierte Schnittstellen (11) (Fig. 4, s. u.) ein, die zusammen mit den im folgenden beschriebenen Schaltkreisen eine generische Recheneinheit (1) darstellen. Mehrere Recheneinheiten (1) können über verschiedene Cross-Strapping Verbindungen 2 miteinander verbunden werden, so daß eine erfindungsgemäße Vorrichtung zur fehlertoleranten Ausführung von Programmen gemäß Fig. 1 entsteht.
Die einzelnen Recheneinheiten (1), die in der Fachsprache auch Fault Containment Region (FCR) genannt werden, sind grundsätzlich zu einer erfindungsgemäßen Vorrichtung integriert. Die Vorrichtung (Rechnerpool) enthält eine beliebige Anzahl von Recheneinheiten (1), die über ihre Schnittstellen (11) miteinander verbunden sind. Zu diesem Zweck weist die Vorrichtung die Verbindungen 2 auf, die für Daten-Cross-Strapping (21), Clock-Cross-Strapping (22), Reset-Cross-Strapping (23) und zur Stromversorgung (24) für beliebig viele Elemente vorgesehen sind.
Wird nur eine Recheneinheit (1) mit einem Schalter (12) eingeschaltet, entsteht automatisch ein Simplex-Rech­ ner, der das Anwenderprogramm ausführt (Null-Re­ dundanz). Werden gleichzeitig mehrere Recheneinheiten 1 über die jeweils zugeordneten Schalter (12) eingeschaltet, entsteht entsprechend der Anzahl der eingeschalteten Recheneinheiten ein Duplex (2 Einheiten eingeschaltet) ein Triplex (3 Einheiten eingeschaltet), ein Quadruplex (4 Einheiten eingeschaltet) oder ein N-plex (N Einheiten eingeschaltet), die parallel das Anwenderprogramm abarbeiten. Konstruktive Elemente innerhalb der Vorrichtung sorgen dafür, daß sich die Gleichzeitigkeit des Einschaltens über einen fest definierten Zeitbereich erstrecken kann. Der Zeitbereich kann mittels der Vorrichtung vorher eingestellt werden.
Der Zeitbereich beginnt mit dem Einschalten der ersten Recheneinheit (1). Werden nach Ablauf des eingestellten Zeitbereiches weitere Recheneinheiten eingeschaltet, nehmen diese nicht mehr an der parallelen Abarbeitung des Anwenderprogramms teil, sondern nehmen automatisch eine Wartestellung ein.
Sind alle Recheneinheiten eingeschaltet und arbeiten alle Recheneinheiten parallel das Anwenderprogramm ab, hat der Rechner die höchste Konfigurationsstufe erreicht (z. B. Quadruplex-Konfiguration, wenn die Vorrichtung maximal vier Recheneinheiten enthält).
Eine Recheneinheit kann jederzeit abgeschaltet werden, und zwar entweder durch Ausschalten, oder durch einen besonderen Reset, den die Vorrichtung bereitstellt. Wird die Recheneinheit über den die Vorrichtung bereitstellenden Reset abgeschaltet, so nimmt die Recheneinheit nicht mehr an der parallelen Abarbeitung des Anwenderprogramms teil und geht in die Wartestellung. Eine Recheneinheit kann also folgende drei Zustände einnehmen: Betrieb, Wartestellung, ausgeschaltet.
Durch spezielle konstruktive Elemente innerhalb der Vorrichtung, (z. B. frequenzmodulierte Signale) an den Schnittstellen der Recheneinheiten, erlaubt die Vorrichtung eine Wiedereingliederung von Recheneinheiten, die sich in der Wartestellung befinden, in das laufende Anwenderprogramm, ohne daß dieses unterbrochen oder neu gestartet werden muß. Durch Wiedereingliederung entsteht aus einem Duplex Rechner z. B. ein Triplex und so weiter. Insbesondere erlaubt die Vorrichtung, daß durch Wiedereingliederung einer Recheneinheit aus einem Simplex-Rechner ein Duplex-Rechner entsteht.
Eine Synchronisiereinrichtung innerhalb der Vorrichtung ermöglicht es, daß alle Recheneinheiten sofort nach dem Einschalten miteinander zwangsynchronisiert werden. Insbesondere werden auch alle Recheneinheiten zwangssynchronisiert, die sich in der Wartestellung befinden. Zusätzlich zu der internen Zwangssynchronisation kann die gesamte Vorrichtung von extern zwangssynchronisiert werden. Dies bedeutet, daß alle Recheneinheiten zueinander synchron und gleichzeitig extern zwangssynchronisiert sind.
Ist mehr als eine Recheneinheit (1) eingeschaltet, ist mit der Vorrichtung die fehlertolerante Ausführung von Programmen möglich.
Fig. 2 zeigt eine erste äußere Beschaltung einer Recheneinheit (1), durch die eine im Gegensatz zu der in Fig. 3 dargestellten zweiten äußeren Beschaltung relativ komplexe Redundanzeinheit entsteht. Der wesentliche Unterschied beider Beschaltungen besteht darin, daß gemäß Fig. 2 ein vierfach serieller Feldbus (4a) und gemäß Fig. 3 ein einfach serieller Feldbus (4b) verwendet wird. In beiden Fällen sind diese über eine serielle Bus-Steu­ ereinheit (3) mit der Recheneinheit (1) verbunden. Ferner weist die Beschaltung gemäß Fig. 2 beispielhaft einen zusätzlichen Anwendungsprozessor (5) auf, der gemeinsam mit der Recheneinheit (1) an einem VME-Bus (6) liegt, während die Beschaltung gemäß Fig. 3 beispielhaft mit einem externen Speicher (7) versehen ist. Beide Beschaltungen umfassen schließlich auch den Ein-/Ausschalter (12).
Zur Ausführung der beschriebenen Funktionen und zur wirksamen Integration der verschiedenen seriellen Busse sowie des Prozessinterface umfaßt eine Recheneinheit gemäß Fig. 4 ein PPE Modul mit einem oder zwei leistungsstarken Mikroprozessor- Steuereinheiten, die alle wesentlichen Funktionen der Recheneinheit, insbesondere die Verbindung zum seriellen Datenbus und die Durchführung des Datenvergleichs und des Datenaustauschprinzipes steuern.
Im einzelnen umfaßt das PPE Modul einen elektrisch löschbaren und programmierbaren Lesespeicher (12), in dem die Programme zur Steuerung der Recheneinheit enthalten sind. Der Lesespeicher ist konstruktiv so ausgelegt, daß er automatisch nach dem Einschalten seine gespeicherten Programme an die Mikroprozessor-Steu­ ereinheiten (14a) und (14b) übergibt. Gleichzeitig kann der Lesespeicher über die dargestellte Testschnittstelle (8) und einen speziellen Sicherheitscode in der Hardware mit neuen Programmen geladen werden.
Zur Anbindung serieller Busse enthält PPE Modul ein standardisiertes, paralleles Businterface (13) mit Datenleitungen (13a) und Steuerleitungen (13b). Eine in dem PPE Modul integrierte Steuereinheit (14) sorgt dafür, daß sich das PPE Modul an das elektrische Verhalten des ausgewählten, seriellen Buscontrollers anpassen kann, ohne daß ein zusätzlicher Bauteileaufwand entsteht.
Zum Datenaustausch der Recheneinheiten untereinander enthält das PPE Modul bereits ein geeignetes Daten-Cross Strapping Interface (11a), das die geforderte serielle Datenübertragung vornimmt und gleichzeitig die galvanische Isolation enthält. Die Anzahl der enthaltenen, unabhängigen seriellen Schnittstellen ist über einen Mikrocode so einstellbar, daß auch ein N-plex System mit N Recheneinheiten konfiguriert werden kann.
Zur internen- und externen Zwangssynchronisation der Recheneinheiten untereinander enthält das PPE Modul einen fehlertoleranten Taktgeber-Schaltkreis (15) und ein geeignetes Clock-Cross Strapping Interface (11b), welches die notwendige Signalverteilung mit den anderen Recheneinheiten vornimmt und gleichzeitig für die galvanische Trennung der Signale sorgt. Über eine externe Kodierung kann die Frequenz des Taktgebers vorgegeben werden. Zusätzlich läßt sich die Frequenz des Taktgebers auch über ein internes Register, das der Schaltkreis zur Verfügung stellt, einstellen. Die Anzahl der Taktsignale läßt sich über einen Microcode so einstellen, daß auch ein N-plex System mit N Recheneinheiten konfiguriert werden kann.
Zur Zwangsabschaltung fehlerhafter Recheneinheiten und zur Unterstützung des kompletten Funktionsablaufs der Vorrichtung enthält jedes PPE Modul einen Reset Schaltkreis (16) für die fehlertolerante Abschaltung benachbarter PPE Module. Zusätzlich dazu enthält jedes PPE Modul ein geeignetes Reset-Cross Strapping Interface (11c), das die notwendige Reset-Sig­ nalverteilung und die galvanische Trennung von den anderen Recheneinheiten vornimmt. Die Anzahl der Reset Signale läßt sich über einen Microcode so einstellen, daß auch ein N-plex System mit N Recheneinheiten konfiguriert werden kann und dieses in der Lage ist, fehlerhafte Recheneinheiten über das Reset Management zu passivieren.
Jedes PPE Modul umfaßt weiterhin eine digitale Eingangsschnittstelle (17) und Ausgangsschnittstelle (18), mit deren Hilfe jederzeit Systemsignale aufgezeichnet und protokolliert und auch Systemsteuerfunktionen übernommen werden können. Diese Schnittstelle soll vor allem den Aufbau sehr kleiner Redundanzeinheiten erleichtern, bei denen aufgrund des geringen Automatisierungsgrades auf eine eigene Prozeßschnittstelle (6) gänzlich verzichtet wird.
Für die Organisation des Funktionsablaufes der Vorrichtung ist es wichtig, daß jede Recheneinheit mit einer eineindeutigen Kennung markiert ist. Diese Aufgabe wird durch einen im PPE Modul integrierten Node.id-Schaltkreis (19) realisiert. Dazu wird jede Recheneinheit mit einer externen Codierung versehen, die für jede Recheneinheit nur einmal vergeben wird. Der Node.id-Schaltkreis (19) interpretiert die eingestellte Kodierung und generiert eine eineindeutige Kennung, die auch einen Mehrfachbitfehler toleriert.
Jedes PPE Modul umfaßt weiterhin einen internen Schreib-/Lesespeicher (9), der über eine Einrichtung zur Fehlererkennung und -korrektur (Error Detection and Correction-EDAC) verfügt.
Damit die Recheneinheit auch für Anwendungen mit einem großen Automatisierungsgrad verwendet werden kann, enthält das Multichip PPE Module eine geeignete parallele Datenbus -Schnittstelle (7a) zur Erweiterung des internen Schreib- Lesespeicher mit externen RAM-Spei­ cherbausteinen (7). Diese Schnittstelle enthält alle dafür notwendigen Daten- und Steuerleitungen.
Zur problemlosen Anbindung externer Prozessschnittstellen (6) weist das PPE Modul schließlich auch einen eigenen Schreib-/Lesespeicher-Schalt­ kreis (6a) (z. B. Dual Port RAM) auf, der sowohl von den internen Multichip Processor-Steuereinheiten adressierbar ist, als auch von einem beliebigen externen Microprocessor, der sich in der externen Prozesssteuerung befindet. Zugriffskonflikte, die bei gleichzeitiger Adressierung entstehen können, werden von dem Schreib-/Lesespeicher-Schaltkreis automatisch so geregelt, daß keine Datenverluste entstehen. Die Integration des dualen Schreib-/Le­ sespeichers in das PPE Modul erlaubt vor allem den Aufbau von z. B. VME-kompatiblen Redundanzeinheiten mit nur geringem, zusätzlichen externen Bauteileaufwand. Dies ist insbesondere für Redundanzeinheiten erforderlich, die für einen größeren Automatisierungsgrad vorgesehen sind und bei denen eine zusätzliche, unabhängige Prozessschnittstelle (6) integriert wird.

Claims (11)

1. Vorrichtung zur fehlertoleranten Ausführung von Programmen, insbesondere zur Ausführung von Digitalrechnerprogrammen, durch parallelen Betrieb von als Redundanzeinheiten ausgebildeten Recheneinheiten, dadurch gekennzeichnet, daß jede Recheneinheit (1) eine Mikroprozessoreinheit zur Steuerung der Funktionen der Recheneinheit in der Weise aufweist, daß die Vorrichtung mit einer oder mehreren Recheneinheiten betreibbar ist, wobei entsprechend einem durch Kodierung vorbestimmten Redundanzgrad der Vorrichtung eine beliebige Anzahl von Recheneinheiten über eine Datenleitung (21) zur Übertragung von Daten, eine Taktleitung (22) zur Zwangssynchronisierung und eine Resetleitung (23) zum Ein- und Ausschalten jeder Recheneinheit (1) paralleischaltbar ist und daß die Datenleitung, die Taktleitung und die Resetleitung jeweils eine erste, eine zweite bzw. eine dritte Cross Strapping-Verbindung sind, wobei durch einen ein- oder mehrfachen seriellen Feldbus (4a, 4b), mit dem jede Recheneinheit (1) über eine dieser zugeordneten seriellen Bus-Steuereinheit (3) verbunden ist.
2. Vorrichtung nach Anspruch 1, gekennzeichnet durch eine jeder Recheneinheit (1) zugeordnete externe Speichereinrichtung (7).
3. Vorrichtung nach Anspruch 1 oder 2, gekennzeichnet durch mindestens einen Anwendungsprozessor (5), der über einen Mehrprozessorbus, wie einen VME-Bus (6), mit der mindestens einer Recheneinheit (1) verbunden ist.
4. Recheneinheit zur Anwendung in einer Vorrichtung nach einem der vorhergehenden Ansprüche, gekennzeichnet durch ein PPE Modul mit mindestens einer Mikroprozessor-Steuereinheit zur Steuerung der Funktionen der Recheneinheit sowie zur Durchführung eines Datenvergleichs und eines Datenaustauschs mit anderen gleichen Recheneinheiten.
5. Recheneinheit nach Anspruch 4, dadurch gekennzeichnet, daß das PPE Modul einen elektrisch lösch- und programmierbaren Lesespeicher für Programme zur Steuerung der Recheneinheit aufweist.
6. Recheneinheit nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß das PPE Modul ein standardisiertes, paralleles Businterface mit Daten- und Steuerleitungen zur Verbindung der Recheneinheit mit mindestens einem seriellen Bus aufweist.
7. Recheneinheit nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, daß das PPE Modul eine Steuereinheit (14) zur Fehlerbehandlung sowie ein dieser zugeordnetes, erstes Cross Strapping Interface (11a) zur seriellen Verbindung mit anderen Recheneinheiten (1) aufweist.
8. Recheneinheit nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß das PPE Modul eine fehlertolerante Taktgeberschaltung (15) zur Zwangssynchronisierung der Recheneinheit (1) mit anderen Recheneinheiten sowie ein zweites, dieser zugeordnetes Cross Strapping Interface (11b) zur seriellen Verbindung mit anderen Recheneinheiten aufweist.
9. Recheneinheit nach einem der Ansprüche 4 bis 8, dadurch gekennzeichnet, daß das PPE Modul eine Schaltung (16) zur fehlertoleranten Resetsteuerung sowie ein drittes, dieser zugeordnetes Cross Strapping Interface (11c) zur entfernten Resetsteuerung aufweist.
10. Recheneinheit nach einem der Ansprüche 4 bis 9, dadurch gekennzeichnet, daß das PPE Modul eine Schaltung (19) aufweist, mit der der Recheneinheit eine diese identifizierende Kennung zugewiesen wird.
11. Rechnereinheit dadurch gekennzeichnet, daß alle wesentlichen Bestandteile nach Fig. 4 (6a, 7a, 8, 9, 11a, 11b, 11c, 12, 13a, 13b, 14a, 14b, 15, 16, 17, 18, 19) in das PPE Modul integriert sind, welches als Multichip Modul, System on a Chip, Hybrid Schaltkreis, Piggy Pack Modul oder durch ein ähnliches Miniaturmodul realisiert ist.
DE19815263A 1998-04-04 1998-04-04 Vorrichtung zur fehlertoleranten Ausführung von Programmen Expired - Fee Related DE19815263C2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE19815263A DE19815263C2 (de) 1998-04-04 1998-04-04 Vorrichtung zur fehlertoleranten Ausführung von Programmen
EP99104451.2A EP0952520B1 (de) 1998-04-04 1999-03-05 Vorrichtung zur fehlertoleranten Ausführung von Programmen
US09/286,174 US6434712B1 (en) 1998-04-04 1999-04-05 Method and apparatus for fault tolerant execution of computer programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19815263A DE19815263C2 (de) 1998-04-04 1998-04-04 Vorrichtung zur fehlertoleranten Ausführung von Programmen

Publications (2)

Publication Number Publication Date
DE19815263A1 true DE19815263A1 (de) 1999-10-07
DE19815263C2 DE19815263C2 (de) 2002-03-28

Family

ID=7863680

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19815263A Expired - Fee Related DE19815263C2 (de) 1998-04-04 1998-04-04 Vorrichtung zur fehlertoleranten Ausführung von Programmen

Country Status (3)

Country Link
US (1) US6434712B1 (de)
EP (1) EP0952520B1 (de)
DE (1) DE19815263C2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE50013722D1 (de) * 1999-05-03 2006-12-21 Infineon Technologies Ag Verfahren und vorrichtung zur sicherung eines mehrdimensional aufgebauten chipstapels
US6865591B1 (en) * 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
US6785841B2 (en) * 2000-12-14 2004-08-31 International Business Machines Corporation Processor with redundant logic
DE10126749A1 (de) * 2001-05-31 2003-01-23 Wittenstein Ag Datenverarbeitungsstruktur
US7581210B2 (en) * 2003-09-10 2009-08-25 Hewlett-Packard Development Company, L.P. Compiler-scheduled CPU functional testing
US7206969B2 (en) * 2003-09-10 2007-04-17 Hewlett-Packard Development Company, L.P. Opportunistic pattern-based CPU functional testing
US7213170B2 (en) * 2003-09-10 2007-05-01 Hewlett-Packard Development Company, L.P. Opportunistic CPU functional testing with hardware compare
US7613961B2 (en) * 2003-10-14 2009-11-03 Hewlett-Packard Development Company, L.P. CPU register diagnostic testing
US7415700B2 (en) * 2003-10-14 2008-08-19 Hewlett-Packard Development Company, L.P. Runtime quality verification of execution units
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
WO2006045773A2 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1805618A2 (de) * 2004-10-25 2007-07-11 Robert Bosch Gmbh Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US7797575B2 (en) * 2007-04-04 2010-09-14 International Business Machines Corporation Triple voting cell processors for single event upset protection
JP2009087282A (ja) * 2007-10-03 2009-04-23 Fuji Xerox Co Ltd 並列計算システムおよび並列計算方法
US8015390B1 (en) * 2008-03-19 2011-09-06 Rockwell Collins, Inc. Dissimilar processor synchronization in fly-by-wire high integrity computing platforms and displays
US8010846B1 (en) * 2008-04-30 2011-08-30 Honeywell International Inc. Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame
US8051323B2 (en) * 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
CN101877528B (zh) * 2010-05-27 2013-02-13 国电南京自动化股份有限公司 基于高压变频器的双cpu冗余容错系统及其实现方法
DE102012201185A1 (de) * 2012-01-27 2013-08-01 Siemens Aktiengesellschaft Verfahren zum Betreiben mindestens zweier Datenverarbeitungseinheiten mit hoher Verfügbarkeit, insbesondere in einem Fahrzeug, und Vorrichtung zum Betreiben einer Maschine
EP2813949B1 (de) 2013-06-11 2019-08-07 ABB Schweiz AG Mehrkernprozessorfehlererkennung für sicherheitskritische softwareanwendungen
US9992010B2 (en) * 2015-11-24 2018-06-05 The Charles Stark Draper Laboratory, Inc. System and method for augmenting duplexed replicated computing
US11334452B1 (en) * 2021-06-08 2022-05-17 International Business Machines Corporation Performing remote part reseat actions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4019674A1 (de) * 1989-06-23 1991-01-10 Ansaldo Spa Abschaltplatine zum trennen eines einzelprozessors vom kommunikationsbus eines aus mehreren einzelprozessoren bestehenden computerisierten systems
DE4401168C2 (de) * 1993-02-01 1996-06-27 Daimler Benz Aerospace Ag Vorrichtung zur fehlertoleranten Ausführung von Programmen

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015246A (en) * 1975-04-14 1977-03-29 The Charles Stark Draper Laboratory, Inc. Synchronous fault tolerant multi-processor system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
GB2097563B (en) * 1981-03-07 1985-10-16 British Aerospace Serial bus interface unit
US4453215A (en) * 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
JPH0812621B2 (ja) * 1981-10-01 1996-02-07 ストレイタス・コンピュータ・インコーポレイテッド 情報転送方法及び装置
US4757442A (en) * 1985-06-17 1988-07-12 Nec Corporation Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor
US4967347A (en) * 1986-04-03 1990-10-30 Bh-F (Triplex) Inc. Multiple-redundant fault detection system and related method for its use
US4907232A (en) * 1988-04-28 1990-03-06 The Charles Stark Draper Laboratory, Inc. Fault-tolerant parallel processing system
US4937741A (en) * 1988-04-28 1990-06-26 The Charles Stark Draper Laboratory, Inc. Synchronization of fault-tolerant parallel processing systems
US4964126A (en) * 1988-09-30 1990-10-16 Massachusetts Institute Of Technology Fault tolerant signal processing machine and method
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5317752A (en) * 1989-12-22 1994-05-31 Tandem Computers Incorporated Fault-tolerant computer system with auto-restart after power-fall
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
US5325518A (en) * 1991-04-02 1994-06-28 Carnegie Mellon University Adaptive distributed system and method for fault tolerance
US5313628A (en) * 1991-12-30 1994-05-17 International Business Machines Corporation Component replacement control for fault-tolerant data processing system
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
DE69424565T2 (de) * 1993-12-01 2001-01-18 Marathon Techn Corp Fehler-betriebssichere/fehler tolerante computerbetriebsmethode
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4019674A1 (de) * 1989-06-23 1991-01-10 Ansaldo Spa Abschaltplatine zum trennen eines einzelprozessors vom kommunikationsbus eines aus mehreren einzelprozessoren bestehenden computerisierten systems
DE4401168C2 (de) * 1993-02-01 1996-06-27 Daimler Benz Aerospace Ag Vorrichtung zur fehlertoleranten Ausführung von Programmen

Also Published As

Publication number Publication date
US6434712B1 (en) 2002-08-13
EP0952520B1 (de) 2016-10-05
DE19815263C2 (de) 2002-03-28
EP0952520A3 (de) 2006-04-12
EP0952520A2 (de) 1999-10-27

Similar Documents

Publication Publication Date Title
DE19815263C2 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
DE2856483C2 (de)
DE2726753C2 (de) Ferngesteuerter Prüf-Interface-Adapter
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE1549523B2 (de) Datenverarbeitungsanlage
DE2935841C2 (de) Mehrprozessoranlage
DE3606650A1 (de) Hardware logik-simulator
EP0057756A2 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE3013070C2 (de) Schaltungsanordnung zur Bearbeitung von aus mehreren peripheren Geräten herangeführten Anforderungssignalen innerhalb einer datenverarbeitenden Einrichtung
DE2536622A1 (de) Mikroprogrammsteuerung mit flexibler auswahl von steuerworten
DE3048414A1 (de) "schaltungsanordnung fuer eine datenverarbeitungsanlage"
DE19983975B3 (de) Programmierbares Steuersystem und Rücksetz-Steuerverfahren für das programmierbare Steuersystem
DE60300233T2 (de) Fehlertolerante Vorrichtung zur informationsverarbeitung
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
DE2647367C3 (de) Redundante Prozeßsteueranordnung
DE69915788T2 (de) Mikrokontrollgerät mit Fehlerbeseitigungsunterstützung
EP0113379A1 (de) Rechnerkopplung
EP1260905B1 (de) Programmgesteuerte Einheit
DE1806172A1 (de) Prioritaetsschaltung
DE19948904C1 (de) Schaltungszelle mit eingebauter Selbsttestfunktion und Verfahren zum Testen hierfür
DE3426902A1 (de) Schaltungsanordnung zum konfigurieren von peripherieeinheiten in einer datenverarbeitungsanlage
DE2607687C2 (de) Verfahren zum Steuern von Gruppen von Geräten in einer mit elektronischer Datenverarbeitung arbeitenden Fernsprechvermittlungsanlage und deren Ausbildung
DE2632561A1 (de) Steuereinrichtung fuer eine echtzeitsteuerung, insbesondere fuer fernsprechvermittlungsanlagen
DE19843147C1 (de) Verfahren zur Steuerung der unterbrechungsfreien Stromversorgung eines Datenverarbeitungssystems und Datenverarbeitungssystem mit einer unterbrechungsfreien Stromversorgung
DE3211265A1 (de) Zweikanaliges fail-safe-mikrocomputerschaltwerk, insbesondere fuer eisenbahnsicherungsanlagen

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: ASTRIUM GMBH, 85521 OTTOBRUNN, DE

D2 Grant after examination
8364 No opposition during term of opposition
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

R082 Change of representative

Representative=s name: ELBPATENT-MARSCHALL & PARTNER MBB, DE

Representative=s name: ELBPATENT-MARSCHALL & PARTNER, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee