DE69905272T2 - Verfahren zur behandlung eines vorübergehenden fehlern unterworfenes elektronisches systems - Google Patents
Verfahren zur behandlung eines vorübergehenden fehlern unterworfenes elektronisches systemsInfo
- Publication number
- DE69905272T2 DE69905272T2 DE69905272T DE69905272T DE69905272T2 DE 69905272 T2 DE69905272 T2 DE 69905272T2 DE 69905272 T DE69905272 T DE 69905272T DE 69905272 T DE69905272 T DE 69905272T DE 69905272 T2 DE69905272 T2 DE 69905272T2
- Authority
- DE
- Germany
- Prior art keywords
- error
- software
- errors
- hardware
- 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
Links
- 238000000034 method Methods 0.000 title claims description 107
- 230000015654 memory Effects 0.000 claims description 49
- 238000001514 detection method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 35
- 238000012937 correction Methods 0.000 claims description 34
- 230000002123 temporal effect Effects 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000005764 inhibitory process Effects 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 description 26
- 238000010200 validation analysis Methods 0.000 description 22
- 238000011282 treatment Methods 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 17
- 230000005855 radiation Effects 0.000 description 15
- 230000018109 developmental process Effects 0.000 description 12
- 230000001052 transient effect Effects 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 238000012806 monitoring device Methods 0.000 description 10
- 150000002500 ions Chemical class 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 239000002245 particle Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002401 inhibitory effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004377 microelectronic Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000019892 Stellar Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 230000008020 evaporation Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Retry When Errors Occur (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Behandlung eines vorübergehenden Fehlern unterworfenen elektronischen Systems, beispielsweise auf dem Gebiet der Raumfahrt.
- Das Verfahren der Erfindung betrifft alle vorübergehenden Fehlern unterworfenen Informatikarchitekturen. So benutzen beispielsweise die folgenden Gebiete Rechner, welche für die elektronischen Komponenten störenden Umgebungen (Strahlungen, elektromagnetische Störungen) ausgesetzt sind, welche dazu neigen, derartige Fehler zu erzeugen:
- - Gebiete der Raumfahrt, der Atomkraft und der Luftfahrt, wo die Umgebung u. a. aus Schwerionen besteht,
- - Gebiet der Kraftfahrzeuge, unterworfen einer harten elektromagnetischen Umgebung.
- In der Abfolge der Beschreibung wird als Beispiel das Gebiet der Raumfahrt in Erwägung gezogen, da es sehr repräsentativ für vorübergehende Fehler, welche zufällig in den elektronischen Komponenten erzeugt werden, ist, und weil auf diesem Gebiet das erfindungsgemäße Verfahren zunächst entwickelt und evaluiert wurde.
- Die Entwickler von Informatikarchitekturen für Satelliten sind mit dem Problem der im Weltraum vorliegenden Strahlungen konfrontiert, welche auf der Erde durch die Atmosphäre gefiltert sind. Diese Strahlungen können ein außerordentliches Ereignis als Auswirkung haben, welches zeitweilige Zustandsänderungen von Bits in den Speicherbestandteilen, in den internen Registern von Mikroprozessoren oder anderen integrierten Komponenten veranlasst. Die durch diese singulären Ereignisse erzeugten Fehler können beispielsweise eine Erzeugung von fehlerhaften Daten, beispielsweise ein falscher Befehl für einen Aktuator eines Satelliten, oder eine schwere Störung der Abfolge der Software, beispielsweise Absturz eines Mikroprozessors, erzielen.
- Bisher lag die Lösung bezüglich von Fehlern der Art von außerordentlichen Ereignissen in der Benutzung von Technologien von integrierten Schaltkreisen, die wenig empfindlich für diese Phänomene, genannt "strahlungstolerant", oder unempfindlich, genannt "strahlungsfest", sind. Derartige Technologien, welche nicht in der industriellen Mikroelektronik benutzt werden, wurden speziell für Militär- und Weltraumanwendungen entwickelt.
- Die mit der Existenz dieser Mikroelektroniktechnologien und mit der Entwicklung von diese Technologien benutzenden Bestandteilen verbundenen Gesamtkosten und somit der Verkaufspreis dieser Komponenten sind sehr hoch. Das Kostenverhältnis zwischen einem strahlungsfesten Schaltkreis und einem kommerziellen Schaltkreis kann 100 oder mehr sein.
- Der Teil des Militärkomponentenmarktes, genannt "hohe Zuverlässigkeit", ist stark eingebrochen, von 80% in den 60er Jahren auf weniger als 1% 1995. Von 1994 an hat das amerikanische Verteidigungsministerium die Benutzung von militärischen Elektronikkomponenten für seine Anwendungen gebremst, und den Prozess der Aneignungen von kommerziellen Spezifikationen/Normen/Komponenten für militärische Aktivitäten beschleunigt.
- Wie in Referenzdokument [1] am Ende der Beschreibung beschrieben, ist die Benutzung von kommerziellen Elektronikkomponenten zu einer Herausforderung geworden, mit der das Gebiet der Raumfahrt konfrontiert ist.
- Die Benutzung von kommerziellen Komponenten bei Weltraumanwendungen ist ein Problem, mit dem jedes Projekt einer neuen Generation konfrontiert ist. Ein hauptsächliches zu lösendes Problem ist demnach die Empfindlichkeit dieser Komponenten gegenüber Strahlungen, und insbesondere gegenüber Schwerionen: Dieser Aspekt, der früher auf der Ebene der Komponenten behandelt wurde, muss demnach nun auf der Ebene der Architektur und des Systems gelöst werden. Wie in den zwei Referenzdokumenten [2] und [3] beschrieben, sind die Satelliten und somit ihre Bordelektronik in der Tat einer Strahlungsumgebung ausgesetzt, zusammengesetzt aus verschiedenen Teilchen (Elektronen, Schwerionen, Protonen), welche auf dem Boden benutzte Systeme nicht kennen, da diese Teilchen durch die Atmosphäre gefiltert sind.
- Diese Teilchen können verursacht werden:
- - durch aus hochenergetischen Ionen zusammengesetzte kosmische Strahlung, welche teilweise extragalaktischen und teilweise galaktischen Ursprungs ist,
- - durch aus eingefangenen Elektronen und Protonen zusammengesetzte Strahlungsgürtel, welche durch Interaktionen zwischen der Erdatmosphäre und Sonnenpartikeln erzeugt werden,
- - durch Sonneneruptionen, welche Protonen oder Schwerionen emittieren,
- - durch den durch die Verdampfung von Coronaplasma erzeugten Sonnenwind, welcher es Protonen und niederenergetischen Ionen erlaubt, der Gravitationsanziehung der Sonne zu entkommen.
- Diese energiereichen Teilchen übertragen, wenn sie mit einer elektronischen Komponente kollidieren und sie durchqueren, einen Teil ihrer Energie auf diese, was die korrekte Funktion von dieser stören wird. Hier werden die "außerordentliche Ereignisse" genannten Probleme, erzeugt durch Schwerionen und Protonen, in Erwägung gezogen.
- Diese außerordentlichen Ereignisse entsprechen der Erzeugung von Fehlern in den Zellen, welche binäre Werte speichern, von daher Bitfehlern. Im Allgemeinen wird ein einziges Bit durch ein Schwerion modifiziert. Diese Ereignisse sind nicht destruktiv und man kann anschließend ein neues Datum schreiben, welches ohne Fehler gespeichert wird, außer es tritt ein weiteres außerordentliches Ereignis in derselben Zelle auf. Das ist der Grund, warum man auf diesem Gebiet den Ausdruck "vorübergehender Fehler" zur Charakterisierung der durch diese Phänomene erzeugten Fehler benutzt.
- Wie schon oben dargestellt wurde, wird die Realisierung der Bordelektronik von Satelliten meistens mit strahlungsunempfindlichen Komponenten, seien es spezifisch dafür hergestellte oder seien es durch Auswahl von nicht spezifisch dafür hergestellten Komponenten erhaltene, realisiert.
- Um auf dem Gebiet der Raumfahrt kommerzielle Komponenten in großem Maßstab benutzen zu können, ist eine erste Möglichkeit eine Auswahl von kommerziellen Komponenten durch Test unter systematischer Strahlung. Ein derartiges Verfahren wäre nicht nur sehr kostspielig bei der Durchführung der Auswahl, sondern zudem ein Notbehelf, weil es nicht unbedingt erlaubt, die großen Industriestandards zu benutzen, was jedoch wünschenswert ist. Eine zweite ökonomisch rentablere Möglichkeit erlaubt es, die Beschränkungen bezüglich der Auswahl der Komponenten zu reduzieren. Sie besteht darin, ein Verfahren zu finden, welches es erlaubt, die durch die Strahlungen erzeugten Phänomene zu tolerieren, insbesondere die vorübergehenden Fehler, d. h. Architekturen zu definieren, welche es erlauben, die Fehler zu detektieren und sie dann zu korrigieren. Die Bewältigung der vorübergehenden Fehler wird also von der Ebene "Komponenten" auf die Ebene "Architektur" und "System" übertragen.
- Eine Gesamtheit von Mechanismen der Detektion, Isolation und Wiederherstellung von Fehlern ist in den Referenzdokumenten [4], [5] und [6] beschrieben. Bestimmte Mechanismen erlauben es einfach, Fehler zu detektieren, andere, sie zu detektieren und dann zu maskieren, d. h. sie zu korrigieren. Andererseits sind diese Mechanismen zur Behandlung von sowohl vorübergehenden Fehlern als auch endgültigen Ausfällen als auch der beiden Möglichkeiten angepasst.
- Eine kurze Zusammenfassung von üblichen Mechanismen ist unten dargestellt, mit einigen Beispielen der Anwendung insbesondere auf dem Gebiet der Raumfahrt:
- - Vermeidung von Fehlern: Systematisches Wiederauffrischen der statischen Daten vor ihrer effektiven Benutzung; "Offline" genannte automatische Tests (außerhalb des nominellen Betriebs), welche es erlauben, einen Ausfall einer Komponente zu detektieren, bevor sie benutzt wird.
- - Fehlerdetektier- oder Detektier/Korrektur-Codes, welche auf Speicher, Kommunikationen und schließlich auf die Logik angewendet werden, im Wesentlichen bei der Realisierung von anwendungsspezifischen integrierten Schaltkreisen (ASIC) oder von benutzerprogrammierbaren Logikschaltkreisen (FPGA) zur integrierten Überwachung. Schaltkreise zur Detektion und Korrektur von Fehlern (EDAC) werden systematisch in der Raumfahrt bei Speicheranordnungen benutzt. Eine Funktion des systematischen Wiederauslesens (oder "Scrubbing") der gesamten Speicheranordnung ist mit diesen Schaltkreisen verknüpft und wird als Grundaufgabe ausgeführt mit dem Ziel, die Anhäufung von schlafenden Fehlern zu vermeiden, welche schließlich die Möglichkeit der Detektion/Korrektur fehlerhaft machen können.
- - Verdopplung und Vergleichen, oder Verdreifachung und Mehrheitsvotum ("N-modulare Redundanz", modulare Redundanz der Ordnung N). Diese Mechanismen erlauben es, sichere ("fail safe") Architekturen während eines Ausfalls zu erhalten, welche keinen falschen Befehl erzeugen, sondern bei dem ersten Fehler anhalten (Duplex), oder Architekturen, welche während eines Ausfalls betreibbar bleiben ("fail operational"), welche die Kapazität haben, einen einfachen Fehler in Echtzeit zu maskieren und weiterzumachen, wobei sie "sicher" bleiben (Triplex). Man findet in dieser Klasse ebenso die Master/- Controller-Architekturen, wo nur die Mikroprozessoren dupliziert sind, wobei die von dem "Master" ausgehenden Daten durch den "Controller" verifiziert werden; der Mikroprozessor ERC-32 der Gesellschaft MHS AG integriert einen derartigen Mechanismus.
- - Verfahren der multiplen Programmierung ("N-Version Programming"), verknüpft mit Architekturen mit modularer Redundanz der Ordnung N, welches erlaubt, auch Fehler der Softwareentwicklung zu detektieren. Jeder Rechner besitzt eine Version der Software, welche spezifisch ausgehend von einer gemeinsamen Spezifikation entwickelt wurde.
- - Zeitliche Redundanz: Es handelt sich darum, zwei aufeinanderfolgende Ausführungen gefolgt von einem Vergleich oder eine einzelne Ausführung gefolgt von dem Laden eines Steuerregisters und dann dem Wiederauslesen dessen mit dem Ziel, einen Vergleich und eine Validierung zu realisieren, zu haben, so der Mechanismus "Laden dann Ziehen", welcher in der Raumfahrt für sehr kritische Befehle benutzt wird, beispielsweise die Auslösung von pyrotechnischen Elementen.
- - Überwachung der Ausführungszeit: "Wachhunde", Zeitzähler, welche es erlauben, die Ausführung einer Software in einer beschränkten Dauer zu verifizieren, werden in allen Raumfahrtrechnern benutzt. Zudem können feinere Überwachungen der Ausführungszeit in die Software eingebaut sein: Überwachung der Dauer einer Aufgabe, maximale autorisierte Dauer, um die Antwort eines Kommunikationselements zu erhalten, etc. Softwareprogramme erlauben es, Überwachungen der Dauer der Ausführung von Aufgaben zu positionieren.
- - Verifikation des Arbeitsflusses, beispielsweise Überwachung der Abfolge eines Mikroprozessors. Die Wachhunde erlauben eine grobe Überwachung: Detektion eines harten Absturzes. Eine Feinüberwachung des Instruktionsflusses ist mit einem mehr oder weniger komplexen Überwachungsprozessor möglich. Die Überwachung durch Analyse einer Signatur ist besonders effizient und wenig anspruchsvoll an die Elektronik. Dieses Konzept wurde in dem ERC-32 der Gesellschaft MAS AG integriert, aber, um für den Benutzer transparent zu sein, war es nötig, ein spezifisches Compilerprogramm zu entwickeln, welches die Referenzsignaturen berechnet und sie in den Code integriert.
- - Überwachung der Gültigkeit der Adressierung eines Mikroprozessors ausgehend von Zugriffsrechten nach Seiten/Segmenten.
- - Überwachung der Wahrscheinlichkeit: Dieses Prinzip wird bei den Systemen der Überwachung der Fluglage und des Orbits (oder SCAO) von Satelliten benutzt, wo entweder die Daten verschiedener Typen von Sensoren oder ein Datum in Bezug auf eine mit einem Vorhersagefilter auf Grund der vorhergehenden Werte geschätzten Referenz oder ein Datum in Bezug auf einen vordefinierten Zugehörigkeitsbereich verglichen werden, um mögliche Inkohärenzen zu detektieren. Die "Fehlertoleranz basierend auf der algorithmischen Behandlung" genannten Verfahren repräsentieren eine Subklasse der Überwachungen der Wahrscheinlichkeit, wobei die Verifikation auf der Ausführung eines zweiten Algorithmus, beispielsweise dem inversen Algorithmus, welcher es erlaubt, die anfänglichen Daten ausgehend von den erhaltenen Ergebnissen wiederherzustellen, wenn diese fehlerfrei sind, basiert ist.
- - Semantische oder strukturelle Überwachung der Daten, was relativ komplexe Datenstrukturen erfordert.
- - Komplementäre Konzepte der Abdeckung von Fehlern, besonders Wiederaufnahmepunkte für die oben beschriebenen Mechanismen, welche keine Fehlerkorrektur erlauben: regelmäßige Sicherung von Kontexten und Wiederaufnahme ausgehend vom letzten gesicherten Kontext.
- - Eine andere Möglichkeit der Abdeckung von Fehlern besteht in der Wiedereinsetzung einer fehlerhaften Ressource durch Übertragung eines gesunden Kontextes in einen fehlerhaften Rechner, mit dem Ziel, die anfängliche Kapazität der Detektion/Korrektur wiederherzustellen.
- Es existieren ebenso Dokumente zum Stand der Technik auf dem Gebiet der zeitlichen Redundanz.
- Das Referenzdokument [5] deutet die Möglichkeit an, eine Aufgabe dreimal hintereinander auszuführen und über das Resultat "abzustimmen".
- Die Möglichkeit, eine Funktion der Art modulare Redundanz der Ordnung N softwaremäßig zu realisieren, ist ebenso in theoretischer Weise in dem Referenzdokument [6] erwähnt.
- In diesem letzten Dokument erlaubt es ein anderes Verfahren, die vorübergehenden Fehler von permanenten Fehlern zu unterscheiden und sie sogar zu korrigieren. Die Detektion ist kein Verfahren der zeitlichen Redundanz, sondern beispielsweise eine Codierung der Daten. Im Fall der Detektion wird die Behandlung ein zweites Mal durchgeführt, falls die zweite Ausführung die Resultate ohne Fehler ergibt, handelt es sich um einen vorübergehenden Fehler und es ist unnütz, das System zu rekonfigurieren; im gegenteiligen Fall ist eine Rekonfiguration nötig, da es sich um einen permanenten Fehler handelt.
- In diesen zwei Dokumenten ist die zeitliche Redundanz als theoretisch möglich erwähnt, aber keine Information bezüglich der tatsächlichen Möglichkeit ihrer Realisierung wird vorgebracht und keine konkrete Entwicklung wird zitiert. Bestimmte Probleme bleiben gänzlich offen: Kann insbesondere die Abstimmung durch den Mikroprozessor selbst realisiert werden oder muss sie durch ein externes und vom Mikroprozessor unabhängiges Organ realisiert werden. Nun aber könnte der Mikroprozessor Opfer einer Fehlfunktion sein: Fehler der Daten, Absturz der Abfolge etc. Die Realisierung der Abstimmung durch den Mikroprozessor ist damit ein wesentliches nicht angegangenes Element. Auf der anderen Seite ist die Feinheit, auf der die Detektion basiert, nicht definiert.
- Das Referenzdokument [7] ist ein wenig konkreter. Es stellt eine vergleichende Bewertung von zwei Fehlerdetektionsverfahren dar. Das eine von beiden wird "dreifache softwaremäßige modulare Redundanz" genannt. Die dreifache modulare Redundanz wird als gewöhnlich auf Hardwareebene realisiert angesehen. Das in dieser Publikation bewertete Verfahren benutzt die zeitliche Redundanz durch sukzessive Ausführung der Software, wobei alle Module, insbesondere das Abstimmungsmodul, als Software realisiert sind und auf demselben Mikroprozessor ausgeführt werden. Es handelt sich damit um eine rein softwaremäßige Vorgehensweise. Die Fig. 1, welche der Fig. 1 dieses Dokuments entspricht, veranschaulicht die Realisierung der Detektion: Jedes von drei Abstimmungsmodulen 1, 2 und 3, welche die Resultate der Ausführung der drei Prozeduren 4, 5 und 6 vergleichen, werden von einer Entscheidungsebene 7 gefolgt, welche das von jedem der Abstimmungsmodule ausgegebene Ergebnis vergleicht, um die Kohärenz der drei Prozeduren zu verifizieren. Die dreifache modulare softwaremäßige Redundanz ist auf einem Mikroprozessor MC68000 programmiert. Ungefähr 1500 Fehler wurden eingeführt, um diese Software zu validieren. Der Speicher ist nicht durch einen Fehlerdetektions- und -korrekturschaltkreis vor Fehlern geschützt. Dieses Dokument folgert, dass nur die Fehler, welche eine Prozedur dazu brachten, eine andere zu stören, nicht detektiert werden können. Weiterhin werden Fehler, welche die Kommunikation zwischen Programmen beeinflussen, nicht völlig toleriert.
- Dieses Dokument erwähnt eine konkrete Realisierung einer Architektur, wo die Prozeduren dreimal hintereinander ausgeführt werden (zeitliche Redundanz), und wo das Abstimmungsmodul dreimal ausgeführt wird, wobei über die Ergebnisse der Abstimmungsmodule dann selbst abgestimmt wird. Es scheint, dass die Abstimmung in keiner Weise gesichert ist, deswegen muss sie verdreifacht sein. Das schlussendliche Treffen der Entscheidung wird damit der letzten in der Figur dargestellten Ebene anvertraut, welche indirekt durch die Tatsache gesichert ist, dass sie zwangsweise sehr klein ist (einige Zahlencodes reichen aus, um über drei Daten abzustimmen): Statistisch sind die außerordentlichen Ereignisse, welche direkt dieses Modul beeinflussen, vernachlässigbar, aber dies sichert sie nicht gegenüber Fehlern der Abfolge des Mikroprozessors ab.
- Das Referenzdokument [8] stellt ebenso eine Realisierung der dreifachen softwaremäßigen modularen Redundanz auf einem Mikroprozessor des Typs iAPX 432 dar, eine Realisierung ähnlich derjenigen, welche in dem Referenzdokument [7] dargestellt ist: Jede Softwareunteraufgabe wird dreimal hintereinander ausgeführt, dann wird ein softwaremäßiges Abstimmungsmodul ebenso dreimal ausgeführt, was es erlaubt, darauf zu schließen, dass es nicht gesichert ist, wobei diese Aufgaben auf demselben Mikroprozessor in asynchroner Weise ausgeführt werden. Eine Phase des Fehlereinbringens hat es erlaubt, Fortpflanzungen von Fehlern zwischen Unteraufgaben zu beweisen, was ein Anzeichen dafür ist, dass es keine Undurchlässigkeit zwischen den Unteraufgaben in Bezug zueinander gibt.
- Das Referenzdokument [9] gibt einen allgemeinen Einblick in ein Verfahren zur Behandlung von vorübergehenden Fehlern unterworfenen elektronischen oder digitalen Systemen und erwähnt die Redundanz räumlicher Art ebenso wie die Redundanz zeitlicher Art als Mittel der Behandlung.
- Das Referenzdokument [10] macht ebenso ein Verfahren zur Behandlung eines Fehlern unterworfenen elektronischen Systems bekannt, wobei dieses System die Benutzung einer einzelnen physikalischen Abfolge mit dem Ziel der Vermeidung der Benutzung von redundanten Abfolgen vorschlägt.
- Das Referenzdokument [11] beschreibt auf kürzlich hergestellte Mikroprozessoren angewandte Verfahren, um eine Speicherverwaltung und einen virtuellen Speicher zu ermöglichen. Ein Prinzip des begrenzten Zugriffs auf Informationen wird erwogen. Bestimmte Zugriffsrechte auf eine Seite oder auf ein Segment werden jedem Prozess gegeben, wobei dieses Zugriffsrechte in Echtzeit überwacht werden.
- Eine Schätzung der Quote von außerordentlichen Ereignissen in einem typischen Rechner im Weltraum wurde realisiert, diese Quote hängt sicherlich von den Voraussetzungen ab, wie beispielsweise von der berücksichtigten Anzahl von Speicherzellen und dem berücksichtigten Wert der Empfindlichkeit einer einzelnen Zelle. Zudem wurde eine Simulation der Kritizität von Fehlern bei der Führung der Fluglage eines Satelliten durchgeführt, wobei die Erzeugung eines fehlerhaften Befehls für einen mittelkritischen Aktuator eines Kontrollsystems der Fluglage und des Orbits, beispielsweise einem Reaktionsrad, berücksichtigt wurde. Es scheint, dass die Quote von außerordentlichen Ereignissen gering ist, aber nicht ausreichend, um dieses Phänomen angesichts von zwei Arten von Befehlen zu vernachlässigen:
- - Befehle, die am kritischsten sind: Pyrotechnik, Antriebsgeräte, Batterieverwaltung etc. Man kann nicht das Risiko in Kauf nehmen, einen Satelliten mehrmals im Jahr zu verlieren,
- - Mittelkritische Befehle: Reaktionsräder, Magnetokoppler etc. Bestimmte Missionen, besonders kommerzielle (Beobachtung, Telekommunikation) sind nicht kompatibel mit Störungen der Fluglage, welche potenziell durch diese Fehler erzeugt werden, selbst wenn diese beschränkt bleiben.
- Auf der anderen Seite ist die Frequenz von außerordentlichen Ereignissen viel größer als die Frequenz eines Echtzeitzyklus des Rechners.
- Es ist die Aufgabe der Erfindung, ein Verfahren zur Behandlung eines vorübergehenden Fehlern unterworfenen Systems vorzuschlagen, welches erlaubt, kommerzielle Komponenten trotz ihrer Empfindlichkeit gegenüber außerordentlichen Ereignissen zu verwenden, indem es ermöglicht wird, das Auftreten von vorübergehenden Fehlern zu detektieren und sie zu korrigieren.
- Die vorliegende Erfindung betrifft ein Verfahren zur Behandlung eines vorübergehenden Fehlern unterworfenen elektronischen Systems, beispielsweise auf dem Gebiet der Raumfahrt, dadurch gekennzeichnet, dass man innerhalb eines gegebenen Echtzeitzyklus, d. h. innerhalb eines gegebenen Operationszyklus einer Softwareaufgabe, die auf eine periodische und kontinuierliche Art abgearbeitet wird, zwei in einen physikalischen Ablauf eingebettete virtuelle Abläufe zeitlich multiplext, wobei die resultierenden Daten von jeder Ausführung eines virtuellen Ablaufs gespeichert werden, damit über sie vor Verwendung abgestimmt wird, und dadurch, dass man im Fall der Detektion eines Fehlers den laufenden Echtzeitzyklus hemmt und einen gesunden Kontext nachlädt, um eine Wiederaufnahme, bestehend aus einer nominellen Ausführung des folgenden Zyklus ausgehend vom nachgeladenen Kontext, durchzuführen.
- Damit wird die Korrektur der Fehler durch Nachladen eines gesunden Kontextes, d. h. desjenigen, welcher während dem Echtzeitzyklus, der dem Zyklus, in dem der Fehler detektiert wurde, vorausgeht, und die folgende nominelle Ausführung (d. h., indem neue Erfassungen gemacht werden) des Zyklus, welcher demjenigen folgt, in dem der Fehler detektiert wurde, ausgehend vom restaurierten Kontext realisiert, diese Art der Korrektur ist durch das Auftreten eines "Lochs" eines Echtzeitzyklus bei der Ausführung der Software gekennzeichnet (demjenigen, in dem der Fehler detektiert wurde).
- Vorteilhaft können ebenso die nachfolgenden Eigenschaften vorliegen.
- Man kann drei Stufen von Fehlerbegrenzungszonen benutzen: zeitlich, softwaremäßig und hardwaremäßig; bei Begrenzung auf zeitlicher Stufe können sich Fehler nicht von einem Echtzeitzyklus auf den anderen fortpflanzen; bei Begrenzung auf softwaremäßiger Stufe können sich die Fehler nicht von einer Softwareaufgabe auf die andere und ebenso nicht von einem virtuellen Ablauf auf den anderen fortpflanzen; bei Begrenzung auf hardwaremäßige Stufe können Fehler, welche in der Erfassungselektronik oder in der Zentraleinheit auftreten, sich nicht in die Steuerelektronik fortpflanzen (keine Erzeugung von falschen Befehlen).
- Man kann eine Speicheranordnung der Zentraleinheit benutzen, welche vor außerordentlichen Ereignissen durch einen Fehlerdetektions- und Fehlerkorrekturcode geschützt wird.
- Die Feinheit der gespeicherten Detektion/Korrektur kann der Operationszyklus der Softwareaufgaben, die man auf dem Rechner ausführt, sein, was es erlaubt, die durch die regelmäßig aktivierte Funktion "Sicherung des Kontextes" sowie durch die Funktion "Wiederherstellung des Kontextes", welche bei einer Fehlerkorrektur aktiviert wird, erzeugten Beschränkungen im Vergleich mit üblichen dem Fachmann bekannten Lösungen stark zu reduzieren, dadurch, dass die Anzahl zu dem Kontext gehörenden Variablen auf ein absolutes Minimum an der Grenze der zwei Echtzeitzyklen begrenzt ist.
- Die regelmäßig aktivierte Funktion "Sicherung des Kontextes" kann durch eine Indexänderung realisiert werden, was den Vorteil bietet, dass diese Funktion quasi keine Auswirkungen auf die Entwicklungskosten der Software hat, ebenso wenig wie auf die Ausführungszeit dieser Funktion durch den Mikroprozessor; die einzige Auswirkung liegt darin, dass das Gruppieren der Variablen des Kontextes durch diese Funktion eine größere Lebensdauer als die Feinheit der Detektion/Korrektur, d. h. der Echtzeitzyklus, hat.
- Die anlässlich einer Fehlerkorrektur aktivierte Funktion "Wiederherstellung des Kontextes" kann durch die Tatsache realisiert sein, dass der Index, welcher anzeigt, dass der Kontext des vorausgehenden Operationszyklus als gesund, d. h. frei von Fehlern, beurteilt worden ist, nicht verändert werden darf, während er bei normalem Zeitablauf, d. h. wenn kein Fehler detektiert wird, umgeschaltet wird; dieses "Nichtumschalten" ist inhärent mit der Hemmung des Operationszyklus, in dem der Fehler detektiert wird, was ebenso den Vorteil bietet, dass es weder eine Auswirkung dieser Funktion auf die Entwicklungskosten der Software noch auf die Ausführungszeit dieser Funktion durch den Mikroprozessor gibt, was bei den üblichen dem Fachmann bekannten Lösungen unüblich ist.
- Man kann eine mit einer Hardwarevorrichtung zur Kontrolle der Zugriffsrechte verbundene Speichersegmentierung benutzen, wobei diese Vorrichtung erlaubt, Segmente verschiedener und beliebiger Größen bereitzustellen. Diese Hardwarevorrichtung zur Kontrolle der Zugriffsrechte erlaubt eine Mehrzahl von Zugriffskonfigurationen, wobei jede Konfiguration den Zugriff auf ein oder mehrere nicht aneinandergrenzende Segmente autorisiert. Diese Hardwarevorrichtung zur Kontrolle der Zugriffsrechte erlaubt ebenso die Auswahl von Zugriffskonfigurationen gemäß den logischen Kombinationen einer oder mehrere Schlüssel.
- Man kann eine Tabellierung der Variablen/Daten, über die abgestimmt werden muss, benutzen, mit dem Ziel, ein sowohl einfaches als auch von einer Anwendung zur anderen wiederverwendbares Abstimmungsmodul zu erhalten, in diesem Fall wirkt sich das Abstimmungsmodul in völlig vernachlässigbarer Weise auf die Entwicklungskosten der Software aus.
- Man kann eine softwaremäßige Abstimmung verwenden, deren Integrität durch softwaremäßige Kontrollen, die insbesondere einen softwaremäßigen Überwachungsprozessor beinhalten, und hardwaremäßige Kontrollen sichergestellt ist; die Abstimmung aktiviert ebenso die Autorisierung der Übertragungen zur Steuerelektronik, falls kein Fehler detektiert wird.
- Man kann schließlich eine Kontrolle der Übertragung an die Steuerungselektronik durch eine hardwaremäßige Vorrichtung, welche die Zugriffsrechte verifiziert und die Gültigkeit dieser Übertragung zeitlich beschränkt (Fenster der zeitlichen Validierung) und auf diese Weise eine Fehlerbegrenzungszone auf der hardwaremäßigen Stufe definiert, benutzen.
- Bei dem erfindungsgemäßen Verfahren gibt es demnach:
- - zeitliche Verdoppelung der Ausführung der Aufgaben, und Abstimmung über Ergebnistabellen,
- - Detektion aller Datenfehler auf Grund der Abstimmung über die Tabellen,
- - Detektion von Fehlern der Abfolge auf Grund von Hardware- und Softwarevorrichtungen zur Sicherung der Abstimmung und der Kontrolle der Zugriffsrechte,
- - für die Anwendung transparente Korrektur: Alles geschieht, als ob es ein "Loch" eines Echtzeitzyklus gäbe.
- Die Minimierung der spezifischen Entwicklungen ist einer der Vorteile des erfindungsgemäßen Verfahrens, konkret:
- - Für die Software:
- -- die Anordnung der Variablen, über die abgestimmt wird, in Tabellen,
- -- das Modul der "Abstimmung und Erzeugung der Befehle", welches unter anderem von einer Anwendung zur anderen wiederverwendbar ist,
- -- die Verwaltung des erfindungsgemäßen Verfahrens (Verwaltung der zeitlichen Verdoppelung, der hardwaremäßigen Überwachungsvorrichtung des Speicherzugriffs und des Fensters der zeitlichen Validierung, der Fehlerkorrektur).
- - für die Hardware:
- -- die Überwachung der Speicherzugriffe und das Fenster der zeitlichen Validierung: Dies sind einfache Komponenten, welche in einem FPGA- oder besser in dem ASIC-Schaltkreis, welcher üblicherweise mit dem Mikroprozessor verknüpft ist (Decodierung von Adressen etc.) integriert werden muss, sie sind u. a. von einer Anwendung zur nächsten wiederverwendbar,
- -- Der Schutz der kritischen Steuerungselektronik durch übliche fehlertolerante Mechanismen (z. B. Instrumentierung).
- Die Vorteile des erfindungsgemäßen Verfahrens sind demnach folgende:
- - sehr geringe Hardwareentwicklung,
- - sehr geringe Softwareentwicklung,
- - Minimierung der wiederkehrenden Kosten (ein einziger Rechner) im Vergleich mit anderen fehlertoleranten Architekturen,
- wobei derartige Eigenschaften auf dem Gebiet der Fehlertoleranz unüblich sind.
- Weiterhin bietet die Benutzung von "kommerziellen" Komponenten in der Raumfahrt die folgenden hauptsächlichen Vorteile:
- - Lösung des dargestellten Problems der Verringerung des Angebots von "hochzuverlässigen" Komponenten folgend dem Rückzug der hauptsächlichen Ausrüster aus diesem Markt.
- - Verringerung der Kosten, ein durch den Budgetkontext angeregter Aspekt. Nun ist aber der Posten "hochzuverlässige Komponenten" nicht vernachlässigbar bei den Gesamtkosten der Entwicklung einer Ausrüstung und wird ausschlaggebend bei den wiederkehrenden Kosten.
- - Benutzung von Funktionen/Komponenten mit der größten Leistung, was es erlaubt, das Volumen der Elektronik zu reduzieren und/oder die Funktionalität zu vergrößern.
- - Verringerung der Entwicklungsdauer der Projekte durch Anbieten eines Zugriffs auf einen reaktiveren Raum, die Verzögerung der Versorgung mit "hochzuverlässigen" Komponenten ist momentan 1 oder 2 Jahre.
- Vorteilhaft hat das erfindungsgemäße Verfahren eine generische Ausrichtung und kann bei allen Arten von Rechnern, welche vorübergehenden Fehlern unterworfen sind, benutzt werden, gleich was der Ursprung dieser Fehler ist (kosmische Strahlung, elektromagnetische Anregung etc.), aber es wird ganz natürlich auf das Gebiet der Raumfahrt angewendet.
- - Die Fig. 1 stellt eine Realisierung der dreifachen softwaremäßigen modularen Redundanz gemäß dem Stand der Technik dar,
- - die Fig. 2 stellt das Blockschaltbild der hardwaremäßigen Architektur dar, welche in der vorliegenden Beschreibung als Referenz dient,
- - die Fig. 3 stellt ein zeitliches Diagramm der softwaremäßigen Referenzarchitektur dar,
- - die Fig. 4 stellt die Abfolge der Referenzarchitektur dar,
- - die Fig. 5A und 5B stellen die globale Abfolge der Funktionsweise dar: ohne Benutzung bzw. Unterbenutzung des erfindungsgemäßen Verfahrens,
- - die Fig. 6 stellt eine funktionelle Beschreibung des erfindungsgemäßen Verfahrens dar,
- - die Fig. 7 stellt das Blockschaltbild der Gesamtheit des erfindungsgemäßen Verfahrens dar,
- - die Fig. 8 stellt die Fehlerbegrenzungszone auf hardwaremäßiger Stufe dar,
- - die Fig. 9 stellt die Abfolge des erfindungsgemäßen Verfahrens und das Umschalten der Kontexttabellen dar,
- - die Fig. 10 stellt die Abstimmung über die Daten dar,
- - die Fig. 11A und 11B stellen die Struktur der Abstimmung des erfindungsgemäßen Verfahrens dar: die verschiedenen Abfolgefehler der Art "weicher Absturz" bzw. die Struktur des Verfahrens der Abstimmung/Erzeugung der Befehle.
- In dem folgenden Teil der Beschreibung wird als Beispiel eine Anwendung des erfindungsgemäßen Verfahrens auf dem Gebiet der Raumfahrt betrachtet.
- Eine typische und generische Anwendung eines im Weltraum benutzten Rechners ist unten dargestellt, sowohl aus hardwaremäßiger als auch aus softwaremäßiger Sicht. Die Referenzarchitektur, dargestellt in Fig. 2, dient als Basis der Beschreibung des erfindungsgemäßen Verfahrens.
- Die Bordverwaltungseinheit 10, in dieser Fig. 2 dargestellt, umfasst:
- - eine um einen Mikroprozessor realisierte Zentraleinheit 11,
- - einen Massenspeicher 12,
- - Schnittstellen zur Leistungsversorgung 13, zur Nutzlast 15, zur Pyrotechnik 16, zur Temperatursteuerung 7, zum Steuersystem der Fluglage und des Orbits 18,
- - verbunden durch einen Datenbus 19,
- - eine Telekommando-Telemetrik-Schnittstelle 14,
- - eine Überwachungs- und Rekonfigurationselektronik 20,
- - Gleichspannungswandler 21, welche eine kommutierende Stromversorgung AC und permanente Stromversorgung AP liefern.
- Die Leistungsversorgungsschnittstelle 13 ist mit einem Solargenerator 25 und einer Batterie 26 verbunden.
- Die Telekommando-Telemetrik-Schnittstelle 14 ist mit einem Sender/Empfänger, Duplexer 27 verbunden, welcher in Verbindung mit Antennen 28 und 29 steht.
- Die Nutzlast 31 ist mit der Zentraleinheit 11 durch einen Avionikbus 32 verbunden und mit dem Massenspeicher 12 ebenso wie mit der Telekommando-Telemetrik-Schnittstelle 14 durch eine Hochleistungsserienverbindung mit der Nutzlastschnittstelle 15 verbunden.
- Die Pyrotechnikschnittstelle 16 ist mit entfaltbaren Systemen 35 verbunden.
- Die Temperatursteuerungsschnittstelle 17 ist mit Heizern, Thermistoren 36 verbunden.
- Das Interface zum System der Steuerung der Fluglage und des Orbits 18 ist mit Sensoren C1, C2 ... Cn, mit Aktuatoren A1, A2 ... An und mit einem Reservoirdrucksensor 37 verbunden.
- Eine derartige Architektur besteht demnach aus verschiedenen Modulen der Behandlung (Zentraleinheitsmodul) oder des Eingangs/Ausgangs (Module der Erfassung, Module der Befehle). Die Module des Eingangs/Ausgangs integrieren Elektronik der unteren Ebene (Analog-Digital-Wandler oder Digital-Analog- Wandler, Multiplexer von digitalen oder analogen Leitungen, Relais etc.).
- Die Module können durch einen Bodenbus verbundene Karten oder auch durch einen Avionikbus verbundene komplette Gehäuse sein. In beiden Fällen ist die Schnittstelle zum Bus durch einen Masterbuskoppler (CB) in dem Zentraleinheitmodul und durch Teilnehmerbuskoppler in den anderen Modulen realisiert.
- Die Referenzarchitektur der Software wie in der Fig. 3 dargestellt besteht aus Prozessaufgaben (beispielsweise: Aufgabe des Systems der Steuerung der Fluglage und des Orbits, Aufgabe der Kontrolle der Temperatur, Aufgabe der Echtzeituhr, Aufgabe der Bordverwaltung etc.), wobei jede Aufgabe Ergebnisse erzeugt, welche den Rechner verlassen sollen (Befehle oder Cdes), wobei diese Ergebnisse nach und nach gemäß ihrer Berechnung erzeugt werden, d. h. den Rechner verlassen. Die Erfassungen (oder Acq) werden am Anfang des Echtzeitzyklusses aus Gründen der zeitlichen Kohärenz gruppiert (beispielsweise System der Steuerung der Fluglage und des Orbits).
- In der Fig. 3 sind die Aufgaben A, B und C aus Gründen der Klarheit der Beschreibung mit derselben Frequenz dargestellt.
- Die Aktivität dieser Aufgaben wird durch einen von einer zyklischen Echtzeitunterbrechung IT-TR ausgelösten Echtzeitzyklus getaktet. Dieser Zyklus erlaubt es, in zyklischer Weise bestimmte Aufgaben zu beginnen, welche bei der Frequenz des Echtzeitzyklus oder bei einer Unterfrequenz arbeiten. Andere Aufgaben sind asynchron, initialisiert durch Ereignisse.
- Eine Darstellung, bei der sowohl die hardwaremäßige als auch die softwaremäßige Referenzarchitektur auftauchen, ist in Fig. 4 dargestellt. In dieser Figur sind die Zentraleinheit 40, die mit den Sensoren 42 verbundene Erfassungselektronik 41 und die mit den Aktuatoren 44 verbundene Befehlselektronik 43 dargestellt, wobei diese zwei Elektroniken 41 und 43 ebenso wie die Zentraleinheit durch einen Datenbus 45 verbunden sind.
- Die Abfolge von drei hauptsächlichen Phasen Ph1, Ph2 und Ph3, welche die Erfassung der Daten, ihre Behandlung und die Erzeugung der Befehle sind, bringen die drei unterschiedlichen Teile der Elektronik 40, 41, 43 ins Spiel, wobei sich die Phasen Ph2 und Ph3 überschneiden.
- Der Hardwareteil dieser Architektur basiert nicht auf Funktionsblöcken und berücksichtigt damit nicht die Spezifikationen der bestimmten Komponenten und ihre möglichen Fähigkeiten auf dem Gebiet der Fehlerdetektion/-korrektur. Das erfindungsgemäße Verfahren ist somit unabhängig. Dennoch kann die in erhaltene Komponenten integrierte Benutzung möglicher Fehlertoleranzmechanismen für eine gegebene Anwendung die Quote der Fehlermaskierung gegenüber dem erfindungsgemäßen Verfahren allein nur verbessern.
- Eine Bestimmung der potenziellen Fehlersignaturen der außerordentlichen Ereignissen unterworfenen Referenzarchitektur wurde realisiert. Sie hat es erlaubt, die Fehler in zwei wesentliche Klassen einzuordnen:
- - die Datenfehler,
- - die Abfolgefehler, welche ebenso in zwei Unterklassen aufgeteilt werden können:
- -- "weicher Absturz": Fehlerhafte Verzweigung, aber der Mikroprozessor bleibt in Phase mit den Befehlen und folgt einer mehr oder weniger fehlerhaften Befehlsabfolge;
- -- "harter Absturz": Der Mikroprozessor ist nicht mehr in Betrieb, beispielsweise bleibt der Mikroprozessor nicht in Phase mit den Befehlen, der Mikroprozessor lädt das Befehlsregister mit Daten, der Stapelzeiger ist gestört, Blockade der Abfolge der Anweisungen, Warten auf ein unmögliches Ereignis, Endlosschleife etc.
- Diese zwei Klassen teilen sich selbst weiter in verschiedene Unterklassen auf, von denen die wichtigste Adressierungsfehler betrifft.
- Die Unterscheidung zwischen "weichem" und "hartem" Absturz ist wichtig: So sehr eine zum Mikroprozessor externe Hardwarevorrichtung im Allgemeinen zur Detektion von "harten" Abstürzen nötig ist (z. B. ein Wachhund), so sehr kann ein Softwaremechanismus ausreichend sein, einen "weichen "Absturz zu detektieren, denn in dem letzten Fall führt der Mikroprozessor weiterhin Code aus, wenn auch in fehlerhafter Weise.
- Auf der anderen Seite bilden die Abstürze des Mikroprozessors eine kritische Klasse von Fehlern, denn ein "verrückter Mikroprozessor" ist zu Aktionen fähig, welche katastrophale Konsequenzen für eine Weltraummission haben können, es ist demnach wichtig, sich ihrer Detektion zu widmen und das mit einer kurzen Latenzzeit, und/oder Fehlerbegrenzungszonen zu realisieren mit dem Ziel, die Wahrscheinlichkeit von falschen Befehlen folgend einem nichtdetektierenden Fehler zu minimieren.
- Man wird nun die Funktionsweise des erfindungsgemäßen Verfahrens als solche beschreiben.
- In globaler Weise ist die für die Detektion/Korrektur benutzte Feinheit der Basisechtzeitzyklus des Rechners, beispielsweise der Zyklus der Aufgabe des Systems der Steuerung der Fluglage und des Orbits eines Plattformrechners.
- In der Tat ist es bei dem erfindungsgemäßen Verfahren wie bei einem strukturellen Duplex das Ziel, den Rechner ohne Überwachung arbeiten zu lassen und nur die Daten, welche den Rechner verlassen müssen (die Befehle) oder welche zur Korrektur dienen (den Kontext) auszuwählen oder darüber abzustimmen.
- Die Wahl des Echtzeitzyklus für die Feinheit weist viele Vorteile auf:
- - Bei dieser Frequenz greift man bei der Erfassung oder bei einem Befehl auf eine Mehrzahl der Sensoren/Aktuatoren zu,
- - Es ist am Ende des Echtzeitzyklus, dass "aktive" Daten in relativ begrenzter Anzahl bereitgestellt sind: Es gibt weder eine Mehrzahl von Zwischendaten noch lokale Variablen unter Benutzung:
- -- Für die Detektion speichert man sie in einem Satz von Tabellen, über die abgestimmt wird,
- -- Für die Korrektur ist ein einfacher und gut lokalisierter Wiederherstellungskontext bereitgestellt.
- In genauerer Weise ist die Feinheit der Detektion/Korrektur für eine gegebene Aufgabe die Frequenz dieser Aufgabe selbst, denn die Abstimmung wird am Ende der Aufgabe vorgenommen. Als Konsequenz beträgt, wenn man eine Aufgabe des Systems der Steuerung der Fluglage und des Orbits bei 10 Hz und eine thermische Aufgabe bei 1 Hz betrachtet, die Feinheit 10 Hz für das System der Steuerung der Fluglage und des Orbits und 1 Hz für die Temperatursteuerung. Aus Klarheitsgründen behält man im folgenden Teil des Dokuments die Bezeichnung der "Feinheit durch Echtzeitzyklus" statt "der Aufgabe" bei.
- Um von der Effizienz des Duplexens zu profitieren (zwei identische Abläufe parallel, dieselbe Software ausführen, mit Vergleich der Ausgaben), welche es erlaubt, alle Fehler gleich welchen Typs (Fehler der Daten, der Adresse, der Abfolge, der Konfiguration etc.) ohne Ausnahme zu detektieren, wobei die strukturelle Redundanz ganz unterdrückt wird, besteht das erfindungsgemäße Verfahren in der Einbettung einer Duplexfunktionalität in einen einzelnen physikalischen Ablauf. In einem gegebenen Echtzeitzyklus multiplext man zwei in einen einzelnen physikalischen Ablauf eingebettete virtuelle Abläufe zeitlich: Die sich durch jede Ausführung eines virtuellen Ablaufs ergebenden Daten werden in "zeitlich gemultiplexte Duplextabellen" gespeichert (z. B. Befehle, Kontext), um vor Benutzung über sie abzustimmen.
- Nach einer Detektion besteht die Korrektur daraus, den laufenden Echtzeitzyklus zu hemmen und einen gesunden Kontext nachzuladen, um eine Wiederaufnahme zu bewirken, welche in einer nominellen Ausführung des folgenden Zyklus ausgehend von dem nachgeladenen Kontext besteht: Alles geschieht, als gäbe es ein "Loch" eines Echtzeitzyklus.
- Das erfindungsgemäße Verfahren basiert auf der. Tatsache, dass ein von einem außerordentlichen Ereignis erzeugter Fehler vorübergehend ist: Ein derartiger Fehler, welcher während der Ausführung des ersten virtuellen Ablaufs auftritt, wird bei der Ausführung des zweiten Ablaufs nicht reproduziert (oder umgekehrt). Im Gegensatz dazu können die zeitlich statischen Fehler nicht durch das erfindungsgemäße Verfahren detektiert werden: Beispielsweise die Ausfälle von Komponenten (Hängenbleiben eines Bits etc.) und ebenso bestimmte durch außerordentliche Ereignisse verursachte Fehler, welche einen permanenten Fehler hervorrufen (z. B. Blockade einer Folgesteuerung).
- Die Aktionen stromabwärts des Abstimmungsmoduls, d. h. die Übertragung der Daten zur Steuerungselektronik (d. h. den Datenbus) ebenso wie die Steuerungselektronik selbst werden nicht durch das erfindungsgemäße Verfahren geschützt. Der Benutzer realisiert eine Systemanalyse, um die kritischen Befehle zu bestimmen, welche frei von Fehlern sein müssen, und um sie durch dem Fachmann wohlbekannte Mechanismen zu schützen: Codierung der Daten, Selbstüberwachungskreis, Instrumentierung der Befehlselektronik etc.
- Die Fig. 6 gibt eine funktionelle Beschreibung des erfindungsgemäßen Verfahrens.
- In dieser Figur findet man den Fluss der Daten (fette Striche), auf Grund derer der virtuelle Ablauf #1 47 die Erfassungen #1 empfängt, der virtuelle Ablauf #2 48 die Erfassungen #2 empfängt, der gesicherte Abstimmer 49 die Ausgänge dieser beiden Abläufe 47 und 48 empfängt und die Befehle sendet. Man findet ebenfalls das Fehlersignal (dünner Strich), welcher das gesicherte Abstimmungsmodul 49 mit zwei virtuellen Abläufen 47 und 48 verbindet, um eine Forderung des Nachladens des Kontextes zu realisieren, um eine Korrektur durch Wiederaufnahme zu initialisieren.
- Die globale Abfolge des erfindungsgemäßen Verfahrens ist in den Fig. 5A und 5B dargestellt:
- - Fig. 5A; Abfolge ohne das erfindungsgemäße Verfahren, die Befehle werden trotzdem am Ende der Behandlung kopiert,
- - Fig. 5B: Abfolge mit dem erfindungsgemäßen Verfahren.
- Die Fig. 5A stellt zwei Echtzeitzyklen N und N + 1 dar, und den Anfang des Zyklus N + 2.
- Jeder Echtzeitzyklus besteht aus vier zeitlich unterschiedlichen Phasen:
- - Erfassung der Daten,
- - Behandlung mit Berechnung der Befehle,
- - Übertragung der Befehle,
- - Grund-("Scrub") und Bereitschaftsaufgabe ("Standby"), hier "Scrub+Standby" genannt.
- Die Fig. 5B stellt das erfindungsgemäße Verfahren dar, gemäß dem jeder Echtzeitzyklus besteht aus:
- - Erfassung virtueller Ablauf Nummer 1 (ChV#1),
- - Behandlung virtueller Ablauf Nummer 1, wobei die Ergebnisse in einer Tabelle TAB#1 gespeichert werden,
- - Erfassung virtueller Ablauf Nummer 2 (ChV#2),
- - Behandlung virtueller Ablauf Nummer 2, wobei die Ergebnisse in einer Tabelle TAB#2 gespeichert werden,
- - Abstimmung über Tabellen TAB#1 und TAB#2,
- - Erzeugung der Befehle,
- - Grund- und Bereitschaftsaufgabe.
- Die Fig. 7 stellt ein Blockschaltbild der Gesamtheit des erfindungsgemäßen Verfahrens dar, wobei die Gesamtheit der seine Durchführung erlaubenden Schaltkreise dargestellt ist.
- Ein erstes Mikroprozessormodul 50 erlaubt es, die Gesamtheit der Softwaremechanismen zu verwalten, insbesondere:
- - die zeitliche Verdoppelung der Aufgaben,
- - die Tabellierung der Variablen,
- - die gesicherte Abstimmung,
- - die Korrektur durch Wiederaufnahme,
- - die Verwaltung der Hardwaremechanismen.
- Ein Modul 51 zur Überwachung des Speicherzugriffs und des zeitlichen Validierungsfensters ist mit dem Bus 52 des Mikroprozessors 50, einem Speicher zur Detektion und Korrektur des Fehlers 53 und einem Buskoppler 54 verbunden.
- Das Modul 51 erzeugt ein Fehlersignal an der Anschlussklemme "Reset" des Mikroprozessors 50, ein Auswahlsignal ("chipselect", CS) in dem Speicher 53 und ein Auswahlsystem an dem Buskoppler 54.
- Der Speicher 53 ist in Segmente aufgeteilt, wobei jedes Segment ein spezifisches Zugriffsrecht bereitstellt (Validierung durch Schlüssel). Der Buskoppler 54, der mit einem Datenbus 55, welcher Zugriff auf andere Funktionen des Rechners (Erfassungs-Befehlselektronik etc.) verbunden ist, wird durch ein Signal der Art "zeitliches Fenster" validiert.
- Das erfindungsgemäße Verfahren wird demnach durch die folgenden Eigenschaften charakterisiert:
- - drei Stufen von Fehlerbegrenzungszonen: zeitlich, softwaremäßig und hardwaremäßig,
- - Tabellierung der Variablen/Daten,
- - eine zeitliche Verdoppelung von Behandlungen,
- - ein einzelnes gesichertes softwaremäßiges Abstimmungsmodul, welches eine Fehlerdetektion durch Vergleich der Ergebnisse jeder der Behandlungen ermöglicht, wobei das Abstimmungsmodul ebenso die Erzeugung von Befehlen realisiert,
- - ein softwaremäßiger Überwachungsprozessor, welcher an der Überwachung der Integrität der Abstimmung teilhat,
- - eine Speicheranordnung der Zentraleinheit, welche vor außerordentlichen Ereignissen durch einen Fehlerdetektions- und Fehlerkorrekturcode geschützt ist,
- - eine Segmentierung des einer Hardwarevorrichtung zur Kontrolle der Zugriffsrechte, welche mit dem vorhergehenden Element erlaubt, in sicherer Art den Kontext für die Wiederaufnahme zu speichern und Adressierungsfehler zu detektieren, zugeordneten Speichers,
- - einer Überwachung der Übertragung zur Befehlselektronik über den Datenbus durch eine Hardwarevorrichtung, welche die Zugriffsrechte überwacht und somit eine Fehlerbegrenzungszone abgrenzt,
- - einer Korrektur durch Wiederaufnahme im Fehlerfall.
- Nun wird hintereinander jede dieser Eigenschaften analysiert.
- Die hauptsächliche Fehlerbegrenzungszone 60 besteht aus der Erfassungselektronik 41 und der Zentraleinheit 40, wie in der Fig. 8 dargestellt: In dieser Figur werden dieselben Bezugszeichen wie in Fig. 4 benutzt. Demnach kann, falls ein Fehler die Erfassungen oder die Behandlung stört, dieser Fehler nicht zur Befehlselektronik 43 übertragen werden. Die Fehler, welche nach einem außerordentlichen Ereignis in der Erfassungselektronik 41 oder in der Zentraleinheit 40 auftreten, können demnach keine falschen Satellitenbefehle erzeugen, sie stören die Mission nicht.
- Diese Begrenzungszone 60 ist auf Grund der Abstimmung wirksam für die Fehler, welche das Abstimmungsmodul detektieren kann. Für die anderen Fehler ist diese Begrenzungszone auf Grund der Anwesenheit einer Kontrolle der Zugriffsrechte ebenso quasi undurchlässig: Die Hardwarevorrichtung des zeitlichen Validierungsfensters blockiert jegliche nicht autorisierte Befehlserzeugung auf dem Bus.
- Auf der anderen Seite werden bei dem erfindungsgemäßen Verfahren andere Begrenzungszonen definiert:
- - zeitliche Begrenzung von Fehlern auf der Stufe eines Echtzeitzyklus, da die Korrektur auf einer Feinheit eines Echtzeitzyklus basiert,
- - Begrenzung der Fehler auf der Ebene der Softwareaufgaben auf Grund einer Überwachungsvorrichtung des Speicherzugriffs und auf der Ebene der virtuellen Abläufe ebenso auf Grund der Überwachung des Speicherzugriffs.
- Die Funktionsweise des erfindungsgemäßen Verfahrens stützt sich auf einen Satz von Tabellen, wo insbesondere die Daten, über die abzustimmen ist, gespeichert sind (diese Tabellen sind somit verdoppelt, wobei ein Satz für ChV#1 und der andere für ChV#2 erzeugt wird). Man nennt diese Tabellen "zeitlich gemultiplexte Duplextabellen", da sie spezifisch für die Duplexfunktionsweise sind, im Gegensatz zu üblichen Tabellen der Software. Man kann beispielsweise anführen:
- - Erfassungstabelle (TAB-Acq),
- - Befehlstabelle (TAB-Cde),
- - Kontexttabelle (TAB-Ctxt).
- Um eine Wiederherstellung des Kontextes bei einer Korrektur durch Wiederaufnähme zu erlauben, besteht jede der Kontexttabellen TAB-Ctxt#1 und TAB-Ctxt#2 aus einem Satz von zwei Tabellen, welche arbeiten, indem sie in jedem zweiten Zyklus am Ende der Aufgabe umschalten (d. h. am Ende der Abstimmung). Ein Satz von zwei Indexes "Old" (alt) und "New" (neu), gespeichert im Speicher, ist ihnen zugeordnet.
- Demnach wird bei dem Zyklus Nummer N der Aufgabe K für den virtuellen Ablauf 1 beispielsweise die erste Tabelle als "New" betrachtet und als TAB-Ctxt-New#1 notiert, die zweite Tabelle ist "Old" und als TAB-Ctxt-Old#1 notiert. Falls kein Fehler durch die Abstimmung der Aufgabe K detektiert wird, vertauscht das Umschalten am Ende der Abstimmung die Rollen: Die erste Tabelle wird demnach zu TAB-Ctxt-Old#1 und die zweite TAB-Ctxt-New#1.
- Die Zonen "Old" sind auf Grund der Vorrichtung der Überwachung des Speicherzugriffs schreibgeschützt mit dem Ziel, beispielsweise bei einem Absturz des Mikroprozessors den Kontext zur Wiederaufnahme, über welchen einmal abgestimmt wurde und welcher als gesund beurteilt wurde, zu schützen.
- In Bezug auf die oben definierte Referenzsoftwarearchitektur erfordert das erfindungsgemäße Verfahren, die Befehle nicht nach und nach gemäß ihrer Berechnung wie in Fig. 3 angedeutet zu erzeugen, sondern sie in einer Tabelle wartend auf die Abstimmung zu speichern (siehe Fig. 5B). Wenn die Behandlung durch die zwei virtuellen Abläufe beendet ist, wird über die Tabellen abgestimmt, und nur wenn keine Inkohärenz zwischen ihnen detektiert wird, erzeugt das Abstimmungsmodul die Befehle: d. h. eine der zwei Befehlstabellen wird durch die Zentraleinheit 40 über den Bus 45 geschickt an die Befehlselektronik 43.
- Die globale Abfolge des erfindungsgemäßen Verfahrens für eine gegebene Aufgabe wird inklusive des Aspekts der zeitlichen Verdoppelung im Folgenden unter Bezugnahme auf Fig. 9 beschrieben.
- Diese Figur stellt die zeitlich gemultiplexte Duplexabfolge gemäß der Erfindung und das Umschalten der Kontexttabellen dar.
- Die Echtzeitzyklen werden durch die Echtzeitunterbrechungen IT-TR initialisiert.
- Jeder Echtzeitzyklus besteht aus folgenden Phasen:
- - Echtzeitfolgesteuerung/-exekutive (ETR),
- - Aufgabe A,
- - Echtzeitfolgesteuerung/-exekutive,
- - Aufgabe B,
- - Echtzeitfolgesteuerung/-exekutive,
- - Aufgabe C,
- - Echtzeitfolgesteuerung/-exekutive,
- - Grund- und Bereitschaftsaufgabe.
- Die Aufgabe A besteht ebenso wie die Aufgaben B und C wie in Fig. 5B dargestellt aus:
- - Erfassung virtueller Ablauf Nummer 1,
- - Behandlung virtueller Ablauf Nummer 1,
- - Erfassung virtueller Ablauf Nummer 2,
- - Behandlung virtueller Ablauf Nummer 2,
- - Abstimmung und Erzeugung von Befehlen.
- Es gibt die folgenden Abschnitte:
- - Während des Moduls "Behandlung" des virtuellen Ablaufs Nummer 1 (ChV#1):
- -- Erfassung der Daten für ChV#1 und Speichern in TAB- Acq#1,
- -- Ausführung der ChV#1 zugeordneten Behandlung ausgehend von TAB-Acq#1 und TAB-Ctxt-Old#1; die Ergebnisse dieser Behandlungen werden in den Tabellen TAB-Cde#1 und TAB- Ctxt-New#1 gespeichert; ein Befehl wird von der Zentraleinheit für die Aktuatoren erzeugt.
- - Während des Moduls "Behandlung" des virtuellen Ablaufs Nummer 2 (ChV#2)
- -- Erfassung der Daten für ChV#2 und Speichern in TAB- Acq#2;
- -- Ausführung der ChV#2 zugeordneten Behandlungen ausgehend von TAB-Acq#2 und TAB-Ctxt-Old#2; die Ergebnisse werden in TAB-Cde#2 und TAB-Ctxt-New#2 gespeichert, keine Ausgabe wird durch den Rechner bewirkt.
- - Während des Moduls "Abstimmung und Erzeugung von Befehlen", d. h. Vergleich der Tabellen und Ausführung der Aktionen betreffend die Tabellen:
- -- Vergleich Wort für Wort von TAB-Cde#1 und TAB-Cde#2,
- -- Vergleich Wort für Wort von TAB-Ctxt-New#1 und TAB-Ctxt- New#2,
- -- falls kein Fehler detektiert wird, Weiterverfolgen des Prozesses, wenn doch, Setzen auf "Standby", d. h. in Bereitschaft,
- -- Vertauschen der Kontexttabellen durch Indexänderung: TAB-Ctxt-New ersetzt TAB-Ctxt-Old und dient als Kontext für den nächsten Echtzeitzyklus,
- -- Realisierung der Befehle: Eine der zwei TAB-Cde wird sequenziell geleert, um die Forderungen der Befehle an die Befehlselektronik über den Datenbus zu übertragen,
- -- Initialisierung der zeitlich gemultiplexten Duplexparameter (zeitlich gemultiplexte Duplextabellen, zeitlich gemultiplexte Duplexverwaltungsvariablen).
- Damit ist in der Figur bei dem Echtzeitzyklus N + 1 der Anfangskontext der Aufgabe A TAB-Ctxt-Old(N), falls während dem Echtzeitzyklus N kein Fehler detektiert wurde, wobei diese Tabelle auf Grund des Vertauschens tatsächlich die Daten von TAB-Ctxt-New(N) enthält; falls doch, ist der Anfangskontext der Aufgabe A TAB-Ctxt-Old(N - 1), wobei diese Tabelle identisch zur Tabelle TAB-Ctxt-Old(N - 1) des Echtzeitzyklus N ist, da die Vertauschung der Kontexte im Falle eines Fehlers nicht stattfand.
- Während den Behandlungsmodulen wird ein Kontrollcode (Checksum) für jede der Tabellen, welche der Abstimmung unterliegen, berechnet; er nimmt bei der Verifikation der Lückenlosigkeit (der Integrität) der Abstimmung teil.
- Die Daten, über die es zumindest nötig ist, abzustimmen, sind die verschiedenen Ausgänge des Behandlungsmoduls, wie in Fig. 10 dargestellt, d. h.:
- - die von dem Rechner ausgegebenen Daten 65 (die Befehle), um nicht fehlerhafte Aktuatorbetätigungen zu erzeugen,
- - die der Wiederaufnahme dienenden Daten 66 (der Kontext: Wenn der Zyklus N fehlerbehaftet ist, werden die gesunden Daten N - 1 für die Wiederaufnahme wiederhergestellt), weil der Wiederherstellungskontext gesund sein muss.
- Demnach wird über alle Daten, welche das Behandlungsmodul verlassen, abgestimmt. Die mit einer Aufgabe verknüpfte Abstimmung wird am Ende dieser Aufgabe realisiert, wobei dies durch die Feinheit der Detektion/Korrektur definiert ist.
- Betreffend des Abstimmungsmoduls erlaubt das erfindungsgemäße Verfahren, die folgenden Eigenschaften zu erhalten:
- - Keine Notwendigkeit der Benutzung einer externen Komponente, welche gegenüber außerordentlichen Ereignissen tolerant ist, wenn man die Vorrichtungen der Sicherung der Abstimmung definieren kann; die Architektur ist damit vereinfacht: Die Abstimmung kann durch den Mikroprozessor selbst realisiert werden, voll softwaremäßig, mit Unterstützung einiger Hardwarevorrichtungen, welche im Übrigen bei dem erfindungsgemäßen Verfahren nötig sind.
- - Die softwaremäßige Abstimmung wird nicht dupliziert.
- Das erfindungsgemäße Verfahren basiert auf der besten Benutzung der Möglichkeiten der Detektion einer Duplexarchitektur, d. h. alle Arten von Fehlern können detektiert werden, und umfasst die Abfolgefehler, welche sowohl am schwierigsten zu detektieren sind als auch potenziell die schlimmsten Auswirkungen haben. Diese Fehler haben eine Auswirkung auf die Kohärenz der zeitlich gemultiplexten Duplextabellen, sie werden somit durch eine softwaremäßige Abstimmung detektiert unter der Bedingung, dass sie gesichert ist, d. h. dass sie nicht durch einen falsch funktionierenden Mikroprozessor ausgelöst werden kann. Man muss sich also der Integrität der Abstimmung durch adäquate Mechanismen versichern.
- Die Absicherung der Abstimmung basiert auf zwei zentralen Elementen:
- - Verifikation des gesunden Zustands des Mikroprozessors und dem des Zentraleinheitmoduls zu Beginn der Abstimmung,
- - Verifikation der Vollständigkeit der Abstimmung im Verlauf der Abstimmung mit dem Ziel, die Erzeugung der Befehle zu autorisieren.
- Die Struktur der Abstimmung wird als Funktion der Analyse der Möglichkeiten einer falschen Verzweigung eines Mikroprozessors, welcher Opfer eines "weichen" Absturzes ist, definiert, die Fig. 11A stellt die verschiedenen möglichen Abfolgefehler der Art "weicher Absturz" dar.
- Die "harten Abstürze" werden durch einen Wachhund behandelt, eine übliche Methode für den Fachmann.
- Die in der Fig. 11B dargestellte Struktur des Moduls der "softwaremäßigen Abstimmung und Erzeugung der Befehle", welche mit der Aufgabe K verknüpft ist, ist die Folgende:
- a) Verifikation des Zustands des sich am Beginn der Abstimmung zuschaltenden Mikroprozessors und des Zentraleinheitsmoduls: Verifizieren, dass der Stapelzeiger in dem autorisierten Bereich ist, Verifizieren der Register der Konfiguration des Mikroprozessors und der Zentraleinheitskarte,
- b) Hemmung von Zwischenspeichern wenn möglich, um die Wahrscheinlichkeit eines Fehlers während der Abstimmung zu minimieren,
- c) Verifikation einer Variablen Schlüssel-Abstimmung auf 0, dann Setzen auf 1 (d. h. Abstimmung); diese Variable ist ein Schlüssel, welcher es erlaubt, die richtige Abfolge des Mikroprozessors durch ein Softwareüberwachungsverfahren global zu überwachen,
- d) Aktivierung des Schlüssels der Vorrichtung zur Überwachung des Speicherzugriffs, welcher eine laufende Abstimmung anzeigt und den gleichzeitigen Zugriff auf zwei Speicherbereiche ChV#1 und ChV#2 autorisiert,
- e) Abstimmung über alle sich aus dem zeitlich gemultiplexten Duplex ergebenden Tabellen und Berechnung eines während den Abstimmungen berechneten zyklischen redundanten Codes CRC-V nach und nach bei der Abstimmung für jede Tabelle: TAB-Cde, TAB-Ctxt-New,
- f) Verifikation von Schlüssel-Abstimmung auf 1, dann Setzen auf 2 (d. h. Erzeugung der Befehle),
- g) Vergleich der CAC-V mit während den Behandlungen berechneten zyklischen redundanten Codes CAC-T,
- h) Hemmung des Schlüssels der Vorrichtung zur Überwachung des Speicherzugriffs, welcher eine laufende Abstimmung anzeigt,
- i) wenn das Ergebnis der Tests e, f und g korrekt ist, dann Öffnung eines zeitlichen Validierungsfensters des Buskopplers durch eine Vorrichtung des Fensters der zeitlichen Validierung,
- j) Reinitialisierung der Konfigurationsregister der Befehlskarten,
- k) Erzeugung der Befehle über den Buskoppler,
- l) Verifikation der Konfigurationsregister der Befehlskarten und Aktion in Abhängigkeit eines möglicherweise detektierten Fehlers (im Allgemeinen: nochmaliges Senden des Befehls), das Zeitfenster ist beendet oder wird sich beenden,
- m) Verifikation von Schlüssel-Abstimmung auf 2, dann Setzen auf 3 (d. h. Vertauschen und Initialisierung),
- n) Umschalten der Kontexttabellen der Aufgabe K, indem sein im Speicher gespeicherter Indexsatz "Old" und "New" invertiert wird,
- o) Initialisierung aller Tabellen der Aufgabe K außer den Tabellen "Old" mit den zu 1 komplementären Werten zwischen ChV#1 und ChV#2,
- p) Übertragung der Tabellen "Old" in die Tabellen "New" und Abstimmung, um diese Übertragung zu verifizieren; diese Übertragung ist notwendig, um das Weiterbestehen der Variablen sicherzustellen, welche nicht systematisch bei jeder Ausführung der Aufgabe aktualisiert werden,
- q) Verifikation von Schlüssel-Abstimmung auf 3, dann Setzen auf 0 (d. h. gehemmt),
- r) Validierung der Zwischenspeicher.
- Die Prozedur "Abstimmung/Erzeugung der Befehle/Vertauschen/- Initialisierung der zeitlich gemultiplexten Duplextabellen" ist teilbar, d. h., er sollte nicht präemptiv sein (einmal initialisiert sollte er sich beenden), Eine Unterbrechung kann im Gegenteil momentan dieses Modul unterbrechen.
- Ein dem Fachmann bekanntes Verfahren der softwaremäßigen Überwachung erlaubt es, der Software selbst die Überwachung der richtigen Abfolge der Befehle des Mikroprozessors anzuvertrauen. Diese Software ist in elementare lineare, d. h. zwischen zwei Verzweigungen enthaltene, Segmente unterteilt. Die linearen Segmente enthalten nicht selbst die Verzweigungsbefehle, wenn der Mikroprozessor einmal den ersten Befehl dieses Segments ausgeführt hat, sollte er zwangsweise bei der Ausführung des letzten Befehls desselben Segments ankommen.
- Man verifiziert, dass der Mikroprozessor richtig in ein lineares Segment genau an seinem Eingangspunkt eingetreten ist und nicht anderswo durch das Setzen eines Schlüssels am Eingangspunkt und seine Kontrolle am Austrittspunkt.
- Die Absicherung der Abstimmung benutzt u. a. dieses Verfahren der softwaremäßigen Überwachung; die Softwarevariable "Schlüssel-Abstimmung" ist dabei ein mit diesem Verfahren verknüpfter Schlüssel. Dieses Abstimmungsmodul ist in drei funktionelle Segmente (Abstimmung, Erzeugung der Befehle, Vertauschen und Initialisieren) aufgeteilt, wobei der Rest der Anwendungssoftware auf gewisse Weise ein viertes Segment repräsentiert:
- - am Anfang jedes Segments wird der Wert des Schlüssels des Verfahrens der softwaremäßigen Überwachung kontrolliert, um sicherzustellen, dass der Mikroprozessor das vorhergehende Segment korrekt exakt an seinem Austrittspunkt und nicht anderswo verlassen hat, man verifiziert damit, dass die Segmente eines nach dem anderen richtig aufeinanderfolgen,
- - dann, gleich nach dieser Kontrolle am Anfang des Segments, setzt man den Schlüssel des Verfahrens der softwaremäßigen Überwachung auf einen dem laufenden Segment entsprechenden Wert,
- - am Ende jedes Segments wird kontrolliert, ob der Mikroprozessor richtig exakt an seinem Eingangspunkt und nicht anderswo in das laufende Segment eingetreten ist.
- Die Speicheranordnungen werden klassisch gegen außerordentliche Ereignisse durch einen Korrekturcode (EDAC) und Aufgabe des Wiederlesens in der Grundaufgabe der gesamten Speicheranordnung, um schlafende Fehler zu detektieren und korrigieren, geschützt. Dies ist notwendig, da mehrfache Fehler in demselben Wort nicht mehr detektiert und/oder korrigiert werden können.
- Das erfindungsgemäße Verfahren stützt sich:
- - auf einen dank der Benutzung eines Korrekturcodes (EDAC) gegenüber außerordentlichen Ereignissen zuverlässigen Speicher,
- - auf einen dank der Benutzung einer Überwachung der Zugriffsrechte gegenüber falschen Beschreibungen folgend einem Fehler der Adresse, des Befehls, einem Absturz des Mikroprozessors etc. zuverlässigen Speicher.
- Die Vorrichtung zur Überwachung des Speicherzugriffs oder SAM ist eine aus den klassischen Einheiten zum Schutz des Speichers durch Blöcke abgeleitete Hardwarevorrichtung. Sie erlaubt es zu verifizieren, ob der Mikroprozessor, welcher auf eine abgegrenzte Speicherzone zugreifen will, hierfür das Zugriffsrecht hat.
- Die Vorrichtung zur Überwachung des Speicherzugriffs erlaubt es, einen großen Teil der Adressfehler zu detektieren. Sie erlaubt es insbesondere sehr schnell viele Fälle des Absturzes des Mikroprozessors zu detektieren. Tatsächlich kann ein Mikroprozessor nach einem "weichen" Absturz häufig den autorisierten Adressenbereich verlassen.
- Die Vorrichtung zur Überwachung des Speicherzugriffs weist bestimmte Eigenheiten gegenüber einer klassischen Einheit zum Schutz des Speicherns durch Blöcke auf:
- - die Größe der Segmente ist beliebig und abhängig von der Anwendung definiert,
- - die Autorisierung des Zugriffs wird vorgenommen, indem in den internen Registern der Vorrichtung zur Überwachung des Speicherzugriffs gespeicherte Schlüssel programmiert werden, die Definition und die Kombination dieser Schlüssel untereinander ist spezifisch für das erfindungsgemäße Verfahren.
- Die Liste der in der Vorrichtung zur Überwachung des Speicherzugriffs integrierten Schlüssel ist die folgende:
- - Schlüssel des Schreibzugriffsverbot für die den Code speichernde Zone, da ein Fehler im Code ein gemeinsamer Fehler für die zwei virtuellen Abläufe wäre und nicht durch die Abstimmung detektiert werden könnte. Dieser Schlüssel erlaubt die Autorisierung des Schreibens auf den Speicher nur während der Initialisierung des Rechners, wenn der Code im toten Speicher in den lebendigen Speicher übertragen wird.
- - Schlüssel, welcher anzeigt, welcher der laufende virtuelle Ablauf ist, ChV#1 oder ChV#2, und dem Mikroprozessor verbietet, auf die Speicherzone zuzugreifen, welche die Tabellen von ChV#2 enthält, während ChV#1 dabei ist, ausgeführt zu werden (und umgekehrt). Dieser Schlüssel erlaubt eine Undurchlässigkeitsmachung eines virtuellen Ablaufs für Fehler in Bezug auf den anderen.
- - Schlüssel, der eine laufende Abstimmung anzeigt: während er aktiv ist, autorisiert er ausnahmsweise den Mikroprozessor, gleichzeitig auf beide Zonen ChV#1 und ChV#2 zuzugreifen, um die Abstimmung realisieren zu können.
- - Schlüssel, welcher angibt, welches die laufende Aufgabe ist, und welcher den Mikroprozessor dazu autorisiert, nur auf die die Tabellen der gerade ausgeführten Softwareaufgabe enthaltenden Speicherzone zuzugreifen. Dieser Schlüssel erlaubt eine Undurchlässigmachung einer Aufgabe für Fehler in Bezug auf andere.
- - Schlüssel, der anzeigt, welche unter den Sätzen von zwei Tabellen "Old"/"New", welche beim Umschalten arbeiten, die Zonen "Old" und die Zonen "New" sind, wobei es verboten ist, auf die Zonen "Old" zu schreiben.
- Die Vorrichtung des Fensters der zeitlichen Validierung oder FVT ist eine ursprüngliche Hardwarevorrichtung. Sie wird zur Unterstützung eines klassischen Zeitzählers realisiert. Sie erlaubt es, die Fehler auf hardwaremäßiger Stufe zu begrenzen. Sie ist ausgelegt, um:
- - einem abgestürzten Mikroprozessor, welcher Code zur Verwaltung der Befehlselektronik ausführte, zu verbieten, einen Befehl zu erzeugen, ohne korrekt eine Zugriffsberechtigung quittiert zu haben,
- - einem Mikroprozessor, welcher einen fehlerhaften Befehl der Art "Schreiben auf eine Adresse, welche einem Befehl entspricht" zu verbieten, aus Versehen einen Befehl zu erzeugen.
- Die Vorrichtung des zeitlichen Validierungsfensters schützt demnach das System vor ungebetenen Befehlen mit den potenziell katastrophalen Konsequenzen, welche diese für die Anwendung haben könnten. Sie ist vorweg ausgestattet, um den Zugriff auf die Steuerungselektronik zu autorisieren: Es wird ein Fenster der Validierung des zeitlichen Zugriffs geöffnet.
- In dem Fall der oben erwähnten Fehler greift der Mikroprozessor nicht auf die Steuerungselektronik zu, indem die Schnittstellenprozedur in lückenloser Weise ausgeführt wird; als Folge wird der nicht autorisierte Zugriff sofort durch diese Vorrichtung detektiert, da der Mikroprozessor nicht vorweg das Fenster der zeitlichen Validierung geöffnet hat.
- Die Vorrichtung des Fensters der zeitlichen Validierung wird scharf gemacht, nachdem die Entscheidung getroffen worden ist, dass kein Fehler vorlag. Diese Entscheidung basiert zum einen Teil auf der Verifikation des gesunden Zustands des Mikroprozessors und der Zentraleinheit (am Anfang der Abstimmung, dann mit der Variable "Schlüssel-Abstimmung" und der Kontrolle der "Checksum" im Verlauf der Abstimmung) und zum anderen Teil auf dem Ergebnis der Abstimmung.
- Die Korrektur wird gemäß der folgenden Abfolge ausgeführt:
- - Wenn ein Fehler detektiert wird, wird der laufende Echtzeitzyklus (Nummer N) gehemmt, und kein Befehl wird erzeugt: Der Mikroprozessor schaltet in den Bereitschaftsmodus um, wartend auf den folgenden Echtzeitzyklus,
- - der folgende Echtzeitzyklus N + 1 wird nicht ausgehend vom Kontext N, der nicht sicher ist, ausgeführt, sondern vom vorhergehenden Kontext N - 1 und den Erfassungen des laufenden Zyklus N + 1.
- Man spielt den fehlerhaften Echtzeitzyklus nicht nach, man gibt sich einfach damit zufrieden, den laufenden Echtzeitzyklus zu hemmen und den Kontext des vorhergehenden Zyklus wiederherzustellen. Im Falle eines Fehlers erzeugt der Mikroprozessor keine Befehle des laufenden Echtzeitzyklus, da er in Bereitschaftsstellung versetzt wird: Alles geschieht, als ob es ein "Loch" eines Echtzeitzyklus gäbe.
- Die Korrektur erfordert keine spezifische Aktion: der Mikroprozessor wird nach einer Detektion in Bereitschaftszustand versetzt, er verfolgt nicht die Ausführung des Abstimmungsmoduls; dies bedingt natürlicherweise ein Nichtvertauschen der Kontexte "Old" und "New", welche am Ende des Abstimmungsmoduls vorgenommen wird.
- Unter der gegebenen vorübergehenden Eigenschaft der durch das Verfahren detektierten Fehler wird ein einzelner Wiederaufnahmeversuch durchgeführt. Wenn er unfruchtbar ist, ist demnach eine komplette Neuinitialisierung des Rechners notwendig.
- Die Folgesteuerung oder die Echtzeitexekutive, welche die Ordnung der Softwareaufgaben erlaubt, ist nicht direkt geschützt. Das Ziel ist, eine kommerzielle Exekutive benutzen zu können und sie daher nicht zu modifizieren, um Fehlertoleranzmechanismen in sie zu integrieren.
- Im Gegensatz ist die Ausführungszeit, die ihnen geopfert ist, in Bezug auf die Gesamtausführungszeit sehr klein. Als Folge sind die Ordnungsfehler der Aufgaben gemeinsame Arten für beide virtuelle Abläufe, nicht detektierbar, welche aber eine sehr reduzierte Auswirkung auf die Abdeckungsquote haben.
- Auf der anderen Seite erlauben die Begrenzungszonen, einen Teil der nicht detektierten Fehler zu blockieren, bevor ein fehlerhafter Befehl initialisiert wird, womit die Auswirkung der u. a. von dem Ordner herrührenden Fehler verringert wird.
- Varianten des erfindungsgemäßen Verfahrens sind möglich, insbesondere indem beispielsweise bestimmte seiner Eigenschaften vereinfacht werden.
- - Vereinfachung der Absicherungen der Abstimmung: Unterdrückung der Berechnung der Kontrollsumme "Checksum", wobei die Kontrolle durch das Verfahren der softwaremäßigen Überwachung als ausreichend angesehen wird.
- - Vereinfachung der Vorrichtung der Überwachung des Speicherzugriffs: Keine dichten Trennwände zwischen ChV#1 und ChV#2 (Unterdrückung des Schlüssels, welcher den laufenden virtuellen Ablauf anzeigt), da die Wahrscheinlichkeit von identischen Fehlern zwischen den zwei Ketten von vornherein sehr gering ist.
- Das erfindungsgemäße Verfahren wurde mit dem Ziel entwickelt, eine möglichst generische und möglichst umfassende Validierung zu realisieren und eine Messung der Fehlerabdeckungsquote zu bewirken, die man erreichen kann.
- Das erforschte Ziel war es, eine repräsentative hardwaremäßige und softwaremäßige Realisierung (Modell) einer typischen Weltraumanwendung bereitzustellen, mit dem Ziel, ein für alle Mal das Verfahren zu validieren. Ein Weltraumprojekt analysiert in der Tat in den vorbereitenden Phasen die verschiedenen benutzbaren Lösungen. Für neue Lösungen wird der Beweis der richtigen Funktionsweise und der Angepasstheit an die Bedürfnisse anhand eines Modells erforscht, was bemerkenswerte Verzögerungen verursacht, bevor sich die Projektmannschaft hinsichtlich seiner Benutzung aussprechen kann.
- Als Folge wird vor der Phase eine generische Validierung unternommen mit dem Ziel, jedem interessierten Projekt ein komplettes Dossier vorzulegen: Spezifikationen des Bedarfs, Spezifikationen der Realisierung, Dossiers der Realisierung, Ergebnisse der Validierung, Ergebnisse der Messung der Fehlerabdeckungsquote etc.
- Daher kann in der vorbereitenden Phase jedes Projekt ein komplettes Dossier der Entwicklung/Validierung dieses Verfahrens bereitstellen, ohne es nötig zu haben, noch ein Modell zu entwickeln. Als Folge kann es beispielsweise bei einer Revision schnell die Angemessenheit zwischen dem Verfahren und dem Bedarf des Projekts bestimmen mit dem Ziel, eine Entscheidung bezüglich seiner Auswahl zu treffen.
- Das Verfahren wird durch Einbringen von Fehlern validiert. Zwei Arten der Einbringung mit unterschiedlichen Zielen werden dabei realisiert.
- - Während einer ersten Phase wird eine softwaremäßige Einbringung von Fehlern realisiert. Bei der Messung, bei der diese Einbringung synchron ist, ist es möglich, die Fehlerszenarien nachzuspielen, wenn das Verfahren in einen Fehlerzustand gerät. Diese Phase erlaubt es demnach, das Verfahren zu validieren und es potenziell weiterzuentwickeln mit dem Ziel, seine Leistung der Detekion/Korrektur von Fehlern zu verbessern.
- - In einer zweiten Phase wird eine Einbringung von zufälligen Fehlern realisiert, indem die hauptsächlichen Komponenten der Realisierung einem Partikelstrahl (Schwerionen, Protonen) in einem Teilchenbeschleuniger ausgesetzt werden. Diese Phase, komplementär zu der vorhergehenden, erlaubt eine Validierung von Kopf bis Fuß, da das Spektrum der eingebrachten Fehler größer ist. Weiterhin erlaubt sie, nachdem die Verteilung der Fehler repräsentativ für eine reale Anwendungsumgebung ist, eine Feinmessung der Fehlerabdeckungsquote des Verfahrens.
- Die entwickelte hardwaremäßige Realisierung setzt sich im Wesentlichen aus drei Teilen zusammen: die Behandlungseinheit, die Erfassungseinheit und die Beobachtbarkeitseinheit.
- Die Behandlungseinheit wird um einen Mikroprozessor vom Typ Power PC 603e und seinem Speicher entwickelt sowie um eine programmierbare Komponente, welche alle Hardwaremechanismen des Verfahrens integriert.
- Die Erfassungseinheit erlaubt es, eine Vielzahl von Erfassungskanälen für den Mikroprozessor zu simulieren, wobei jeder dieser Kanäle besondere Eigenschaften hat: Auf Anforderung des Mikroprozessors bewirkte Erfassungen (Simulation von einfachen Sensoren), zyklisch bewirkte Erfassungen, welche der Mikroprozessor fliegend lesen soll (Simulation von intelligenten Sensoren wie einen stellaren Sensor oder ein GPS), Empfang von Telebefehlen etc. Diese Erfassungskanäle werden um Nanocontroller des Typs PIC 16C73A realisiert. Die Beobachtbarkeitseinheit integriert die Befehlsüberwachung der Realisierung (Laden der Software, Beobachtbarkeit des Mikroprozessors etc.) ebenso wie einen Kanal, welcher die Simulation der durch den Mikroprozessor bewirkten Aktuatorbetätigungen erlaubt. Die Ausgänge auf diesen Kanal werden systematisch überwacht, um zu verifizieren, dass keine falschen Aktuatorbetätigungen durch den Rechner erzeugt werden, obwohl er vorübergehenden Fehlern unterworfen ist.
- Um möglichst repräsentativ für Echtzeitanwendungen an Bord, im Weltraum oder auf anderen Gebieten zu sein, stellt die entwickelte Anwendungssoftware (d. h. die softwaremäßige Realisierung) die nachfolgenden Eigenschaften bereit:
- - Abfolge basierend auf einer zyklischen Folgesteuerung, welche schlussendlich durch eine kommerzielle Echtzeitexekutive ersetzt werden wird,
- - eine Mehrzahl von hauptsächlichen Anwendungsaufgaben, beispielsweise sechs, mit verschiedenen Prioritäten, bestimmte zyklisch, andere aperiodisch asynchron, wobei eine der Aufgaben das Herz des Steuerungsprogramms der Fluglage eines Weltraumteils ist,
- - die Anwendung basiert auf von einer Echtzeituhr getakteten Echtzeitzyklen, wobei die Anwendungsaufgaben verschiedene Periodizitäten aufweisen,
- - mehrere Anwendungsaufgaben, beispielsweise drei, sind präemptiv für die Aufgaben höherer Priorität,
- - die Software soll in Echtzeit auf asynchrone externe Ereignisse reagieren, welche von den Erfassungskanälen kommen.
- [1] « La transition vers les pratiques commerciales en composants électroniques: une voie d' innovation majeure » von P. Lay, F. Bezerra, P. Castillan, J-P. Fortea, R. Laulheret, und M. Barré, (Systèmes et Services à Petits Satellites, Symposium Symposium International, 24-28 Juni 1996, Annecy, France)
- [2] « L'environnement radiatif spatial » von J. C. Boudenot, (L'Onde électrique, mai-juin 1991, vol.71, nº3, p.62-68)
- [3] « Effet des radiations sur les composants électroniques » von R. Ecoffet, (Modul IV, §5.4, S. 493-513, des Kurses « Techniques et technologiques des véhicules spatiaux » des CNES, Cépaduès-Editions, 1998)
- [4] « Operation of commercially-based microcomputer technology in a space radiation environment » von J. N. Yelveroon, (AIAA Computing in Aerospace Conference, 9th, San Diego, CA, 19-21 Oktober, 1993, Seiten 192-201, Referenz. AIAA-93-4493-CP)
- [5] « The theory and practice of reliable system design », von D. P. Siewiorek, und R. S. Swarz, (Digital Press, ISBN 0-932376-13-4, 1982 Kapitel 3, S.118- 119)
- [6] « Design and analysis of fault tolerant digital systems » von B. W. Johnson, (Addison-Wesley, ISBN 0- 201-07570-9, Kapitel 3.61 S.34-136, 1988)
- [7] « Experimental evaluation of two concurrent error detection schemes » von M. A. Schuette, J. P. Shen, D. P. Siewiorek, und Y. X. Zhu (Fault Tolerant Computing Symposium, 1986, S.138-143)
- [8] « Fault recovery of triplicated software on the iAPX 432 » von X. Z. Yang, und G. York, (Distributed Computing System, Mai 1985, S.438-443).
- [9] « Transient fault tolerance in digital systems » von Janusz Sosnowski (IEEE Micro, vol. 14, Nº1, 1. Februar 1994 (1994/02/01), Seiten 24-35, XP000433306).
- [10] EP-A-0 133 004
- [11] « A survey of microprocessor architectures for memory management » von Furth B et al. (Computer, US, IEEE Computer Society, Long Beach., CA. US, Vol. 20, Nº3, Seiten 48-67 XP002034222 ISSN: 0018- 9162).
Claims (13)
1. Verfahren zur Behandlung eines vorübergehenden Fehlern unterworfenen
elektronischen Systems, dadurch gekennzeichnet, dass man innerhalb eines gegebenen
Echtzeitzyklus, das heißt innerhalb eines gegebenen Operationszyklus einer Softwareaufgabe,
die auf eine periodische und kontinuierliche Art abgearbeitet wird, zwei in einen
physikalische Ablauf eingebettete virtuelle Abläufe in zeitlich multiplext, wobei die
resultierenden Daten von jeder Ausführung eines virtuellen Ablaufs gespeichert werden,
damit über sie vor Verwendung abgestimmt wird, und dadurch, dass man im Fall der
Detektion eines Fehlers den laufenden Echtzeitzyklus hemmt und einen gesunden Kontext
nachlädt, um eine Wiederaufnahme, bestehend aus einer nominellen Ausführung des
folgenden Zyklus ausgehend vom nachgeladenen Kontext, durchzuführen.
2. Verfahren nach Anspruch 1, bei dem man drei Stufen von Fehlerbegrenzungszonen
benutzt: zeitlich, softwaremäßig und hardwaremäßig.
3. Verfahren nach Anspruch 1, bei dem man eine Speicheranordnung der
Zentraleinheit, welche vor außerordentlichen Ereignissen durch einen Fehlerdetektions- und
Fehlerkorrekturcode geschützt ist, benutzt.
4. Verfahren nach Anspruch 1, bei dem die Feinheit der gespeicherten
Detektion/Korrektur der Operationszyklus der Softwareaufgaben, die man auf dem Rechner
ausführt, ist.
5. Verfahren nach Anspruch 1, bei dem die regelmäßig aktivierte Funktion "Sicherung
des Kontextes" durch eine Indexänderung realisiert wird.
6. Verfahren nach Anspruch 1, bei dem die anlässlich einer Fehlerkorrektur aktivierte
Funktion "Wiederherstellung des Kontextes" durch die Tatsache realisiert ist, dass der Index,
welcher anzeigt, dass der Kontext des vorausgehenden Operationszyklus als gesund, d. h. frei
von Fehlern, beurteilt worden ist, nicht verändert wird, während er bei normalem Zeitablauf,
d. h. jedes Mal wenn kein Fehler detektiert wird, umgeschaltet wird, wobei dieses
"Nichtumschalten" inhärent mit der Hemmung des Operationszyklus, in dem der Fehler
detektiert wird, erfolgt.
7. Verfahren nach Anspruch 1, bei dem eine mit einem Hardwareverfahren zur
Kontrolle der Zugriffsrechte verbundene Speichersegmentierung benutzt wird.
8. Verfahren nach Anspruch 7, bei dem das Hardwareverfahren zur Kontrolle der
Zugriffsrechte mehrere Zugriffskonfigurationen erlaubt, wobei jede Konfiguration den Zugriff
auf ein oder mehrere nichtangrenzende Speichersegmente freigibt.
9. Verfahren nach Anspruch 7, bei dem das Hardwareverfahren zur Kontrolle der
Zugriffsrechte die Auswahl von Zugriffskombinationen gemäß logischer Kombinationen von
einem oder mehreren Schlüsseln erlaubt.
10. Verfahren nach Anspruch 1, bei dem man eine Tabellierung der Variablen/Daten,
über die abgestimmt werden muss, benutzt.
11. Verfahren nach Anspruch 1, bei dem man eine softwaremäßige Abstimmung
verwendet, deren Integrität durch softwaremäßige Kontrollen, die insbesondere einen
softwaremäßigen Überwachungsprozessor beinhalten, und hardwaremäßige Kontrollen
sichergestellt wird.
12. Verfahren nach Anspruch 1, bei dem man eine Kontrolle der Übertragung an die
Steuerungselektronik durch eine hardwaremäßige Vorrichtung, welche die Zugriffsrechte
verifiziert und die Gültigkeit von dieser Übertragung zeitlich beschränkt und auf diese Weise
eine Fehlerbegrenzungszone auf der hardwaremäßigen Stufe definiert, benutzt.
13. Verfahren nach einem der vorhergehenden Ansprüche, welches auf dem Gebiet der
Raumfahrt verwendet wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9812745A FR2784475B1 (fr) | 1998-10-12 | 1998-10-12 | Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires |
PCT/FR1999/002430 WO2000022529A1 (fr) | 1998-10-12 | 1999-10-11 | Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires et dispositif de surveillance des acces memoire |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69905272D1 DE69905272D1 (de) | 2003-03-13 |
DE69905272T2 true DE69905272T2 (de) | 2003-12-11 |
Family
ID=9531439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69905272T Expired - Lifetime DE69905272T2 (de) | 1998-10-12 | 1999-10-11 | Verfahren zur behandlung eines vorübergehenden fehlern unterworfenes elektronisches systems |
Country Status (7)
Country | Link |
---|---|
US (1) | US6839868B1 (de) |
EP (2) | EP1267265A3 (de) |
JP (2) | JP4671507B2 (de) |
DE (1) | DE69905272T2 (de) |
ES (1) | ES2192863T3 (de) |
FR (1) | FR2784475B1 (de) |
WO (1) | WO2000022529A1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004019371A1 (de) * | 2004-04-21 | 2005-11-17 | Siemens Ag | Verfahren zur Wiederherstellung eines Betriebszustands eines Systems sowie System und Datenträger |
DE102005023296A1 (de) * | 2005-05-12 | 2006-11-16 | Siemens Ag | Zugbeeinflussungssystem |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701480B1 (en) * | 2000-03-08 | 2004-03-02 | Rockwell Automation Technologies, Inc. | System and method for providing error check and correction in memory systems |
CN100489797C (zh) * | 2001-10-11 | 2009-05-20 | 阿尔特拉公司 | 可编程逻辑设备上的错误检测 |
JP3722057B2 (ja) * | 2001-11-30 | 2005-11-30 | ソニー株式会社 | データ記録再生装置及びデータ記録再生方法、並びにデジタルカメラ |
US20040019895A1 (en) * | 2002-07-29 | 2004-01-29 | Intel Corporation | Dynamic communication tuning apparatus, systems, and methods |
US20050193283A1 (en) * | 2003-12-30 | 2005-09-01 | Reinhardt Steven K. | Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support |
US7328377B1 (en) | 2004-01-27 | 2008-02-05 | Altera Corporation | Error correction for programmable logic integrated circuits |
US7166847B2 (en) * | 2004-06-30 | 2007-01-23 | Intel Corporation | System with response to cosmic ray detection |
DE102004037713A1 (de) * | 2004-08-04 | 2006-03-16 | Robert Bosch Gmbh | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms |
DE102004051991A1 (de) * | 2004-10-25 | 2006-04-27 | Robert Bosch Gmbh | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms |
US7272681B2 (en) * | 2005-08-05 | 2007-09-18 | Raytheon Company | System having parallel data processors which generate redundant effector date to detect errors |
JP2007133807A (ja) * | 2005-11-14 | 2007-05-31 | Hitachi Ltd | データ処理システム、ストレージ装置及び管理装置 |
US8024639B2 (en) | 2006-06-23 | 2011-09-20 | Schweitzer Engineering Laboratories, Inc. | Software and methods to detect and correct data structure |
US20080080114A1 (en) * | 2006-09-29 | 2008-04-03 | Schweitzer Engineering Laboratories, Inc. | Apparatus, systems and methods for reliably detecting faults within a power distribution system |
US7702971B2 (en) * | 2007-06-06 | 2010-04-20 | Dell Products L.P. | System and method for predictive failure detection |
US20110099439A1 (en) * | 2009-10-23 | 2011-04-28 | Infineon Technologies Ag | Automatic diverse software generation for use in high integrity systems |
US20110208948A1 (en) * | 2010-02-23 | 2011-08-25 | Infineon Technologies Ag | Reading to and writing from peripherals with temporally separated redundant processor execution |
US8516356B2 (en) | 2010-07-20 | 2013-08-20 | Infineon Technologies Ag | Real-time error detection by inverse processing |
US8441768B2 (en) | 2010-09-08 | 2013-05-14 | Schweitzer Engineering Laboratories Inc | Systems and methods for independent self-monitoring |
US9007731B2 (en) | 2012-03-26 | 2015-04-14 | Schweitzer Engineering Laboratories, Inc. | Leveraging inherent redundancy in a multifunction IED |
US8955157B2 (en) * | 2012-07-03 | 2015-02-10 | Honeywell International Inc. | Method and apparatus for differential power analysis protection |
US9270792B2 (en) * | 2012-11-21 | 2016-02-23 | Ubiquiti Networks, Inc. | Method and system for improving wireless link efficiency |
EP3279796B1 (de) * | 2016-08-02 | 2020-07-15 | NXP USA, Inc. | Ressourcenzugangsverwaltungskomponente und verfahren dafür |
IT201800007412A1 (it) * | 2018-07-23 | 2020-01-23 | Sistema elettronico modulare per la verifica della corretta esecuzione di operazioni eseguite dal sistema stesso | |
US11323362B2 (en) | 2020-08-07 | 2022-05-03 | Schweitzer Engineering Laboratories, Inc. | Resilience to single event upsets in software defined networks |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5329039A (en) * | 1976-08-30 | 1978-03-17 | Hitachi Ltd | Operation processing unit |
JPS5488748A (en) * | 1977-12-26 | 1979-07-14 | Hitachi Ltd | Error detection system |
JPS5561863A (en) * | 1978-11-01 | 1980-05-09 | Hitachi Ltd | Information processor |
US4371930A (en) * | 1980-06-03 | 1983-02-01 | Burroughs Corporation | Apparatus for detecting, correcting and logging single bit memory read errors |
DE3484156D1 (de) * | 1983-07-29 | 1991-04-04 | Westinghouse Brake & Signal | Sicherheitsbetriebspruefung einer gesteuerten anlage. |
US4683532A (en) * | 1984-12-03 | 1987-07-28 | Honeywell Inc. | Real-time software monitor and write protect controller |
JPS62293441A (ja) * | 1986-06-12 | 1987-12-21 | Nec Corp | デ−タ出力方式 |
US5434999A (en) * | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
JPH03100847A (ja) * | 1989-09-14 | 1991-04-25 | Fujitsu Ltd | メモリの書込み禁止回路 |
JPH03147159A (ja) * | 1989-11-02 | 1991-06-24 | Nitsuko Corp | メモリ保護方式 |
JPH04253244A (ja) * | 1991-01-29 | 1992-09-09 | Nec Corp | プログラム暴走時のメモリ内データ保護回路 |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
US5596739A (en) * | 1994-02-08 | 1997-01-21 | Meridian Semiconductor, Inc. | Method and apparatus for detecting memory segment violations in a microprocessor-based system |
US5590277A (en) * | 1994-06-22 | 1996-12-31 | Lucent Technologies Inc. | Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications |
JPH0822419A (ja) * | 1994-07-08 | 1996-01-23 | Mitsubishi Electric Corp | 誤書込防止方式 |
JPH0883191A (ja) * | 1994-09-13 | 1996-03-26 | Fujitsu Ltd | マイクロプロセッサの故障阻止方法とその装置 |
US5845331A (en) * | 1994-09-28 | 1998-12-01 | Massachusetts Institute Of Technology | Memory system including guarded pointers |
JPH08115230A (ja) * | 1994-10-18 | 1996-05-07 | Fujitsu Ltd | プロセッサの制御方法及びプログラム監視装置 |
US5485577A (en) * | 1994-12-16 | 1996-01-16 | General Instrument Corporation Of Delaware | Method and apparatus for incremental delivery of access rights |
JP3072048B2 (ja) * | 1996-03-19 | 2000-07-31 | 株式会社東芝 | 計算機システムおよび計算機システムのソフトウェア故障回復方法 |
JPH09259043A (ja) * | 1996-03-22 | 1997-10-03 | Sharp Corp | メモリ保護メカニズム |
US5963191A (en) * | 1997-03-25 | 1999-10-05 | International Business Machines Corporation | Method and system for denying graphical pointer access to a widget of a data processing system graphical user interface |
JP3085917B2 (ja) * | 1997-04-10 | 2000-09-11 | 三菱電機株式会社 | 耐ソフトウェア障害構成を有したデータ処理装置 |
JP3790323B2 (ja) * | 1997-04-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データ転送制御装置、マイクロコンピュータ及びデータ処理システム |
US6212635B1 (en) * | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
WO1999005599A1 (en) * | 1997-07-28 | 1999-02-04 | Intergraph Corporation | Apparatus and method for memory error detection and error reporting |
-
1998
- 1998-10-12 FR FR9812745A patent/FR2784475B1/fr not_active Expired - Fee Related
-
1999
- 1999-10-11 JP JP2000576368A patent/JP4671507B2/ja not_active Expired - Lifetime
- 1999-10-11 EP EP02076483A patent/EP1267265A3/de not_active Withdrawn
- 1999-10-11 EP EP99947525A patent/EP1121642B1/de not_active Expired - Lifetime
- 1999-10-11 ES ES99947525T patent/ES2192863T3/es not_active Expired - Lifetime
- 1999-10-11 WO PCT/FR1999/002430 patent/WO2000022529A1/fr active IP Right Grant
- 1999-10-11 DE DE69905272T patent/DE69905272T2/de not_active Expired - Lifetime
- 1999-10-11 US US09/807,077 patent/US6839868B1/en not_active Expired - Lifetime
-
2010
- 2010-03-15 JP JP2010057535A patent/JP5283650B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004019371A1 (de) * | 2004-04-21 | 2005-11-17 | Siemens Ag | Verfahren zur Wiederherstellung eines Betriebszustands eines Systems sowie System und Datenträger |
DE102004019371B4 (de) * | 2004-04-21 | 2006-04-13 | Siemens Ag | Verfahren zur Wiederherstellung eines Betriebszustands eines Systems |
DE102005023296A1 (de) * | 2005-05-12 | 2006-11-16 | Siemens Ag | Zugbeeinflussungssystem |
DE102005023296B4 (de) * | 2005-05-12 | 2007-07-12 | Siemens Ag | Zugbeeinflussungssystem |
Also Published As
Publication number | Publication date |
---|---|
EP1121642B1 (de) | 2003-02-05 |
JP2010134967A (ja) | 2010-06-17 |
EP1267265A2 (de) | 2002-12-18 |
EP1267265A3 (de) | 2005-08-17 |
DE69905272D1 (de) | 2003-03-13 |
US6839868B1 (en) | 2005-01-04 |
EP1121642A1 (de) | 2001-08-08 |
FR2784475B1 (fr) | 2000-12-29 |
JP2002527820A (ja) | 2002-08-27 |
FR2784475A1 (fr) | 2000-04-14 |
ES2192863T3 (es) | 2003-10-16 |
JP4671507B2 (ja) | 2011-04-20 |
WO2000022529A1 (fr) | 2000-04-20 |
JP5283650B2 (ja) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69905272T2 (de) | Verfahren zur behandlung eines vorübergehenden fehlern unterworfenes elektronisches systems | |
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 | |
Tai et al. | Performability enhancement of fault-tolerant software | |
EP4292025B1 (de) | Vorrichtungen und verfahren zur überwachung eines quantencomputers im betrieb | |
Label et al. | Single-event-effect mitigation from a system perspective | |
Hitt et al. | Fault-tolerant avionics | |
Li et al. | A Markov regenerative process model for phased mission systems under internal degradation and external shocks | |
EP0104635A2 (de) | Verfahren und Anordnung zum Prüfen eines digitalen Rechners | |
WO2016087652A1 (de) | Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist, und datenverarbeitungsanordnungen zum erzeugen von programm-code | |
EP1146423B1 (de) | Verarbeitungssystem mit Mehrheitsentscheidung | |
Le Lann | The ariane 5 flight 501 failure-a case study in system engineering for computing systems | |
DE102018120347A1 (de) | Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses | |
DE102011119585A1 (de) | Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen | |
Velazco et al. | Operation in space of artificial neural networks implemented by means of a dedicated architecture based on a transputer | |
DE60105311T2 (de) | Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system | |
DE60109644T2 (de) | Vorrichtung und verfahren zur erkennung und korrektur von speicherfehlern in einer elektronischen vorrichtung | |
Christmansson et al. | Dependable flight control system by data diversity and self-checking components | |
WO2022189214A1 (de) | Verfahren zur bestimmung der integrität einer datenverarbeitung, vorrichtung, datenverarbeitungsanlage und anlage | |
DE102022208087A1 (de) | Verfahren zum Überprüfen einer Verarbeitung von Nutzdaten | |
Passot et al. | The Myriade Micro-Satellite Computer and Software: A Reliable System Based on a Low Cost Computer | |
DE102019009146A1 (de) | Elektronische einrichtung und verfahren zum steuern der funktionen einer elektronischen einrichtung | |
Malhotra | Fault models of the UoSAT prototype parallel on-board computer | |
Kanekawa et al. | Fault‐tolerant computer system with stepwise negotiating voting | |
Adams et al. | Techniques for transient error recovery and avoidance in redundant processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |