-
Stand der Technik
-
Die
Erfindung betrifft ein Verfahren zur Fehlerbehandlung eines Rechnersystems,
welches mindestens zwei Paare mit jeweils zwei Ausführungseinheiten
aufweist, wobei die zwei Ausführungseinheiten ein gleiches
Programm abarbeiten und die Ausgangssignale der Ausführungseinheiten
eines Paares miteinander verglichen werden, wobei beim Auftreten
einer Abweichung der Ausgangssignale der Ausführungseinheiten
eines Paares ein Fehlersignal ausgegeben wird sowie eine Vorrichtung
zur Durchführung des Verfahrens.
-
Ein
gattungsgemäßes Verfahren ist aus der
WO 2007/017381 A1 bekannt.
Ein Multiprozessorsystem besitzt vier Ausführungseinheiten,
wobei immer zwei Ausführungseinheiten gleiche Aufgaben und
Prozesse abarbeiten. Mittels einer Vergleichseinheit werden die
von jeweils zwei Ausführungseinheiten, die dieselben Programme
abarbeiten, ausgegebenen Ausgangssignale verglichen und bei einer Abweichung
dieser beiden Ausgangssignale voneinander ein Fehlersignal ausgegeben.
Dieser als Locksteg Modus bezeichnete Fall kommt hauptsächlich
in Anwendungen mit hohen Fehlererkennungsanforderungen, z. B. sicherheitsrelevanten
Anwendungen zum Einsatz.
-
Solche
Mehrrechnerkonzepte werden in der Flugzeug-, der Automobil und der
Automatisierungstechnik verwendet, um den erhöhten Anforderungen an
Sicherheit und Zuverlässigkeit sowie auch Echtzeitanforderungen
gerecht zu werden. Sie besitzen eine gute Fehlererkennung, wobei
bei einer Fehlererkennung das zu überwachende System abgeschaltet wird.
-
Offenbarung der Erfindung
-
Der
Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren und eine
Vorrichtung zur Fehlerbehandlung eines Rechnersystems anzugeben, bei
welchen sowohl die Sicherheit und als auch die Verfügbarkeit
des Rechnersystems gleichzeitig aufrechterhalten werden.
-
Ein
Verfahren zur Fehlererkennung mit den Merkmalen des Patentanspruchs
1 hat den Vorteil, dass auf eine Komplettabschaltung des Rechnersystems
verzichtet werden kann und trotzdem ein sicherer Betrieb des Rechnersystems
möglich ist. Dadurch, dass nach dem Auftreten des Fehlersignals das
zum Zeitpunkt der Abweichung auf dem fehlerhaft arbeitenden Paar
von Ausführungseinheiten laufende, eine Funktion bearbeitenden
Programmteil des Programms auf dem fehlerfrei arbeitenden Paar von
Ausführungseinheiten weiter bearbeitet wird, werden Sicherheit
und Verfügbarkeit des Systems gleichzeitig aufrechterhalten.
Besonders in Notfallsituation ist somit eine kurzfristige Fehlerbehandlung möglich.
-
Vorteilhafterweise
wird das eine Funktion bearbeitende Programmteil auf dem fehlerfrei
arbeitenden Paar von Ausführungseinheiten neu gestartet. Durch
diesen Neustart wird sichergestellt, dass die zur Ausführung
anstehende Funktion, wie beispielsweise eine Regelung in einer sicherheitskritischen Anwendung
auch wirklich ausgeführt wird.
-
Alternativ
wird der eine Funktion bearbeitende Programmteil auf dem fehlerfrei
arbeitenden Paar von Ausführungseinheiten ab der Position
weiter bearbeitet, wo es bei dem fehlerhaft arbeitenden Paar von
Ausführungseinheiten unterbrochen wurde, wodurch eine besonders
schnelle Weiterführung des Programms realisiert wird. Die
vorhandene Rechnerzeit wird dabei optimal ausgenutzt.
-
In
einer Ausgestaltung sichert das eine Funktion bearbeitende Programmteil
bei Auftreten des Fehlers seinen aktuellen Zustand. Somit ist gewährleistet,
dass das Programmteil genau an der Stelle in seiner Abarbeitung
auf dem fehlerfrei arbeitenden Paar fortgesetzt wird, wo im fehlerhaft
arbeitenden Paar der Fehlerfall detektiert wurde. In einer Weiterbildung
erhält das fehlerfrei arbeitende Paar von Ausführungseinheiten
eine Information darüber, dass in dem fehlerhaft arbeitenden
Paar von Ausführungseinheiten ein Fehler aufgetreten ist.
Mittels dieser Information schal tet das fehlerfrei arbeitende Paar
in ein Notfallprogramm um, um kurzfristig reagieren und sicherheitsrelevante
Programmteile des fehlerhaft arbeitenden Paares übernehmen
zu können.
-
Vorteilhafterweise
wird dem fehlerfrei arbeitenden Paar von Ausführungseinheiten
als Information ein Interrupt zugeleitet. Dies ist die schnellste
und komfortabelste Methode der Information, da das fehlerfrei arbeitende
Paar über die Existenz des Interrupts gleichzeitig den
Status des Vergleichs der Ausgangssignale der Ausführungseinheiten
des fehlerhaft arbeitenden Paares mitgeteilt bekommt.
-
Alternativ überwacht
das fehlerfrei arbeitende Paar das andere Paar von Ausführungseinheiten kontinuierlich
auf Auftreten eines Fehlersignals. Zu diesem Zweck enthält
eine, dem fehlerhaft arbeitenden Paar zugeordnete Vergleichseinheit
zur Anzeige des Fehlers ein Statusbit, welches die gleiche Information
enthält, wie das Fehlersignal. Das Statusbit wird dabei
von dem fehlerfrei arbeitenden Paar gelesen. Somit ist das fehlerfrei
arbeitende Paar immer unmittelbar über das Vorliegen eines
Fehlerfalles informiert und kann schnell darauf reagieren.
-
In
einer Weiterbildung verfügen beide Paare von Ausführungseinheiten über
einen gemeinsamen Prioritätsraum, in welchem alle, das
Programm bildenden, eine Funktion bearbeitenden Programmteile gewichtet
sind. Dies hat den Vorteil, dass im Rahmen des Kontext des gesamten
Rechnersystems darüber entschieden wird, zu welchem Zeitpunkt
das laufende, eine Funktion bearbeitende Programmteil im fehlerfrei
arbeitenden Paar von Ausführungseinheiten zur Abarbeitung
gelangt. Auf Grund des gemeinsamen Prioritätsraumes besteht
auch die Möglichkeit zu entscheiden, ob und wann weitere,
eine Funktion bearbeitende Programmteile, die zur Bearbeitung auf dem
fehlerhaft arbeitenden Paar von Ausführungseinheiten anstanden,
auf dem fehlerfrei arbeitenden Paar von Ausführungseinheiten
zur Abarbeitung kommen.
-
In
einer Ausgestaltung erfolgt auf dem fehlerfrei arbeitenden Paar
von Ausführungseinheiten nach der Information über
das Auftreten des Fehlersignales in dem fehlerhaft arbeitenden Paar
von Ausführungseinheiten eine Neupriorisierung der abzuarbeitenden,
eine Funktion bearbeitenden Programmteile. Somit steht unmittelbar
nach dem bekannt werden des Fehlerfalles die Reihenfolge der auf
dem fehlerfrei arbeitenden Paar von Ausführungseinheiten
zu bearbeitenden, eine Funktion bearbeitenden Programmteilen fest,
wodurch die Abarbeitung des Programms zügig weiter erfolgen
kann und die Sicherheit der durch das Rechnersystem betriebenen Anwendung
lückenlos gewährleistet wird.
-
Vorteilhafterweise
verfügt jede Ausführungseinheit des fehlerfrei
arbeitenden Paares über freie Rechenzeit, in welcher das
laufende, eine Funktion bearbeitenden Programmteil abgearbeitet
wird. Dadurch können die von dem fehlerhaft arbeitenden Paar übernommenen
Programmteile sofort ausgeführt werden.
-
Alternativ
wird dem laufenden, eine Funktion bearbeitenden Programmteil die
Rechenzeit eines anderen, eine Funktion beschreibenden Programmteils
zugeordnet, welches zur Bearbeitung auf dem fehlerfrei arbeitenden
Paar von Ausführungseinheiten vorgesehen ist. Bei fehlender
Rechenzeit wird die Rechenzeit vorteilhafterweise von einem Programmteil
mit minderer Priorität übernommen, dessen Abarbeitung
nur eine untergeordnete Rolle spielt und der nicht zwingend bearbeitet
werden muss.
-
In
einer anderen Alternative wird das laufende, eine Funktion bearbeitende
Programmteil auf seine wesentlichen Abläufe beschränkt.
Durch das Weglassen von Einzelaufgaben in dem eine Funktion bearbeitenden
Programmteil wird bei Wahrung der Sicherheitsanforderungen das Programmteil
verkürzt, wodurch die Anforderung an Rechenzeit reduziert
wird. Ein solches Weglassen von Einzelaufgaben in den eine Funktion
bearbeitenden Programmteilen führt andererseits aber auch
zu einer Bereitstellung von zusätzlicher Rechenzeit, die
genutzt werden kann, um das laufende, von dem fehlerhaft arbeitenden
Paar zu übernehmenden Programmteil vollständig
abarbeiten zu können. Dies ist besonders notwendig bei
Programmteilen mit einer hohen Priorität und Sicherheitsrelevanz.
-
In
einer Ausgestaltung wird das fehlerhaft arbeitende Paar von Ausführungseinheiten
in der Abarbeitung des Programms unterbrochen. Damit wird sichergestellt,
dass das fehlerfrei arbeitende Paar durch das fehlerhaft arbeitende
Paar unbeeinflusst bleibt. Am einfachsten ist dies zu realisieren,
wenn die Ausführungseinheiten des fehlerhaft arbeitenden Paares
angehalten werden oder deren Taktversorgung abgestellt wird.
-
In
einer Weiterbildung läuft auf dem fehlerhaft arbeitende
Paar von Ausführungseinheiten ein Fehlerbehandlungsprogramm
ab. Mittels einem solchen Prüfmodus wird festgestellt,
ob überhaupt ein permanenter Fehler vorliegt oder ob es
sich bei dem detektierten Fehler um einen einmaligen transienten Fehler
handelt, welcher durch EMV-Einflüsse, radioaktive oder
kosmische Einflüsse eine kurzfristige Störung
des Programmablaufes verursacht hat. Ein transienter Fehler wird
sich nicht wiederholen, weshalb anschließend beide Paare
von Ausführungseinheiten fehlerfrei weiter arbeiten können.
-
Ob
ein permanenter oder ein transienter Fehler vorliegt, wird einfach
mittels eines Fehlerentdeckungsprogrammes festgestellt. Dieses Fehlerentdeckungsprogramm
ist vorteilhafterweise als built-in self test (BIST) ausgeführt
und kann sowohl in Software als auch in Hardware realisiert werden.
-
Vorteilhafterweise
werden das fehlerhaft arbeitende Paar und das fehlerfrei arbeitende
Paar von einem Gesamtbetriebssystem koordiniert, welches die, die
jeweils eine Funktion bearbeitenden Programmteile des Programms
auf die mindestens zwei Paare von Ausführungseinheiten
verteilt. Das Gesamtbetriebssystem verteilt die, eine Funktion bearbeitenden
Programmteile auf die beiden Paare von Ausführungseinheiten
gemäß einer Ressourcenstrategie und vergibt somit
Rechnerzeit für die Programmteile des Programms.
-
Die
Verwendung eines solchen Gesamtbetriebssystems für beide
Paare von Ausführungseinheiten ist sehr vorteilhaft, wenn
im Fehlerfall Programmteile von dem fehlerhaft arbeitenden Paar
auf das fehlerfrei arbeitende Paar umgeleitet werden müssen,
da das Gesamtbetriebssystem über den Zustand des fehlerhaft
arbeitenden Paares informiert wird und das fehlerhaft arbeitende
Paar von Ausführungseinheiten nicht mehr mit einem eine
Funktion bearbeitenden Programmteil beaufschlagt wird.
-
In
einer Ausgestaltung beaufschlagt das Gesamtbetriebssystem nur noch
mindestens ein fehlerfrei arbeitendes Paar von Ausführungseinheiten
mit den, eine Funktion bearbeitenden Programmteilen des Programms.
-
In
einer Weiterbildung beaufschlagt das Gesamtbetriebssystem das fehlerfrei
arbeitende Paar von Ausführungseinheiten mit der Abarbeitung
von den, eine Funktion bearbeitenden Programmteilen des fehlerhaft
arbeitenden Paares von Ausführungseinheiten. Das Gesamtbetriebssystem
entscheidet somit darüber, welche Ausführungseinheiten
welchen Paares bestimmte Programmteile des Programms bearbeiten.
Somit lässt sich mit Hilfe des Gesamtbetriebssystems im
Fehlerfall eine besonders schnelle Notfallvariante bei der Abarbeitung
der Programmteile mit hoher Priorität realisieren, da die Sicherheitsaspekte
des Gesamtsystems immer im Vordergrund stehen.
-
Vorteilhafterweise
schaltet das Gesamtbetriebssystem das Rechnersystem bei einer Fehlerakkumulation
ab. Obwohl beim Auftreten eines Fehlers keine Abschaltung des Rechnersystems
erfolgen sollte, werden Möglichkeiten vorgesehen, eine
Systemabschaltung zu erzwingen, da bei einem mehrfachen Auftreten
von Fehlern von einem gravierenden Fehlerfall ausgegangen werden
muss, welcher letztendlich auch die Sicherheit des Gesamtsystems
in Frage stellt.
-
In
einer Ausgestaltung wird das Rechnersystem nach Abschluss einer
Regelung abgeschaltet. Damit wird sichergestellt, dass ein aktuell
zu bearbeitender Programmteil abschließend bearbeitet wurde, wodurch
Systemeinbrüche vermieden werden und die Sicherheit der
Anwendung gewährleistet wird.
-
Alternativ
wird das Rechnersystem nach einem vorgegebenen Zeitraum abgeschaltet.
Auch diese Maßnahme zielt darauf ab, dass bereits laufende Programmteile
vor dem Abschalten des Rechnersystems fertig gerechnet werden können.
-
In
einer anderen Alternative wird das Rechnersystem eines Kraftfahrzeuges
abgeschaltet, nachdem das Fahrzeug eine vorgegebene Distanz gefahren
ist. Somit wird dem Fahrer des Kraftfahrzeuges die Möglichkeit
gegeben, nach Feststellung des Fehlerfalles eine Werkstatt aufzusuchen,
um den Fehler beheben zu lassen.
-
In
einer Ausgestaltung wird das Rechnersystem abgeschaltet, wenn eine
bestimmte Anzahl von Systeminitialisierungen durchgeführt
wurde. Während der Systeminitialisierung werden Prüfroutinen aufgerufen,
die das als fehlerhaft arbeitend eingeschätzte Paar auf
seine Funktionsfähigkeit überprüfen.
Wird die fehlerhafte Arbeitsweise der Ausführungseinheiten
des Paares durch diese Prüf routinen bestätigt,
wird die Systeminitialisierung abgebrochen. Passiert dies mehrfach
hintereinander, muss davon ausgegangen werden, dass ein schwerwiegender
Fehler vorliegt, weshalb das gesamte Rechnersystem abgeschaltet
wird.
-
Im
einfachsten Fall werden alle auftretenden Fehler gezählt,
wobei das Rechnersystem abgeschaltet wird, wenn eine vorbestimmte
Anzahl von Fehlern detektiert wurde.
-
In
einer anderen Weiterbildung der Erfindung weist bei einer Vorrichtung
zum Betreiben eines Rechnersystems, das Rechnersystem mindestens zwei
Paare mit jeweils zwei Ausführungseinheiten auf, wobei
die zwei Ausführungseinheiten jedes Paares ein gleiches
Programm abarbeiten und die Ausgangssignale jeder Ausführungseinheit
eines Paares durch je eine Vergleichseinheit miteinander verglichen
werden, wobei beim Auftreten einer Abweichung der Ausgangssignale
der Ausführungseinheiten eines Paares voneinander von der
Vergleichseinheit ein Fehlersignal ausgegeben wird. Um die Sicherheit
und die Verfügbarkeit des Rechnersystems gleichzeitig aufrecht
zu erhalten, sind Mittel vorhanden, welche ermöglichen,
dass nach dem Auftreten des Fehlersignals das zum Zeitpunkt der
Abweichung auf dem fehlerhaft arbeitenden Paar von Ausführungseinheiten
laufende, eine Funktion bearbeitende Programmteil des Programms
auf dem fehlerfrei arbeitenden Paar von Ausführungseinheiten
weiter bearbeitet wird. Das hat den Vorteil, dass auf eine Komplettabschaltung
des Rechnersystems verzichtet werden kann und trotzdem ein sicherer
Betrieb des Rechnersystems möglich ist. Besonders in Notfallsituationen
hat dies eine schnelle Fehlerbehandlung zur Folge.
-
Vorteilhafterweise
weist die Vergleichseinheit des fehlerhaft arbeitenden Paares von
Ausführungseinheiten eine Statusanzeige auf, welche bei Vorliegen
eines Fehlers geändert wird. Diese Statusanzeige kann von
allen Bestandteilen des Rechnersystems gelesen werden, wodurch die
Information über einen möglichen Fehlerfall im
Gesamtsystem verbreitet wird und die Bestandteile des Rechnersystems
sich in ihrer Funktionsweise darauf einstellen können.
-
In
einer Ausgestaltung ist die Statusanzeige der dem fehlerhaft arbeitenden
Paar von Ausführungseinheiten zugeordneten Vergleichseinheit durch
das fehler frei arbeitende Paar von Ausführungseinheiten
lesbar. Somit ist eine direkte Information zwischen den beiden Paaren
im Fehlerfall gegeben.
-
Vorteilhafterweise
gibt die dem fehlerhaft arbeitenden Paar von Ausführungseinheiten
zugeordnete Vergleichseinheit bei Feststellung eines Fehlers Interrupts
aus, welche von den Ausführungseinheiten des fehlerfrei
arbeitenden Paares gleichzeitig empfangen werden. Durch diese direkte
Information der Ausführungseinheiten des fehlerfrei arbeitenden Paares
können die beiden Ausführungseinheiten ohne Verzögerung
in einen Fehlermodus schalten, in welchem das laufende, eine Funktion
bearbeitende Programmteil des fehlerhaft arbeitenden Paares übernommen
wird.
-
In
einer Weiterbildung ist eine Fehlersignalisierungseinheit mit den
Vergleichseinheiten der beiden Paare von Ausführungseinheiten
und mit jeder Ausführungseinheit der Paare verbunden. Mit
der Fehlersignalisierungseinheit übernimmt eine einzige Einheit
die gesamte Überwachung von Fehlersignalen sowie die Information
des ganzen Rechnersystems, wobei auf Verbindungen zwischen den einzelnen
Elementen des Rechnersystems verzichtet werden kann, was eine besonders
kostengünstige Variante darstellt.
-
In
einer Ausgestaltung ist die, Informationen über Fehlersignale
sammelnde Fehlersignalisierungseinheit über eine Kommunikationsleitung
mit den Vergleichseinheiten verbunden, wobei die Fehlersignalisierungseinheit
bei Detektierung eines Fehlersignals von der Vergleichseinheit,
welche dem fehlerhaft arbeitenden Paar zugeordnet ist, eine Information über
den Fehlerfall an das mindestens eine fehlerfrei arbeitende Paar
von Ausführungseinheiten weitergibt. Die anderen Vergleichseinheiten
des Rechnersystems können über die Kommunikationsleitung
in der Fehlersignalisierungseinheit lesen, welches Paar von Ausführungseinheiten
fehlerhaft arbeitet.
-
Vorteilhafterweise
löst die Fehlersignalisierungseinheit zur Information über
den Fehlerfall einen Interrupt auf dem fehlerfrei arbeitenden Paar
von Ausführungseinheiten aus.
-
In
einer Ausgestaltung löst die Fehlersignalisierungseinheit
im Fehlerfall zur Initialisierung einer Fehlerbehandlungsroutine
einen Interrupt auf dem fehlerhaft ar beitenden Paar von Ausführungseinheiten
aus. Der Ablauf der Fehlerbehandlungsroutine erzeugt bei einer fehlerhaften
Ausführungsform wieder einen Vergleichsfehler. Über
die Fehlerbehandlungsroutine wird sichergestellt, dass dieser Fehler nicht
in endloser Abfolge zu einem neuen Anlauf der Fehlerbehandlungsroutine
führt und dabei das fehlerfrei arbeitende Paar an Ausführungseinheiten
stört. Die im Fehlerfall wiederholt ausgelösten
Interrupts werden in diesem Fall nicht mehr von der Fehlersignalisierungseinheit
weitergeleitet, um die Interruptlast des fehlerfrei arbeitenden
Paares zu reduzieren. Bei einem wiederholten Auftreten desselben
Fehlers schaltet die Fehlersignalisierungseinheit das fehlerhaft
arbeitende Paar von Ausführungseinheiten ab, während
andere fehlerfrei arbeitende Paare von Ausführungseinheiten
ungestört weiter arbeiten können.
-
In
einer Ausgestaltung ist die Fehlersignalisierungseinheit zur Anzeige
des Fehlers mit einem externen Fehleranschluss verbunden. So kann
insbesondere bei einer bevorstehenden Abschaltung des gesamten Rechnersystems
dem Nutzer der Systems signalisiert werden, dass ein Fehler im Rechnersystem
detektiert 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:
Ausführungsbeispiel eines Rechnersystems mit zwei Paaren
von Recheneinheiten
-
2:
schematischer Programmablaufplan für das erfindungsgemäße
Verfahren mit Hilfe der Vorrichtung nach 1
-
3:
Ausführungsbeispiel für eine Fehlersignalisierungseinheit
-
4:
Anordnung der Fehlersignalisierungseinheit in dem Rechnersystem
nach 1
-
Gleiche
Merkmale sind durch gleiche Bezugszeichen gekennzeichnet.
-
In 1 ist
ein Rechnersystem 1 dargestellt, welches vier Recheneinheiten 110, 120, 210 und 220 umfasst.
Jeweils zwei Recheneinheiten 110, 120, 210, 220 sind
zu einem Paar 100, 200 zusammengefasst. Die Recheneinheiten 110, 120 bilden
das Paar 100 und die Recheneinheiten 210, 220 bilden
das Paar 200. Es sind noch weitere Paare von Recheneinheiten
zuschaltbar. Der Übersichtlichkeit halber werden aber in
den weiteren Ausführungen nur zwei Paare von Recheneinheiten
betrachtet.
-
Die
Recheneinheiten 110, 120 des ersten Paares 100 sind
mit einer ersten Vergleichseinheit 130 verbunden, während
die Recheneinheiten 210, 220 des zweiten Paares 200 auf
eine zweite Vergleichseinheit 230 führen. Die
erste 130 und die zweite Vergleichseinheit 230 sind
mit einer Kommunikationsleitung 300 verbunden. An die Kommunikationsleitung 300 sind
weitere Komponenten wie ein RAM 400, ein ROM 500,
ein Flash-Speicher 600 sowie ein Systemfehlerspeicher 700 angeschlossen.
-
Jedes
Paar 100, 200 von Recheneinheiten 110, 120 bzw. 210, 220 läuft
in einem Vergleichsmodus, d. h. die beiden Recheneinheiten 110, 120 bzw. 210, 220 jedes
Paares 100, 200 führen gleiche Aufgaben
aus. Die Ausgangssignale der beiden Recheneinheiten 110, 120 bzw. 210, 220 jedes
Paares 100, 200 werden von der jeweils zugeordneten
Vergleichseinheit 130, 230 verglichen. Der Vergleichsmodus
kann dabei über eine Locksteg-Verkopplung (d. h. die Recheneinheiten 110, 120; 210, 220 arbeiten
synchron), mittels eines Taktversatzes zwischen den beiden Recheneinheiten 110, 120 bzw. 210, 220 jedes
Paares 100, 200 oder selbst asynchron realisiert
werden. Die Vergleichseinheiten 130, 230 können
demzufolge Zwischenspeicher zur Ermöglichung einer Asynchronität
enthalten, in welchen die Ergebnisse der einen Recheneinheit 110 bzw. 210 solange gespeichert
werden, bis die zweite Recheneinheit 120 bzw. 220 die
Berechnung der gleichen Aufgabe beendet hat und seine Ergebnisse
zum Vergleich an die Vergleichseinheiten 130, 230 ausgibt.
-
Die
beiden im Vergleichsmodus arbeitenden Paare 100, 200 schreiben
und lesen über die Vergleichseinheiten 130, 230 auf
die Kommunikationsleitung 300, welche als Datenbus, Crossbar
oder ähnlich geartete Verbindung ausgeprägt ist.
-
Eine
Ausführung des erfindungsgemäßen Verfahrens
soll nachfolgend am Beispiel von 2 beschrieben
werden. Im Block 101 arbeitet das erste Paar 100 mit
seinen Recheneinheiten 110, 120 im Vergleichsmodus.
Auch das Paar 200 arbeitet im Block 102 mit seinen
Recheneinheiten 210, 220 im Vergleichsmodus. In
der Regel wird dies durch den Ablauf von Laufzeitobjekten charakterisiert.
Bei diesen Laufzeitobjekten handelt es sich um jeweils ein, eine
Funktion bearbeitenden Programmteil, welches die Aufgaben beschreiben,
die die entsprechende Recheneinheit 110, 120 bzw. 210, 220 zu
erledigen hat. Zu einem bestimmten Zeitpunkt bekommen die Laufzeitobjekte
Rechnerzeit zur Abarbeitung ihrer Funktion zur Verfügung
gestellt. Im Normalbetrieb läuft also ein Laufzeitobjekt
auf den beiden Recheneinheiten 110, 120 des Paares 100,
während auf den Recheneinheiten 210, 220 des
zweiten Paar 200 ein anderes Laufzeitobjekt abgearbeitet
wird.
-
Im
Block 103 detektiert die Vergleichseinheit 130 des
ersten Paares 100 einen Fehler, was bedeutet, dass die
Ergebnisse, die von den beiden Recheneinheiten 110, 120 bereitgestellt
werden, nicht übereinstimmen. Ein solcher Fehler kann durch
einen Fehler in einer der Recheneinheiten 110, 120 oder durch
einen Fehler in der zugeordneten Vergleichseinheit 130 verursacht
sein. Der Fehler selbst kann ein transienter oder ein permanenter
Fehler sein. In diesem Fall wird sofort eine Fehlerbehandlung angestoßen.
-
Die
Fehlerbehandlung besteht aus zwei Teilen. Im Block 104 erfolgt
eine Passivierung des fehlerhaft arbeitenden Paares 100,
was im einfachsten Falle ein Stoppen des Paares 100 bedeutet.
Dieses Stoppen kann durch Anhalten der Recheneinheiten 110 und 120,
durch Einstellung der Taktversorgung für die Recheneinheiten 110, 120,
durch Unterbrechung der Steuer- und Lesesignale oder durch eine Unterbrechung
der Energieversorgung erfolgen. Anschließend wird auf den
Recheneinheiten 110 und 120 des ersten Paares 100 eine
Fehlerbehandlungsroutine in Form eines Fehlerentdeckungsprogrammes
gestartet, welches feststellt, ob überhaupt ein permanenter
Fehler vorliegt.
-
Im
Block 105 wird das fehlerfrei arbeitende Paar 200 über
den Fehler im ersten Paar 100 informiert. Eine solche Benachrichtigung
kann durch einen Interrupt geschehen, der von der Vergleichseinheit 130 nach
der Feststellung des Fehlers über die Kommunikationsleitung 300 an
das zweite Paar 200 ausgelöst wird. Es besteht
aber auch die Möglichkeit, dass das zweite Paar 200 den
Status der Vergleichseinheit 130 des ersten Paares 100 kontinuierlich überwacht.
Zu diesem Zweck besitzt die Vergleichseinheit 130 ein Statusbit,
das die gleiche Information wie das Fehlersignal enthält
und welches von dem Paar 200 ebenfalls über die
Kommunikationsleitung 300 gelesen wird.
-
Nach
dem Erhalt der Information über den Fehler in dem ersten
Paar 100 reagiert das zweite Paar 200 im Block 106.
Diese Reaktion hängt davon ab, wie wichtig das aktuell
im ersten Paar 100 zur Bearbeitung anstehende Laufzeitobjekt
für die Anwendung oder die Gesamtsituation des Rechnersystems 1 ist.
Zur Einschätzung der Wichtigkeit des anstehenden Laufzeitobjektes
verfügt das Rechnersystem 1 über ein
einheitliches Prioritätsgefüge, so dass über die
Wichtigkeit des Laufzeitobjektes im Gesamtkontext entschieden werden
kann. Zu diesem Zweck erfolgt auf dem zweiten Paar 200 eine „Reschedule”-Operation,
welche die Wichtigkeit der im Gesamtsystem zur Bearbeitung anstehenden
Laufzeitobjekte neu sortiert.
-
Ist
die Wichtigkeit des abgebrochenen Laufzeitobjektes sehr hoch, wird
es auf dem zweiten Paar 200 unmittelbar bearbeitet (Block 107).
Nach der erneuten Priorisierung der auf dem ersten Paar 100 und
dem zweiten Paar 200 zur Bearbeitung anstehenden Laufzeitobjekte,
werden alle Laufzeitobjekte, die von dem ersten, gestörten
Paar 100 bearbeitet werden sollten, entsprechend ihrer
Wichtigkeit auf dem zweiten Paar 200 bearbeitet.
-
Besonders
einfach einsetzbar ist das erfindungsgemäße Verfahren
dann, wenn ein Gesamtbetriebssystem verwendet wird, welches im Normalfall die
Laufzeitobjekte auf die Paare 100, 200 gemäß einer
Ressourcenstrategie verteilt. Dann lässt sich das Verfahren
einfach dadurch realisieren, dass das Betriebssystem über
den Zustand des Paares 100 informiert wird und das Betriebssystem
das erste Paar 100 nicht mehr mit Laufzeitobjekten beaufschlagt. Das
Betriebssystem übergibt die zur Bearbeitung anstehenden
Laufzeitobjekte nur noch an das zweite Paar 200 oder an
weitere fehlerfrei arbeitende, nicht weiter dargestellte Paare von
Recheneinheiten. Insbesondere bringt das Betriebssystem solche Laufzeitobjekte
auf den Recheneinheiten 210, 220 des zweiten Paares 200 zur
Abarbeitung, welche in fehlerfreien Zustand auf dem Paar 100 gelaufen
wären.
-
Das
Verfahren kann aber auch ohne ein Betriebssystem ausgeführt
werden. Dabei wird die Zuteilung der Laufzeitobjekte der ablaufenden
Software durch die Anwendung selbst vorgenommen.
-
Die
beschriebene Migration von Laufzeitobjekten, d. h. das Laufzeitobjekte
des ersten Paares 100 im Fehlerfall auf dem Paar 200 ausgeführt
werden, wird im Einzelnen realisiert, indem das durch den Fehler
unterbrochene Laufzeitobjekt beim Auftreten des Fehlers seinen aktuellen
Zustand sichert. Dabei wird die Bearbeitung des Laufzeitobjektes durch
das zweite Paar 200 an der Steile fortgesetzt, an welcher
das Laufzeitobjekt im Paar 100 unterbrochen wurde. Alternativ
wird die aktuelle Ausführung des Laufzeitobjektes beim
Auftreten eines Fehlers abgebrochen. Erst bei der erneuten Aktivierung
des Laufzeitobjektes auf den Recheneinheiten 210, 220 des
zweiten Paares 200 wird das Laufzeitobjekt von Beginn an
ausgeführt.
-
In
den beiden erläuterten Ausführungsformen der Migration
muss sichergestellt werden, dass auf den Recheneinheiten 210, 220 des
zweiten Paares 200 ausreichend Rechenzeit zur Verfügung
steht. Dazu kann jede Recheneinheit 210, 220 des
zweiten Paares 200 eine notwendige freie Rechenzeit vorhalten.
In einer anderen Ausführung kann Rechenzeit von einem anderen,
nur eine geringe Priorität aufweisenden Laufzeitobjekt
zur Verfügung gestellt werden. Allerdings wird dieses Laufzeitobjekt
mit geringer Priorität dann in der Abarbeitung nicht mehr
berücksichtigt. Alternativ besteht auch die Möglichkeit,
dass die am zweiten Paar 200 zur Bearbeitung anstehenden Laufzeitobjekte
nur auf ihre wesentlichen Aufgaben reduziert werden, was zu einer
Verkürzung von deren Rechenzeit führt. Somit entsteht
ein Freiraum an Rechenzeit, den das von den fehlerhaft arbeitenden
ersten Paar 100 transferierte Laufzeitobjekt bei der Abarbeitung
am Paar 200 nutzen kann.
-
In
einem anderen Ausführungsbeispiel ist in 3 eine
Fehlersignalisierungseinheit 800 dargestellt, welche als
eigenständige Einheit die Überwachung der Vergleichseinheiten 130, 230 sowie
die Information der Paare 100, 200 von Recheneinheiten 110, 120, 210, 220 über
das Auftreten eines Fehlers übernimmt. Die Fehlersignalisierungseinheit 800 ist mit
allen Paaren 100, 200, von Recheneinheiten 110, 120; 210, 220 des
Rechnersystems 1 verbunden und enthält einen Fehlerspeicher 801.
Darüber hinaus verfügt die Fehlersignalisierungseinheit 800 über
direkte Leitungen zu jeder Recheneinheit, wovon in der 3 aber
der Übersichtlichkeit halber nur eine Leitung 802 dargestellt
ist. Die Fehlersignalisierungseinheit 800 ist in der Lage,
abhängig von der jeweiligen Konfiguration über
die Leitung 802 gezielt einen Interrupt auf einer Recheneinheit 110, 120, 210, 220 auszulösen
oder die Fehlerinformation im System lesbar zur Verfügung
zu stellen. Typischerweise kann sie auch einen Rechnersystem-externen
Fehlerpin bedienen.
-
In 4 ist
die Fehlersignalisierungseinheit 800 in dem Rechnersystem 1 mit
den beiden Paaren 100, 200 von Recheneinheiten 110, 120; 210 220 dargestellt. Über
die Kommunikationsleitung 300 tauscht die Fehlersignalisierungseinheit 800 mit
allen Komponenten des Rechnersystems 1 Steuer- und Lesesignale
aus. Weiterhin ist die Fehlersignalisierungseinheit 800 über
die Leitung 802 mit der Recheneinheit 220, über
die Leitung 803 mit der Recheneinheit 210, über
die Leitung 804 mit der Recheneinheit 120 und über
die Leitung 805 mit der Recheneinheit 110 verbunden.
-
Die
Fehlersignalisierungseinheit 800 startet nach der Registrierung
des Fehlers das Fehlerentdeckungsprogramm auf dem fehlerhaften Paar 100 der Recheneinheiten 110, 120 über
die Leitungen 805 und 804. Das Fehlerentdeckungsprogramm
ist als built-in self test (SW-BIST) realisiert und so aufgebaut,
dass ein Fehler mit möglichst großer Wahrscheinlichkeit
entdeckt wird. Dabei werden die Strategien berücksichtigt,
dass eine Recheneinheit fehlerhaft ist, die Recheneinheit zwar fehlerhaft
ist, wobei der Fehler sich aber nur selten auswirkt (intermittierender
Fehler) oder keiner der Recheneinheiten fehlerhaft ist und der aufgetretene
Fehler lediglich ein transienter Fehler war. Insbesondere in dem
Fall, das eine Recheneinheit fehlerhaft ist, erzeugt der Ablauf des
Fehlerentdeckungsprogrammes wieder einen Vergleichsfehler. Damit
dieser Fehler nicht in endloser Folge zu einem neuen Anlauf des
Fehlerentdeckungsprogrammes führt und dabei das fehlerfrei
arbeitende Paar 200 von Recheneinheiten 210, 220 gestört
wird, zählt die Fehlersignalisierungseinheit 800 die
Zahl der Fehler mit und speichert diese im Fehlerspeicher 801.
Bei Überschreitung einer vorgegebenen Anzahl von Fehlern
wird das geprüfte Paar 100 der Recheneinheiten 110, 120 abgeschaltet.
-
Durch
die Direktverbindungen der Fehlersignalisierungseinheit 800 mit
jeder Recheneinheit 110, 120, 210, 220 über
die Leitungen 802, 803, 804, 805 werden
die Recheneinheiten 110, 120 des ersten Paares 100 deaktiviert,
wobei die Recheneinheiten 210, 220 des zweiten
Paares 200 noch lauffähig bleiben. Die Information,
dass die Recheneinheiten 110, 120 des ersten Paares 100 deaktiviert
wurden sowie eine Information, dass in diesen Recheneinheiten 110, 120 das
Fehlerentdeckungsprogramm abläuft, wird dem zweiten Paar 200 von
Recheneinheiten 210, 220 und den weiteren Komponenten 400, 500, 600, 700 des
Rechnersystems 1 von der Fehlersignalisierungseinheit 800 über
die Kommunikationsleitung 300 lesbar zur Verfügung
gestellt. In dem Zeitraum, in welchem die Recheneinheiten 110, 120 des ersten
Paares 100 mit dem Fehlerentdeckungsprogramm geprüft
werden, werden keine Fehlermeldungen der dem ersten Paar 100 zugeordneten
Vergleichseinheit 130 als Interrupt an das zweite Paar 200 weitergeleitet,
um die Interruptlast des zweiten Paares 200 zu vermindern.
-
Wird
als Ergebnis des Fehlerentdeckungsprogrammes eine fehlerhaften Recheneinheit 110, 120 oder
das Auftreten eines intermittierenden Fehlers festgestellt, wird
das erste Paar 100 permanent deaktiviert. Bei Detektierung
eines transienten Fehlers arbeitet das erste Paar 100 von
Recheneinheiten 110, 120 im normalen Ablauf weiter.
-
Bei
Vorliegen eines intermittierenden Fehlers kann aber auch derart
behandelt werden, dass dieses spezielle Laufzeitobjekt, welches
den intermittierenden Fehler verursacht, nicht mehr auf dem ersten Paar 100 von
Recheneinheiten 110, 120 bearbeitet wird. Die
anderen, für das erste Paar 100 vorgesehenen Laufzeitobjekte
können weiter auf dem ersten Paar 100 bearbeitet
werden, wodurch ein sicheres System realisiert wird.
-
In
dem Fall, dass das gestörte Laufzeitobjekt eine Regelung
ist, die nicht unterbrochen werden darf, wird die dieses Laufzeitobjekt
enthaltende Anwendung für einen vorgegebenen Zeitraum auf
das zweite Paar 200 von Recheneinheiten 210, 220 verlagert,
während die zu diesem Zeitpunkt auf dem zweiten Paar 200 ablaufenden
Laufzeitobjekte von dem ersten Paar 100 von Recheneinheiten 110, 120 bearbeitet
werden. Diese Vorgehensweise erlaubt zumindest kurzfristig, ei ner
wichtigeren Anwendung den Vorzug zu geben. Nach Beendigung der Regelung
wird dann wieder zu der für den Dauerbetrieb vorgesehenen
Regelung zurückgekehrt.
-
Als
Beispiel für eine Anwendung dieser Vorgehensweise sei ein
Automobilsystem erwähnt, welches in eine kritische Situation,
wie einen Schleuderzustand des, Kraftfahrzeuges, geraten ist. In
diesem Fall muss das im Automobilsystem vorhandene Elektronische
Stabilisierungsprogramm (ESP) den Fahrzeugzustand stabilisieren.
Läuft diese Anwendung auf dem fehlerhaft arbeitenden Paar 100 von
Recheneinheiten 110, 120, würde diese
nach Erkennung des Fehlerfalles deaktiviert werden. Durch eine Übernahme
dieser Anwendung durch das zweite Paar 200 von Recheneinheiten 210, 220 wird
eine vollständige Bearbeitung der Regelung gewährleistet und
die sicherheitskritische Situation des Fahrzeuges überwunden.
-
Nach
dem Abschalten der Systemanwendung, beispielsweise des Kraftfahrzeuges,
läuft das Rechnersystem 1 noch einige Zeit nach
(„Shut down-Operation”). In dieser Zeit werden
von dem zweiten Paar 200 von Recheneinheiten 210, 220 die in
den Fehlerspeicher 801 der Fehlersignalisierungseinheit 800 gespeicherten
Fehler ausgelesen und in den Systemfehlerspeicher 700 des
Steuergerätes des Kraftfahrzeuges abgelegt. Wenn diese
Shut down Operation auf dem ersten, fehlerhaften Paar 100 geplant
war, wird diese Operation mittels des erfindungsgemäßen
Verfahrens auf das zweite fehlerfrei arbeitende Paar 200 übertragen.
-
Bei
einer Systeminitialisierung wird die vorhandene Fehlerinformation
dazu genutzt, dass das einmal als fehlerhaft arbeitendes Paar erkannte
Paar 100 von Anfang an zu deaktivieren. Dazu lesen während
der Initialisierung zumindest zwei Paare 100, 200 die
Information aus dem Systemfehlerspeicher 700 aus. Vor dem
Deaktivieren des ersten Paares kann aber auch noch einmal die Fehlerentdeckungsroutine
gestartet werden, um das Vorliegen von transienten Fehlern auszuschließen.
-
Eine
Systemabschaltung wird immer dann durchgeführt, wenn ein
Fehler mehrfach aufgetreten ist. Sie wird aber auch realisiert,
wenn nach einem Auftreten eines Fehlers eine besondere Situation
bewältigt wurde. Alternativ wird das System abgeschaltet,
wenn nach einer vorgegebenen Anzahl von Systeminitialisie rungen,
der Fehler immer noch auftritt. Als Notfallprogramm kann dann noch
eine vorgegebene Zeit verstreichen oder das Fahrzeug noch eine vorgegebene
Distanz fahren, bevor die Abschaltung erfolgt.
-
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
-
- - WO 2007/017381
A1 [0002]