DE102017208484A1 - Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren - Google Patents

Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren Download PDF

Info

Publication number
DE102017208484A1
DE102017208484A1 DE102017208484.7A DE102017208484A DE102017208484A1 DE 102017208484 A1 DE102017208484 A1 DE 102017208484A1 DE 102017208484 A DE102017208484 A DE 102017208484A DE 102017208484 A1 DE102017208484 A1 DE 102017208484A1
Authority
DE
Germany
Prior art keywords
information
result
comparison
application
microprocessor
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
DE102017208484.7A
Other languages
English (en)
Inventor
Gunnar Piel
Peter Munk
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 DE102017208484.7A priority Critical patent/DE102017208484A1/de
Priority to US15/982,054 priority patent/US10719416B2/en
Priority to CN201810479582.4A priority patent/CN108958986B/zh
Publication of DE102017208484A1 publication Critical patent/DE102017208484A1/de
Pending legal-status Critical Current

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • 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

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

Vorrichtung und Verfahren zur Erkennung von einem Hardwarefehler in einem Mikroprozessor umfassend einen Vergleich von einem ersten Ergebnis einer ersten Anwendung, die auf einem ersten Mikroprozessor (106) abläuft, mit einem zweiten Ergebnis einer zweiten Anwendung, die auf dem ersten Mikroprozessor (106) oder einem zweiten Mikroprozessor (110) mittels eines Mikrocontrollers (102), der verschiedene Vergleichsstrategien bereitstellt, wobei abhängig vom Ergebnis des Vergleichs der Hardwarefehler erkannt wird, wobei der Mikrocontroller (102) eine erste Nachricht (104) vom ersten Mikroprozessor (106) empfängt, wobei der Mikrocontroller (102) eine zweite Nachricht (108) vom ersten Mikroprozessor (106) empfängt, wenn die zweite Anwendung auf dem ersten Mikroprozessor (106) abläuft, oder vom zweiten Mikroprozessor (110) empfängt, wenn die zweite Anwendung auf dem zweiten Mikroprozessor (110) abläuft, wobei die erste Nachricht (104) Information über eine erste Vergleichsstrategie und Information über ein erstes Ergebnis einer ersten Berechnung einer Funktion durch die erste Anwendung enthält, wobei die zweite Nachricht (108) Information über eine zweite Vergleichsstrategie und Information über ein zweites Ergebnis einer zweiten Berechnung der Funktion durch die zweite Anwendung enthält, wobei die Information über die erste Vergleichsstrategie mit der Information über die zweite Vergleichsstrategie verglichen wird, wobei bei Übereinstimmung der Information über die Vergleichsstrategie die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird.

