Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR ERROR DETECTION IN A PROCESSOR WHICH EXECUTES A SAFETY-RELEVANT PROGRAM
Document Type and Number:
WIPO Patent Application WO/2016/188736
Kind Code:
A1
Abstract:
The invention relates to a method for error detection in a processor which executes a safety-relevant program, and to a corresponding device. The aim of the invention is to achieve the greatest possible safety in error detection. In order to achieve said aim, the invention provides that the processor executes a test program during computing pauses of the safety-relevant program, wherein the output values thereof are compared by an external device with expected values, an error reaction being triggered if the values do not match.

Inventors:
ECKELMANN-WENDT UWE (DE)
BECKER DANIEL (DE)
GERKEN STEFAN (DE)
SEEMANN MARKUS (DE)
Application Number:
PCT/EP2016/060452
Publication Date:
December 01, 2016
Filing Date:
May 10, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F11/22
Foreign References:
US20120226942A12012-09-06
Download PDF:
Claims:
Verfahren zur Fehlerfeststellung bei einem Prozessor, der ein sicherheitsrelevantes Programm ausführt, d a d u r c h g e k e n n z e i c h n e t, dass der Prozessor in Rechenpausen des sicherheitsrelevanten Programms ein Prüfprogramm ausführt, dessen Ausgabewerte mittels eines externen Gerätes mit Erwartungswerten verglichen werden, wobei Nichtübereinstimmung eine Fehlerreaktion auslöst.

Verfahren nach Anspruch 1,

d a d u r c h g e k e n n z e i c h n e t, dass das Prüfprogramm mittels eines Tröpfelalgorithmus Nach¬ kommastellen einer irrationalen Zahl als Ausgabewerte ermittelt .

Verfahren nach einem der vorangehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass die Anzahl der Ausgabewerte des Prüfprogramms mittels des externen Gerätes mit der Anzahl der in der Rechenpause des sicherheitsrelevanten Programms zu erwartenden Anzahl von Ausgabewerten verglichen wird, wobei Nichtübereinstimmung eine Fehlerreaktion auslöst.

Verfahren nach einem der vorangehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass sich das Prüfprogramm nach einer Folge von Ausgabewerten entsprechend eines Prüfplanes zurücksetzt und eine nächste Folge von Ausgabewerten erzeugt.

Verfahren nach Anspruch 4,

d a d u r c h g e k e n n z e i c h n e t, dass die Folgen oder Ausgabewerte nicht identisch sind.

Verfahren nach einem der vorangehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass das Prüfprogramm eine größtmögliche Anzahl unterschied¬ licher Maschinencodebefehle des Prozessors aktiviert.

Vorrichtung zur Durchführung des Verfahrens nach einem der vorangehenden Ansprüche,

d a d u r c h g e k e n n z e i c h n e t, dass der Prozessor mit einem externen Gerät, das einen Speicher und einen Vergleicher aufweist, beschaltet ist, wo¬ bei der Vergleicher zum Vergleich von Ausgabewerten eines in Rechenpausen des sicherheitsrelevanten Programms in dem Prozessor ablaufenden Prüfprogramms mit in dem Speicher gespeicherten Erwartungswerten ausgebildet ist und Mittel zur Auslösung einer Fehlerreaktion bei Nichtübereinstimmung der Ausgabewerte mit den Erwartungswerte aufweist .

Description:
Beschreibung

Verfahren und Vorrichtung zur Fehlerfeststellung bei einem Prozessor, der ein sicherheitsrelevantes Programm ausführt

Die Erfindung betrifft ein Verfahren zur Fehlerfeststellung bei einem Prozessor, der ein sicherheitsrelevantes Programm ausführt sowie eine diesbezügliche Vorrichtung. Eine derartige Fehlerfeststellung im Rechenwerk des Prozessors, insbesondere einer CPU - Central Processing Unit - ist auf vielen Gebieten der Technik mit sicherheitsrelevanter Ausrichtung, beispielsweise Eisenbahnsignaltechnik, Fahrzeugbau, Verkehrssteuerung und -Überwachung, Industrieanlagenbau und Medizintechnik, erforderlich oder zumindest wünschenswert .

