DE102009001422A1 - Verfahren zur Fehlerbehandlung eines Rechnersystems - Google Patents

Verfahren zur Fehlerbehandlung eines Rechnersystems Download PDF

Info

Publication number
DE102009001422A1
DE102009001422A1 DE200910001422 DE102009001422A DE102009001422A1 DE 102009001422 A1 DE102009001422 A1 DE 102009001422A1 DE 200910001422 DE200910001422 DE 200910001422 DE 102009001422 A DE102009001422 A DE 102009001422A DE 102009001422 A1 DE102009001422 A1 DE 102009001422A1
Authority
DE
Germany
Prior art keywords
error
execution units
pair
program
function
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.)
Pending
Application number
DE200910001422
Other languages
English (en)
Inventor
Bernd Mueller
Markus Ferch
Yorck Collani
Holger Banski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200910001422 priority Critical patent/DE102009001422A1/de
Publication of DE102009001422A1 publication Critical patent/DE102009001422A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Fehlerbehandlung eines Rechnersystems, welches mindestens zwei Paare (100, 200) mit jeweils zwei Ausführungseinheiten (110, 120; 210, 220) aufweist, wobei die zwei Ausführungseinheiten (110, 120; 210, 220) ein gleiches Programm abarbeiten und die Ausgangssignale der Ausführungseinheiten (110, 120; 210, 220) eines Paares (100, 200) miteinander verglichen werden, wobei beim Auftreten einer Abweichung der Ausgangssignale der Ausführungseinheiten (110, 120; 210, 220) eines Paares (100, 200) voneinander ein Fehlersignal ausgegeben wird.
Bei einem Verfahren, bei welchem sowohl die Sicherheit als auch die Verfügbarkeit des Rechnersystems gleichzeitig aufrechterhalten werden, wird nach dem Auftreten des Fehlersignals das zum Zeitpunkt der Abweichung auf dem fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) laufende, eine Funktion beschreibende Programmteil des Programms auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) weiter bearbeitet.

Description

  • 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]

Claims (37)

  1. Verfahren zur Fehlerbehandlung eines Rechnersystems, welches mindestens zwei Paare (100, 200) mit jeweils zwei Ausführungseinheiten (110, 120; 210 220) aufweist, wobei die zwei Ausführungseinheiten (110, 120; 210 220) ein gleiches Programm abarbeiten und die Ausgangssignale der Ausführungseinheiten (110, 120; 210 220) eines Paares (100, 200) miteinander verglichen werden, wobei beim Auftreten einer Abweichung der Ausgangssignale der Ausführungseinheiten (110, 120; 210 220) eines Paares (100, 200) voneinander ein Fehlersignal ausgegeben wird, dadurch gekennzeichnet, dass nach dem Auftreten des Fehlersignals das zum Zeitpunkt der Abweichung auf dem fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) laufende, eine Funktion beschreibende Programmteil des Programms auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) weiter bearbeitet wird.
  2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass das eine Funktion bearbeitende Programmteil auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) neu gestartet wird.
  3. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass das eine Funktion bearbeitende Programmteil auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) ab der Position weiter bearbeitet wird, wo es bei dem fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) unterbrochen wurde.
  4. Verfahren nach Anspruch 3 dadurch gekennzeichnet, dass das eine Funktion bearbeitende Programmteil bei Auftreten des Fehlers seinen aktuellen Zustand sichert.
  5. Verfahren nach einem der vorhergehenden Ansprüche dadurch gekennzeichnet, dass das fehlerfrei arbeitende Paar (200) von Ausführungseinheiten (210, 220) eine Information darüber erhält, dass in dem fehlerhaft arbeitenden Paar (100) von Ausführungseinheiten (110, 120) ein Fehler aufgetreten ist.
  6. Verfahren nach Anspruch 5 dadurch gekennzeichnet, dass dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) als Information ein Interrupt zugeleitet wird.
  7. Verfahren nach Anspruch 5 dadurch gekennzeichnet, dass das fehlerfrei arbeitende Paar (200) das andere Paar (100) von Ausführungseinheiten (110, 120) kontinuierlich auf Auftreten eines Fehlersignals überwacht.
  8. Verfahren nach einem der vorhergehenden Ansprüche dadurch gekennzeichnet, dass beide Paare (100, 200) von Ausführungseinheiten (110, 120; 210, 220) über einen gemeinsamen Prioritätsraum verfügen, in welchem alle, das Programm bildende, eine Funktion bearbeitenden Programmteile gewichtet sind.
  9. Verfahren nach Anspruch 8 dadurch gekennzeichnet, dass auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) nach der Information über das Auftreten des Fehlersignales in dem fehlerhaft arbeitenden Paar (100) von Ausführungseinheiten (110, 120) eine Neupriorisierung der abzuarbeitenden, eine Funktion bearbeitenden Programmteile erfolgt.
  10. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass jede Ausführungseinheit (210, 220) des fehlerfrei arbeitenden Paares (200) über freie Rechenzeit verfügt, in welcher das laufende, eine Funktion bearbeitende Programmteil abgearbeitet wird.
  11. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass dem laufenden, eine Funktion bearbeitende Programmteil die Rechenzeit eines anderen, eine Funktion bearbeitenden Programmteils zugeordnet wird, welches zur Bearbeitung auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) vorgesehen ist.
  12. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass das laufende, eine Funktion bearbeitende Programmteil auf seine wesentlichen Abläufe beschränkt wird.
  13. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass das fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) in seiner Abarbeitung des Programms unterbrochen wird.
  14. Verfahren nach Anspruch 13 dadurch gekennzeichnet, dass die Ausführungseinheiten (110, 120) des fehlerhaft arbeitenden Paares (100) in der Abarbeitung des Programms angehalten werden.
  15. Verfahren nach Anspruch 1 oder 13 dadurch gekennzeichnet, dass auf dem fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) ein Fehlerbehandlungsprogramm abläuft.
  16. Verfahren nach Anspruch 15 dadurch gekennzeichnet, dass das Fehlerbehandlungsprogramm als Fehlerentdeckungsprogramm ausgeführt wird.
  17. Verfahren nach einem der vorhergehenden Ansprüche dadurch gekennzeichnet, dass das fehlerhaft arbeitende Paar (100) und das fehlerfrei arbeitende Paar (200) von einem Gesamtbetriebssystem koordiniert werden, welches die, die jeweils eine Funktion bearbeitenden Programmteile des Programms auf die mindestens zwei Paare (100, 200) von Ausführungseinheiten (110, 120; 210, 220) verteilt.
  18. Verfahren nach Anspruch 17 dadurch gekennzeichnet, dass das Gesamtbetriebssystem über den Zustand des fehlerhaft arbeitenden Paares (100) informiert wird und das fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) nicht mehr mit einem eine Funktion bearbeitenden Programmteil beaufschlagt wird.
  19. Verfahren nach Anspruch 17 dadurch gekennzeichnet, dass das Gesamtbetriebssystem nur noch mindestens ein fehlerfrei arbeitendes Paar (200) von Ausführungseinheiten (210, 220) mit den eine Funktion bearbeitenden Programmteilen des Programms beaufschlagt.
  20. Verfahren nach Anspruch 19 dadurch gekennzeichnet, dass das Gesamtbetriebssystem das fehlerfrei arbeitende Paar (200) von Ausführungseinheiten (210, 220) mit der Abarbeitung von den, eine Funktion bearbeitenden Programmteilen des fehlerhaft arbeitenden Paares (100) von Ausführungseinheiten (110, 120) beaufschlagt.
  21. Verfahren nach Anspruch 17 dadurch gekennzeichnet, dass das Gesamtbetriebssystem das Rechnersystem (1) bei einer Fehlerakkumulation abschaltet.
  22. Verfahren nach Anspruch 21 dadurch gekennzeichnet, dass das Rechnersystem (1) nach Abschluss einer Regelung abgeschaltet wird.
  23. Verfahren nach Anspruch 21 dadurch gekennzeichnet, dass das Rechnersystem (1) nach einem vorgegebenen Zeitraum abgeschaltet wird.
  24. Verfahren nach Anspruch 21 dadurch gekennzeichnet, dass das Rechnersystem (1) eines Kraftfahrzeuges abgeschaltet wird, nachdem das Fahrzeug eine vorgegebene Distanz gefahren ist.
  25. Verfahren nach Anspruch 21 dadurch gekennzeichnet, dass das Rechnersystem (1) abgeschaltet wird, wenn eine bestimmte Anzahl von Systeminitialisierungen durchgeführt wurde.
  26. Verfahren nach Anspruch 21 dadurch gekennzeichnet, dass das Rechnersystem (1) abgeschaltet wird, wenn eine vorbestimmte Anzahl von Fehlern detektiert wurde.
  27. Vorrichtung zum Betreiben eines Rechnersystems, welches mindestens zwei Paare (100, 200) mit jeweils zwei Ausführungseinheiten (110, 120; 210, 220) aufweist, wobei die zwei Ausführungseinheiten (110, 210; 210, 220) jedes Paares (100, 200) ein gleiches Programm abarbeiten und die Ausgangssignale jeder Ausführungseinheit (110, 120; 210, 220) eines Paares (100, 200) durch je eine Vergleichseinheit (130, 230) miteinander verglichen werden, wobei beim Auftreten einer Abweichung der Ausgangssignale der Ausführungseinheiten (110, 120; 210 220) eines Paares (100, 200) voneinander von der Vergleichseinheit (130, 230) ein Fehlersignal ausgegeben wird, dadurch gekennzeichnet, dass Mittel (130, 140; 800) vorhanden sind, welche ermöglichen, dass nach dem Auftreten des Fehlersignals das zum Zeitpunkt der Abweichung auf dem fehlerhaft arbeitenden Paar (100) von Ausführungseinheiten (110, 120) laufende, eine Funktion bearbeitende Programmteil des Programms auf dem fehlerfrei arbeitenden Paar (200) von Ausführungseinheiten (210, 220) weiter bearbeitet wird.
  28. Vorrichtung nach Anspruch 27 dadurch gekennzeichnet, dass die Vergleichseinheit (130) des fehlerhaft arbeitenden Paares (100) von Ausführungseinheiten (110, 120) eine Statusanzeige aufweist, welche bei Vorliegen eines Fehlers geändert wird.
  29. Vorrichtung nach Anspruch 28 dadurch gekennzeichnet, dass die Statusanzeige der dem fehlerhaft arbeitenden Paares (100) von Ausführungseinheiten (110, 120) zugeordneten Vergleichseinheit (130) durch das fehlerfrei arbeitende Paar (200) von Ausführungseinheiten (210, 220) lesbar ist.
  30. Vorrichtung nach Anspruch 27 oder 28 dadurch gekennzeichnet, dass die dem fehlerhaft arbeitenden Paar (100) von Ausführungseinheiten (110, 120) zugeordneten Vergleichseinheit (130) bei Feststellung eines Fehlers Interrupts ausgibt, welche von den Ausführungseinheiten (210, 220) des fehlerfrei arbeitenden Paares (200) gleichzeitig empfangen werden.
  31. Vorrichtung nach Anspruch 27 dadurch gekennzeichnet, dass eine Fehlersignalisierungseinheit (800) mit den Vergleichseinheiten (130, 230) der beiden Paare (100, 200) von Ausführungseinheiten (110, 120; 210, 220) und mit jeder Ausführungseinheit (110, 120; 210, 220) der Paare (100, 200) verbunden ist.
  32. Vorrichtung nach Anspruch 31 dadurch gekennzeichnet, dass die, Informationen über Fehlersignale sammelnde Fehlersignalisierungseinheit (800) über eine Kommunikationsleitung (300) mit den Vergleichseinheiten (130, 230) verbunden ist, wobei die Fehlersignalisierungseinheit (800) bei Detektierung eines Fehlersignals von der Vergleichseinheit (130), welche dem fehlerhaft arbeitenden Paar (100) zugeordnet ist, eine Information über den Fehlerfall an das mindestens eine fehlerfrei arbeitende Paar (200) von Ausführungseinheiten (210, 220) weitergibt.
  33. Vorrichtung nach Anspruch 32 dadurch gekennzeichnet, dass die Fehlersignalisierungseinheit (800) zur Information über den Fehlerfall einen Interrupt auf dem fehlerfrei arbeitende Paar (200) von Ausführungseinheiten (210, 220) auslöst.
  34. Vorrichtung nach Anspruch 31 dadurch gekennzeichnet, dass die Fehlersignalisierungseinheit (800) im Fehlerfall zur Initialisierung einer Fehlerbehandlungsroutine einen Interrupt auf dem fehlerhaft arbeitenden Paar (100) von Ausführungseinheiten (110, 120) auslöst.
  35. Vorrichtung nach Anspruch 34 dadurch gekennzeichnet, dass die Fehlersignalisierungseinheit (800) das Ergebnis der Fehlerbehandlungsroutine dem Rechnersystem (1) über die Kommunikationsleitung (300) bekannt macht.
  36. Vorrichtung nach Anspruch 34 dadurch gekennzeichnet, dass die Fehlersignalisierungseinheit (800) das fehlerhaft arbeitende Paar (100) von Ausführungseinheiten (110, 120) deaktiviert.
  37. Vorrichtung nach Anspruch 31 dadurch gekennzeichnet, dass die Fehlersignalisierungseinheit (800) zur Anzeige des Fehlers mit einem externen Fehleranschluss verbunden ist.