Description

  • Stand der Technik
  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren, insbesondere durch Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen.
  • DE102005037245 A1 offenbart ein Verfahren zur Erkennung von zufälligen Hardwarefehlern in Mikroprozessoren mittels einer Lockstep Konfiguration.
  • Wünschenswert ist es demgegenüber ein verbessertes Verfahren und eine verbesserte Vorrichtung für beliebige sicherheitskritische Anwendungen bereitzustellen.
  • Offenbarung der Erfindung
  • Diese Aufgabe wird durch das Verfahren und die Vorrichtung nach den unabhängigen Ansprüchen gelöst.
  • Zum Vergleichen von einem ersten Ergebnis einer ersten Anwendung, die auf einem ersten Mikroprozessor abläuft, mit einem zweiten Ergebnis einer zweiten Anwendung, die auf dem ersten Mikroprozessor oder einem zweiten Mikroprozessor abläuft, mittels eines Mikrocontrollers, der verschiedene Vergleichsstrategien bereitstellt, wobei abhängig vom Ergebnis des Vergleichs ein Hardwarefehler erkannt wird, empfängt der Mikrocontroller eine erste Nachricht vom ersten Mikroprozessor, wobei der Mikrocontroller eine zweite Nachricht vom ersten Mikroprozessor empfängt, wenn die zweite Anwendung auf dem ersten Mikroprozessor abläuft, oder vom zweiten Mikroprozessor empfängt, wenn die zweite Anwendung auf dem zweiten Mikroprozessor abläuft, wobei die erste Nachricht Information über eine erste Vergleichsstrategie und Information über ein erstes Ergebnis einer ersten Berechnung einer Funktion durch die erste Anwendung enthält, wobei die zweite Nachricht Information über eine zweite Vergleichsstrategie und Information über ein zweites Ergebnis einer zweiten Berechnung der Funktion durch die zweite Anwendung enthält, wobei die Information über die erste Vergleichsstrategie mit der Information über die zweite Vergleichsstrategie verglichen wird, wobei bei Übereinstimmung der Information über die erste Vergleichsstrategie mit der Information über die zweite Vergleichsstrategie die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird. Die Vergleichsstrategien sind anwendungsspezifisch vorgebbar. Dies ermöglicht große Flexibilität.
  • Vorteilhafterweise wird Information über ein korrigiertes Ergebnis bestimmt, wenn bei Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie die Information über das erste Ergebnis von der Information über das zweite Ergebnis abweicht, oder der Hardwarefehler erkannt, wenn bei Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie die Information über das erste Ergebnis von der Information über das zweite Ergebnis abweicht. Dadurch kann der Mikrocontroller mit leicht unterschiedlichen Ergebnissen umgehen oder den Hardwarefehler abhängig von Abweichungen der Ergebnisse feststellen.
  • Vorteilhafterweise wird bei fehlender Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie der Hardwarefehler erkannt. Wenn die Vergleichsstrategien nicht übereinstimmen, wird der Hardwarefehler erkannt.
  • Vorteilhafterweise ist in der ersten Nachricht Information über einen ersten Vergleichs-Parameter enthalten, wobei in der zweiten Nachricht Information über einen zweiten Vergleichs-Parameter enthalten ist, wobei die Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter verglichen wird, und wobei bei Übereinstimmung der Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter die Information über das erste Ergebnis mit der Information über das zweite Ergebnis abhängig vom ersten Vergleichs-Parameter oder vom zweiten Vergleichs-Parameter verglichen wird, wobei bei fehlender Übereinstimmung des ersten Vergleichs-Parameters mit dem zweiten Vergleichs-Parameter ein Fehler erkannt wird. Vergleichs-Parameter ermöglichen eine anwendungsspezifische Parametrierung der Vergleichsstrategien.
  • Vorteilhafterweise wird die Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter mittels eines binären Vergleichs verglichen. Dies ist sehr schnell und zuverlässig möglich.
  • Vorteilhafterweise wird die Information über die erste Vergleichsstrategien mit der Information über die zweite Vergleichsstrategie mittels eines binären Vergleichs verglichen. Dies ist ebenfalls sehr schnell und zuverlässig.
  • Vorteilhafterweise enthält die erste Nachricht zusätzlich zur Information über das erste Ergebnis Information über erste Eingangsdaten enthält, die von der ersten Anwendung zur ersten Berechnung verwendet werden sollen, und die zweite Nachricht zusätzlich zur Information über das zweite Ergebnis Information über zweite Eingangsdaten enthält, die von der zweiten Anwendung zur zweiten Berechnung verwendet werden sollen, wobei die Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten verglichen wird, wobei bei fehlender Übereinstimmung der Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten die erste Berechnung vor dem Start der ersten Berechnung unterbunden wird und/oder die zweite Berechnung vor dem Start der zweiten Berechnung unterbunden wird. Dadurch wird die Berechnung bei erkanntem Fehler nicht gestartet.
  • Vorteilhafterweise enthält die erste Nachricht zusätzlich zur Information über das erste Ergebnis Information über erste Eingangsdaten enthält, die von der ersten Anwendung zur ersten Berechnung des ersten Ergebnis verwendet werden während die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird, und die zweite Nachricht zusätzlich zur Information über das zweite Ergebnis Information über zweite Eingangsdaten enthält, die von der zweiten Anwendung zur zweiten Berechnung verwendet werden, während die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird, wobei die Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten verglichen wird, wobei bei fehlender Übereinstimmung der Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten die erste Berechnung abgebrochen wird und/oder die zweite Berechnung abgebrochen wird. Dadurch wird die Berechnung bei erkanntem Fehler abgebrochen.
  • Vorteilhafterweise ist die Information über das erste Ergebnis ein erster Wert des ersten Ergebnisses, und die Information über das zweite Ergebnis ein zweiter Wert des zweiten Ergebnisses. Das Ergebnis wird überprüft, bevor es verwendet wird.
  • Vorteilhafterweise ist die Information über das erste Ergebnis eine erste Signatur eines ersten Wertes des ersten Ergebnisses, und die Information über das zweite Ergebnis eine zweite Signatur eines zweiten Wertes des zweiten Ergebnisses. Das Ergebnis ist unter Umständen ein sehr großer Wert. Die Signatur ist demgegenüber ein kleiner Wert, der besser in Nachrichten übertragen und ausgewertet werden kann.
  • Vorteilhafterweise wird bei Übereinstimmung der ersten Signatur mit der zweiten Signatur wahlweise die Information über das erste Ergebnis von der ersten Anwendung an einen Empfänger übertragen, oder die Information wird über das zweite Ergebnis von der zweiten Anwendung an einen Empfänger übertragen. Das Ergebnis gelangt so zu einem Empfänger ohne Umweg über den Mikrocontroller.
  • Weitere vorteilhafte Ausgestaltungen ergeben sich aus der folgenden Beschreibung und der Zeichnung. In der Zeichnung zeigt
    • 1 schematisch Schritte in einem ersten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen,
    • 2 schematisch Schritte in einem zweiten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen,
    • 3 schematisch Schritte in einem dritten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen,
    • 4 schematisch Schritte in einem vierten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen.
  • Im Folgenden wird mit Bezug auf 1 ein erstes Verfahren zur Erkennung von Hardwarefehlern durch Vergleichen von Ergebnissen beliebiger sicherheitsrelevanter Anwendungen mittels eines anwendungsagnostischen und konfigurierbaren Mikrocontroller 102 beschrieben. Der Mikrocontroller 102 stellt verschiedene Vergleichsstrategien bereit. 1 zeigt in einem ersten Sequenzdiagramm schematisch Schritte im ersten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen.
  • Aufgrund steigender Anforderungen an die Rechenleistung von Anwendungen wie dem hochautomatisierten oder autonomen Fahren und geringerer Stückkosten werden zunehmend auch Mikroprozessoren in sicherheitskritischen Produkten eingesetzt, die keine Lockstep Konfiguration in Hardware mehr bereitstellen. Aus diesem Grund wird ein Lockstep-Verfahren in Software abgebildet. Dabei wird eine Anwendung kopiert und auf zwei oder mehr Prozessorkernen oder Prozessoren parallel ausgeführt. Die Ergebnisse der Berechnung von sicherheitsrelevanten Funktionen durch verschiedene Kopien der Anwendung werden auf einem zuverlässigen Mikrocontroller verglichen. Dieser ist ausgebildet, eine Lockstep-Funktion in Hardware auszuführen. Sollte einer der Mikroprozessoren einen Fehler aufweisen und die darauf ausgeführte Anwendung daraus folgend ein fehlerhaftes Ergebnis produzieren, so wird dies vom Mikrocontroller 102 erkannt. Bei drei oder mehr Mikroprozessoren ist die fehlerhafte Kopie der Anwendung für einen einfachen Fehler trivial zu identifizieren, bei zwei Mikroprozessoren kann der Mikrocontroller 102 eine Diagnoseroutine starten. Dies wird im Folgenden am Beispiel von zwei Kopien einer Anwendung beschrieben. Jede der Kopien ist ausgebildet, aus denselben Eingangsdaten dasselbe Ergebnis mit derselben Funktion zu berechnen.
  • Der Mikrocontroller 102 erhält eine erste Nachricht 104 von einer ersten Anwendung, die auf einem ersten Mikroprozessor 106 abläuft, und eine zweite Nachricht 108 von einer zweiten Anwendung, die auf einem zweiten Mikroprozessor 110 abläuft. Die erste Anwendung ist eine erste Kopie der Anwendung und wird im Folgenden als erste Anwendungskopie bezeichnet. Die zweite Anwendung ist eine zweite Kopie der Anwendung und wird im Folgenden als zweite Anwendungskopie bezeichnet. Die zweite Anwendungskopie kann auch auf dem ersten Mikroprozessor 106 ablaufen. Die erste Nachricht 104 und die zweite Nachricht 108 haben folgenden Aufbau: N = { E ,  VS ,  W ,  Y }
    Figure DE102017208484A1_0001
    mit
  • E
    Ergebnis,
    VS
    Vergleichsstrategie und/oder Parameter,
    W
    maximale Wartezeit auf die Ergebnisse anderer Anwendungskopien,
    Y
    Empfänger des Ergebnis.
  • Der Mikrocontroller 102 vergleicht die in der erste Nachricht 104 enthaltene erste Vergleichsstrategie mit einer zweiten Vergleichsstrategie, die in der zweiten Nachricht 108 enthalten ist, wobei abhängig vom Ergebnis des Vergleichs ein Hardwarefehler erkannt wird. Der Hardwarefehler wird beispielsweise erkannt, wenn beim Vergleich voneinander abweichende Vergleichsstrategien erkannt werden.
  • Enthält die erste Nachricht 104 oder die zweite Nachricht 108 auch Vergleichs-Parameter, werden diese ebenfalls verglichen. Dieser Vergleich kann binär erfolgen.
  • Der Mikrocontroller 102 verwendet bei übereinstimmenden Vergleichsstrategien die erste oder zweite Vergleichsstrategie um ein erstes Ergebnis, das in der ersten Nachricht 104 enthalten ist, mit einem zweiten Ergebnis zu vergleichen, das in der zweiten Nachricht 108 enthalten ist. Anderenfalls wird ein Fehler erkannt. Der Hardwarefehler wird beispielsweise erkannt, wenn beim Vergleich voneinander abweichende Ergebnisse erkannt werden.
  • Das Ergebnis des Vergleichs ist einer der Zustände:
  • F
    vom Mikrocontroller erkannter Fehler,
    zE
    vom Mikrocontroller berechnetes zuverlässiges Ergebnis.
  • Ein Empfänger 112 erhält vom Mikrocontroller 102 nach dem Vergleich dann eine dritte Nachricht 114, wenn ein zuverlässiges Ergebnis zE vorliegt. In der dritten Nachricht 114 wird das zuverlässige Ergebnis übermittelt.
  • Durch die Übermittlung der Vergleichsstrategie durch die Anwendungskopien 106, 110 besteht für die Anwendungen eine Wahlmöglichkeit bezüglich der Vergleichsstrategie.
  • Das Versenden der Nachricht N = {E, VS, W, Y} an den Mikrocontroller 102 geschieht beispielsweise über Middleware. Da die Middleware die Anwendung event-getrieben aufruft, muss auch der Mikrocontroller 102 event-getrieben gestartet werden. Dies kann z.B. über einen Interrupt auf dem Mikrocontroller 102 erreicht werden. Erhält der Mikrocontroller 102 die erste Nachricht 104 der ersten Anwendungskopie vom ersten Mikroprozessor 106, so wartet sie zunächst auf die zweite Nachricht der zweiten Anwendungskopie vom zweiten Mikroprozessor 110. Erreicht die zweite Nachricht 108 ab dem Zeitpunkt des Eintreffens der ersten Nachricht 104 dem Mikrocontroller 102 nicht innerhalb der maximalen Wartezeit 118, so wird ein timeout-Fehler für die zweite Anwendung 110 erkannt. Der Mikrocontroller 102 kann in diesem Fall entsprechend reagieren, z.B. indem der timeout-Fehler an eine Diagnoseeinheit gemeldet wird welche die zweite Anwendung 110 durch Neustart zu reparieren versucht. Beispielsweise wird der vom Mikrocontroller 102 erkannter Fehler F übermittelt. Im Beispiel von 1 trifft die zweite Nachricht 108 nach der ersten Nachricht 104 vor Ablauf der maximalen Wartezeit 118 ein.
  • Sind mehr als zwei Anwendungen vorgesehen, kann der Mikrocontroller 102 warten, bis alle oder genügend, z.B. 2 von 3 Nachrichten N eingetroffen sind.
  • Dann vergleicht der Mikrocontroller 102 zunächst die Vergleichsstrategien und die zugehörigen Parameter aller eingetroffenen Nachrichten. Hierfür genügt ein binärer Vergleich. Enthält eine Nachricht eine andere Vergleichsstrategie als die anderen Nachrichten, so wird die entsprechende Anwendung ebenfalls als fehlerhaft erkannt und gemeldet.
  • Entsprechend vergleicht der Mikrocontroller 102 alle Empfänger Y aus den Nachrichten N. Enthält eine Nachricht N einen anderen Empfänger als die anderen Nachrichten N, so wird die entsprechende Anwendung als fehlerhaft erkannt und gemeldet.
  • Anschließend verwendet der Mikrocontroller 102 die übereinstimmende Vergleichsstrategie, um die Ergebnisse E aller Nachrichten N bzw. aller Anwendungen zu vergleichen. Dabei werden je nach Strategie fehlerhafte Anwendungen erkannt und gemeldet oder es wird ein neues, zuverlässiges Ergebnis erzeugt. Die fehlerhaften Anwendungen werden beispielsweise durch binär-Vergleich oder ε-Vergleich erkannt. Das neue, zuverlässige Ergebnis wird beispielsweise durch eine Median Berechnung über alle Ergebnisse bestimmt. Der von dem Mikrocontroller 102 erkannter Fehler F oder das von dem Mikrocontroller 102 berechnetes zuverlässiges Ergebnis zE wird dann übermittelt.
  • Schließlich sendet der Mikrocontroller 102 das Ergebnis E bei Übereinstimmender Vergleichsstrategie und Übereinstimmender Information über das Ergebnis E an den eigentlichen Empfänger 112. Dies geschieht beispielsweise ebenfalls über die Middleware.
  • Auf dem ersten Mikroprozessor 106 ruft die Middleware dazu die erste Anwendungskopie auf und übergibt Eingangsdaten 116. Auf einem zweiten Mikroprozessor 110 ruft die Middleware die zweite Anwendungskopie auf und übergibt die Eingangsdaten 116. Alternative kann der Aufruf einer weiteren Einheit erfolgen, welche die Eingangsdaten 116 repliziert und weiterleitet. Nach der Berechnung sendet die erste Anwendungskopie die erste Nachricht 104 und die zweite Anwendungskopie die zweite Nachricht 108 an den Mikrocontroller 102. Der Mikrocontroller 102 erwartet die zweite Nachricht 108 von der zweiten Anwendungskopie innerhalb der maximalen Wartezeit 118. Nach dem Vergleich sendet der Mikrocontroller 102 das Ergebnis E an den eigentlichen Empfänger 112.
  • 2 zeigt schematisch in einem zweiten Sequenzdiagramm Schritte in einem zweiten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen. Hierbei werden zudem neben den Ergebnissen auch die Eingangsdaten der Anwendungen überprüft.
  • Dazu sendet die erste Anwendungskopie ihre Eingangsdaten 116 zusammen mit einer ersten Vergleichsstrategie und sofern vorhanden deren zugehörige erste Vergleichs-Parameter sowie der maximalen Wartezeit 118 als vierte Nachricht 202 an den Mikrocontroller 102. Die zweite Anwendungskopie sendet ihre Eingangsdaten 116 zusammen mit einer zweiten Vergleichsstrategie und sofern vorhanden deren zugehörige zweite Vergleichs-Parameter sowie der maximalen Wartezeit 118 als fünfte Nachricht 204 an den Mikrocontroller 102.
  • Der Mikrocontroller 102 überprüft ob die Eingangsdaten 116 übereinstimmen und startet anschließend bei Übereinstimmung durch eine sechste Nachricht 206 an die erste Anwendungskopie die Ausführung der ersten Anwendungskopie und durch eine siebte Nachricht 208 an die zweite Anwendungskopie die Ausführung der zweiten Anwendungskopie. Der weitere Verlauf entspricht dem zuvor für 1 beschriebenen Ablauf. Bei fehlender Übereinstimmung wird beispielsweise ein Fehler F erkannt.
  • Dies hat den Vorteil, dass fehlerhafte Eingangswerte 116, welche zu unterschiedlichen Ergebnissen führen würden, frühzeitig erkannt werden. Dadurch wird vermeiden, dass zustandsbehaftete Systeme im Fehlerfall einer Anwendungskopie einen Rollback, also das Laden eines alten aber korrekten Systemzustands, durchführen müssen.
  • 3 zeigt schematisch in einem dritten Sequenzdiagramm Schritte in einem dritten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen, bei dem die Ausführung der Anwendungskopien bereits parallel zum Vergleich der Eingangsdaten 116 gestartet wird. In diesem Fall wird die Ausführung von dem Mikrocontroller 102 abgebrochen, sofern unterschiedlichen Eingangsdaten 116 erkannt werden. Der Empfänger erhält kein Ergebnis, d.h. die dritte Nachricht 114 entfällt.
  • Dies hat den Vorteil, dass die Ausführung der eigentlichen Anwendung im fehlerfreien Fall, also in der Mehrheit der Ausführungen, nicht verzögert wird.
  • In diesem Fall übermittelt eine achte Nachricht 302 den Inhalt der ersten Nachricht 201 und der vierten Nachricht 202 und ersetzt diese. Eine neunte Nachricht 304 übermittelt den Inhalt der zweiten Nachricht 202 und der fünften Nachricht 203 und ersetzt diese. Bei erkanntem Fehler wird die Ausführung der ersten Anwendungskopie wie zuvor beschrieben mit der sechsten Nachricht 206 an die erste Anwendungskopie abgebrochen. Bei erkanntem Fehler wird die Ausführung der zweiten Anwendungskopie wie zuvor beschrieben mit der siebten Nachricht 208 an die zweite Anwendungskopie abgebrochen. Der Empfänger erhält kein Ergebnis, d.h. die dritte Nachricht 114 entfällt.
  • 4 zeigt schematisch in einem vierten Sequenzdiagramm Schritte in einem vierten Verfahren zum Vergleichen von Ergebnissen sicherheitsrelevanter Anwendungen in einem periodischen d.h. nicht event-basierten System.
  • Anstelle der maximalen Wartezeit 118 senden beide Anwendungskopien im periodischen Fall eine maximale Zeitdauer 402 bis zur nächsten Ausgabe eines Ergebnisses an den Mikrocontroller 102. Im Gegensatz zum event-basierten System kann der Mikrocontroller so auch einen Fehlerfall erkennen, bei welchem alle Anwendungskopien keine Nachricht schicken.
  • Anstatt das eigentliche Ergebnis E an den Mikrocontroller 102 zu schicken, kann um Bandbreite zu sparen für große Ergebnisse, z.B. Bilddaten oder Trajektorien, auch eine Signatur S des eigentlichen Werts des Ergebnisses E übertragen werden.
  • Der Vergleich von Signaturen S erfolgt beispielsweise nur binär. Kommen die oben genannten Mechanismen zur Erhöhung der Diversität zum Einsatz, so können aufgrund der Kompression gängiger Signaturmechanismen zumeist keine Vergleichsstrategien wie der ε-Vergleicher oder Korrekturstrategien wie der Median verwendet werden. Deshalb ist diese Alternative in diesem Fall nicht anwendbar.
  • Kann die Signatur S allerdings binär verglichen werden, so muss der eigentliche Empfänger trotzdem das eigentliche Ergebnis erhalten. Deshalb erlaubt der Mikrocontroller 102 nach dem Vergleich einer beliebigen Anwendungskopie welche ein korrektes Ergebnis E berechnet hat, dass diese Anwendungskopie ihr Ergebnis E an den eigentlichen Empfänger 112 senden darf. Dazu sendet beispielsweise der Mikrocontroller 102 eine zehnte Nachricht 402, OK, an die erste Anwendungskopie. Die erste Anwendungskopie sendet in einer elften Nachricht 404 das Ergebnis E an den Empfänger 112.
  • Der Empfänger 112 erhält vom Mikrocontroller 102 weiterhin optional eine zwölfte Nachricht 404, in der die Signatur S des korrekten Ergebnisses E übertragen wird. Dadurch ist es dem Empfänger 112 möglich, nach dem Erhalt des Ergebnisses E durch erneute Berechnung der Signatur S' und einem binären Vergleich mit der von dem Mikrocontroller 102 erhaltenen Signatur S zu überprüfen, ob das Ergebnis E zwischenzeitlich nicht verändert wurde.
  • 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
    • DE 102005037245 A1 [0002]

