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