DE60015182T2 - Computersystem, welches gegenüber vorübergehenden Fehlern fehlertolerant ist und Verfahren zur Verwaltung dieses Systems - Google Patents

Computersystem, welches gegenüber vorübergehenden Fehlern fehlertolerant ist und Verfahren zur Verwaltung dieses Systems Download PDF

Info

Publication number
DE60015182T2
DE60015182T2 DE60015182T DE60015182T DE60015182T2 DE 60015182 T2 DE60015182 T2 DE 60015182T2 DE 60015182 T DE60015182 T DE 60015182T DE 60015182 T DE60015182 T DE 60015182T DE 60015182 T2 DE60015182 T2 DE 60015182T2
Authority
DE
Germany
Prior art keywords
processing units
memory
software
error
context
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.)
Expired - Lifetime
Application number
DE60015182T
Other languages
English (en)
Other versions
DE60015182D1 (de
Inventor
Michel Pignol
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.)
Centre National dEtudes Spatiales CNES
Original Assignee
Centre National dEtudes Spatiales CNES
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 Centre National dEtudes Spatiales CNES filed Critical Centre National dEtudes Spatiales CNES
Application granted granted Critical
Publication of DE60015182D1 publication Critical patent/DE60015182D1/de
Publication of DE60015182T2 publication Critical patent/DE60015182T2/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
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft ein gegenüber vorübergehenden Fehlern tolerantes Computersystem und ein Verfahren zur Verwaltung eines solchen Systems.
  • Das Gebiet der Erfindung ist/dasjenige von Computerarchitekturen, welche störenden Umfeldern für die elektronischen Bauelemente ausgesetzt sind (Strahlungen, elektromagnetische Störungen), welche im Stande sind, vorübergehende Fehler zu verursachen, zum Beispiel in
    • – dem Raumfahrt-, Nuklear- und Luftfahrtbereich, wo das Umfeld unter anderem durch schwere Ionen gebildet ist,
    • – dem Bereich von Automobilen, welche einem starken elektromagnetischen Umfeld ausgesetzt sind.
  • BISHERIGER STAND DER TECHNIK
  • In der folgenden Beschreibung wird das Beispiel des Raumfahrtbereichs, welches sehr repräsentativ für vorübergehende Fehler ist, welche zufallsbedingt an elektronischen Bausteinen erzeugt werden, verwendet.
  • Die Entwickler von Computerarchitekturen für Satelliten sind mit dem Problem von im Weltraum vorhandenen Strahlungen konfrontiert. Einer der Effekte dieser Strahlungen wird „Einzelereignis" genannt (im Englischen „upset" oder „Single Event Upset"), was einem oder mehreren vorübergehenden Zustandsänderungen von Bits in elektronischen Bauelementen wie zum Beispiel Speichern entspricht. Die Fehler, welche durch die Einzelereignisse hervorgerufen werden, können zu der Erzeugung von fehlerhaften Daten (z.B. einem Fehlkommando für einen Aktuator des Satelliten) oder zu einer schweren Störung der Abarbeitung der Software (d.h. einem Absturz des Mikroprozessors) führen.
  • Bislang beruht die Lösung für Fehler vom Einzelereignistyp auf der Verwendung von Technologien für integrierte Schaltkreise, welche gegenüber diesem Phänomen we niger empfindlich (als „strahlungstolerant" bezeichnet) oder sogar unempfindlich (als „strahlungsgehärtet" bezeichnet) sind. Derartige Technologien werden nicht von der gewerblichen mikroelektronischen Industrie verwendet und müssen folglich speziell für Militär- und Raumfahrtanwendungen entwickelt werden.
  • Die Gesamtkosten, welche mit dem Vorhandensein von solchen mikroelektronischen Technologien und der Entwicklung von Bauelementen dafür (Entwicklung, Instandhaltung, kontinuierliche Weiterentwicklung der Leistungsfähigkeit) und somit der Kaufpreis dieser Bauelemente sind sehr hoch (die Entwicklung einer neuen mikroelektronischen Linie kann knapp 1 Milliarde Francs erreichen; der Kaufpreis eines Mikroprozessors, welcher strahlungstolerant oder -gehärtet ist, beträgt mehrere zehntausend Francs, während seine kommerzielle Version einige tausend Francs kostet; das Verhältnis von gehärtet/kommerziell kann 100 oder größer sein).
  • Das amerikanische Verteidigungsministerium hat die Verwendung von militärischen elektronischen Bauelementen für seine Anwendungen gebremst und den Prozess der Aneignung von kommerziellen Spezifikationen/Standards/Bauelementen für militärische Aktivitäten beschleunigt.
  • Der Marktanteil von militärischen Bauelementen, welche als „hochzuverlässig" bezeichnet werden, ist stark abgefallen, von 80% in den 1960er Jahren auf weniger als 1 % in 1995 (starker Anstieg der Verwendung von elektronischen Bauelementen durch die Industrie, Rückgang der militärischen Märkte); bis zu dem Punkt, dass diese Bauelemente dazu veranlasst werden könnten, in Kürze zu verschwinden (große Hersteller von militärischen Bauelementen haben sich aus diesem Markt zurückgezogen, welcher immer weniger ertragreich ist).
  • Die Möglichkeit, kommerzielle Bauelemente bei Raumfahrtanwendungen zu verwenden, ist ein Problem, mit welchem jedes neu ins Leben gerufene Projekt konfrontiert ist. Durch die Verwendung dieser Art von Bauelementen in der Raumfahrt werden die folgenden Vorteile erwartet:
    • – Lösung des Problems des Rückgangs, welcher in dem Angebot von „hochzuverlässigen" Bauelementen als Folge der Rückzüge aus diesem Markt von wichtigen Lieferanten festgestellt wird,
    • – Verringerung von Kosten: der Posten von „hochzuverlässigen Bauelementen" ist nicht vernachlässigbar in den Gesamtkosten der Entwicklung einer Apparatur und wird ausschlaggebend bei ihren wiederholt auftretenden Kosten. Das Gewicht von Bauelementen ist jedoch sehr unterschiedlich, abhängig von der in Betracht gezogenen Zielgruppe (Plattform, Nutzlast, Ausstattung, Häufigkeitsniveau usw.).
    • – Die Verwendung von Funktionen/Bauelementen höherer Leistungsfähigkeit, was es ermöglicht, das Volumen an Elektronik zu verringern (Optimierung der Masse/ des Verbrauchs/ der Zuverlässigkeit) und/oder Verbesserung der Funktionalität,
    • – Verringerung der Entwicklungsdauer von Projekten, um einen reaktionsfähigeren Zugang zum Weltraum zu ermöglichen, wobei die Liefertrist von „hochzuverlässigen" Bauelementen derzeit ein oder zwei Jahre beträgt.
  • Nichtsdestotrotz ist ein großes Problem, mit welchem der Entwickler von Computerarchitekturen, die kommerzielle Bauelemente verwenden, konfrontiert ist, die Empfindlichkeit dieser Komponenten gegenüber Strahlungen und insbesondere gegenüber schweren Ionen. Dieser Aspekt, welcher früher auf „Bauelement"-Ebene behandelt wurde (tolerante oder gehärtete Technologien), muss somit auf der Ebene von „Architektur" und „System" gelöst werden.
  • Die Satelliten und somit ihre Bordelektronik sind einem Strahlungsumfeld ausgesetzt, weiches sich aus verschiedenen Teilchen (Elektronen, schwere Ionen, Protonen) zusammensetzt, welche den am Boden verwendeten Systemen nicht bekannt sind, da diese Teilchen durch die Atmosphäre herausgefiltert werden.
  • Der Ursprung dieser Teilchen kann in vier Komponenten klassifiziert werden, welche miteinander verknüpft sein können:
    • – die kosmische Strahlung eines zum Teil außergalaktischen und zum Teil galaktischen Ursprungs, welche aus sehr energiereichen Ionen besteht,
    • – die Strahlungsgürtel um die Erde, welche aus eingefangenen Elektronen und Protonen besteht, welche als Folge der Wechselwirkungen zwischen der Erdatmosphäre und Sonnenteilchen erzeugt werden,
    • – die Sonneneruptionen, welche Protonen oder schwere Ionen emittieren,
    • – der Sonnenwind, welcher durch das Abdampfen von koronalem Plasma erzeugt wird, was das Entkommen von Protonen und Ionen mit geringer Energie aus der Schwerkraftanziehung der Sonne ermöglicht.
  • Diese energiereichen Teilchen übertragen beim Aufprallen auf ein und Durchqueren eines elektronischen Bauelements auf dieses einen Teil ihrer Energie, was die ordnungsgemäße Funktionsweise desselben stört. In der vorliegenden Beschreibung wird auf die Einzelereignisse eingegangen, welche durch die schweren Ionen und die Protonen hervorgerufen werden.
  • Diese Einzelereignisse entsprechen der Erzeugung von Bitfehlern in den Zellen, welche digitale Werte speichern, d.h. den Speicherzellen, den Registern und den elementaren Kippstufen: ein Wert ,0', welcher durch eine Speicherzelle gespeichert wird, wird in einen Wert ,1' umgewandelt oder umgekehrt. Gemäß einer allgemeinen Regel wird ein einzelnes Bit durch ein schweres Ion modifiziert. Diese Ereignisse sind nicht zerstörend und es kann nachfolgend ein neues Datum eingeschrieben werden, welches ohne Fehler gespeichert wird (außer bei Auftritt eines weiteren Einzelereignisses in derselben Zelle). Die durch diese Phänomene hervorgerufenen Fehler werden als vorübergehend bezeichnet.
  • Um kommerzielle Bauelemente in einem großen Maßstab im Raumfahrtbereich nutzen zu können, besteht eine erste mögliche Lösung darin, durch systematische Strahlungstests kommerzielle Bauelemente auszuwählen, denn bestimmte können naturgemäß unempfindlich gegenüber Strahlungen (oder zumindest gegenüber einigen ihrer Effekte) sein. Eine solche Lösung, welche nicht nur auf Ebene der Auswahl sehr kostspielig ist, ist nur ein Notbehelf, denn sie ermöglicht es nicht, die Hauptstandards der Industrie zu verwenden, wenn diese sich als empfindlich gegenüber Strahlungen erweisen, was dennoch wünschenswert ist. Eine zweite Lösung besteht darin, ein Verfahren zu finden, welches es ermöglicht, die Phänomene, welche durch diese Strahlungen hervorgerufen werden, insbesondere die vorübergehenden Fehler, zu tolerieren, das heißt Architekturen zu definieren, welche es ermöglichen, Fehler zu erfassen und sie dann zu korrigieren. Das Berücksichtigen von vorübergehenden Fehlern wird somit von der „Bauelement"-Ebene auf die Ebene von „Architektur" und „System" überführt. Diese Lösung wird erfindungsgemäß bevorzugt, weil sie wirtschaftlich rentabler ist und es ermöglicht, die Beschränkungen bei der Bauelementenauswahl zu verringern.
  • Der Bereich der Toleranz gegenüber Ausfällen und Fehlern ist Gegenstand von zahlreichen Forschungsarbeiten gewesen, und bestimmte Mechanismen werden in großem Ausmaß in Bodensystemen verwendet, zum Beispiel um tolerant gegenüber dem Ausfall eines Bauelements zu sein (z.B. Sicherheitssysteme).
  • Zahlreiche Mechanismen zur Erfassung, Isolation und Wiederherstellung von Fehlern sind dem Fachmann bekannt. Einige Mechanismen ermöglichen es, Fehler einfach zu erfassen, andere, sie zu erfassen, sie dann zu maskieren und sogar sie zu korrigieren. Außerdem sind diese Mechanismen dazu ausgestaltet, entweder vorübergehende Fehler, oder endgültige Fehler oder beides zu behandeln:
    • – Vermeidung von Fehlern: systematisches Erneuern von statischen Daten vor ihrer tatsächlichen Verwendung (z.B. Konfigurationsregister); Selbsttests außerhalb des Nominalbetriebs („off-line"), welche es ermöglichen, einen Bauelementausfall zu erfassen, bevor dieses verwendet wird.
    • – Detektorcodes oder Detektoren/Korrektoren für Fehler, welche auf Speicher, Übertragungen und unter Umständen auch auf die Logik (insbesondere bei der Realisierung von speziellen integrierten Schaltkreisen (ASIC) oder von benutzerprogrammierbaren Logikschaltkreisen (FPGA), welche als „mit integrierter Steuerung" bezeichnet werden, angewendet werden). Die Detektions- und Korrekturvorrichtungen (EDAC) werden in der Raumfahrt systematisch auf die Speicherebenen angewendet. Eine Abfragefunktion (ein systematisches Wiederauslesen der gesamten Speicherebene) ist mit diesen Vorrichtungen verbunden und wird als Hintergrundtask ausge führt, um das Ansammeln von schlafenden Fehlern zu vermeiden, welche langfristig die Erfassungs-/Korrekturfähigkeiten des Codes stören könnten.
    • – Duplikation und Vergleich, oder Verdreifachung und Mehrheitsabstimmung, in Englisch NMR („N Modular Redundancy", modulare Redundanz der Ordnung N) oder der spezielle Fall TMR („Triple Modular Redundancy", dreifache modulare Redundanz): Diese Mechanismen ermöglichen es, Architekturen zu erhalten, welche bei einem Ausfall sicher sind („fail safe"), welche kein falsches Kommando erzeugen, aber bei dem ersten Fehler anhalten (duplex), oder Architekturen, welche bei einem Ausfall betriebsbereit bleiben („fail operational"), welche die Fähigkeit haben, einen einfachen Fehler in Echtzeit zu maskieren und weiterzuarbeiten, wobei sie sicher bleiben (triplex). Dieser Typ von Architektur wurde in den Studien über sicher arbeitende Rechner für die europäischen Raumkapseln verwendet, wie sie in dem Quellendokument [4] am Ende der Beschreibung beschrieben sind. In dieser Klasse finden sich auch die Architekturen des Typs Master/Überprüfer („master/checker"), wo ausschließlich die Mikroprozessoren verdoppelt sind, wobei die durch den „Master" erzeugten Daten durch den „Überprüfer" überprüft werden. Der Mikroprozessor ERC-32 der Gesellschaft TEMIC/MHS beinhaltet diesen Mechanismus, wie in dem Quellendokument [5] beschrieben.
    • – Mehrfache Programmierung („N-version programming"), welche mit den NMR-Architekturen verbunden ist, die es ermöglicht, auch Softwarekonzeptionsfehler zu erfassen, weil jeder Rechner über eine Softwareversion verfügt, welche speziell ausgehend von einer gemeinsamen Spezifikation entwickelt wurde.
    • – Zeitliche Redundanz: Es handelt sich entweder um ein zweifaches Ausführen und Vergleichen oder um ein einfaches Ausführen, ein Laden eines Befehlsregisters und dessen Wiederauslesen, um es zu vergleichen, um in der Lage zu sein, es zu überprüfen, wie der Mechanismus „Laden dann Schießen" („arm and fire"), welcher bei der Raumfahrt für sehr kritische Befehle (zum Beispiel das Auslösen von pyrotechnischen Elementen verwendet wird).
    • – Kontrolle der Ausführungszeit: Laufzeitüberwacher („watchdog timer") werden bei allen Rechnern im Weltraumbereich verwendet (ein Programm muss in einer begrenzten Zeit ausgeführt werden). Darüber hinaus können genauere Kontrollen für die Ausführungszeit in die Software eingearbeitet werden (Kontrolle der Dauer eines Tasks, der maximal erlaubten Dauer, um die Antwort eines Kommunikationselements zu erhalten usw.). Das Aktualisieren des Laufzeitüberwachers kann durch eine spezifische Schlüsselabfolge (wie sie im Automobilbereich verwendet wird) bedingt sein.
    • – Überprüfung des Kontrollflusses (d.h. Kontrolle der Ablaufsteuerung eines Mikroprozessors): Die Laufzeitüberwacher ermöglichen eine grobe Kontrolle (Erfassen eines schweren Absturzes). Eine genaue Kontrolle des Befehlsflusses ist mit einem mehr oder weniger komplizierten Überwachungsprozessor („watchdog processor") möglich. Insbesondere die Kontrolle über eine Signaturanalyse ist effizient und stellt geringe elektronische Anforderungen.
    • – Kontrolle der Gültigkeit der Adressierung eines Mikroprozessors ausgehend von Zugriffsrechten für Seiten/Segmente.
    • – Plausibilitätskontrolle: Dieses Prinzip wird bei Höhen- und Umlaufbahnkontrollsystemen von Satelliten verwendet, wo entweder Daten von verschiedenen Typen von Sensoren, ein Datum bezüglich einer durch Anwendung eines Voraussagefilters auf die vorangegangenen Werte geschätzten Referenz oder ein Datum bezüglich eines vorbestimmten Zugehörigkeitsbereichs verglichen wird, um etwaige Inkonsistenzen zu erfassen. Die als fehlertolerant basierend auf der algorithmischen Verarbeitung („Algorithm Based Fault Tolerance") bezeichneten Verfahren stellen eine Unterklasse von Plausibilitätskontrollen dar, wobei die Überprüfung auf der Ausführung eines zweiten Algorithmus (zum Beispiel des inversen Algorithmus, welcher es ermöglicht, die anfänglichen Daten ausgehend von den erhaltenen Ergebnissen wiederzufinden, wenn diese ohne Fehler sind) basiert.
    • – Strukturelle oder semantische Kontrolle von Daten, was relativ komplexe Datenstrukturen erfordert.
    • – Komplementäre Fehlerauffindungskonzepte für die Mechanismen, die es nicht ermöglichen, Fehler zu korrigieren, hauptsächlich die Wiederaufnahmepunkte: regelmäßiges Sichern von Kontexten und Wiederaufnahme ausgehend von dem letzten gesicherten Kontext. Die Entwicklung des Rechners COPRA (1980), welche in den Quellendokumenten [1] bis [3] beschrieben ist, basiert auf diesem Prinzip.
    • – Wiedereinsetzen der fehlerhaften Ressource durch Überführen eines intakten Kontexts in den fehlerhaften Rechner, um die anfängliche Erfassungs-/Korrekturkapazität von einigen Architekturen wiederzuerhalten. Ein Wiedereinsetzen von fehlerhaften Zeichenketten kann durch den Betreiber während der nicht kritischen Flugphasen bewerkstelligt werden.
  • Die Architektur vom Typ „Master-Überprüfer" besteht darin, lediglich den Mikroprozessor zu duplizieren, die zwei Mikroprozessoren Befehl für Befehl zu synchronisieren und systematisch ihren Bus bei jedem Speicherzugriff (Befehle und Daten) zu vergleichen. Bestimmte Mikroprozessoren beinhalten direkt auf dem Chip Synchronisationsmechanismen, sowie Busvergleicher: zum Beispiel die Mikroprozessoren IBM RH6000, Intel i960, Intel Pentium, TEMIC/MHS ERC-32, wie in dem Quellendokument [5] beschrieben.
  • Somit umfasst die in der 1 dargestellte Übersicht:
    • – einen Master-Mikroprozessor 1, umfassend: – einen Mikroprozessorkern CM, – einen Taktgenerator GH, – einen Taktsynchronisator SH, – ein Konfigurationsregister RC, – einen Buskomparator CMP, – unidirektionale oder bidirektionale Isolatoren,
    • – einen Überprüfer-Mikroprozessor 2, welcher dieselben Elemente umfasst: – einen Mikroprozessorkern CM, – einen Taktgenerator GH, – einen Taktsynchronisator SH, – ein Konfigurationsregister RC, – einen Buskomparator CMP, – unidirektionale oder bidirektionale Isolatoren,
    • – einen Speicher 3.
  • Die Signale C, A und D sind ein interner Steuer-, Adress- bzw. Datenbus.
  • Die Takte H und Hi weisen beispielsweise Frequenzen von 10 MHz bzw. 100 MHz auf.
  • Die Busse 4, 5 und 6 sind ein externer Steuer-, Adress- bzw. Datenbus.
  • In der 1 sind schraffierte Elemente spezifisch für die „Master-Überprüfer"-Architektur, wobei die durchgestrichenen Signale inaktive oder unterbundene Signale sind.
  • Der Mikroprozessor beinhaltet die folgenden für die „Master-Überprüfer"-Architektur spezifischen Elemente:
    • – ein Register RC, welches es ermöglicht, einen der zwei Mikroprozessoren als „Master" und den anderen als „Überprüfer" zu konfigurieren,
    • – eine Synchronisation von internen Takten Hi der zwei Mikroprozessoren,
    • – Buskomparatoren CMP,
    • – eine Logik, welche es ermöglicht, abhängig von einem Lese- oder Schreibzugriftstyp und auch abhängig von der Konfiguration des Mikroprozessors als „Master" oder als „Überprüfer" eingangsseitig oder ausgangsseitig Busisolationen zu positionieren.
  • Wie es in den 2A und 2B veranschaulicht ist, welche die Schreibphase bzw. die Lesephase des Speichers darstellen, ist die Funktionsweise die folgende: die zwei Mikroprozessoren 1 und 2 lesen und führen gleichzeitig dieselben Befehle aus. Bei jedem Schreibzugriff auf den Speicher erzeugen die zwei Mikroprozessorkerne CM eine Adresse und ein Datum. Die Busisolationen des Master-Mikroprozessors 1 sind ausgangsseitig gerichtet, während diejenigen des Überprüfer-Mikroprozessors 2 eingangsseitig gerichtet sind, und die Buskomparatoren des letzteren vergleichen bitweise die durch die zwei Mikroprozessorkerne CM gelieferten Werte. Im Fall einer Inkonsistenz erzeugt der Überprüfer-Mikroprozessor 2 ein Fehlersignal. Bei jedem Lesezugriff auf den Speicher wird die durch den Master-Mikroprozessor 1 gelieferte Adresse durch den Überprüfer-Mikroprozessor 2 mit derjenigen verglichen, welche durch den letzteren berechnet wurde; im Fall einer Übereinstimmung lesen die zwei Mikroprozessoren 1 und 2 dasselbe Datum.
  • Die Schwierigkeit diesen Architekturtyp mit Mikroprozessoren zu realisieren, welche nicht für die oben beschriebenen Mechanismen ausgestaltet sind und welche diese daher nicht beinhalten, liegen in den Phasenverschiebungen zwischen den internen und externen Takten. Der Verwender liefert dem Mikroprozessor nämlich einen Takt mit einer relativ niedrigen Frequenz (einige 10 MHz), welche intern mittels einer Phasenregelschleife multipliziert wird, um höhere Frequenzen zu erhalten (einige 100 MHz). Zwei Mikroprozessoren, welche mit demselben Takt gespeist werden, arbeiten somit mit derselben Frequenz, befinden sich jedoch zueinander außer Phase. Der Wert dieser Phasenverschiebung ist zufällig und wird bei der Spannungszuschaltung bestimmt. Der direkte Vergleich der Busse wird somit unmöglich gemacht.
  • Bei der „Master-Überprüfer"-Architektur ist der Speicher nicht dupliziert. In der COPRA-Architektur ist der Speicher lediglich dupliziert, um gegenüber Ausfällen von Bauelementen tolerant zu sein, die zwei Zentraleinheiten verwenden jedoch dieselbe Speicherbank.
  • Ein erstes Dokument des Stands der Technik, das Patent US 5 790 397 , beschreibt zwei Recheneinheiten CE („Computer Element"), welche im Duplexmodus arbeiten, wobei ein Eingangs/Ausgangs-Prozessor die Makrosynchronisation der zwei Recheneinheiten und den Vergleich ihrer Eingabe/Ausgabe-Anforderungen bewerkstelligt und diese Eingaben/Ausgaben realisiert. Wenn die zwei Recheneinheiten beabsichtigen, eine Eingabe/Ausgabe zu bewerkstelligen, senden sie eine Nachricht, welche diese Anforderung beschreibt, an den Eingangs/Ausgangs-Prozessor. Dieser makro-synchronisiert die zwei Recheneinheiten und vergleicht die „checksum" der zwei Nachrichten; wenn die „checksum" nicht identisch ist, wird die fehlerhafte Recheneinheit blockiert oder ausgeschaltet.
  • Ein zweites Dokument des Stands der Technik, der Artikel mit dem Titel „Transient fault tolerance in digital systems" von Janusz Sosnowski (8207, IEEE micro, 14. Februar 1994, Nr. 1, Los Alamitas, CA, US), ist ein Dokument, welches es ermöglicht, die Probleme von vorübergehenden Fehlern in Rechensystemen zu verstehen, was zum Ziel hat, zu ermöglichen, optimale Techniken auszuwählen, um die Auswirkungen von solchen Fehlern in entwickelten Systemen zu maskieren oder beseitigen.
  • Ein drittes Dokument des Stands der Technik, die Patentanmeldung EP-0 440 312, beschreibt eine Duplex-Architektur, welche aus einem BPSMP („Basic Processor Subsystem Modules Primary" oder primären Hauptprozessor-Subsystemmodul) und einem BPSMS („Basic Processor Subsystem Modules Secondary" oder sekundären Hauptprozessor-Subsystemmodul) besteht, welche auf ein Speichersubsystem zugreifen, welches aus verschiedenen Speicherblöcken besteht („memory array"). Der Mikroprozessor von jedem BPSM-Modul führt die Befehle aus, welche in dem Inhalt desselbigen Moduls gespeichert sind, wobei die zwei Module synchronisiert und abgeglichen sind, sobald sie auf ein Datum zugreifen, wobei die Daten in dem Speichersubsystem gespeichert sind.
  • Die Aufgabe des erfindungsgemäßen Verfahrens ist es, vorübergehende Fehler in den Computerarchitekturen, zum Beispiel für Satelliten, mit einer sehr hohen Fehlerabdeckungsrate zu verarbeiten, um die Verwendung von kommerziellen Bauelementen bei Missionen zu ermöglichen, welche sehr starke Verfügbarkeitsbeschränkungen aufweisen, und dies trotz ihrer Empfindlichkeit gegenüber Einzelereignissen, welche durch Strahlungen hervorgerufen werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist durch die unabhängigen Ansprüche definiert.
  • Die vorliegende Erfindung schlägt ein gegenüber vorübergehenden Fehlern tolerantes Computersystem vor, welches durch eine Verarbeitungseinheit gebildet ist, die umfasst:
    • – wenigstens zwei Verarbeitungseinheiten, welche jeweils umfassen: – einen Mikroprozessor – einen Speicher, welcher durch eine Vorrichtung geschützt ist, die einen Code zur Fehlererfassung und Korrektur erzeugt und überprüft, – eine Vorrichtung zur Überwachung von Speicherzugriffen, welche umfasst: – Mittel zur Segmentierung des Speichers und zur Überprüfung von Zugriffsrechten auf jedes Segment, – Mittel zum spezifischen Schutz der Segmente des Speichers, welche der Sicherung des Wiederherstellungskontexts zugewiesen sind, – Mittel zum Erzeugen eines Korrekturanforderungssignals an die Verwaltungsvorrichtung für die Verarbeitungseinheiten und Eingaben/Ausgaben,
    • – eine zentralisierte Verwaltungsvorrichtung für die Verarbeitungseinheiten und Eingaben/Ausgaben, welche umfasst: – Makrosynchronisationsmittel der Verarbeitungseinheiten, – Vergleichs-/Abstimmungsmittel für durch die Verarbeitungseinheiten erzeugte Daten, – (Signalisierungs)-Mittel für eine Korrekturanforderung, welche aus den Überwachungsvorrichtungen für die Speicherzugriffe hervorgeht, – Entscheidungsfassungsmittel, um im Fehlerfall eine Korrekturphase einzuleiten, und (Signalisierungs)-Mittel, welche es ermöglichen, gleichzeitig diese Anforderung an alle Verarbeitungseinheiten zu übermitteln, – Mittel, welche es ermöglichen, Eingaben/Ausgaben zu bewerkstelligen,
    • – Verbindungen, welche entsprechend jede Verarbeitungseinheit mit der Verwaltungsvorrichtung für die Verarbeitungseinheiten und Eingaben/Ausgaben verbinden.
  • Vorteilhafterweise profitieren die Softwaretasks von einem spezifischen, besonders zuverlässigen Schutz, welcher mittels der Vorrichtung zur Überwachung von Speicherzugriffen erreicht wird, welche Mittel umfasst, die es ermöglichen:
    • – die Speicherbereiche jedes Tasks zu differenzieren,
    • – den Zugriff auf den Speicherbereich, welcher bei dem gültigen Task verwendet wird, zu erlauben.
    • – den Zugriff auf Speicherbereiche, welche von anderen Tasks verwendet werden, zu verbieten.
  • Vorteilhafterweise profitiert das Speichern des vorangegangenen Kontexts von Softwaretasks von einem spezifischen, besonders zuverlässigen Schutz, welcher mittels der Vorrichtung zur Überwachung von Speicherzugriffen erreicht wird, welche Mittel umfasst, die es ermöglichen:
    • – diesen Kontext in einem gemeinsamen und zentralisierten Speicher des RAM-Typs („Random Access Memory") jeder Verarbeitungseinheit zu speichern, ohne dass eine spezifische Speichervorrichtung erforderlich ist,
    • – die Speicherbereiche, welche bei der Sicherung des Kontexts des jeweiligen Tasks verwendet werden, zu differenzieren,
    • – jeden Bereich, welcher zum Speichern dieses Kontexts dient, in einer Doppelbank „Old" und „New" zu verwalten,
    • – zu veranlassen, dass die Doppelbanken „Old" und „New" durch Umschalten wirken,
    • – die Doppelbanken umzuschalten, indem einfach ein Indexsatz „Old" und „New" vertauscht wird,
    • – die Bereiche „Old" beim Lesen zu erlauben, während sie beim Schreiben verboten sind.
  • Diese Vorrichtung kann in einem Bordelektroniksystem und/oder im Raumfahrtbereich verwendet werden.
  • Die vorliegende Erfindung schlägt auch ein Verfahren vor, um ein Computersystem, welches aus einer Verarbeitungseinheit besteht, gegenüber vorübergehenden Fehlern unempfindlich zu machen, welches es ermöglicht:
    • – gleichzeitig auf mindestens zwei Verarbeitungseinheiten in unabhängiger und asynchroner Weise identische Software auszuführen und gemäß der folgenden Funktionsweise anzusprechen: – die vorübergehenden Fehler, welche den Speicher der Verarbeitungseinheiten beeinträchtigen, werden mittels eines Erfassungs- und Korrekturcodes, welcher in einem Speicher gespeichert ist, welcher einem Überprüfungssoftwaretask zugeordnet ist, erfasst und korrigiert, – die ordnungsgemäße Funktionsweise des Mikroprozessors der Verarbeitungseinheiten wird mittels einer Segmentierung des Speichers, welcher einer Überwachung von Speicherzugriffen zugeordnet ist, welche überprüft, dass der Mikroprozessor wirklich über Zugriffsrechte auf das gültige Segment des Speichers verfügt, überprüft, – die der Sicherung des Wiederherstellungskontexts zugewiesenen Speichersegmente sind durch eine spezifische Überwachung von Speicherzugriffen von einer hohen Zuverlässigkeit, um zu gewährleisten, dass ein fehlerhaft arbeitender Mikroprozessor nicht Fehler in diesen kritischen Bereichen erzeugen kann, – eine Korrekturanforderung wird im Fall einer Zugriffsrechtsverletzung an die Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben übermittelt,
    • – die folgenden Vorgänge in der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben zu zentralisieren: – Makrosynchronisation von verschiedenen gleichzeitigen Ausführungen der Software, – Vergleichen/Abstimmen von allen durch die verschiedenen Ausführungen der Software erzeugten Daten, – Empfangen von Korrekturanforderungen, welche von den Überwachungsfunktionen der Speicherzugriffe infolge einer Fehlererfassung ausgehen, – wenn ein Fehler erfasst wird, ganz gleich, was sein Ursprung ist, fassen der Entscheidung, eine Korrekturphase einzuleiten und gleichzeitiges Übermitteln einer Korrekturanforderung an verschiedene Ausführungen der Software, – Herbeiführen von Eingaben/Ausgaben auf Anforderung der Softwareprogramme,
    • – Realisieren der Schnittstelle zwischen den Softwareprogrammen, welche gleichzeitig ablaufen, und der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben.
  • Vorteilhafterweise besteht ein Fehlereingrenzungsbereich zwischen Softwaretasks, das heißt, dass ein fehlerhaft arbeitender Mikroprozessor aufgrund der Verwaltung der Speichersegmente nur die Variablen des gültigen Tasks stören kann, jedoch nicht diejenigen der anderen Tasks.
  • Vorteilhafterweise ist im Fall einer Fehlererfassung aufgrund des Abstimmens und daraufhin Speichern des vorhergehenden Kontexts der Softwaretasks und aufgrund seines spezifischen Schutzes, welcher es ermöglicht, zu gewährleisten, dass er intakt ist, eine Wiederherstellung möglich, sogar wenn nur zwei Verarbeitungseinheiten vorhanden sind, wobei der Schutz zuverlässig ist, denn auch wenn er in dem gemeinsamen und zentralisierten Speicher jeder Verarbeitungseinheit gespeichert wird, wird er in den durch die Vorrichtung zur Überwachung von Speicherzugriffen verwalteten Bereichen in für jeden Task spezifischen Speicherbereichen in einer Doppelbank „Old" und „New", welche durch Umschalten wirken, gespeichert, wobei das Umschalten dieser Doppelbanken bewerkstelligt wird, indem einfach ein Indexsatz „Old" und „New" vertauscht wird, damit der gültige Kontext auf diese Weise zu dem vorhergehenden Kontext wird, wobei die Bereiche „Old" beim Lesen erlaubt, um den Tasks Eingangsdaten zu liefern, jedoch beim Schreiben verboten sind, und somit selbst im Fall einer Fehlfunktion der Mikroprozessoren geschützt sind.
  • Vorteilhafterweise wird die Fehlerwiederherstellung, welche auf einer Wiederherstellung des Vorhergehenden Kontexts basiert, mittels der Tatsache realisiert, dass der Index, welcher den für intakt, d.h. ohne Fehler, befundenen Kontext bezeichnet, nicht geändert wird, während er, wenn kein Fehler erfasst wird, am Ende einer der Granularität der Erfassung/Wiederherstellung entsprechenden Periode systematisch umgeschaltet wird; die Wiederherstellung beschränkt sich somit auf ein „nicht Umschalten" des Index, welcher den gültigen/vorhergehenden Kontext bezeichnet, was dem Versetzen in einen Bereitschaftszustand entspricht und somit keine besondere Tätigkeit erfordert.
  • Vorteilhafterweise ist die Granularität der Fehlererfassung/-wederherstellung der Kontroll-Kommandozyklus von jedem der Softwaretasks, welche auf den Verarbei tungseinheiten ausgeführt werden, wobei eine Wiederherstellung einzig auf dem fehlerhaften Softwaretask durchgeführt werden kann, ohne dass die Ausführung der anderen Tasks beeinträchtigt wird.
  • Vorteilhafterweise veranlasst eine Fehlererfassung das Versetzen des Mikroprozessors in einen Bereitschaftszustand, d.h. das Unterbinden der Ausführung der Periode, welche der Granularität der Erfassung/Wiederherstellung entspricht, in welcher der Fehler erfasst wurde, wodurch ein „Loch" einer Periode in dem gewöhnlichen Ausführungszyklus verursacht wird.
  • Vorteilhafterweise kann der Vergleich/ die Abstimmung des Kontexts optional auf zwei Weisen realisiert werden:
    • – entweder die Anwendungssoftware fordert explizit eine(n) gruppierte(n) Vergleich/Abstimmung von Kontextdaten, um diese einzeln zu sichern, wenn sie für intakt, das heißt ohne Fehler, befunden werden, wobei diese Anforderung systematisch am Ende einer Periode, welche der Granularität der Erfassung/Wiederherstellung entspricht, realisiert wird;
    • – oder, je nach Stand ihrer Berechnungen, erfasst die Hardwarevorrichtung zur Überwachung von Speicherzugriffen jeder Verarbeitungseinheit jeden Schreibversuch in die Kontextbereiche und unterzieht ihn systematisch einem Vergleich/ einer Abstimmung, um seine Richtigkeit zu überprüfen.
  • Bei diesem Verfahren können drei Stufen von Fehlereingrenzungsbereichen definiert werden, räumlich, zeitlich und softwarebezogen.
  • Das Verfahren ist unabhängig von der Auswahl des Mikroprozessors hinsichtlich des Typs (Mikroprozessor zur allgemeinen Verwendung, Mikroprozessor zur Signalverarbeitung, spezifisch entwickelter Mikroprozessor usw.) und hinsichtlich der Herkunft (Marke, Familie, Bezugsquelle usw.) und ist mit allen kommerziellen Mikroprozessoren verwendbar.
  • Dieses Verfahren kann in einem Bordelektroniksystem und/oder im Raumfahrtbereich verwendet werden.
  • Die Minimierung der spezifischen Entwicklungen beim erfindungsgemäßen Verfahren sowie die sehr hohe Fehlerabdeckungsrate sind zwei attraktive Punkte dieses Verfahrens. In dem Modell, welches die Materialaufwendungen maximiert, sind diese Entwicklungen im Wesentlichen:
    • – Für die Software: – eventuelle Regruppierung der Befehle am Ende der Tasks (was bei Duplex-Architekturen üblich ist), – eventuelles Auslösen der Abstimmung von Kontextdaten am Ende von Tasks, – Verwaltung von Schlüsseln der Vorrichtung zur Überwachung von Speicherzugriffen, – Sichern von Kontextdaten für die Korrektur, – leichtes Aktualisieren von bestehenden Softwareprogrammen, abhängig von den oben beschriebenen Eigenschaften,
    • – Für die Hardware: – Entwicklung von Überwachungsfunktionen für Speicherzugriffe und Verwaltung von Prozessoren und Eingängen/Ausgängen.
  • Darüber hinaus sind die folgenden Elemente verfügbar:
    • – die Verwendung von kommerziellen Softwarebibliotheken ist ohne jegliche Einschränkung möglich,
    • – die Überwachungsfunktionen für Speicherzugriffe und Verwaltung von Prozessoren und Eingaben/Ausgaben sind generisch und von einem Projekt zum anderen wiederverwendbar, bis auf die Mikroprozessorschnittstelle der Vorrichtung zur Überwachung von Speicherzugriffen, welche bei Wechsel des Mikroprozessors angepasst werden muss.
  • Zusammenfassend sind die Vorteile des erfindungsgemäßen Verfahrens die folgenden:
    • – begrenzte und generische und somit von einem Projekt zum anderen wiederverwendbare Hardwareentwicklungen,
    • – sehr geringe Softwareentwicklungen,
    • – geringe Rechenleistung, welche durch die Fehlertoleranz in Anspruch genommen wird,
    • – Minimierung der wiederkehrenden Kosten bezüglich anderer fehlertoleranter Architekturen durch eine begrenzte strukturelle Verdopplung,
    • – ein Korrekturmodus, welcher keine Prozessorlast und somit keine Störung der Echtzeitfunktionsweise der Anwendung (welche zum Beispiel Schwierigkeiten bei der Abstimmung verursachen könnte) bewirkt,
    • – drei Stufen von Fehlereingrenzungsbereichen: räumlich, zeitlich und softwarebezogen,
    • – inhärente Fehlererfassung des Echtzeitprogramms, was es ermöglicht, ohne Zusatzkosten für die Erfassung ein kommerzielles Produkt zu verwenden,
    • – sehr hohe Fehlerabdeckungsrate.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die 1 und 2 stellen die Übersicht bzw. die Funktionsweise einer „Master-Überprüfer"-Architektur dar.
  • Die 3 stellt die Übersicht einer Referenz-Hardwarearchitektur dar.
  • Die 4 zeigt ein Zeitdiagramm einer Referenz-Software-Architektur.
  • Die 5 veranschaulicht die Ablauffolge der Referenzarchitektur.
  • Die 6 veranschaulicht die Architektur des erfindungsgemäßen Systems.
  • Die 7 veranschaulicht den Fehlereingrenzungsbereich auf der räumlichen Stufe des erfindungsgemäßen Systems.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Bei einer bestimmten Anzahl von Raumfahrtaufgaben ist eine sehr hohe Verfügbarkeit des Rechners notwendig. Dies trifft insbesondere im Bereich von Telekommunikationssatelliten zu, wo die Strafgebühren für eine Nichtverfügbarkeit außergewöhnlich hoch sind: Einige Übertragungsunterbrechungen während den Hauptgesprächsstunden können den Betreiber des Satelliten als Strafgebühren das Äquivalent der Miete für diesen Kanal während eines Jahres kosten.
  • Außerdem hängt die Rate von Einzelereignissen in einem vollständig aus kommerziellen Bauelementen realisierten Rechner natürlich von Voraussetzungen wie der Anzahl von Speicherzellen (Registern usw.) und dem berücksichtigten Wert für die Empfindlichkeit einer Einzelzelle ab. Die Frequenz von Einzelereignissen ist sehr viel geringer als die Frequenz des Echtzeitzyklus des Rechners, wobei dieser Zyklus der Granularität der Erfassung/Korrektur entspricht, welche für das erfindungsgemäße Verfahren angenommen wird, und kann eins oder einige Ereignisse pro Monat betragen.
  • Die Maximalannahmen (d.h. der schlimmste Fall), welche für die Definition einer erfindungsgemäßen gegenüber vorübergehenden Fehlern toleranten Architektur angenommen werden, sind die folgenden:
    • – Alle Bauelemente der Referenzarchitektur sind kommerzielle Bauelemente.
    • – Diese kommerziellen Bauelemente sind im Vorfeld ihrer Verwendung nicht hinsichtlich der Beständigkeit gegenüber Einzelereignissen charakterisiert: Sie werden somit alle als empfindlich betrachtet.
  • Als Basis der Beschreibung des erfindungsgemäßen Verfahrens wird die typische und generische Referenzarchitektur eines Rechners, welcher in der Raumfahrt verwendet wird, welche in der 3 dargestellt ist, betrachtet.
  • Die Bordverwaltungseinheit 10, welche in dieser 3 dargestellt ist, umfasst:
    • – eine Zentraleinheit 11,
    • – einen Massenspeicher 12,
    • – Schnittstellen für Leistung 13, Nutzlast 15, Pyrotechnik 16, Wärmetechnik, ein Höhen- und Umlaufbahnsteuersystem 18, welche über einen Datenbus 19 verbunden sind,
    • – eine Fernsteuerungs-Fernmessungs-Schnittstelle 14,
    • – eine Überwachungs- und Rekonfigurationselektronik 20,
    • – Gleichspannungswandler 21, welche eine Wechselspannungsversorgung AC und eine Permanentspannungsversorgung AP liefern.
  • Die Leistungsschnittstelle 13 ist mit einem Sonnenenergiegenerator 25 und mit einer Batterie 26 verbunden.
  • Die Fernsteuerungs-Fernmessungs-Schnittstelle 14 ist mit einem Sender/Empfänger, einem Duplexer 27 verbunden, welcher in Verbindung mit Antennen 28 und 29 steht.
  • Die Nutzlast 31 ist über einen Avionikbus 32 mit der Zentraleinheit 11, über eine serielle Hochgeschwindigkeitsverbindung 33 mit dem Massenspeicher 12 sowie mit der Fernsteuerungs-Fernmessungs-Schnittstelle 14 und mit der Nutzlastschnittstelle 15 verbunden.
  • Die Pyrotechnikschnittstelle 16 ist mit ausfahrbaren Systemen 35 verbunden.
  • Die Wärmetechnikschnittstelle 17 ist mit Heizern, Thermistoren 36 verbunden.
  • Die Schnittstelle für das Höhen- und Umlaufbahnsteuersystem 18 ist mit Sensoren C1, C2,... Cn, mit Aktuatoren A1, A2,... Am, und mit einem Drucksensor für Reservoirs 37 verbunden.
  • Eine solche Architektur ist somit aus verschiedenen Modulen zur Verarbeitung (Zentraleinheitsmodul) oder für Eingaben/Ausgaben (Erfassungsmodule, Kommandomodule) gebildet. Die Module für Eingaben/Ausgaben (oder für Erfassungen/Kommandos) beinhalten die Elektronik niedriger Stufe (Analog/Digital- oder Digital/Analog-Wandler, digitale oder analoge Kanalmultiplexer, Relais usw.).
  • Diese Module können unterschiedslos Karten sein, welche über einen Verdrahtungsplattenbus verbunden sind, oder komplette Gehäuse, welche über einen Avionikbus verbunden sind. In beiden Fällen ist die Schnittstelle zu dem Bus über einen Master-Buskoppler (CB) auf dem Zentraleinheitsmodul und über Teilnehmer-Buskoppler auf den anderen Modulen realisiert.
  • Die Referenz-Software-Architektur, wie sie in der 4 veranschaulicht ist, ist aus Verarbeitungstasks gebildet (zum Beispiel: ein Task des Höhen- und Umlaufbahnsteuersystems, ein Wärmetechnik-Steuertask, ein Echtzeittakt-Task, ein Bord-Verwaltungstask, usw.), wobei jeder Task Ergebnisse erzeugt, welche den Rechner verlassen müssen (Kommandos oder KMDS), wobei diese Ergebnisse je nach ihrer Berechnung erzeugt werden (d.h. aus dem Rechner ausgegeben werden). Aufgrund der zeitlichen Kohärenz (zum Beispiel des Höhen- und Umlaufbahnsteuersystems) sind die Erfassungen (oder Acq) am Anfang des Echtzeitzyklus gruppiert.
  • In der 4 sind die Tasks A, B und C aus Gründen der Klarheit und der Beschreibung mit derselben Frequenz dargestellt.
  • Die Aktivität dieser Tasks ist durch einen Echtzeitzyklus getaktet, welcher durch einen zyklischen Echtzeitinterrupt IT-TR ausgelöst wird. Dieser Zyklus ermöglicht es, in zyklischer Weise bestimmte Tasks zu starten, welche entweder mit der Frequenz des Echtzeitzyklus oder mit einer Teilfrequenz arbeiten. Die anderen Tasks sind asynchron und werden bei Ereignissen gestartet.
  • Eine Darstellung, in welcher die Hardware- und Software-Referenz-Architektur zugleich erscheinen, ist in der 5 bereitgestellt. In dieser Figur sind die Zentraleinheit 40, die Erfassungselektronik 41, welche mit Sensoren 42 verbunden ist, und die Befehlselektronik 43, welche mit Aktuatoren 44 verbunden ist, dargestellt, wobei diese zwei Elektroniken 41 und 43 sowie die Zentraleinheit mit einem Datenbus 45 verbunden sind.
  • Die Ablauffolge von drei Hauptphasen Ph1, Ph2 und Ph3, welche die Erfassung von Daten, ihre Verarbeitung und die Erzeugung von Kommandos sind, bringen die drei unterschiedlichen Teile der Elektronik 40, 41, 43 ins Spiel, wobei die Phasen Ph2 und Ph3 ineinander greifen.
  • Das erfindungsgemäße Verfahren weist eine generische Bestimmung auf und kann in allen Rechnertypen verwendet werden, welche Beschränkungen von vorübergehenden Fehlern unterliegen, ohne Rücksicht auf den Ursprung dieser Fehler (kosmische Strahlungen, elektromagnetische Impulse usw.).
  • Folglich stützt sich seine Beschreibung auf eine typische Hardware- und Software-Referenzarchitektur, welche keine spezielle Anwendung repräsentiert. Die Hardwareseite dieser Architektur basiert lediglich auf Funktionsblöcken ohne eine Hardwarerealisierung (ohne Auswahl von Bauelementen, ohne Auswahl von Integrationstypen usw.) und berücksichtigt somit nicht die Besonderheit von spezifischen Bauelementen (Mikroprozessoren usw.) und ihre etwaigen Fähigkeiten in dem Bereich der Fehlererfassung/-korrektur. Das erfindungsgemäße Verfahren ist somit selbstgenügend. Jedoch kann die Verwendung von etwaigen in für eine gegebene Anwendung gewählte Bauelemente integrierten Fehlertoleranzmechanismen die Fehlerabdeckungsrate im Vergleich zu nur dem erfindungsgemäßen Verfahren lediglich verbessern.
  • Eine Bestimmung von möglichen Fehlersignaturen der Referenzarchitektur, welche Einzelereignissen ausgesetzt ist, wurde durchgeführt. Sie hat es ermöglicht, die Fehler in zwei Hauptgruppen zu klassifizieren:
    • – die Datenfehler,
    • – die Abfolgefehler, welche außerdem in zwei Unterklassen aufgeteilt werden können:
    • – „leichter Absturz": fehlerhafte Verzweigung, jedoch kommt der Mikroprozessor zurück in Phase mit den Befehlen und verfolgt eine Abfolge von Befehlen, welche mehr oder weniger erratisch ist;
    • – „schwerer Absturz": der Mikroprozessor ist nicht mehr betriebsfähig: der Mikroprozessor befindet sich nicht in Phase mit den Befehlen, der Mikroprozessor lädt das Befehlsregister mit Daten, der Stapelzeiger ist gestört, es besteht eine Blockierung der Abfolge von Befehlen, ein Versuch eines unmöglichen Ereignisses, eine Endlosschleife usw.
  • Diese zwei Klassen unterteilen sich in verschiedene Unterklassen, von welchen die wichtigste die Adressfehler betrifft.
  • Die Unterscheidung zwischen einem „leichten" und einem „schweren" Absturz ist wichtig: So wie allgemein ein bezüglich des Mikroprozessors externer Hardwaremechanismus für die Erfassung von „schweren" Abstürzen erforderlich ist (zum Beispiel ein Laufzeitüberwacher), so kann ein Softwaremechanismus ausreichen, um einen „leichten" Absturz zu erfassen, weil in dem letzteren Fall der Mikroprozessor fortfährt, den Code auszuführen, selbst wenn dies in erratischer Weise ist.
  • Außerdem stellen die Mikroprozessorabstürze eine Klasse von kritischen Fehlern dar, denn ein „verrückter Mikroprozessor" ist zu Tätigkeiten fähig, welche für eine Mission katastrophale Folgen haben können; es ist somit wichtig, sich damit zu befassen, sie mit einer kurzen Verzögerung zu erfassen, und/oder Fehlereinschränkungsbereiche zu realisieren, damit die Wahrscheinlichkeit von falschen Kommandos infolge eines nicht erfassten Fehlers minimiert wird.
  • Ein Mechanismus oder eine Gruppe von Mechanismen, welcher bzw. welche direkt jedes Ereignis, das aus den zwei obigen Fehlerklassen hervorgeht, erfassen würde, würde eine vollständige Erfassung aufweisen. Wenn eine direkte Erfassung dieser zwei Klassen nicht ausreichend vollständig ist, kann es somit vorteilhaft sein, Mechanismen zu verwenden, welche spezifisch an eine oder mehrere Unterklassen, insbesondere die Adressfehler, angepasst sind, um die Gesamtabdeckungsrate der gewählten Lösung zu verbessern.
  • AUSWAHL DER GRANULARITÄT DER ERFASSUNG/KORREKTUR
  • Insgesamt ist die gemäß der Erfindung für die Erfassung/Korrektur vorgeschlagene Granularität der Basis Echtzeitzyklus des Rechners, zum Beispiel der Zyklus des Höhen- und Umlaufbahnsteuertasks eines Satelliten-Plattformrechners.
  • Genauer ist die Granularität der Steuer-/Kommandozyklus von jedem Softwaretask, welcher auf den Kernverarbeitungseinheiten ausgeführt wird, jedoch wird der Ausdruck „Echtzeitzyklus" zur Vereinfachung beibehalten.
  • Im Ergebnis ist es bei dem erfindungsgemäßen Verfahren wie bei einer „klassischen" vollständigen Duplexstruktur die Aufgabe, den Rechner ohne Überwachung arbeiten zu lassen und einzig die Daten, welche aus dem Rechner ausgegeben werden sollen (die Befehle) oder welche der Fehlerkorrektur/-wiederherstellung dienen (der Kontext) abzustimmen.
  • Die Auswahl des Echtzeitzyklus für die Granularität ist sehr vorteilhaft:
    • – mit dieser Frequenz wird bei einer Erfassung oder bei einem Kommando auf eine Mehrzahl von Sensoren/Aktuatoren zugegriffen;
    • – am Ende des Echtzeitzyklus verfügt man über „aktive" Daten mit einer relativ beschränkten Anzahl (weder vielfältige Zwischendaten noch lokale variablen im Verwendungsverlauf):
    • – für die Erfassung werden somit die Daten des „Kontext"-Typs, welche abgestimmt werden müssen, begrenzt;
    • – für die Korrektur verfügt man über einen einfachen und gut lokalisierten Wiederaufnahmekontext.
  • Die Suche nach einer sehr genauen Granularität, insbesondere für die Korrektur, offenbart schnell die Komplexität, welche durch die Definition der in dem Wiederaufnahmekontext notwendigen und hinreichenden Daten und zusätzlich von Zwischen abstimmungen, welche die Gesamtfunktionsweise verkomplizieren, herbeigeführt wird.
  • Genauer ist die Granularität der Erfassung/Korrektur für einen gegebenen Task die Frequenz desselben Tasks, weil die Abstimmung am Ende des Tasks erfolgt. Wenn man einen Task mit 10 Hz und einen Task mit 1 Hz betrachtet, beträgt folglich die Granularität 10 Hz für den ersten und 1 Hz für den zweiten. Der Gedankengang ist identisch, jedoch aufgrund der Klarheit wird im Folgenden der Begriff einer „Granularität per Echtzeitzyklus" anstelle von „per Task" beibehalten.
  • GESAMTBESCHREIBUNG
  • Insgesamt ist die Architektur vom „Duplex"-Typ (zwei parallele identische physikalische Ketten, welche dieselbe Software ausführen, mit einem Vergleich von Ausgängen) besonders attraktiv, weil sie es ermöglicht, ohne Ausnahme alle Fehler unabhängig von ihrem Typ (Daten-, Adress-, Abfolge-, Konfigurationsfehler usw.) zu erfassen. Der Nachteil einer solchen Lösung liegt in der Schwere der strukturellen Redundanz: die Masse, das Volumen, der Verbrauch und auch die wiederkehrenden Kosten des Rechners werden mehr als verdoppelt, was für zahlreiche Anwendungen nicht akzeptabel ist.
  • Vorausgesetzt dass die große Mehrheit der mit der Fehlererfassung/-korrektur verbundenen Schwierigkeiten in dem Mikroprozessor lokalisiert ist, ist eine Architektur des „Master-Überprüfer"-Typs sehr attraktiv. Jedoch ist, um Mikroprozessoren verwenden zu können, welche auf dem Chip keine Mechanismen umfassen, welche die Mikro-Synchronisation des Masters mit dem Überprüfer und den Vergleich ihres Busses erlauben, die Suche nach einer anderen Lösung notwendig.
  • Um von der Effektivität des Duplex zu profitieren, während die strukturelle Redundanz minimiert wird und somit der Kompaktheit einer Architektur des „Master-Überprüfer"-Typs nahe gekommen wird, besteht das erfindungsgemäße Verfahren darin, lediglich den Mikroprozessor und seinen Speicher (es wird von einer „Kernverarbeitungseinheit" gesprochen) zu duplizieren und diese zu makro-synchronisieren; die aus jeder Kernverarbeitungseinheit hervorgehenden Daten (zum Beispiel Kommandos, Kontexte) werden vor Verwendung durch eine zu ihnen externe Komponente abgestimmt.
  • Eine Korrektur besteht darin, nach einer Erfassung, den Echtzeitzyklus im Verlauf zu unterbinden und einen intakten Kontext wiedereinzuladen, um eine Wiederaufnahme zu bewirken, wobei die Wiederaufnahme im Grunde genommen die nominale Ausführung des folgenden Zyklus ausgehend von dem wiedereingeladenen Kontext ist: Alles erfolgt, als wenn ein „Loch" von einem Echtzeitzyklus bestehen würde (es handelt sich um eine „Wiederaufnahme").
  • Das erfindungsgemäße Verfahren ermöglicht eine hohe Fehlerabdeckungsrate gegenüber vorübergehenden Fehlern in der Kernverarbeitungseinheit, weil dieser Fehlertyp unausweichlich einen Unterschied zwischen den zwei Kernverarbeitungseinheiten verursacht.
  • Das erfindungsgemäße Verfahren ermöglicht es auch, permanente Ausfälle in einer der Kernverarbeitungseinheiten zu erfassen, natürlich jedoch ohne sie korrigieren zu können, wobei diese in gewöhnlicher Weise verarbeitet werden müssen.
  • Allerdings schützt das erfindungsgemäße Verfahren nicht die der Abstimmung nachgelagerten Vorgänge, d.h. die Übertragungen von Daten in Richtung der Steuerelektronik (d.h. den Datenbus), sowie dieselbige Steuerelektronik. Somit müssen kritische Kommandos, welche es erfordern, fehlerfrei zu sein, durch klassische Mechanismen geschützt sein: Eine Codierung von Daten, eine Schaltung zur Fehlererfassung, Technik der Steuerelektronik, usw.
  • Der Einsatz des erfindungsgemäßen Verfahrens beruht auf zwei spezifischen Komponenten: einer Überwachungsvorrichtung für Speicherzugriffe und einer Verwaltungsvorrichtung für Prozessoren und Eingaben/Ausgaben. Diese sind konzeptionell durch klassische Mechanismen gegenüber Einzelereignissen geschützt: Verdreifachung von kritischen Registern usw.
  • DETAILLIERTE BESCHREIBUNG
  • HAUPTBESTANDTEILE
  • Die 6 zeigt die Hardware-Architektur des erfindungsgemäßen Verfahrens.
  • Diese umfasst eine erste und eine zweite Kernverarbeitungseinheit 50 und 51, welche dieselben Elemente umfassen, und eine Verwaltungsvorrichtung für Prozessoren und Eingaben/Ausgaben 52.
  • Die erste Kernverarbeitungseinheit umfasst:
    • – einen Speicher 53, welcher durch einen Code zur Fehlererfassung und -korrektur (EDAC) geschützt ist,
    • – einen Mikroprozessor 54,
    • – eine Überwachungsvorrichtung für Speicherzugriffe 55.
  • Die zweite Verarbeitungseinheit 51 umfasst:
    • – einen Speicher 56, welcher durch einen Code zur Fehlererfassung und -korrektur (EDAC) geschützt ist,
    • – einen Mikroprozessor 57,
    • – eine Überwachungsvorrichtung für Speicherzugriffe 58.
  • Jede Vorrichtung zur Überwachung von Speicherzugriffen 55, 58 erzeugt für den entsprechenden Speicher 53, 56 Auswahlsignale CS („chip select").
  • Die Verwaltungsvorrichtung für die Prozessoren und Eingaben/Ausgaben 52 ist mit jeder Vorrichtung zur Überwachung von Speicherzugriffen über einen Bus 60, 61 verbunden. Sie ist außerdem mit einem Eingangs-/Ausgangsbus 62 verbunden. Sie empfängt Signale ERR#1 und ERR#2 mit Herkunft von den Vorrichtungen zur Überwachung von Speicherzugriffen 55 und 58 und ein Signal EA (asynchrone Ereignisse) mit Herkunft von Außen. Sie liefert ein Signal IT (Interrupt) an die zwei Mikropro zessoren 54 und 57 und ein Signal ERR (Fehler) an die zwei Kennverarbeitungseinheiten 50 und 51.
  • Das erfindungsgemäße Verfahren beruht somit auf:
    • – einer strukturellen Verdoppelung 50, 51 der Kennvenarbeitungseinheit;
    • – einer bezüglich der Kernveranbeitungseinheit externen Komponente 52, welche hauptsächlich drei Funktionen realisiert:
    • – die Makro-Synchronisation der Kernverarbeitungseinheiten 50 und 51,
    • – die Abstimmung von Daten, welche die Erfassung von Fehlern ermöglicht;
    • – die Verwaltung von Eingaben/Ausgaben;
    • – einer Speicherebene (53, 56) der Kernverarbeitungseinheiten, welche durch einen Fehlererfassungs- und Korrekturcode (EDAC) gegenüber Einzelereignissen geschützt ist;
    • – einer Segmentierung des Speichers, welcher einer Hardwarevorrichtung zur Überwachung von Speicherzugriffen (55, 58) zugeordnet ist, welche die Zugriffsrechte kontrolliert, was es mit dem Fehlererfassungs- und Korrekturcode ermöglicht, in zuverlässiger Weise den Wiederaufnahmekontext in dem gemeinsamen Speicherebenen (53, 56) zu sichern und Adressierungsfehlen zu erfassen;
    • – einer besonderen Verwaltung des Wiederaufnahmekontexts;
    • – einer Korrektur im Fehlerfall;
    • – drei Fehlereingrenzungsbereichen.
  • Eine „Mehrheitsabstimmung" berücksichtigt mindestens drei Eingaben, und es ist genauer, den Ausdruck „Komparator" zu verwenden, wenn nur zwei Eingaben vorhanden sind, wie es bei dem erfindungsgemäßen Verfahren für zwei Kennverarbeitungseinheiten, welches in der 6 dargestellt ist, der Fall ist. In der vorliegenden Beschreibung wird jedoch der allgemeine Ausdruck „Abstimmen" verwendet, welcher anschaulicher ist.
  • STRUKTURELLE VERDOPPELUNG
  • Bei dem erfindungsgemäßen Verfahren ist die strukturelle Verdoppelung auf die Kernverarbeitungseinheit beschränkt, das heißt auf die folgenden Elemente:
    • – den Mikroprozessor (54, 57),
    • – den Speicher (53, 56) des Mikroprozessors (Nur-Lese- und Schreib-Lese-Speicher), welcher durch Erfassung und Korrektur von Fehlern (EDAC) gegenüber Einzelereignissen geschützt ist.
    • – eine externe Hardwarevorrichtung zur Überwachung von Speicherzugriffen (55, 58), welche die Logik zur Decodierung von Adressen und zur Überwachung von Speicherzugriffen einschließt, im Gegensatz zu der „Master-Überprüfer"-Architektur, wo nur der Mikroprozessor dupliziert ist, und im Gegensatz zu dem klassischen strukturellen Duplex, wo die gesamte Zentraleinheitskarte oder der gesamte Rechner dupliziert sind.
  • Diese strukturelle Verdoppelung der Kernverarbeitungseinheiten ermöglicht es, ein nicht modifiziertes Echtzeitprogramm und identische Anwendungssoftwareprogramme zu verwenden, welche gleichzeitig auf den Kernverarbeitungseinheiten ausgeführt werden und an denselben Punkten im Befehlsfluss zum Halten kommen (Makro-Synchronisation), um eine identische Eingabe/Ausgabe (eine Erfassung/ein Kommando) oder eine Abstimmung auf identischen Daten (zum Beispiel eines Kontexts) anzufordern.
  • SYNCHRONISATION/ ABSTIMMUNG/ EINGABEN-AUSGABEN
  • Die bezüglich der Kernverarbeitungseinheiten 50 und 51 externe Hardwarevorrichtung 52 zur Verwaltung von Prozessoren und Eingaben/Ausgaben beinhaltet die folgenden Funktionen:
    • – Makro-Synchronisation der Kernverarbeitungseinheiten,
    • – Abstimmung,
    • – Einleiten einer Korrektur infolge des Erfassens eines Fehlers,
    • – Zugriff auf die Speicher der Kernverarbeitungseinheiten in einem „Direktspeicherzugriff"-Modus (Direct Memory Access),
    • – Verwaltung von Eingaben/Ausgaben und einer Schnittstelle zwischen dem Bus der Verarbeitungseinheiten 60 und 61 jeder der zwei Kernverarbeitungseinheiten und einem Eingangs-/Ausgangsbus 62;
    • – Interrupt-Steuerung (IT).
  • Jede der Kernverarbeitungseinheiten 50 und 51 kommuniziert mit der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 über die Verarbeitungseinheitsbusse 60, 61. Die Eingaben/Ausgaben werden durch die Verwaltungsvorrichtungen von Prozessoren und Eingaben/Ausgaben 52 über den Eingangs-/Ausgangsbus 62 geleitet.
  • MAKRO-SYNCHRONISATION
  • Jede der Kernverarbeitungseinheiten 50, 51 arbeitet in unabhängiger Weise voneinander. Sobald eine der Kernverarbeitungseinheiten 50 oder 51 eine Eingabe/Ausgabe bewerkstelligen, das heißt entweder eine Erfassung einlesen oder ein Kommando erzeugen, möchte, ist die Funktionsweise die folgende:
    • – Die Kernverarbeitungseinheit sendet an die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 über den entsprechenden Kernverarbeitungsbus 60 oder 61 eine Nachricht, welche ihre Anforderung beschreibt (wobei die Nachricht eine Adresse für eine Erfassung oder ein Adress/Daten-Paar für ein Kommando beinhaltet;
    • – Die Verwaltungsvorrichtung von Prozessoren und Eingängen/Ausgängen 52 erwartet dann eine Nachricht auf ihrem anderen Verarbeitungseinheitsbus.
    • – Wenn der zweite Verarbeitungseinheitsbus bis zum Ablauf einer vorgegebenen Zeitspanne stumm bleibt, wird ein Fehler verfügt. Andernfalls vergleicht die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben die zwei Nachrichten; wenn sie genau identisch sind (Länge und Inhalt), bewirkt die Verwaltungsvorrichtung von Prozessoren und Eingängen/Ausgängen 52 dann die angeforderte Übertragung über den Eingangs-/Ausgangsbus 62.
    • – Sobald diese Übertragung bewerkstelligt ist, wird das Datum in dem Fall einer Erfassung direkt über einen direkten Speicherzugriff durch die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben in den Speicher jeder Kernverarbeitungseinheit geschrieben, dann gibt die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben die zwei Kernverarbeitungseinheiten frei.
  • Jede Kernverarbeitungseinheit kann somit ihre Verarbeitung in unabhängiger Weise Wiederaufnehmen: Das erfindungsgemäße Verfahren verwendet somit eine Makro-Synchronisation, welche auf Abstimmungszeitpunkte (Eingaben/Ausgaben, Kontext) begrenzt ist, im Gegensatz zu der „Master-Überprüfer"-Architektur, wo die Mikroprozessoren befehlsweise mikro-synchronisiert werden.
  • Die Anzahl von Makro-Synchronisationen kann reduziert werden, indem die Erzeugung von Kommandos sowie die Abstimmung von Kontextdaten im Gegensatz zu der Struktur der Referenzsoftware am Ende des Echtzeitzyklus neu gruppiert werden.
  • ABSTIMMUNG
  • Die durch die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 realisierte Abstimmung kann einfach (Typ einer bitweisen Abstimmung) oder komplexer (Typ einer schwellenwertbezogenen Abstimmung), je nach ausgewähltem Einsatz. Bei der zweiten Annahme ist der Schwellenwert ein Parameter, welcher bei jeder Eingabe/Ausgabe durch die Kernverarbeitungseinheiten an den Abstimmer übermittelt wird; die Schwellenwerte werden vor der Verwendung selbst bitweise abgestimmt.
  • Wenn die komplexen Abstimmungen von beschränkter Anzahl sind, können sie auf die Anwendungssoftware übertragen werden, um die Komplexität des Hardewareabstimmers zu beschränken (zum Beispiel Austausch von komplexen Daten zum Abstimmen zwischen Kernverarbeitungseinheiten über direkten Speicherzugriff der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben, dann Abstim mung des Abstimmungsergebnisses jeder Kernverarbeitungseinheit durch die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben.
  • EINLEITEN EINER KORREKTUR
  • Die elementare Fehlererfassung ist zwischen den Vorrichtungen zur Überwachung von Speicherzugriffen 55 und 58, welche in den Kernverarbeitungseinheiten 50 und 51 enthalten sind (Überwachung von Speicherzugriffsrechten), und der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 außerhalb der Kernverarbeitungseinheiten (Abstimmung) verteilt.
  • Die Gesamtentscheidung, zu betrachten, ob ein Fehler erfasst wird, ist hingegen in der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 zentralisiert: Wenn eine Vorrichtung zur Überwachung von Speicherzugriffen einen Fehler erfasst hat, zeigt sie dies der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben an (ERR#1 oder ERR#2), welche dann ein einziges Fehlersignal ERR in Richtung der zwei Kernverarbeitungseinheiten erzeugt, damit durch jede der beiden eine Fehlerkorrekturphase eingeleitet wird.
  • KONTROLLER FÜR DIREKTE SPEICHERZUGRIFFE
  • Die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 beinhaltet einen Kontroller für direkte Speicherzugriffe, um aus Erfassungen hervorgegangene Daten in den Speicher der Kernverarbeitungseinheiten zu laden und optional um zum Abstimmen auf die Kontextdaten zugreifen zu können. Dieser Kontroller für direkte Speicherzugriffe kann ebenfalls in dem Fall eines Verarbeitungseinheitsbusses und/oder eines Eingangs/Ausgangsbusses zur Übertragung von Blöcken verwendet werden.
  • VERWALTUNG VON EINGABEN/AUSGABEN
  • Die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 realisiert die Schnittstelle zwischen den Verarbeitungseinheitsbussen 60, 61 von jeder Kern verarbeitungseinheit 50, 51 und einem einzigen Eingangs/Ausgangsbus 62 und verwaltet die Eingaben/Ausgaben für die Berechnung der Kernverarbeitungseinheiten, wenn diese eine identische Anforderung liefern.
  • INTERRUPT-STEUERUNG
  • Die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 empfängt alle externen asynchronen Ereignisse EA und erzeugt gleichzeitig Interrupts an die zwei Kernverarbeitungseinheiten 50 und 51. Diese sind in der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben bis zur Freigabe durch die zwei Kernverarbeitungseinheiten gespeichert. Jeder Mikroprozessor kann somit sicherstellen, dass es sich nicht um einen parasitären Interrupt handelt, welcher durch ein Einzelereignis in seiner eigenen internen Interrupt-Logik erzeugt ist.
  • SCHUTZ VON SPEICHEREBENEN
  • Die Speicherebenen sind klassisch gegenüber Einzelereignissen durch einen Korrekturcode (EDAC) und einen Abfragetask geschützt (Wiedereinlesen der gesamten Speicherebene in einem Hintergrundtask, um schlafende Fehler zu erfassen und zu korrigieren, so dass die Ansammlung von fehlerhaften Bits in demselben Wort, welche dann nicht mehr durch den Code erfasst und/oder korrigiert werden könnten, zu vermeiden).
  • Diese Eigenschaft ist wichtig für das erfindungsgemäße Verfahren. Im Ergebnis ist es wichtig, eine Verzuverlässigung der Speicherung von Wiederaufnahmekontextdaten zu erhalten, um sich der Effektivität der Korrektur zu vergewissern.
  • Das erfindungsgemäße Verfahren stützt sich somit auf eine doppelt geschützte Speicherebene:
    • – auf eine Dank der Verwendung einer Vorrichtung zur Fehlererfassung und
    • – korrektur (EDAC) intrinsisch gegenüber Einzelereignissen zuverlässigen Speicherebene;
    • – auf eine Dank der Verwendung einer Überwachung von Zugriffsrechten (Vorrichtungen zur Überwachung von Speicherzugriftsrechten) gegenüber unkorrekten Schreibvorgängen infolge eines Adress- oder Befehlsfehlers, eines Absturzes des Mikroprozessors usw. zuverlässige Speicherebene.
  • VORRICHTUNG ZUR ÜBERWACHUNG VON SPEICHERZUGRIFFEN
  • Jede Vorrichtung zur Überwachung von Speicherzugriffen 55 oder 58 ist eine Hardwarevorrichtung, welche aus klassischen Einheiten zum Speicherschutz über Blöcke abgeleitet ist. Der Speicher ist in Segmente partitioniert und diese Vorrichtung ermöglicht es, zu überprüfen, dass der Mikroprozessor versucht, auf ein Speichersegment zuzugreifen, während er tatsächlich über das Zugriffsrecht verfügt.
  • Die Vorrichtung zur Überwachung von Speicherzugriffen ermöglicht es, einen großen Anteil von Adressfehlern zu erfassen. Sie ermöglicht es insbesondere, sehr schnell, d.h. mit einer geringen Verzögerung, zahlreiche Fälle von Mikroprozessorabstürzen zu erfassen. Infolge eines „leichten" Absturzes kann ein Mikroprozessor nämlich häufig den erlaubten Adressbereich verlassen. Somit ermöglicht es die Vorrichtung zur Überwachung von Speicherzugriffen, sehr schnell die Ablauffolgefehler des Mikroprozessors zu erfassen, welche eine Kategorie von kritischen Fehlern darstellen.
  • Die Vorrichtung zur Überwachung von Speicherzugriffen verfügt über bestimmte spezifische Eigenschaften:
    • – die Größe von Segmenten ist beliebig und abhängig von der Anwendung definiert;
    • – bestimmte Segmente weisen eine für das erfindungsgemäße Verfahren spezifische Bedeutung und Funktion auf, insbesondere diejenigen, welche dem Sichern des Wiederaufnahmekontexts dienen;
    • – die Zugriffserlaubnis erfolgt, indem gespeicherte Schlüssel in internen Registern der Vorrichtung zur Überwachung von Speicherzugriffen programmiert werden, wobei die Definition dieser Schlüssel spezifisch für das erfindungsgemäße Verfahren ist;
    • – die Definition der Schlüssel ist auf einer „Anwendungssoftware"-Ebene und nicht auf einer „Hardware"-Ebene;
    • – die Zugriffserlaubnis auf ein Segment wird abhängig von einer logischen Kombination aller oder eines Teils der Schlüssel gegeben, wobei die logischen Kombinationen für jedes Segment spezifisch für das erfindungsgemäße Verfahren sind;
    • – die Vorrichtung zur Überwachung von Speicherzugriffen kann bei einem Lesen oder einem Schreiben eines speziellen Segments spezifische Mechanismen auslösen;
    • – ein Bereich wird pro Anwendungstask der Software beeinflusst, um über eine Softwareeingrenzung zwischen Tasks zu verfügen;
    • – ein Bereich zur Speicherung des Kontexts wird pro Task beeinflusst, um ihn in spezifischer Weise mit einer Funktionsweise einer „Old"/„New"-Umschaltung zu schützen.
  • Die Liste der in die Vorrichtung zur Überwachung von Speicherzugriffen integrierten Schlüssel ist nachfolgend angegeben:
    • – Ein Zugriffsverbotsschlüssel beim Schreiben in den Bereich, welcher den Code speichert, um eine Verfälschung desselben zu vermeiden. Im umgekehrten Fall wäre es erforderlich, den Code systematisch abzustimmen und ihn jedes Mal, wenn ein Fehler erfasst wird, erneut zu laden, was besonders limitierend ist. Dieser Schlüssel ermöglicht es, ein Schreiben in den Speicher nur bei der Initialisierung des Rechners zu erlauben, wenn der Code im Nur-Lese-Speicher in den Schreib-Lese-Speicher übertragen werden muss.
    • – Ein Schlüssel, der anzeigt, welches der gültige Task ist, und es dem Mikroprozessor erlaubt, nur auf den Speicherbereich zuzugreifen, welcher die Daten des sich in Ausführung befindlichen Softwaretasks enthält. Dieser Schlüssel ermöglicht eine Abgrenzung von Fehlern eines Tasks bezogen auf die anderen.
    • – Ein Schlüssel, der anzeigt, welches unter den Sätzen von „Old"/„New"-Bereichen, die durch Umschaltung wirken, die „Old"-Bereiche und die „New"-Bereiche sind, wobei berücksichtigt wird, dass die „Old"-Bereiche beim Schreiben verboten sind.
  • FUNKTIONSWEISE DES WIEDERAUFNAHMEKONTEXTS
  • Die bei der Sicherung des Wiederherstellungs- oder Wiederaufnahmekontexts beeinflussten Speicherbereiche sind für jeden Task differenziert, um die Fehlerwiederher stellung auf lediglich den fehlerhaften Task zu begrenzen, das heißt auf den zum Zeitpunkt der Erfassung eines Fehlers gültigen Task; somit kann eine Wiederherstellung alleine auf dem fehlerhaften Softwaretask realisiert werden, ohne dass die Ausführung der anderen Tasks beeinflusst wird.
  • Die Funktionsweise des Wiederaufnahmekontexts beruht auf vier unterschiedlichen Phasen: die Speicherung, die Abstimmung, die Sicherung und die Wiederherstellung.
  • Für einen Korrekturmodus des Typs „Wiederherstellung" müssen die den Wiederaufnahmekontext bildenden Daten in einer solchen Weise spezifisch geschützt werden, dass die Wiederaufnahme mit Sicherheit ausgehend von einem intakten Kontext erfolgen kann.
  • Hierfür werden die Daten in spezifischen Bereichen des Speichers der Kernverarbeitungseinheiten (53, 56) gespeichert, wobei jeder Bereich durch die Vorrichtung zur Überwachung von Speicherzugriffen in einer Doppelbank „Old" und „New" verwaltet wird, welche durch Umschalten (als „Flip-Flop") wirken.
  • Verschiedene Verfahren sind verwendbar, um dabei die Abstimmung zu bewirken:
    • – Am Ende des Echtzeitzyklus werden auf Anforderung der Anwendungssoftware die „New"-Bereiche in gruppierter Weise durch die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 abgestimmt, um sie nur dann zu sichern, wenn sie für intakt befunden wurden. Dieses Verfahren weist den Vorteil auf, die Anzahl von für die Abstimmung der Kontextdaten erforderlichen Makro-Synchronisationen zu reduzieren.
    • – Jeder Schreibversuch in einen der Kontextbereiche wird je nach Kontextzyklus durch die Vorrichtung zur Überwachung von Speicherzugriffen erfasst und systematisch an die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben zur Abstimmung übermittelt. Wenn die Abstimmung korrekt ist, wird das Datum durch die Vorrichtung zur Überwachung von Speicherzugriffen tatsächlich im Speicher der Kernverarbeitungseinheiten abgelegt.
  • Am Ende des Echtzeitzyklus und vor der Abstimmung für das erste Verfahren werden die gültigen Kontextbereiche gesichert und umgeschaltet, indem die Indices „Old" und „New" vertauscht werden: Der gültige Kontext wird zu dem vorangegangenen Kontext gemacht.
  • Die Funktion „Kontextwiederherstellung", welche bei einer Fehlerkorrektur aktiviert wird, wird mittels der Tatsache realisiert, dass der Index, welcher den vorangegangenen, für intakt befundenen Kontext anzeigt, nicht verändert wird, während er zu normalen Zeiten, wenn kein Fehler erfasst wird, umgeschaltet wird; dieses „Nicht-Vertauschen" ist der Unterbindung der Ausführung des Echtzeitzyklus, in welchem der Fehler erfasst wird, inhärent.
  • WIEDERHERSTELLUNG ODER KORREKTUR
  • Verschiedene mehr oder weniger komplexe Korrekturweisen können je nach zu realisierendem Aufgabentyp eingesetzt werden:
    • – Systemreinitialisierung, d.h. eine Warmreinitialisierung, eine Kaltreinitialisierung oder, wenn einer existiert, ein Übergang auf einen redundanten Rechner,
    • – eine rückwärtsgewandte Wiederherstellung,
    • – eine vorwärtsgewandte Wiederherstellung, d.h. eine „reine" Weiterverfolgung oder Weiterverfolgung ausgehend von einem gesicherten Kontext.
  • Bevorzugterweise wird für komplexe Kontroll-Steuer-Systeme die letztere Lösung gewählt, eine Lösung, welche in der Beschreibung verwendet wird, um das erfindungsgemäße Verfahren zu beschreiben.
  • Die Korrektur erfolgt gemäß der folgenden Abfolge:
    • – Wenn ein Fehler erfasst wird, wird der gültige Echtzeitzyklus (Nummer N) blockiert, kein Kommando wird erzeugt: Der Mikroprozessor geht in einen Bereitschaftszustand („standby") über, wobei er auf den folgenden Echtzeitzyklus wartet;
    • – Der folgende Echtzeitzyklus N+1 wird nicht ausgehend von dem Kontext N (welcher nicht zuverlässig ist) ausgeführt, sondern von dem vorangegangenen Kontext N-1 und den Erfassungen des gültigen Zyklus N+1.
  • Tatsächlich wird der fehlerhafte Echtzeitzyklus nicht erneut durchgespielt. Es handelt sich genau gesagt nicht um eine Wiederaufnahme. Man gibt sich einfach damit zufrieden, den gültigen Echtzeitzyklus zu blockieren und den Kontext des vorangegangnen Zyklus wiederherzustellen. Im Fehlerfall erzeugt der Mikroprozessor nicht die Kommandos des gültigen Echtzeitzyklus, weil er sich in den Bereitschaftszustand versetzt hat: All dies geht vonstatten, als ob ein „Loch" von einem Echtzeitzyklus vorhanden wäre.
  • Die Korrektur erfordert keine spezifische Handlung: Da der Mikroprozessor sich nach eine Erfassung in Bereitschaft versetzt hat, kann er nicht die Abstimmung am Ende des gültigen Echtzeitzyklus ausführen (oder die Ausführung abschließen). Dies bewirkt natürlicherweise eine Nichtpermutation der „Old"- und „New"-Kontexte, welche am Ende der Abstimmung erfolgt, wenn der Zustand des Systems als intakt bestimmt werden kann. Die Wiederherstellung oder das erneute Laden von Kontexten nach einer Fehlererfassung ist somit intrinsisch für die Funktionsweise, welche für das erfindungsgemäße Verfahren gewählt wurde.
  • Bei einer Wiederaufnahme wird häufig der Ausdruck „erneutes Laden des Kontexts" verwendet. Letztendlich erfordert das Verfahren genau gesagt nicht das erneute Laden, weil einfach die Indices „Old" und „New" von Kontextbereichen infolge einer Fehlererfassung nicht vertauscht werden: Tatsächlich besteht die Wiederaufnahme „aus einem Nichtstun", aus einem sich in Bereitschaft Versetzen, wobei der Rest automatisch aus der nominalen Funktionsweise folgt.
  • Außerdem kann die Wiederherstellung oder Korrektur dank der Eingrenzung zwischen Tasks und der Differenzierung von Wiederaufnahmekontexten für jeden Task auf den gültigen Task beschränkt sein; in diesem Fall wird bei einer Wiederherstellung durch Weiterverfolgung nur der fehlerhafte Task abgebrochen und verliert einen Echtzeitzyklus, wobei die Ausführung der anderen Tasks in keiner Hinsicht beeinträchtigt wird.
  • Ein einziger Wiederaufnahmeversuch wird vorgenommen. Wenn er fruchtlos ist, ist dies beispielsweise, weil es dem Fehler gelungen ist, sich bis zu dem Wiederaufnahmekontext fortzupflanzen, welcher somit nicht mehr intakt ist, oder weil es sich um einen permanenten Ausfall handelt. Eine vollständige Reinitialisierung des Rechners oder, falls einer vorhanden ist, der Übergang auf einen redundanten Sicherheitsrechner ist somit erforderlich.
  • EINGRENZUNGSBEREICHE
  • Bei dem erfindungsgemäßen Verfahren sind drei Eingrenzungsbereiche definiert.
  • Der erste Bereich entspricht einer räumlichen Eingrenzung. Dieser wichtige Fehlereingrenzungsbereich 70 ist durch die Erfassungselektronik 41 und die Zentraleinheit 40 gebildet, wie es in der 7 dargestellt ist. In dieser Figur sind dieselben Bezugszeichen wie diejenigen der 5 verwendet. Die Erfassungselektronik ist durch klassische Mechanismen (zum Beispiel Vervielfältigung) geschützt. Wenn ein Fehler die Erfassungen oder die Verarbeitung stört (die Rechenzeit, welche der Verarbeitung zugewiesen ist, ist bei weitem die am wichtigste, es ist statistisch in der Verarbeitungsphase, wo die meisten Fehler auftreten), kann somit dieser Fehler nicht in Richtung der Befehlselektronik erzeugt werden. Die Fehler, welche infolge eines Einzelereignisses in der Erfassungselektronik oder in der Zentraleinheit auftreten, können daher nicht falsche Kommandos des Satelliten hervorrufen; sie stören nicht die Mission.
  • Der zweite Bereich entspricht einer zeitlichen Eingrenzung von Fehlern auf Ebene eines Echtzeitzyklus (der Echtzeitzyklus, welcher dem Auftreten eines Fehlers folgt, ist korrekt), weil die Korrektur auf einer Granularität von einem Echtzeitzyklus basiert.
  • Der dritte Bereich entspricht einer softwarebezogenen Eingrenzung von Fehlern auf der Ebene von Softwaretasks (keine Fortpflanzung von Fehlern eines Tasks in den anderen) dank einer Vorrichtung zur Überwachung von Speicherzugriffen.
  • FEHLERABDECKUNGSRATEN DES VERFAHRENS
  • Die Fehlerabdeckungsrate für einen Fehlertoleranzmechanismus stellt den prozentualen Anteil von Fehlern dar, welchen er in der Lage ist, zu verarbeiten, bezogen auf die Gesamtheit von Fehlern, welche auftreten können.
  • Außerdem kann bei dem erfindungsgemäßen Verfahren, vorausgesetzt dass der räumliche Eingrenzungsbereich dicht gegenüber Fehlern ist, es nicht dazu kommen, dass ein fehlerhaftes Kommando an die Steuerelektronik erzeugt wird.
  • Die Fehlerabdeckungsrate müsste sich bei der vorliegenden Erfindung im Bereich von gewöhnlichen Fehlerabdeckungsraten eines strukturellen Duplex, das heißt oberhalb von 99% befinden.
  • VARIANTEN
  • Es sind Varianten des erfindungsgemäßen Verfahrens möglich. Einige wurden bereits erwähnt:
    • – Regruppierung der Erzeugung von Befehlen und der Abstimmung von Kontextdaten am Ende des Echtzeitzyklus, um die Anzahl von Makro-Synchronisationen zu reduzieren.
    • – Einfache (Typ einer bitweisen Abstimmung) oder komplexere (Typ einer schwellenwertbezogenen Abstimmung) Abstimmung.
    • – Verarbeitungseinheitsbus und/oder Eingangs/Ausgangsbus zum Übertragen von Blöcken oder nicht.
    • – Korrekturweise.
    • – Integration von Softwaremechanismen des erfindungsgemäßen Verfahrens in das Echtzeitprogramm, um die Korrekturrate zu maximieren.
  • Außerdem ist es möglich, die folgenden Funktionen der Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben den Kernverarbeitungseinheiten zuzuteilen und sie auf Kosten einer Reduktion der Fehlerabdeckungsrate in Software zu realisieren:
    • – die Makro-Synchronisation,
    • – die Abstimmung,
    • – die Verwaltung von Eingaben/Ausgaben.
  • Die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben 52 für Synchronisation/Abstimmung/Eingaben/Ausgaben kann auch entfallen und ihre Funktionen können in Hardware und/oder in Software den Kernverarbeitungseinheiten zugeteilt werden.
  • Schließlich ist es möglich, die Kernverarbeitungseinheit zu verdreifachen, wobei unter Umständen die Vorrichtung zur Überwachung von Speicherzugriffen vereinfacht oder weggelassen wird, wobei die Verwaltungsvorrichtung von Prozessoren und Eingaben/Ausgaben mit drei Kernverarbeitungseinheiten verbunden ist und eine Mehrheitsabstimmung realisiert. Die Fehler werden in Echtzeit maskiert. Ein als intakt befundener Speicherkontext muss in den Kernspeicher der fehlerhaften Verarbeitungseinheit übertragen werden, wenn die Vorrichtung zur Überwachung von Speicherzugriffen weggelassen wurde oder wenn der Fehler das Echtzeitprogramm betrifft. Diese Übertragung kann stark reduziert werden, wenn die Vorrichtung zur Überwachung von Speicherzugriffen mit der Funktion „Segmentierung pro Task" beibehalten wird.
  • QUELLEN
    • [1] "COPRA: a modular family of reconfigurable computers" von C. Méraud und P. Lloret, (Proceedings of the IEEE National Aerospace and Electronics Conference, NAECON'78, 16.–18. Mai 1978, Dayton, Ohio, USA).
    • [2] "Calculateur à organisation parallele reconfigurable automatiquement", von F. Browaeys, J-J. Chevreul und C. Méraud, (Second International Conference on Reliability and Maintainability, 21.–23. September 1980, Trégastel, Frankreich).
    • [3] "Une ligne de calculateurs reconfigurables ultrafiabbles destinés aux applications aerospatiales embarquées", von C- Méraud und F. Browaeys (AGARD Conference Proceedings n° 272 "Advances in Guidance and Control Systems Using Digital Techniques", Guidance and Control Panel Symposium, 8.–11. Mai 1979, Ottawa, Kanada).
    • [4] "Fault-tolerant computer for the Automated Transfer Vehicule", von R. Roques, A. Corrégé und C. Boléat, (28th Fault Tolerance Computing Symposium, 23.–25. Juni 1998, München, Deutschland).
    • [5] "Concurrent error-detection and modular fault-tolerance in an 32-bit processing core for embedded space flight applications", von J. Gaisler, (24th Fault Tolerance Computing Symposium, 1994).

Claims (13)

  1. Computersystem, welches zum Verarbeiten von verschiedenen Arten von Fehlern mit einer gegebenen Fehlerabdeckungsrate ausgestaltet ist, gebildet durch: – mindestens eine Vervielfältigung der Verarbeitungseinheit, jeweils umfassend: – einen Mikroprozessor, – einen Speicher, – eine zentralisierte Verwaltungsvorrichtung (52) für die Verarbeitungseinheiten und Eingaben/Ausgaben, umfassend: – Makro-Synchronisationsmittel der Verarbeitungseinheiten; wobei die Makro-Synchronisation der Tatsache entspricht, dass die Vorrichtung, sobald sie eine Meldung von einer der Verarbeitungseinheiten, welche alle die gleiche Software in asynchroner Weise ausführen, empfangen hat, für eine durch das Empfangen von aus den anderen Verarbeitungseinheiten hervorgehenden äquivalenten Meldungen gegebene maximale Verzögerung wartet, wobei jede Verarbeitungseinheit an dem gleichen Punkt in der Software angehalten ist, um die Meldung zu übermitteln; wobei, wenn die Meldungen verschieden sind, die Mittel einen Fehler verfügen; wobei, wenn die Meldungen identisch sind, die Mittel diese Meldung ausführen, worauf sie die Verarbeitungseinheiten freigeben, – Vergleichs-/Abstimmungsmittel von durch die Verarbeitungseinheiten erzeugten Daten, – Entscheidungsfassungsmittel, um für verschiedene Fehlerfälle eine Korrekturphase einzuleiten, und Mittel, welche es ermöglichen, gleichzeitig diese Korrekturanforderung an alle Verarbeitungseinheiten zu übermitteln, – Mittel, welche es ermöglichen, Eingaben/Ausgaben zu bewerkstelligen, – Verbindungen, welche entsprechend jede Verarbeitungseinheit mit der Verwaltungsvorrichtung der Verarbeitungseinheiten und der Eingänge/Ausgänge verbinden, dadurch gekennzeichnet, dass das Computersystem zum Verarbeiten von vorübergehenden Fehlern mit einer Abdeckungsrate größer als 99% ausgestaltet ist, wobei das Computersystem derart ist, dass: – die Vervielfältigung der Verarbeitungseinheiten strikt auf Kernverarbeitungseinheiten (50, 51) begrenzt ist, welche jeweils umfassen: – den Speicher (53, 56), welcher zudem durch eine Vorrichtung geschützt ist, die einen Code zur Fehlererfassung und -korrektur erzeugt und überprüft, – Vorrichtungen (55, 58) zur Überwachung von Speicherzugriffen, welche Mittel einschließen, um sich gegen Einzelereignisse zu schützen, umfassend: – Mittel zur Segmentierung des Speichers und Überprüfung von Zugriffsrechten auf jedes Segment (53, 56), – Mittel zum spezifischen Schutz der Segmente des Speichers (53, 56), welche zur Sicherung des Wiederherstellungskontexts zugewiesen sind, – Mittel zum Erzeugen eines Korrekturanforderungssignals an die Verwaltungsvorrichtung (52) der Kernverarbeitungseinheiten und der Eingänge/Ausgänge, – die zentralisierte Verwaltungsvorrichtung (52) für die Verarbeitungseinheiten und Eingaben/Ausgaben, welche die Mittel, um sich gegen Einzelereignisse zu schützen, einschließt, zudem umfasst: – Mittel zum Empfang der Korrekturanforderungen, welche von den Vorrichtungen (55, 58) zur Überwachung von Speicherzugriffen ausgehen, – Mittel zum direkten Zugriff auf den Speicher der Kernverarbeitungseinheiten.
  2. System nach Anspruch 1, wobei die Vorrichtung zur Überwachung von Speicherzugriffen (55, 58) Mittel umfasst, welche es ermöglichen: – die Speicherbereiche jedes Tasks zu differenzieren, – den Zugriff auf den Speicherbereich, welcher bei dem gültigen Task verwendet wird, zu erlauben, – den Zugriff auf Speicherbereiche, welche von anderen Tasks verwendet werden, zu verbieten.
  3. System nach Anspruch 1, wobei die Vorrichtung zum Überwachen von Speicherzugriffen (55, 58) Mittel umfasst, welche es ermöglichen: – diesen Kontext in einem gemeinsamen und zentralisierten Speicher (53, 56) jeder Kernverarbeitungseinheit (50, 51) zu speichern, ohne dass eine spezifische Speichervorrichtung erforderlich ist, – die Speicherbereiche, welche bei der Sicherung des Kontexts jedes Tasks verwendet werden, zu differenzieren, – jeden Bereich, welcher zum Speichern dieses Kontexts dient, in einer Doppelbank „Old" und „New" zu verwalten, – zu veranlassen dass die Doppelbanken „Old" und „New" durch Umschalten wirken, – die Doppelbanken umzuschalten, indem einfach ein Indexsatz „Old" und „New" vertauscht wird, – die Bereiche „Old" beim Lesen zu erlauben, während sie beim Schreiben verboten sind.
  4. System nach einem beliebigen der vorhergehenden Ansprüche, welches in einem elektronischen Bordsystem und/oder im Raumfahrtbereich verwendet wird.
  5. Verfahren, um ein Computersystem gegenüber verschiedenen Arten von Fehlern mit einer gegebenen Fehlerabdeckungsrate tolerant zu machen, welches es ermöglicht: – gleichzeitig auf mindestens zwei Verarbeitungseinheiten in unabhängiger und asynchroner Weise identische Software auszuführen, – die folgenden Vorgänge in der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben zu zentralisieren: – Makro-Synchronisation von verschiedenen gleichzeitigen Ausführungen der Software, wobei die Makro-Synchronisation der Tatsache entspricht, dass die Vorrichtung, sobald sie eine Meldung von einer der Verarbeitungseinheiten, welche alle die gleiche Software in asynchroner Weise ausführen, empfängt, während einer durch das Empfangen von aus den anderen Verarbeitungseinheiten hervorgehenden äquivalenten Meldungen gegebenen maximalen Verzögerung wartet, wobei jede Verarbeitungseinheit an demselben Punkt in der Software angehalten ist, um die Meldung zu übermitteln; wobei, wenn die Meldungen verschieden sind, die Mittel einen Fehler verfügen; wobei, wenn die Meldungen identisch sind, die Mittel die Meldung ausführen, worauf sie die Verarbeitungseinheiten freigeben, – Vergleichen/Abstimmen von allen durch die verschiedenen Ausführungen der Software erzeugten Daten, – wenn ein Fehler erfasst wird, ganz gleich, was sein Ursprung ist, Fassen der Entscheidung, eine Korrekturphase einzuleiten und gleichzeitiges Übermitteln einer Korrekturanforderung an die verschiedenen Ausführungen der Software, – Herbeiführen von Eingaben/Ausgaben auf Anforderung der Softwareprogramme, – Realisieren der Schnittstelle zwischen den Softwareprogrammen, welche gleichzeitig ablaufen, und der Verwaltungsfunktion für die Verarbeitungseinheiten und der Eingaben/Ausgaben, dadurch gekennzeichnet, dass das Verfahren zudem zum Verarbeiten von vorübergehenden Fehlern mit einer Abdeckungsrate größer als 99% ausgestaltet ist, wobei das Verfahren es zudem ermöglicht: – gleichzeitig auf mindestens zwei strikt auf Kernverarbeitungseinheiten begrenzten Einheiten in unabhängiger und asynchroner Weise identische Softwareprogramme auszuführen, was der gleichzeitigen Ausführung auf mindestens zwei Kernverarbeitungseinheiten entspricht, aber zudem folgender Funktionsweise entspricht: – die vorübergehenden Fehler, welche sich auf den Speicher (53, 56) der Kernverarbeitungseinheiten (50, 51) auswirken, werden durch die Verwendung eines Erfassungs- und Korrekturcodes erfasst und korrigiert, welcher in einem Speicher gespeichert ist, welcher einem Überprüfungssoftwaretask zugeordnet ist, – die ordnungsgemäße Funktionsweise des entsprechenden Mikroprozessors (54, 57) der Kernverarbeitungseinheiten (50, 51) wird durch eine Segmentierung des Speichers, welcher einer Überwachung von Speicherzugriffen zugeordnet ist, welche überprüft, dass der Mikroprozessor wirklich über Zugriffsrechte auf das gültige Segment des Speichers (53, 56) verfügt, überprüft, wobei diese Überwachung von Speicherzugriffen in der folgenden Weise selbst gegen Einzelereignisse geschützt ist: – die der Sicherung des Wiederherstellungskontexts zugewiesenen Speichersegmente sind durch eine spezifische Überwachung von Speicherzugriffen, um zu gewährleisten, dass ein fehlerhaft arbeitender Mikroprozessor (54, 57) nicht Fehler in diesen kritischen Bereichen erzeugen kann, von einer hohen Sicherheit, – eine Korrekturanforderung wird im Fall einer Zugriffsrechtsverletzung an die Verwaltungsfunktion (52) für die Verarbeitungseinheiten und Eingaben/Ausgaben übermittelt, – die folgenden Vorgänge in der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben zu zentralisieren, was der Zentralisierung der Vorgänge in der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben entspricht, jedoch zudem einen Schutz gegenüber Einzelereignissen der Verwaltungsfunktion für die Verarbeitungseinheiten und Eingaben/Ausgaben beinhaltet und zudem die folgenden Funktionen beinhaltet: – Empfangen von Korrekturanforderungen, welche von den Überwachungsfunktionen der Speicherzugriffe infolge einer Fehlererfassung ausgehen, – wenn ein Fehler erfasst wird, ganz gleich, was sein Ursprung ist, Fassen der Entscheidung, eine Korrekturphase einzuleiten und gleichzeitiges Übermitteln einer Korrekturanforderung an verschiedene Ausführungen der Software, – direkte Zugriffe auf den Speicher der Kernverarbeitungseinheiten.
  6. Verfahren nach Anspruch 5, wobei ein Fehlereingrenzungsbereich zwischen Softwaretasks besteht, so dass ein fehlerhaft arbeitender Mikroprozessor (54, 57) nur die Variablen des gültigen Tasks stören kann, jedoch nicht diejenigen der anderen Tasks.
  7. Verfahren nach Anspruch 5, wobei im Fall einer Fehlererfassung durch die Abstimmung, dann das Speichern des vorhergehenden Kontexts der Softwaretasks und durch seinen spezifischen Schutz, welcher es ermöglicht, zu gewährleisten, dass er intakt ist, eine Wiederherstellung möglich ist, wobei die ser Kontext in einem gemeinsamen und zentralisierten Speicher (53, 56) jeder Kernverarbeitungseinheit (50, 51), in für jeden Task spezifischen Bereichen aus einer durch Umschalten wirkenden Doppelbank „Old" und „New", gespeichert wird, wobei das Umschalten dieser Doppelbanken bewerkstelligt wird, indem einfach ein Indexsatz „Old" und „New" vertauscht wird, damit der gültige Kontext somit zu dem vorhergehenden Kontext wird, wobei die Bereiche „Old" beim Lesen erlaubt, um den Tasks Daten zu liefern, jedoch beim Schreiben verboten sind, und somit selbst im Fall einer Fehlfunktion von Mikroprozessoren (54, 57) geschützt sind.
  8. Verfahren nach Anspruch 7, wobei die Fehlerwiederherstellung, welche auf einer Wiederherstellung des vorhergehenden Kontexts basiert, durch die Tatsache realisiert wird, dass der Index, welcher den für intakt befundenen vorhergehenden Kontext anzeigt, nicht geändert wird, während er, wenn kein Fehler erfasst wird, am Ende einer der Granularität der Erfassung/Wiederherstellung entsprechenden Periode systematisch umgeschaltet wird.
  9. Verfahren nach Anspruch 5, wobei die Granularität der Fehlererfassung/-wiederherstellung der Kontroll-/Kommandozyklus von jedem der Softwaretasks ist, welche auf den Kernverarbeitungseinheiten (50, 51) ablaufen, und wobei eine Wiederherstellung einzig auf dem fehlerhaften Softwaretask ausgeführt werden kann, ohne dass dabei auf die Ausführung der anderen Tasks eingewirkt wird.
  10. Verfahren nach Anspruch 5, wobei eine Fehlererfassung ein Versetzen des Mikroprozessors in den Bereitschaftszustand veranlasst, wodurch ein „Loch" einer Periode in dem gewöhnlichen Ausführungszyklus verursacht wird.
  11. Verfahren nach Anspruch 5, wobei eine) Vergleich/Abstimmung des Kontexts optional auf zwei Weisen realisiert werden kann: – entweder die Anwendungssoftware fordert explizit eine(n) gruppierte(n) Vergleich/Abstimmung von Kontextdaten, um sie einzeln zu sichern, wenn sie für intakt befunden werden, wobei diese Anforderung systematisch am Ende einer Periode, welche der Granularität der Erfassung/Wiederherstellung entspricht, realisiert wird; – oder, je nach Stand ihrer Berechnungen, erfasst die Hardwarevorrichtung zur Überwachung von Speicherzugriffen (55, 58) jeder Kernverarbeitungseinheit (50, 51) jeden Schreibversuch in die Kontextbereiche und unterzieht ihn systematisch einem Vergleich/einer Abstimmung, um seine Richtigkeit zu überprüfen.
  12. Verfahren nach Anspruch 5, wobei drei Stufen von Fehlereingrenzungsbereichen definiert sind: räumlich, zeitlich und softwarebezogen.
  13. Verfahren nach einem beliebigen der Ansprüche 5 bis 12, welches bei einem elektronischen Bordsystem und/oder dem Raumfahrtbereich verwendet wird.
DE60015182T 1999-12-22 2000-12-21 Computersystem, welches gegenüber vorübergehenden Fehlern fehlertolerant ist und Verfahren zur Verwaltung dieses Systems Expired - Lifetime DE60015182T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9916227 1999-12-22
FR9916227A FR2803057B1 (fr) 1999-12-22 1999-12-22 Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
PCT/FR2000/003640 WO2001046805A1 (fr) 1999-12-22 2000-12-21 Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme

Publications (2)

Publication Number Publication Date
DE60015182D1 DE60015182D1 (de) 2004-11-25
DE60015182T2 true DE60015182T2 (de) 2006-02-02

Family

ID=9553616

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60015182T Expired - Lifetime DE60015182T2 (de) 1999-12-22 2000-12-21 Computersystem, welches gegenüber vorübergehenden Fehlern fehlertolerant ist und Verfahren zur Verwaltung dieses Systems

Country Status (7)

Country Link
US (1) US7024594B2 (de)
EP (1) EP1240587B1 (de)
JP (1) JP2003518289A (de)
AT (1) ATE280412T1 (de)
DE (1) DE60015182T2 (de)
FR (1) FR2803057B1 (de)
WO (1) WO2001046805A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10133652A1 (de) * 2001-07-11 2003-01-30 Siemens Ag Zentraleinheit für ein redundantes Automatisierungssystem
US7028225B2 (en) * 2001-09-25 2006-04-11 Path Communications, Inc. Application manager for monitoring and recovery of software based application processes
DE10251912A1 (de) * 2002-11-07 2004-05-19 Siemens Ag Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems
DE10313318A1 (de) 2003-03-25 2004-10-21 Giesecke & Devrient Gmbh Kontrollierte Ausführung eines für eine virtuelle Maschine vorgesehenen Programms auf einem tragbaren Datenträger
JP4155088B2 (ja) * 2003-04-18 2008-09-24 日本電気株式会社 情報処理装置
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
DE10328059A1 (de) * 2003-06-23 2005-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines verteilten Systems
US7392426B2 (en) * 2004-06-15 2008-06-24 Honeywell International Inc. Redundant processing architecture for single fault tolerance
CN101048752A (zh) * 2004-10-25 2007-10-03 罗伯特·博世有限公司 在拥有至少两个执行单元的计算机系统中切换的装置和方法
US20060236168A1 (en) * 2005-04-01 2006-10-19 Honeywell International Inc. System and method for dynamically optimizing performance and reliability of redundant processing systems
EP1960930A4 (de) * 2005-11-30 2009-12-16 Kelsey Hayes Co Mikroprozessor-speicherverwaltung
US8983823B1 (en) 2005-12-29 2015-03-17 The Mathworks, Inc. Verification harness for automatically generating a text-based representation of a graphical model
US9317628B1 (en) * 2005-12-29 2016-04-19 The Mathworks, Inc. Automatic comparison and performance analysis between different implementations
US8015390B1 (en) * 2008-03-19 2011-09-06 Rockwell Collins, Inc. Dissimilar processor synchronization in fly-by-wire high integrity computing platforms and displays
US8117496B2 (en) * 2009-06-18 2012-02-14 International Business Machines Corporation Detecting and recovering from silent data errors in application cloning systems
WO2011068177A1 (ja) * 2009-12-02 2011-06-09 日本電気株式会社 二重化計算システム及び二重化計算方法
WO2016011469A1 (de) 2014-07-22 2016-01-28 Fts Computertechnik Gmbh Fehlertolerantes, wartbares automatisierungssystem
CN104850530B (zh) * 2015-05-21 2018-05-29 西北工业大学 一种立方星星载计算机
JP2019066983A (ja) * 2017-09-29 2019-04-25 ルネサスエレクトロニクス株式会社 半導体装置
JP7099050B2 (ja) * 2018-05-29 2022-07-12 セイコーエプソン株式会社 回路装置、電子機器及び移動体
CN111190774B (zh) * 2019-12-26 2023-04-14 北京时代民芯科技有限公司 一种多核处理器可配置双模冗余结构

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541094A (en) * 1983-03-21 1985-09-10 Sequoia Systems, Inc. Self-checking computer circuitry
US4751639A (en) * 1985-06-24 1988-06-14 Ncr Corporation Virtual command rollback in a fault tolerant data processing system
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
EP0306244B1 (de) * 1987-09-04 1995-06-21 Digital Equipment Corporation Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
DE69424565T2 (de) * 1993-12-01 2001-01-18 Marathon Techn Corp Fehler-betriebssichere/fehler tolerante computerbetriebsmethode
US5664093A (en) * 1994-12-27 1997-09-02 General Electric Company System and method for managing faults in a distributed system
FR2737029B1 (fr) * 1995-07-19 1997-09-26 Sextant Avionique Dispositif d'interface entre un calculateur a architecture redondante et un moyen de communication
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing

Also Published As

Publication number Publication date
FR2803057A1 (fr) 2001-06-29
EP1240587A1 (de) 2002-09-18
FR2803057B1 (fr) 2002-11-29
JP2003518289A (ja) 2003-06-03
ATE280412T1 (de) 2004-11-15
US20030135790A1 (en) 2003-07-17
WO2001046805A1 (fr) 2001-06-28
US7024594B2 (en) 2006-04-04
EP1240587B1 (de) 2004-10-20
DE60015182D1 (de) 2004-11-25

Similar Documents

Publication Publication Date Title
DE60015182T2 (de) Computersystem, welches gegenüber vorübergehenden Fehlern fehlertolerant ist und Verfahren zur Verwaltung dieses Systems
Powell et al. GUARDS: A generic upgradable architecture for real-time dependable systems
US5903717A (en) Fault tolerant computer system
US6141770A (en) Fault tolerant computer system
JP5283650B2 (ja) 過渡エラー制約を受ける電子システムのためのメモリアクセス監視装置
DE112014001873T5 (de) Replikation für Hot-Standby-Online-Datenbank
DE19947827A1 (de) Verfahren und Vorrichtung zur Löschung von Daten, wenn ein Problem erkannt ist
DE69433468T2 (de) Logischer Schaltkreis mit Fehlernachweisfunktion
US20060123098A1 (en) Multi-system auto-failure web-based system with dynamic session recovery
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
NZ528503A (en) Method of recovering a flight critical computer after a radiation event
DE102011112174A1 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
WO2022228613A1 (de) Vorrichtungen und verfahren zur überwachung eines quantencomputers im betrieb
DE60125442T2 (de) Dreifachredundante selbstschrubbende integrierte Schaltung
Knight et al. Error recovery in critical infrastructure systems
David et al. Development of a fault tolerant computer system for the Hermes Space Shuttle
Kazi et al. Design and Validation Architecture of the Dream Chaser® Fault Tolerant Flight Computer
DE19942141A1 (de) Verfahren und Vorrichtung zum Löschen von Daten nach einer Fälschung
Kouba et al. The X-38 spacecraft fault-tolerant avionics system
Murray et al. Highly reliable multiprocessors
Palumbo A low maintenance and highly reliable fly-by-light architecture
Gupta Gaurav Gupta
EP2161839B1 (de) Flugfunkgerät und Verfahren mit dynamisch rekonfigurierbarer Redundanz
Samedov An approach to the support of the fault-tolerance of the double redundant computer control systems
Kanekawa et al. Fault-tolerant system technology

Legal Events

Date Code Title Description
8364 No opposition during term of opposition