Claims (13)

  1. Verfahren zur Erkennung von einem Hardwarefehler in einem Mikroprozessor umfassend einen Vergleich von einem ersten Ergebnis einer ersten Anwendung, die auf einem ersten Mikroprozessor (106) abläuft, mit einem zweiten Ergebnis einer zweiten Anwendung (110), die auf dem ersten Mikroprozessor (106) oder einem zweiten Mikroprozessor (110) abläuft, mittels eines Mikrocontrollers (102), der verschiedene Vergleichsstrategien bereitstellt, wobei abhängig vom Ergebnis des Vergleichs der Hardwarefehler erkannt wird, dadurch gekennzeichnet, dass der Mikrocontroller (102) eine erste Nachricht (104) vom ersten Mikroprozessor (106) empfängt, wobei der Mikrocontroller (102) eine zweite Nachricht (108) vom ersten Mikroprozessor (106) empfängt, wenn die zweite Anwendung auf dem ersten Mikroprozessor (106) abläuft, oder vom zweiten Mikroprozessor (110) empfängt, wenn die zweite Anwendung auf dem zweiten Mikroprozessor (110) abläuft, wobei die erste Nachricht (104) Information über eine erste Vergleichsstrategie und Information über ein erstes Ergebnis einer ersten Berechnung einer Funktion durch die erste Anwendung enthält, wobei die zweite Nachricht (108) Information über eine zweite Vergleichsstrategie und Information über ein zweites Ergebnis einer zweiten Berechnung der Funktion durch die zweite Anwendung enthält, wobei die Information über die erste Vergleichsstrategie mit der Information über die zweite Vergleichsstrategie verglichen wird, wobei bei Übereinstimmung der Information über die erste Vergleichsstrategie mit der Information über die zweite Vergleichsstrategie die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Information über ein korrigiertes Ergebnis bestimmt wird, wenn bei Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie die Information über das erste Ergebnis von der Information über das zweite Ergebnis abweicht, oder der Hardwarefehler erkannt wird, wenn bei Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie die Information über das erste Ergebnis von der Information über das zweite Ergebnis abweicht.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei fehlender Übereinstimmung der ersten Vergleichsstrategie mit der zweiten Vergleichsstrategie der Hardwarefehler erkannt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass in der ersten Nachricht (104) Information über einen ersten Vergleichs-Parameter enthalten ist, wobei in der zweiten Nachricht (108) Information über einen zweiten Vergleichs-Parameter enthalten ist, wobei die Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter verglichen wird, und wobei bei Übereinstimmung der Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter die Information über das erste Ergebnis mit der Information über das zweite Ergebnis abhängig vom ersten Vergleichs-Parameter oder vom zweiten Vergleichs-Parameter verglichen wird, wobei bei fehlender Übereinstimmung des ersten Vergleichs-Parameters mit dem zweiten Vergleichs-Parameter ein Fehler erkannt wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Information über den ersten Vergleichs-Parameter mit der Information über den zweiten Vergleichs-Parameter mittels eines binären Vergleichs verglichen wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Information über die erste Vergleichsstrategien mit der Information über die zweite Vergleichsstrategie mittels eines binären Vergleichs verglichen wird.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die erste Nachricht (104) zusätzlich zur Information über das erste Ergebnis Information über erste Eingangsdaten enthält, die von der ersten Anwendung zur ersten Berechnung verwendet werden sollen, und die zweite Nachricht (108) zusätzlich zur Information über das zweite Ergebnis Information über zweite Eingangsdaten enthält, die von der zweiten Anwendung zur zweiten Berechnung verwendet werden sollen, wobei die Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten verglichen wird, wobei bei fehlender Übereinstimmung der Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten die erste Berechnung vor dem Start der ersten Berechnung unterbunden wird und/oder die zweite Berechnung vor dem Start der zweiten Berechnung unterbunden wird.
  8. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die erste Nachricht (104) zusätzlich zur Information über das erste Ergebnis Information über erste Eingangsdaten enthält, die von der ersten Anwendung zur ersten Berechnung des ersten Ergebnis verwendet werden während die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird, und die zweite Nachricht (108) zusätzlich zur Information über das zweite Ergebnis Information über zweite Eingangsdaten enthält, die von der zweiten Anwendung zur zweiten Berechnung verwendet werden, während die Information über das erste Ergebnis mit der Information über das zweite Ergebnis verglichen wird, wobei die Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten verglichen wird, wobei bei fehlender Übereinstimmung der Information über die ersten Eingangsdaten mit der Information über die zweiten Eingangsdaten die erste Berechnung abgebrochen wird und/oder die zweite Berechnung abgebrochen wird.
  9. Verfahren nach einem der vorherigen Ansprüche, wobei die Information über das erste Ergebnis ein erster Wert des ersten Ergebnisses ist, und die Information über das zweite Ergebnis ein zweiter Wert des zweiten Ergebnisses ist.
  10. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Information über das erste Ergebnis eine erste Signatur eines ersten Wertes des ersten Ergebnis ist, und die Information über das zweite Ergebnis eine zweite Signatur eines zweiten Wertes des zweiten Ergebnis ist.
  11. Verfahren nach Anspruch 10, wobei bei Übereinstimmung der ersten Signatur mit der zweiten Signatur wahlweise die Information über das erste Ergebnis von der ersten Anwendung an einen Empfänger (112) übertragen wird, oder die Information über das zweite Ergebnis von der zweiten Anwendung an einen Empfänger (112) übertragen wird.
  12. Vorrichtung zur Erkennung von einem Hardwarefehler in einem Mikroprozessor, mittels Vergleichen von einem ersten Ergebnis einer ersten Anwendung, die auf einem ersten Mikroprozessor (106) abläuft, mit einem zweiten Ergebnis einer zweiten Anwendung, die auf dem ersten Mikroprozessor (106) oder einem zweiten Mikroprozessor (110) abläuft, mittels eines Mikrocontrollers (102), der verschiedene Vergleichsstrategien bereitstellt, wobei abhängig vom Ergebnis des Vergleichs der Hardwarefehler erkannt wird, dadurch gekennzeichnet, dass die Vorrichtung ausgebildet ist, ein Verfahren nach einem der Ansprüche 1 bis 11 auszuführen.
  13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass der Mikrocontroller (102) ausgebildet ist, eine Lockstep Funktion in Hardware auszuführen.
DE102017208484.7A 2017-05-19 2017-05-19 Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren Pending DE102017208484A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102017208484.7A DE102017208484A1 (de) 2017-05-19 2017-05-19 Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren
US15/982,054 US10719416B2 (en) 2017-05-19 2018-05-17 Method and device for recognizing hardware errors in microprocessors
CN201810479582.4A CN108958986B (zh) 2017-05-19 2018-05-18 用于识别微处理器中的硬件错误的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017208484.7A DE102017208484A1 (de) 2017-05-19 2017-05-19 Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren

Publications (1)

Publication Number Publication Date
DE102017208484A1 true DE102017208484A1 (de) 2018-11-22

Family

ID=64271998

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017208484.7A Pending DE102017208484A1 (de) 2017-05-19 2017-05-19 Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren

Country Status (3)

Country Link
US (1) US10719416B2 (de)
CN (1) CN108958986B (de)
DE (1) DE102017208484A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220048525A1 (en) * 2020-08-14 2022-02-17 Nvidia Corporation Hardware fault detection for feedback control systems in autonomous machine applications
US20240166053A1 (en) * 2022-11-22 2024-05-23 Feisel Weslati Techniques for segmented monitoring of powertrain propulsive torque in electrified vehicles

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005037245A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816989A (en) * 1987-04-15 1989-03-28 Allied-Signal Inc. Synchronizer for a fault tolerant multiple node processing system
WO1994011820A1 (en) * 1992-11-06 1994-05-26 University Of Newcastle Upon Tyne Efficient schemes for constructing reliable computing nodes in distributed systems
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
FR2968855B1 (fr) * 2010-12-14 2012-12-07 Schneider Electric Ind Sas Procede et dispositif de surveillance d'un dispositif equipe d'un microprocesseur
US8635492B2 (en) * 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing
US8549389B2 (en) * 2011-05-24 2013-10-01 Honeywell International Inc. Systems and methods for 1553 bus operation self checking
DE102012212304A1 (de) * 2012-07-13 2014-01-16 Siemens Aktiengesellschaft Anordnung mit einem Mikroprozessorsystem
JP5772911B2 (ja) * 2013-09-27 2015-09-02 日本電気株式会社 フォールトトレラントシステム
SG11201608536QA (en) * 2014-05-08 2016-11-29 Micro Motion Inc Method for performing failsafe calculations
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
WO2016033629A2 (de) * 2014-09-05 2016-03-10 Fts Computertechnik Gmbh Computersystem und verfahren für sicherheitskritische anwendungen
US10002056B2 (en) * 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
DE102015218890A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Generieren eines Ausgangsdatenstroms
DE102017116081A1 (de) * 2017-07-18 2019-01-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Konfigurieren einer Ausführungseinrichtung und zum Erkennen eines Betriebszustands derselben

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005037245A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BLOUGH, D. M. u.a.: A comparison of voting strategies for fault-tolerant distributed systems. Proceedings Ninth Symposium on Reliable Distributed Systems, Huntsville, AL, 1990, S. 136-145. *
KOEPERNIK, Dr. J. u.a.: Funktionale Sicherheit in der Entwicklung von Fahrwerks und Fahrerassistenz-Systemen: Fokus Systemarchitektur. Vector Congress, 7./8. Oktober 2008 *