DE200910001422 2009-03-10 2009-03-10 Verfahren zur Fehlerbehandlung eines Rechnersystems Pending DE102009001422A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200910001422 DE102009001422A1 (de) 2009-03-10 2009-03-10 Verfahren zur Fehlerbehandlung eines Rechnersystems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200910001422 DE102009001422A1 (de) 2009-03-10 2009-03-10 Verfahren zur Fehlerbehandlung eines Rechnersystems

Publications (1)

Publication Number Publication Date
DE102009001422A1 true DE102009001422A1 (de) 2010-09-16

Family

ID=42557592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200910001422 Pending DE102009001422A1 (de) 2009-03-10 2009-03-10 Verfahren zur Fehlerbehandlung eines Rechnersystems

Country Status (1)

Country Link
DE (1) DE102009001422A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007017381A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und vorrichtung zur datenverarbeitung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007017381A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und vorrichtung zur datenverarbeitung

Similar Documents

Publication Publication Date Title
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
EP2207097A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
DE102014102582A1 (de) Fehlertolerantes Steuerungssystem
DE102015110958A1 (de) Ausfallverwaltung in einem Fahrzeug
DE112010005400T5 (de) System für gegenseitige Überwachung von Mikrocomputern und ein Verfahren für gegenseitige Überwachung von Mikrocomputern
WO2008040641A2 (de) Verfahren und vorrichtung zur fehlerverwaltung
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
WO2004034261A1 (de) Verfahren zur ereignissynchronisation, insbesondere für prozessoren fehlertoleranter systeme
DE102008004206A1 (de) Anordnung und Verfahren zur Fehlererkennung und -behandlung in einem Steuergerät in einem Kraftfahrzeug
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE10312553B3 (de) Kraftfahrzeug
EP3557356A1 (de) Verfahren und automatisierungssystem zum sicheren automatischen betrieb einer maschine oder eines fahrzeugs
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102009001422A1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102017219195B4 (de) Verfahren zum gewährleisten eines betriebs eines rechners
EP1915687A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
EP1966694A2 (de) Fehlertolerantes prozessorsystem
EP1774417B1 (de) Verfahren und vorrichtung zum überwachen des ablaufs eines steuerprogramms auf einem rechengerät
DE102004051967A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
WO2022263416A1 (de) Steuerungssystem für mindestens ein empfangendes gerät in sicherheitskritischen anwendungen
DE102009001423A1 (de) Vorrichtung und Verfahren zum Betreiben eines Rechnersystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence