-
Die
Erfindung betrifft eine Schaltungsanordnung zur Fehlerbehandlung in
Echtzeitsystemen, bestehend aus einem Prozessorsystem mit mindestens zwei
redundant arbeitenden, eigenfehlerdiagnosefähigen Recheneinheiten,
deren Ausgangssignale von einer Vergleichseinheit überwacht
werden, wobei die Recheneinheiten mit einer Datenleitung verbunden sind
sowie ein Verfahren zur Fehlerbehandlung in Echtzeitsystemen.
-
Komplexe
Halbleiterbausteine wie Mikrocontroller werden bei nahezu gleichem
Platzbedarf immer leistungsfähiger. Allerdings werden Sie
dadurch immer anfälliger für sogenannte transiente
Fehler. Transiente Fehler treten unverhofft durch die Einwirkung
von elektromagnetischer Strahlung aber auch durch kosmische oder
radioaktive Strahlungseinflüsse auf und sind daher nicht
vorhersehbar.
-
Insbesondere
beim Einsatz in Echtzeitsystemen, wie es beispielsweise Steuergeräte
für Kraftfahrzeuge darstellen, werden hohe Anforderungen hinsichtlich
Sicherheit und Zuverlässigkeit gestellt. Um die Systemsicherheit
beim Auftreten von transienten Fehlern in Komponenten wie in Speichern (RAM,
ROM bzw. Flash) oder im Rechnerkern auf das entsprechende Maß einzustellen,
werden an verschiedenen Stellen im Steuergerät Überwachungen implementiert.
-
Um
Fehler in Speicherbausteinen wie RAM oder Flash im Betrieb tolerieren
zu können, werden beispielsweise Error Correcting Codes
(ECC) eingesetzt.
-
Ein
bekanntes und häufig eingesetztes Prinzip, um Fehler im
Prozessor im Betrieb tolerieren zu können, ist die redundante
Auslegung von Prozessorsystemen.
-
Ein
solches System ist aus der
US-5
748 873 A1 bekannt, bei welchem im Normalbetrieb ein Programm
auf beiden Rechnern gleichzeitig gerechnet wird, was auch als „Duplex-Modus"
bezeichnet wird. Es findet ein Vergleich der Ausgangssignale der
Prozessoren statt. Wird eine Ungleichheit festgestellt, speichert
einer der Prozessoren seinen Zustand und stellt den Grund für
die Ungleichheit fest. Im Falle von transienten Fehlern wird die
Programmabarbeitung im „Duplex-Modus" fortgesetzt, indem
die Prozessoren den gespeicherten Zustand restaurieren und wieder
synchronisiert werden.
-
Im
Falle eines permanenten Fehlers in einem der Prozessoren wird dieser
Prozessor abgeschaltet und das System setzt den Prozess auf dem
fehlerfrei arbeitenden Prozessor fort.
-
Der
Erfindung liegt die Aufgabe zu Grunde, eine Schaltungsanordnung
und ein Verfahren zur Behandlung von Fehlern in Echtzeitsystemen
anzugeben, mit welcher eine Vielzahl von möglichen, innerhalb
von elektronischen Echtzeitsystemen auftretenden Hardware- und Softwarefehlern
behandeln werden können, ohne dass die Verfügbarkeit
des Systems eingeschränkt wird.
-
Der
Vorteil der Erfindung besteht darin, dass die einfach konstruierte
Hardwareschaltung extern an ein Mehrprozessorsystem oder ein Mehr-Core-System
angeschlossen werden kann. Dabei wird ein Weiterbetrieb des Systems
in solchen Situationen ermöglicht, in denen die Eigenfehlerdiagnose
der Prozessoren unzuverlässig ist.
-
Darüber
hinaus ist ein Weiterbetrieb auch in Situationen mit transienten
Fehlern möglich, in denen die Eigenfehlerdiagnose der Prozessoren
nicht identifizieren kann, in welchem Prozessor der Fehler aufgetreten
ist.
-
Die
einfache Überwachungsschaltung unterscheidet zwischen transienten
und permanenten Fehlern, wobei der Systembetrieb immer fortgeführt werden
kann. Eine Abschaltung des Gesamtsystems erfolgt lediglich bei der
Feststellung von permanenten Fehlern in allen Recheneinheiten.
-
Erfindungsgemäß führt
die Vergleichseinheit an eine Überwachungseinheit, wobei
die Überwachungseinheit über je eine Signalleitung
mit jeder Recheneinheit verbunden ist und jede die Eigenfehlerdiagnose
durchführende Recheneinheit ein Ergebnis der Eigenfehlerdiagnose
an die Überwachungseinheit meldet und die Überwachungseinheit
in Abhängigkeit von diesem Ergebnis die Signalleitungen
aktiviert.
-
Die
Schnittstelle der Überwachungseinheit zum Restsystem ist
dabei auf ein Minimum beschränkt und äußerst
schlank gehalten.
-
Vorteilhafterweise
ist die Vergleichseinheit über eine Fehlersignalleitung
mit der Überwachungseinheit verbunden, welche bei Erhalt
eines Fehlersignals einen Timer startet, wobei die Recheneinheiten während
einer vom Timer vorgegebenen Zeitdauer die Eigenfehlerdiagnose ausführen
und die Ergebnisse der Eigenfehlerdiagnose über die Datenleitung
an die Überwachungseinheit leiten.
-
Die
Verwendung eines Timers begrenzt die Zeit, in welcher die Eigenfehlerdiagnosemöglichkeit durchgeführt
werden kann. Wenn in der vom Timer vorgegebenen Zeit kein Ergebnis
vorliegt, wird auf einen Fehler in der Eigenfehlerdiagnose geschlossen.
-
Durch
Anbindung der Überwachungseinheit an die Datenleitung,
welche in jedem Echtzeitsystem vorhanden ist, kann zur Kommunikation
zwischen Recheneinheit und Überwachungseinheit auf zusätzliche
Datenleitungen zwischen den Recheneinheiten und der Überwachungseinheit
verzichtet werden. Als Datenleitung wird üblicherweise
ein Systembus oder eine „Crossbar" verwendet.
-
Um
permanente Fehler genau feststellen zu können, weist die Überwachungseinheit
einen durch einen Maximalwert begrenzten Fehlerzähler auf.
Der Fehlerzähler zählt jede Fehlermeldung. Ist
der Maximalwert durch die ständige Wiederholung des Fehlersignals
erreicht, wird davon ausgegangen, dass ein permanenter Fehler vorliegt.
-
Ist
eine Recheneinheit defekt, so soll die andere noch verbleibende
Recheneinheit darüber in Kenntnis gesetzt werden, dass
sie allein weiterarbeitet. Zu diesem Zweck ist die Überwachungseinheit über
eine Informationsleitung mit der Vergleichseinheit und den beiden
Recheneinheiten verbunden. Alternativ dazu ist es aber auch möglich,
dass die Überwachungseinheit über die Informationsleitung
nur mit der Vergleichseinheit verbunden ist, von welcher je eine
Informationsverteilungsleitung an jede Recheinheit führt.
Die Recheneinheiten werden hier von der Vergleichseinheit darüber
informiert, welche Recheneinheit weiter arbeitet.
-
Ist
die Signalleitung eine Schaltleitung, ist auf ein Signal der Überwachungseinheit über
die Schaltleitung die Recheneinheit abschaltbar. Hier wird mit einfachen
konstruktiven Mitteln die Überwachungseinheit an die Recheneinheit
angeschlossen, um das gewünschte Ergebnis zu erzielen.
-
Soll
bei einer sequentiellen Abarbeitung der Eigenfehlerdiagnosen durch
die Recheneinheiten nur eine Recheneinheit arbeiten, die andere
aber nicht abgeschaltet werden, so ist die Signalleitung eine Halteleitung,
wobei ein Signal der Überwachungseinheit über
diese Halteleitung die Recheneinheit anhält.
-
In
einer anderen Weiterbildung der Erfindung, bei welcher innerhalb
von elektronischen Echtzeitsystemen auftretende Hardware- und Softwarefehler
behandelt werden können, ohne dass die Verfügbarkeit
des Systems eingeschränkt wird, wird bei Feststellung eines
Fehlers in den Ausgangssignalen der Recheneinheiten ein Fehlersignal
ausgelöst, durch welches eine Laufzeit eines Timers und
die Eigenfehlerdiagnosen der Recheneinheiten gestartet werden, wobei
infolge der Ergebnisse der Eigenfehlerdiagnosen der Recheneinheiten
Signale zur Fehlerbehandlung ausgelöst werden.
-
Bei
dieser Vorgehensweise ist es unwichtig, ob es sich um Hardware-
oder Softwarefehler handelt. Eine detaillierte Spezifizierung der
einzelnen Fehler ist bei der vorgeschlagenen Fehlerbehandlung nicht
notwendig.
-
Um
den Zustand der Recheneinheiten vor der Fehlerbehandlung zu dokumentieren,
werden die beiden Recheneinheiten zur Eigenfehlerdiagnose entkoppelt,
wobei jede Recheneinheit vor der Eigenfehlerdiagnose ihren Zustand
abspeichert.
-
Bleiben
die Ergebnisse der Eigenfehlerdiagnose innerhalb der Laufzeit des
Timers aus, werden beide Recheneinheiten abgeschaltet. In diesem
Fall wird davon ausgegangen, dass beide Recheneinheiten fehlerbehaftet
sind oder die Eigendiagnose fehlerbehaftet ist.
-
Treffen
die Ergebnisse der Eigenfehlerdiagnosen der beiden Recheneinheiten
innerhalb der Laufzeit des Timers ein, werden diese plausibilisiert.
-
Bei
der Plausibilisierung werden verschiedene Fälle unterschieden.
Bei Sendung eines korrekten Ergebnisses der Eigenfehlerdiagnosen
sowohl durch die erste als auch durch die zweite Recheneinheit setzen
beide Recheneinheiten ihren Betriebsablauf fort. Bei diesem Fall
wird davon ausgegangen, dass beide Recheneinheiten fehlerfrei arbeiten.
-
Vor
der Fortsetzung des Betriebsablaufes werden die Recheneinheiten
synchronisiert, was für eine redundante Arbeitsweise notwendig
ist.
-
In
einer besonders einfachen Vorgehensweise startet die Synchronisierung
dann, wenn in einem vorgegebenen Zeitraum ein Abschalt- oder Haltesignal
ausbleibt.
-
In
einer Weiterbildung der Erfindung setzt bei Übersendung
eines korrekten Ergebnisses der Eigenfehlerdiagnose durch die erste
Recheneinheit und eines unkorrekten Ergebnisses oder keines Ergebnisses
durch die zweite Recheneinheit die erste Recheneinheit den Betriebsablauf
fort, während die zweite Recheneinheit abgeschaltet wird.
Somit wird sichergestellt, dass das System weiterarbeitet.
-
Bei Übermittlung
von unkorrekten Ergebnissen der Eigenfehlerdiagnose sowohl durch
die erste als auch durch die zweite Recheneinheit werden beide Recheneinheiten
abgeschaltet, da hier davon ausgegangen werden muss, dass beide
Recheneinheiten defekt oder die Eigenfehlerdiagnosen unkorrekt ausgeführt
sind.
-
In
einer Ausgestaltung wird nachdem durch die Vergleichseinheit ein
Fehler erkannt wurde und die Eigenfehlerdiagnosen beider Recheneinheiten keinen
Fehlererkannt haben, ein Fehlerzähler erhöht.
-
Bei
Erreichen eines Maximalwertes des Fehlerzählers werden
beide Recheneinheiten durch die Überwachungseinheit abgeschaltet,
da nun vom Vorliegen eines permanenten Fehlers ausgegangen wird.
-
Bei
Unterschreitung des Maximalwertes des Fehlerzählers setzen
beide Recheneinheiten ihren Betriebsablauf fort, da angenommen wird,
das nur ein einmaliger transienter Fehler aufgetreten ist, der durch
elektromagnetische Störungen oder kosmische bzw. radioaktive
Strahlung verursacht wurde.
-
Die
Erfindung lässt zahlreiche Ausführungsformen zu.
Eine davon soll anhand der in der Zeichnung dargestellten Figuren
näher erläutert werden.
-
Es
zeigt:
-
1:
Zwei-Prozessor-Einheit
-
2:
erstes Ausführungsbeispiel der erfindungsgemäßen
Schaltungsanordnung
-
3:
zweites Ausführungsbeispiel der erfindungsgemäßen
Schaltungsanordnung
-
4:
erstes Ausführungsbeispiel des erfindungsgemäßen
Verfahrens
-
5:
zweites Ausführungsbeispiel des erfindungsgemäßen
Verfahrens
-
6:
Arbeitsweise des Fehlerzählers
-
7:
Programmablauf des Verfahrens bei einem Steuergerät eines
Kraftfahrzeuges.
-
1 zeigt
zwei Recheneinheiten 1 und 2, die beide mit einer
Vergleichseinheit 3 und einem Datenbus 4 verbunden
sind. Im vorliegenden Beispiel verbindet der Datenbus die Recheneinheiten 1 und 2, einen
Hauptspeicher 5, einen Flashspeicher 6 und die
Peripherie 7 miteinander. Die Prozessoren 1 und 2 und
die Vergleichseinheit 3 sind in einer 2-Prozessor-Einheit 8 zusammengefasst.
-
In
einem Modus, dem sogenannten "Lockstep"-Modus, rechnen die beiden
Recheneinheiten 1 und 2 redundant. Ihre Ausgangssignale
werden an die Vergleichseinheit 3 weitergeleitet, die diese
Ausgangssignale einem Vergleich unterzieht. Im Normalbetrieb erhalten
beide Recheneinheiten 1 und 2 die benötigten
Daten und Anweisungen vom Prozessor 1 über den
Datenbus 4.
-
Jede
Recheneinheit 1 und 2 besitzt eine Eigenfehlerdiagnosemöglichkeit.
Die Recheneinheit 1 weist die Eigenfehlerdiagnosemöglichkeit 9 und
die Recheneinheit 2 die Eigenfehlerdiagnosemöglichkeit 10 auf.
Die Eigenfehlerdiagnosemöglichkeiten 9 und 10 liefern
nach Abschluss der Eigenfehlerdiagnose eine Signatur, die aussagt,
ob die Recheneinheit 1 bzw. die Recheneinheit 2 korrekt
arbeitet oder einen Fehler aufweist.
-
Die
beschriebene 2-Prozessor-Einheit 8 ist, wie aus 2 ersichtlich,
an eine Überwachungseinheit 11 angeschlossen.
Diese Überwachungseinheit 11 enthält
einen Timer 12 und einen Fehlerzähler 13. Der
Timer 12 und der Fehlerzähler 13 können
auch als externe Einheiten außerhalb der Überwachungseinheit 11 angeordnet
sein. Bei den weiteren Betrachtungen wird angenommen, dass der Timer 12 und
der Fehlerzähler 13 Bestandteile der Überwachungseinheit 11 sind.
-
Die Überwachungseinheit 11 ist
ebenfalls mit dem Datenbus 4 verbunden.
-
Eine
Fehleranzeigeleitung 14 verbindet die Vergleichseinheit 3 der
2-Prozessor-Einheit 8 mit der Überwachungseinrichtung 11.
Eine direkte Verbindung besteht zwischen der Überwachungseinheit 11 und
den Recheneinheiten 1 und 2 der 2-Prozessor-Einheit 8.
Dabei ist Recheneinheit 1 über die Leitung 15 und
Recheneinheit 2 über die Leitung 16 mit der Überwachungseinheit 11 verbunden. Über
diese Leitungen 15 und 16 werden im Bedarfsfall
zwei verschiedene Signale von der Überwachungseinheit 11 an
die Recheneinheiten 1 und 2 gesendet. Diese Signale
können entweder Abschaltsignale oder Haltesignale sein.
In einer anderen Ausführungsform können über
die Leitungen 15 und 16 sowohl Abschalt- als auch
Haltesignale gesendet werden.
-
Es
besteht auch die Möglichkeit, dass jedes Abschalt- und
Haltesignal über eine eigene Leitung von der Überwachungseinheit 11 an
die Recheneinheit 1 oder 2 übermittelt
werden.
-
In 2 besteht
eine weitere Verbindung über eine Leitung 17,
die direkt von der Überwachungseinheit 11 an die
Recheneinheiten 1 und 2 und die Vergleichseinheit 3 führt.
Mittels dieser Leitung 17 werden die Recheneinheiten 1 und 2 sowie die
Vergleichseinheit 3 von der Überwachungseinheit darüber
informiert, dass nur eine Recheneinheit 1 oder 2 arbeitet.
Es wird ein sogenanntes „Single-Mode"-Signal von der Überwachungseinheit 11 ausgesandt.
-
Eine
andere Möglichkeit zur Information der Recheneinheiten 1 und 2 und
der Vergleichseinheit 3, dass nur eine Recheneinheit arbeitet,
ist in 3 dargestellt. Dabei wird eine Leitung 18 von
der Überwachungseinheit 11 an die Vergleichseinheit 3 geleitet.
Die Vergleicheinheit 3 wiederum ist über die Leitung 18a mit
der Recheneinheit 1 und über die Leitung 18b mit
der Recheneinheit 2 verbunden, über welche sie
die „Single-Mode"-Signale von der Überwachungseinheit 11 an
die Recheneinheiten 1 und 2 weiterleitet.
-
Die Überwachungseinheit 11 wird
durch ein Fehlersignal aktiviert, welches die Vergleichseinheit 3 über
die Leitung 14 ausgibt, wenn sie bei dem Vergleich der
Ausgangssignale der beiden Recheneinheiten 1 und 2 festgestellt
hat, dass diese Ausgangssignale nicht übereinstimmen. Ist
die Überwachungseinheit 11 aktiviert, startet
sie den Timer 12. Dabei wartet die Überwachungseinheit 11 auf
die Ergebnisse der Eigenfehlerdiagnose von den Recheneinheiten 1 und 2,
welche diese über den Datenbus 4 senden.
-
Ausgehend
von den Ergebnissen der Eigenfehlerdiagnose der Recheneinheiten 1 und 2 kann
die Überwachungseinheit 11 folgende Aktivitäten
koordinieren. Beim Auslösen eines Signals über
die Leitung 15 bzw. die Leitung 16 wird die jeweilig
zugehörige Recheneinheit 1 oder 2 abgeschaltet.
Bei Abschaltung nur einer Recheneinheit 1 wird das „Single-Mode"-Signal über
Leitung 17 oder 18 ausgelöst, um die noch
arbeitende Recheneinheit 2 davon in Kenntnis zu setzen,
dass sie allein weiterarbeitet. Ist dieser Zustand erreicht, kann
die Vergleichseinheit 3 deaktiviert werden.
-
Eine
Systemabschaltung wird durch Abschalten beider Recheneinheiten 1 und 2 über
die Leitungen 15 und 16 erreicht.
-
4 und 5 illustrieren
beispielhaft den Ablauf der Fehlerbehandlung mit Hilfe der Überwachungseinheit 11.
In jeweils einer eigenen, aus mehreren Blöcken bestehenden
Spalte sind, von oben nach unten zeitlich geordnet, die Phasen im
Betrieb der beiden Recheneinheiten 1 und 2 und
der Überwachungseinheit 11 dargestellt. Die horizontalen Pfeile
stellen Signale dar, die zu einem entsprechenden Zeitpunkt gesendet
werden.
-
In 4 arbeiten
zunächst die Recheneinheit 1 im Block 20 und
die Recheneinheit 2 im Block 30 im Normalbetrieb.
Bei Erhalt eines Fehlersignals 40 von der Vergleichseinheit 3 startet
die Überwachungseinheit 11 im Block 50 den
internen Timer 12. Mit der Laufzeit des Timers 12 starten
die Recheneinheiten 1 und 2 ihre Eigenfehlerdiagnose.
Die Recheneinheit 1 führt ihre Eigenfehlerdiagnose
im Block 21 durch, während die Recheneinheit 2 die
Eigenfehlerdiagnose im Block 31 abarbeitet. Im Block 51 erwartet
die Überwachungseinheit 11 die Ergebnisse der
Eigenfehlerdiagnosen, welche ihr über den Datenbus 4 übersandt
werden. Die Recheneinheit 1 meldet mit dem Signal 41 innerhalb
der vorgegebenen Laufzeit des Timers 12 nach Durchführung
ihrer Eigenfehlerdiagnose ein korrektes Ergebnis an die Überwachungseinheit 11 und
versucht im Block 22 eine Synchronisation mit der Recheneinheit 2 einzuleiten.
Die Recheneinheit 2 sendet nach Durchführung ihrer
Eigenfehlerdiagnose mit dem Signal 42 ein falsches Ergebnis.
-
Die Überwachungseinheit 11 reagiert
im Block 52, wenn sie zwar zu verschiedenen Zeitpunkten
aber innerhalb der Laufzeit des Timers ein Signal von beiden Recheneinheiten 1 und 2 erhalten
hat.
-
Im
Block 53 wertet die Überwachungseinheit die Ergebnisse
der beiden Recheneinheiten 1 und 2 aus und stellt
fest, dass die Recheneinheit 1 ein korrektes Ergebnis und
die Recheneinheit 2 ein fehlerhaftes Ergebnis gemeldet
hat. Infolgedessen schaltet die Überwachungseinheit 11 mit
dem Signal 43 die Recheneinheit 2 ab. Der Synchronisationsversuch, welchen
die Recheneinheit 2 im Block 32 mit der Recheneinheit 1 starten
wollte, wird ebenfalls durch das Signal 43 abgebrochen.
-
Die
Recheneinheit 1 erhält von der Überwachungseinheit 11 mit
dem Signal 44 die Information, dass die Recheneinheit 2 nicht
mehr im Betrieb ist. Der Versuch der Synchronisation mit der Recheneinheit 2,
welchen die Recheneinheit 1 im Block 22 gestartet
hat, wird abgebrochen und die Recheneinheit 1 arbeitet
im Block 23 allein weiter.
-
Eine
vergleichbare Vorgehensweise würde erfolgen, wenn die Recheneinheit 2 anstelle
des fehlerhaften Ergebnisses gar kein Signal 42 gesendet hätte.
Die Überwachungseinheit 11 wartet im Block 51 die
Laufzeit des Timers 12 ab. Erhält sie in dieser Zeit
kein Signal 42 der Recheneinheit 2, so geht sie davon
aus, dass die Recheneinheit 2 defekt ist oder die Eigenfehlerdiagnose
nicht korrekt arbeitet. Auch in diesen Fall würde die Überwachungseinheit 11 an die
Recheneinheit 2 das Abschaltsignal 43 senden. Über
das Signal 44 wird auch in diesem Fall die Recheneinheit 1 darüber
informiert, dass das System im eingeschränkten Betrieb
ohne Recheneinheit 2 fortfährt.
-
In
einem anderen Beispiel, welches in 5 dargestellt
ist, arbeiten die Recheneinheiten 1 und 2 zunächst
wieder beide im Normalbetrieb. Recheneinheit 1 tut dies
im Block 24 und Recheneinheit 2 im Block 33.
Nach Erhalt des Fehlersignals 40 von der Vergleichseinheit 3 startet
die Überwachungseinheit 11 wieder den Timer 12 (Block 50)
und wartet auf die Ergebnisse der Eigenfehlerdiagnose von Recheneinheit 1 und
Recheneinheit 2 im Block 51 während der Laufzeit
des Timers 12. Beide Recheneinheiten 1 und 2 starten
gleichzeitig ihre Eigenfehlerdiagnose, Recheneinheit 1 im
Block 25 und die Recheneinheit 2 im Block 34.
Nach Abschluss seiner Eigenfehlerdiagnose sendet Recheneinheit 1 mit
dem Signal 41 ihr korrektes Ergebnis an die Vergleichseinheit 11.
Auch die Recheneinheit 2 meldet nach Durchführung
ihrer Eigenfehlerdiagnose im Block 34 mit dem Signal 45 ein
korrektes Ergebnis an die Überwachungseinheit 11.
Beide Signale treffen zwar zu unterschiedlichen Zeitpunkten, aber
innerhalb der Laufzeit des Timers bei der Überwachungseinheit 11 ein.
-
Im
Block 52 stellt die Überwachungseinheit 11 fest,
dass sie von beiden Recheneinheiten 1 und 2 ein
Ergebnis erhalten hat. Die Auswertung im Block 53 ergibt,
dass beide Ergebnisse korrekt sind. Infolge dessen sendet die Überwachungseinheit 11 kein
weiteres Signal. Die Recheneinheit 1 startet im Block 26 die
Synchronisation mit der Recheneinheit 2, während
die Recheneinheit 2 im Block 35 ebenfalls den Synchronisationsversuch
mit der Recheneinheit 1 startet. Da von der Überwachungseinheit 11 kein
weiteres Signal gesendet wird, ist die Synchronisation erfolgreich.
Anschließend arbeitet Recheneinheit 1 im Block 27 wieder
im Normalbetrieb, genauso wie Recheneinheit 2 im Block 36 wieder
im Normalbetrieb arbeitet.
-
Jede
Fehlermeldung der Vergleichseinheit 3 wird im internen
Fehlerzähler 13 registriert, was im Zusammenhang
mit 6 erläutert werden soll.
-
Der
Fehlerzähler 13 ist notwendig, da die Eigenfehlerdiagnosen
in der Regel keine hundertprozentige Erkennungsquote bei permanenten
Fehlern hat. Zwar liefert die Vergleichseinheit 3 ein Fehlersignal,
die sich anschließenden Eigenfehlerdiagnosen erkennen den
Fehler aber nicht. Dies hat zur Folge, dass beide Recheneinheiten 1 und 2 ein
korrektes Ergebnis an die Überwachungseinheit 11 melden. Die Überwachungseinheit 11 würde
fälschlicherweise davon ausgehen, dass ein transienter
Fehler vorliegt und beide Recheneinheiten 1 und 2 wieder
in den Normalbetrieb versetzen („Lockstep"-Modus). Da aber
ein permanenter Fehler vorliegt, würde die Vergleichseinheit 3 sofort
wieder einen Fehler melden, was zu einem Kreislauf führen
würde.
-
Der
interne Fehlerzähler 13 der Überwachungseinheit 11 ist
aktiv, wenn die Recheneinheiten 1 und 2 im Normalbetrieb
arbeiten und korrekte Ergebnisse der Eigenfehlerdiagnosen innerhalb
der Laufzeit des Timers gemeldet wurden (Block 60). Im Block 61 wird
abgefragt, ob die Vergleichseinheit 3 eine Fehlermeldung
ausgegeben hat. Wurde diese Fehlermeldung ausgegeben, wird im Block 62 abgefragt,
ob der Zählerstand n des Fehlerzählers einen definierten
maximalen Wert M erreicht hat. Ist dies der Fall, wird im Block 63 das
System abgeschaltet, da ein permanenter Fehler erkannt wurde. Ist
der Zählerstand n kleiner als der maximale Wert M, wird im
Block 64 der Zählerstand n um 1 erhöht
und anschließend zum Normalbetrieb im Block 60 zurückgekehrt.
-
Hat
die Prüfung im Block 61 ergeben, dass die Vergleichseinheit
keinen Fehler gemeldet hat, wird im Block 65 abgefragt,
ob der Zählerstand n größer Null ist.
Ist dies gegeben und ist im Normalbetrieb eine Zeit t1,
in welcher kein Fehler gemeldet wurde, größer
als eine Maximalzeit tMax, wird der Zählerstand n
um 1 erniedrigt und die Zeit t1 auf Null
gesetzt (Block 66). Anschließend wird wieder zum
Fehlerzählernormalbetrieb im Block 60 zurückgekehrt.
-
Wurde
im Block 65 festgestellt, dass der Zählerstand
n gleich Null ist und die Zeit t1 kleiner
als tMax wird sofort zum Normalbetrieb des
Fehlerzählers in den Block 60 zurückgekehrt.
-
An
Hand von 7 soll die Funktionsweise des
vorgestellten Verfahrens am Beispiel einer Master-Checker-Architektur
erläutert werden. Im Block 701 arbeiten die Recheneinheiten 1 und 2 im
Normalbetrieb, so dass keine Systemstörungen auftreten.
d. h. Recheneinheit 1 ist der „Master"-Prozessor,
während Recheneinheit 2 als „Checker"-Prozessor
arbeitet. Dabei kommuniziert nur die Recheneinheit 1 mit dem
Datenbus 4. Recheneinheit 2 erhält alle
erforderlichen Daten von der Recheneinheit 1.
-
Im
Block 702 erkennt die Vergleichseinheit 3 durch
Vergleich der von beiden Recheneinheiten 1 und 2 während
des Normalbetriebes gelieferten Ausgangssignale, dass diese nicht übereinstimmen
und meldet an die Überwachungseinheit 11 einen
Fehler, indem sie über die Fehlerleitung 14 ein „Compare_Error"-Signal
sendet. Die Überwachungseinheit 11 startet nun
im Block 703 ihren Timer 12 für einen
vorgegebenen Zeitraum T und erwartet in diesem Zeitraum die Ergebnisse
der Eigenfehlerdiagnose beider Recheneinheiten 1 und 2.
Hier wird die Möglichkeit vorgesehen, dass die Recheneinheiten 1 und 2 zur
Eigenfehlerdiagnose getrennt werden, andere Ausführungen
sind in Abhängigkeit von einer geeigneten Eigenfehlerdiagnose
möglich.
-
Somit
kann nun auch die Recheneinheit 2 Daten über den
Datenbus empfangen (Block 704). Es wird ein Interrupt-Request
gesendet. Beide Recheneinheiten 1 und 2 arbeiten
nun unabhängig voneinander und erhalten ab sofort ihre
Befehle über getrennte Busverbindungen. Sie können
dadurch unterschiedliche Befehlssequenzen ausführen.
-
Im
Block 705 führt der Prozessor 1 infolge des
Interrupt-Requestes ein Interrupt aus und startet eine Interrupt-Serviceroutine.
Gleichzeitig kann sein Zustand im Hauptspeicher 5 gespeichert
werden.
-
Danach
führt die Recheneinheit 1 im Block 706 ihre
Eigenfehlerdiagnose durch. Das Ergebnis dieser Eigenfehlerdiagnose
sendet die Recheneinheit 1 im Block 707 an die Überwachungseinheit 11, welche
im Block 703 auf dieses Ergebnis wartet.
-
Parallel
zur Recheneinheit 1 führt die Recheneinheit 2 eine
vergleichbare Vorgehensweise durch. Im Block 708 wird ein
Interrupt ausgeführt und ebenfalls eine Interrupt-Serviceroutine
gestartet. Darüber hinaus wird der aktuelle Zustand der
Recheneinheit 2 im Hauptspeicher abgespeichert. Daraufhin
wird im Block 709 die Eigenfehlerdiagnose ausgeführt,
wobei die Recheneinheit 2 das Ergebnis der Eigenfehlerdiagnose
an die Überwachungseinheit 11 sendet (Block 710),
welche im Block 703 auf das Ergebnis wartet.
-
Im
Block 711 versuchen die Recheneinheit 1 und die
Recheneinheit 2 sich zu synchronisieren. Ist dies erfolgreich
geschehen, wird wieder zum Normalbetrieb des Systems im Block 701 zurückgekehrt.
-
Nachdem
die Überwachungseinheit 11 im Block 703 die
Ergebnisse der Eigenfehlerdiagnose der Recheneinheiten 1 und 2 erhalten
hat, werden die von den beiden Recheneinheiten 1 und 2 gelieferten
Ergebnisse ausgewertet. Im Block 712 wird geprüft,
ob die Recheneinheit 1 in der vorgegebenen, durch den Timer
bestimmten Zeit T ein korrektes Ergebnis geliefert hat. Ist dies
der Fall, wird im Block 713 festgestellt, ob die Recheneinheit 2 in
der vorgegebenen Zeit T ein korrektes Ergebnis geliefert hat. Liegt
auch hier ein zufrieden stellendes Ergebnis vor, setzen beide Recheneinheiten 1 und 2 im
Block 714 ihren Betrieb fort. Eine Synchronisation der
beiden Recheneinheiten 1 und 2 im Block 711 wird
nun durchgeführt.
-
Wird
im Block 713 festgestellt, dass die Recheneinheit 2 in
der vorgegebenen Zeit T kein korrektes Ergebnis geliefert hat, so
wird die Recheneinheit 2 im Block 715 abgeschaltet.
D. h. die Überwachungseinheit 11 sendet zur Abschaltung
an die Recheneinheit 2 über die Leitung 16 ein
Abschaltsignal und an die Recheneinheit 1 ein „Single-Mode"-Signal über
die Leitung 17, mit welchem die Recheneinheit 1 darüber
informiert wird, dass sie nun allein weiterarbeitet. Im Block 716 setzt
die Recheneinheit 1 ihren Betrieb allein fort.
-
Wurde
im Block 712 festgestellt, dass die Recheneinheit 1 innerhalb
der vorgegebenen Zeit T kein korrektes Ergebnis an die Überwachungseinheit 11 geliefert
hat, wird im Block 717 abgefragt, ob die Recheneinheit 2 ein
korrektes Ergebnis in der gewünschten Zeit T geliefert
hat. Ist dies der Fall, wird die Recheneinheit 1 abgeschaltet
(Block 718), indem die Überwachungseinheit 11 über
die Leitung 15 ein Abschaltsignal an die Recheneinheit 1 sendet.
An die Recheneinheit 2 wird über die Leitung 17 das „Single-Mode"-Signal
gesendet. Die Recheneinheit 2 setzt im Block 719 seinen
Betrieb allein fort.
-
Ist
im Block 717 festgestellt worden, dass auch die Recheneinheit 2 kein
korrektes Ergebnis in der vorgegebenen Zeit T geliefert hat, wird
im Block 720 das gesamte System abgeschaltet, indem die Überwachungseinheit 11 ein
Abschaltsignal über die Leitung 15 an die Recheneinheit 1 und
ein Abschaltsignal über Leitung 16 an die Recheneinheit 2 sendet.
-
Bei
einer alternativen Ausführungsform wird die Eigenfehlerdiagnose
beider Recheneinheiten 1 und 2 nicht gleichzeitig,
sondern sequentiell nacheinander ausgeführt. In diesem
Fall muss die Überwachungseinheit die Recheneinheiten 1 und 2 entsprechend
anhalten können. Über ein Haltesignal, welches
die Überwachungseineinheit 11 über die
Leitung 16 an die Recheneinheit 2 sendet, wird
dieser angehalten. Die Recheneinheit 1 startet ihre Eigenfehlerdiagnose.
Nachdem die Recheneinheit 1 das Ergebnis ihrer Eigenfehlerdiagnose
in Form einer Signatur an die Überwachungseinheit 11 gemeldet
hat, wird über ein entsprechendes Haltesignal, welches über
die Leitung 15 von der Überwachungseinheit 11 der
Recheneinheit 1 zugeführt wird, diese angehalten
und die Recheneinheit 2 arbeitet weiter.
-
Jetzt
führt die Recheneinheit 2 ihre Eigenfehlerdiagnose
aus und übermittelt ihr Ergebnis ebenfalls in Form einer
Signatur an die Überwachungseinheit 11.
-
Nachdem
beide Recheneinheiten 1 und 2 ein korrektes Ergebnis
gemeldet haben, wird das Haltesignal deaktiviert und beide Recheneinheiten 1 und 2 können
im Normalbetrieb weiterarbeiten.
-
Im
Falle, dass eine Recheneinheit eine falsches Ergebnis oder innerhalb
der festgelegten Zeit kein Ergebnis geliefert hat, wird die entsprechende Recheneinheit
dauerhaft angehalten oder abgeschaltet.
-
Die
Eigenfehlerdiagnose kann in Hardware oder durch Software realisiert
sein. Ist die Eigenfehlerdiagnose in Hardware (Eigenfehlerdiagnosemöglichkeit 9 bzw. 10)
realisiert, dann wird die Programmabarbeitung während der
Eigenfehlerdiagnose der Recheneinheit angehalten. Dabei ist die
Eigenfehlerdiagnose in einem „Built-In Self Test" (BIST)
realisiert.
-
Besteht
die Eigenfehlerdiagnose aus Software, wird die Programmabarbeitung
während der Eigenfehlerdiagnose nicht abgeschaltet. Findet
die Eigenfehlerdiagnose in Software statt, besteht die Möglichkeit,
dass der fehlerhafte Prozessor bei der Eigenfehlerdiagnose die Eigenfehlerdiagnose
des anderen Prozessors durch fehlerhafte Speicher- und Peripheriezugriffe
stört. Um dies zu verhindern, kann die Eigenfehlerdiagnosemöglichkeit 9, 10 aus
um eine spezielle Hardware-Schaltung erweiterte Memory-Protection-Unit
bestehen. Die spezielle Hardware-Schaltung sorgt dafür,
dass eine vorab definierte Konfiguration der Memory-Protection-Unit
durch die Überwachungseinheit 11 aktiv gesetzt
wird, sobald das Fehlersignal der Vergleichseinheit auftritt. Diese
Konfiguration unterbindet einen zustandsverändernden Zugriff
einer Recheneinheit auf einen oder mehrere Speicherbereiche der
jeweils anderen Recheneinheit. Sowohl für sequentielle
als auch für parallele Eigenfehlerdiagnosen wird garantiert,
dass Berechnungen auf einer potentiell fehlerbehafteten Recheneinheit
nicht zur Verfälschung von im Speicher abgelegten Ergebnissen
der Eigenfehlerdiagnose der anderen Recheneinheit bzw. nicht zu
Verfälschungen von im Speicher abgelegten sonstigen Daten
des Systems führen können.
-
Das
Verfahren wurde nur für 2 Recheneinheiten beschrieben.
Es lässt sich aber auch ohne Probleme auf Systeme mit mehr
als zwei Recheneinheiten genauso erweitern wie auf Prozessorsysteme mit
mehreren Rechnerkernen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-