Die korrekte Ausführung des sicherheitsrelevanten Programmes, das heißt, der Software, die auf dem Prozessor läuft, setzt die korrekte Ausführung des Maschinencodes des Prozessors vo ¬ raus. Ein Fehler bei einem Maschinencodebefehl erzeugt Datenverarbeitungsfehler oder Programmablauffehler . Dies kann erhebliche Verfälschungen des Programmergebnisses bewirken. Um Prozessorfehler aufzudecken, ist redundante Ausführung üblich. Außerdem können Prozessorfunktionen simuliert werden. Nach einem bekannten Verfahren wird der Objektcode, das heißt, die binäre Repräsentation der Prozessorbefehle, Byte für Byte analysiert, bis diese Bytes eindeutig auf einen Pro- zessorbefehl abgebildet werden können. Anschließend wird die ¬ ser Prozessorbefehl auf zugeordnete, emulierte Prozessorkomponenten angewendet. Das Verfahren basiert auf Emulation des Prozessorhauptspeichers und Anwendung der emulierten Prozes ¬ sorbefehle auf zugeordnete, ebenfalls emulierte Prozessorkom- ponenten. Unter einer Emulation ist die Fähigkeit eines Programms zu verstehen, die Arbeitsweise eines Prozessors mit Softwaremitteln zu simulieren. Diese Softwaremittel, die auch als Emulatoren bezeichnet werden, laden hierzu den Objekt- code, d. h., das Programm, des Prozessors in einen Arbeits ¬ speicher, um anschließend, beginnend mit einer definierten Position, byteweise diesen Objektcode zu interpretieren. Die aus dieser Interpretation gewonnenen Befehlsstrukturen werden dann auf die ebenfalls emulierten Prozessorkomponenten, insbesondere Register, Speicherzellen, Ein-/Ausgabe-Baugruppen und Subkomponenten, angewendet. Auf diese Weise lassen sich Prozessorfunktionen simulieren, wodurch fehlerhafte Prozessorbefehle identifiziert werden können. Nachteilig bei diesem bekannten Verfahren ist neben dem erheblichen Aufwand vor allem, dass durch die byteweise Interpretation des auszuführenden Objektcodes eine geringe Performance resultiert.

Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung gattungsgemäßer Art anzugeben, welche eine hochgradig sichere und möglichst frühzeitige Aufdeckung eines prozessorbedingten Fehlers ermöglichen.

Verfahrensgemäß wird die Aufgabe dadurch gelöst, dass der Prozessor in Rechenpausen des sicherheitsrelevanten Programms ein Prüfprogramm ausführt, dessen Ausgabewerte mittels eines externen Gerätes mit Erwartungswerten verglichen werden, wobei Nichtübereinstimmung eine Fehlerreaktion auslöst. Die Aufgabe wird gemäß Anspruch 7 auch durch eine Vorrichtung gelöst, bei der vorgesehen ist, dass der Prozessor mit einem externen Gerät, das einen Speicher und einen Vergleicher aufweist, beschaltet ist, wobei der Vergleicher zum Vergleich von Ausgabewerten eines in Rechenpausen des sicherheitsrele- vanten Programms in dem Prozessor ablaufenden Prüfprogramms mit in dem Speicher gespeicherten Erwartungswerten ausgebildet ist und Mittel zur Auslösung einer Fehlerreaktion bei Nichtübereinstimmung der Ausgabewerte mit den Erwartungswerte aufweist .

Auf diese Weise kann die korrekte Arbeitsweise des Prozessors regelmäßig überprüft werden, so dass eine frühestmögliche Identifizierung eines fehlerhaften Prozessors möglich ist. Das Prüfprogramm läuft dazu in den Rechenpausen oder auch Warteschleifen des sicherheitsrelevanten Programmes auf dem Prozessor und erzeugt Ausgabewerte, die von dem externen Ge ¬ rät auf Erwartungswerte geprüft werden. Stimmen die Ausgabe- werte nicht mit den Erwartungswerten überein, veranlasst das externe Gerät eine Abschaltung oder Blockade des fehlerhaften Prozessors .

Vorteilhaft ist vor allem, dass das externe Gerät relativ einfach aufgebaut sein kann, nämlich im Wesentlichen mit sicherungstechnisch verlässlichen Speicherbausteinen und

Vergleicherbausteinen. Bei sicherungstechnischen Systemen mit redundanten, parallel arbeitenden Prozessoren besteht ein erheblicher Vorteil darin, dass die Prozessoren nicht zueinan- der synchronisiert laufen müssen. Dadurch kann Rechenzeit, die als Wartezeit für Synchronisationszyklen erforderlich wäre, für die Ausführung des Prüfprogramms genutzt werden. Das Prüfprogramm kann entsprechend den Anforderungen an das

Sicherheitslevel des sicherheitsrelevanten Programms als An- laufprüfung, aber auch als dauerhaft begleitende Prüfung ab ¬ laufen. Die Auswertung durch das externe Gerät, d. h., das Vermeiden einer Eigenprüfung mittels des Prozessors ist dage ¬ gen unabdingbar, da ein fehlerhafter Prozessor auch zu einem falsch-negativen Prüfergebnis führen kann. Durch das externe Gerät zum Vergleich der Ausgabewerte des Prüfprogramms mit

Erwartungswerten ergibt sich eine sehr hohe Sicherheit dahingehend, dass die Prozessor-Maschinencodebefehle tatsächlich korrekt ausgeführt worden sind. Falls das sicherheitsrelevante Programm auf Emulationsebene ausgeführt wird kann das ebenfalls emulierte Prüfprogramm auch feststellen, ob der Interpreter zur Erstellung der Emulationssoftware korrekt arbeitet. Bei einer besonders vorteilhaften Ausführungsform gemäß Anspruch 2 ist vorgesehen, dass das Prüfprogramm mittels eines Tröpfelalgorithmus Nachkommastellen einer irrationalen Zahl als Ausgabewerte ermittelt. Durch den Tröpfelalgorithmus kann die irrationale Zahl, beispielsweise Π, Nachkommastelle für Nachkommastelle errechnet werden ohne die bereits berechneten Werte gespeichert zu haben. Das Prüfprogramm errechnet in ei ¬ ner Rechenpause des sicherheitsrelevanten Programms mindes ¬ tens eine Nachkommastelle und setzt die Berechnung der nach ¬ folgenden Nachkommastellen mit jeder neuen Rechenpause fort. Auf diese Weise kann eine extrem lange Folge von Ausgabewer ¬ ten in Form von Nachkommastellen einer irrationalen Zahl erzeugt werden, wobei Wiederholungen des gleichen Musters der Ausgabewerte nicht auftreten und die stetige Aussagefähigkeit der Prüfausgaben laufzeitunabhängig bestehen bleibt. Andererseits werden auch bei sehr kurzen Rechenpausen des sicherheitsrelevanten Programms, welche für das Prüfprogramm zur Verfügung stehen, bereits aussagefähige Ausgabewerte errech ¬ net .

Wenn das Prüfprogramm mit dem Ablauf des sicherheitsrelevanten Programms derart eng verkämmt bzw. verflochten ist, dass das Prüfprogramm planbar ablaufen kann, kann durch das externe Gerät auch ermittelt werden, ob das sicherheitsrelevante Programm in seinem Ablauf quasi verdrängt wurde. Durch Ausga ¬ ben bewusst falscher Nachkommastellen kann eine Fehlerreaktion auch von dem sicherheitsrelevanten Programm direkt eingeleitet werden.

Gemäß Anspruch 3 ist vorgesehen, dass die Anzahl der Ausgabewerte des Prüfprogramms mittels des externen Gerätes mit der Anzahl der in der Rechenpause des sicherheitsrelevanten Pro- grammes zu erwartenden Anzahl von Ausgabewerten verglichen wird, wobei Nichtübereinstimmung eine Fehlerreaktion auslöst. Die Ausgabewerte müssen nicht nur bezüglich ihres Wertes, beispielsweise der Ziffer der Nachkommastelle, sondern auch bezüglich der in einer bestimmten Zeit errechneten Anzahl von Ausgabewerten mit Erwartungswerten übereinstimmen, wodurch sich ein weiterer Sicherheitszuwachs ergibt.

Gemäß Anspruch 4 ist vorgesehen, dass sich das Prüfprogramm nach einer Folge von Ausgabewerten entsprechend eines Prüf- planes zurücksetzt und eine nächste Folge von Ausgabewerten erzeugt. Nach einer sinnvoll großen Anzahl von Ausgabewerten innerhalb einer Folge, insbesondere Nachkommastellen einer irrationalen Zahl gemäß Anspruch 2 setzt sich das Prüfpro- gramm zurück und beginnt mit der nächsten Folge von Ausgabe ¬ werten entsprechend dem Prüfplan.

Die Folgen der Ausgabewerte sind gemäß Anspruch 5 nicht iden ¬ tisch. Jede neue Folge kann sich beispielsweise auf die Be- rechnung einer bestimmten Anzahl von Nachkommastellen einer anderen irrationalen Zahl beziehen. Auf diese Weise ist die Wiederholung von Ausgabewerten in gleicher Aneinanderreihung und damit die Möglichkeit, dass Prozessorfehler unerkannt bleiben, quasi ausgeschlossen.

Vorzugsweise ist das Prüfprogramm gemäß Anspruch 6 derart er ¬ stellt, dass eine größtmögliche Anzahl unterschiedlicher Ma- schinencodebefehle des Prozessors aktiviert wird. Dazu wird das Prüfprogramm derart verkompliziert, dass eine große Menge unterschiedlicher Maschinencodebefehle zur Errechnung der

Ausgabewerte beitragen muss. Der Vorteil, dass nur eine simp ¬ le Datenübertragung von Bytes zu dem externen Gerät erforderlich ist, bleibt dabei erhalten. Dennoch sind die Ausgabewerte nicht durch Zufall für längere Zeit aus gespeicherten, wiederholten oder willkürlich erzeugten Werten errechenbar, so dass eine zufällig korrekte Ausgabe nahezu unmöglich ist.