Also Published As

Publication number Publication date
CN108958986B (zh) 2023-11-21
US20180336107A1 (en) 2018-11-22
CN108958986A (zh) 2018-12-07
US10719416B2 (en) 2020-07-21

Similar Documents

Publication Publication Date Title
DE69210399T2 (de) Rechnerueberwachungsverfahren und system
DE102011121620B4 (de) Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE4112334C2 (de)
DE102011086530A1 (de) Mikroprozessorsystem mit fehlertoleranter Architektur
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
DE112010005400T5 (de) System für gegenseitige Überwachung von Mikrocomputern und ein Verfahren für gegenseitige Überwachung von Mikrocomputern
DE102012109614A1 (de) Fehlerbehebung bei Stapel-Korruption in eingebetteten Softwaresystemen
EP1521907A1 (de) Verfahren zur überprüfung der funktionsfähigkeit eines umgebungsdrucksensors einer brennkraftmaschine
EP2079917A1 (de) Verfahren und vorrichtung zur überwachung einer funktionsfähigkeit einer motorsteuerung eines verbrennungsmotors
EP1358554B1 (de) Automatische inbetriebnahme eines clustersystems nach einem heilbaren fehler
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
EP3709166A1 (de) Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten
DE102017208484A1 (de) Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
DE102008004206A1 (de) Anordnung und Verfahren zur Fehlererkennung und -behandlung in einem Steuergerät in einem Kraftfahrzeug
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102004051991A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102010041437A1 (de) Überprüfung von Funktionen eines Steuersystems mit Komponenten
WO2002071223A1 (de) Fehlertolerante rechneranordnung und verfahren zum betrieb einer derartigen anordnung
EP3311273A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
DE102015218882A1 (de) Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
WO2007017372A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
DE102014112946A1 (de) Elektronische Steuereinheit und elektronisches Servolenksystem, das diese verwendet

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed