-
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).