DE102015218386A1 - Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung - Google Patents

Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung Download PDF

Info

Publication number
DE102015218386A1
DE102015218386A1 DE102015218386.6A DE102015218386A DE102015218386A1 DE 102015218386 A1 DE102015218386 A1 DE 102015218386A1 DE 102015218386 A DE102015218386 A DE 102015218386A DE 102015218386 A1 DE102015218386 A1 DE 102015218386A1
Authority
DE
Germany
Prior art keywords
program flow
program
stack
signature
flow
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
DE102015218386.6A
Other languages
English (en)
Inventor
Jo Pletinckx
Jan Scheuing
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 DE102015218386.6A priority Critical patent/DE102015218386A1/de
Publication of DE102015218386A1 publication Critical patent/DE102015218386A1/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/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes. Das Verfahren umfasst einen Schritt des Bestimmens eines Signaturwertes unter Verwendung eines aktuellen Befehls des Programmflusses, wobei der aktuelle Befehl einen gemäß dem Programmfluss aktuell auszuführenden oder ausgeführten Befehl repräsentiert, und eines vorangegangenen Signaturwertes, einen Schritt des Ablegens des Signaturwertes als Referenzwert an einer Ausleseposition (330) eines Stapelspeichers (110), wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses anzeigt, einen Schritt des Löschens eines sich in dem Stapelspeicher (110) an der Ausleseposition (330) befindlichen Referenzwertes, wenn der aktuelle Befehl eine Beendigung eines nicht-linearen Ablaufs des Programmflusses anzeigt, und einen Schritt des Durchführens einer Vergleichsoperation zwischen dem Signaturwert und einem sich an einer Ausleseposition (330) des Stapelspeicher (110) befindlichen Referenzwertes, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.

Description

  • Stand der Technik
  • Die Erfindung geht aus von einer Vorrichtung oder einem Verfahren nach Gattung der unabhängigen Ansprüche. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm.
  • Wie in allen elektronischen Schaltungen können auch in Prozessoren Fehler auftreten. Besonders kritisch sind Fehler, die den Programmablauf stören. Vor diesem Hintergrund wurden zahlreiche Arbeiten zur Absicherung des Programmablaufs durchgeführt, eine bekannte Methode ist das Signaturmonitoring.
  • Bei diesem Verfahren wird aus den geladenen bzw. ausgeführten Operations-Codes zur Laufzeit eine Signatur berechnet und an bestimmten Prüfstellen im Programm mit einer Referenz-Signatur verglichen. Bei Abweichung wird ein Fehler gemeldet. Die Referenz-Signatur wird zur Kompilationszeit berechnet und an den Prüfstellen im Programmspeicher abgelegt. Bei linearem Programmfluss ist eine solche Vorberechnung einfach möglich.
  • Die DE 10 2010 031 017 A1 beschreibt ein entsprechendes Verfahren zum Überwachen eines Programmablaufs eines Prozessors.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes, weiterhin eine Vorrichtung, die dieses Verfahren verwendet, eine Prozessoreinrichtung sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch angegebenen Vorrichtung möglich.
  • Der beschriebene Ansatz ermöglicht die Realisierung einer Schaltungsanordnung, mit der eine lückenlose Absicherung des Programmablaufs, insbesondere für die Ausführung von Unterbrechungen und bedingten und nicht-bedingten Unterprogrammaufrufen, durch fortlaufendes Signaturmonitoring ermöglicht wird. Dazu kann ein Stapelspeicher eingesetzt werden, in dem ansprechend auf die Ausführung von Unterbrechungen und bedingten und nicht-bedingten Unterprogrammaufrufen ein Signaturwert als Referenzwert abgelegt werden kann. Bei Beendigung einer solchen Unterbrechung oder eine solchen bedingten und nicht-bedingten Unterprogramms kann der entsprechende Referenzwert wieder aus dem Stapelspeicher entfernt werden.
  • Ein Verfahren zum Überwachen eines Programmflusses eines von einem Prozessor ausgeführten oder ausführbaren Programmes umfasst die folgenden
  • Schritte:
  • Bestimmen eines Signaturwertes unter Verwendung eines aktuellen Befehls des Programmflusses, wobei der aktuelle Befehl einen gemäß dem Programmfluss aktuell auszuführenden oder ausgeführten Befehl repräsentiert, und eines vorangegangenen Signaturwertes;
    Ablegen des Signaturwertes als Referenzwert an einer Ausleseposition eines Stapelspeichers, wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses oder eine Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Ausleseposition befindlicher vorangegangener Referenzwert von der Ausleseposition auf eine Nachfolgeposition verdrängt wird;
    Löschen eines sich in dem Stapelspeicher an der Ausleseposition befindlichen Referenzwertes, wenn der aktuelle Befehl eine Beendigung eines nicht-linearen Ablaufs des Programmflusses oder eine Beendigung einer Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Nachfolgeposition befindlicher Referenzwert auf die Ausleseposition nachrückt;
    Durchführen einer Vergleichsoperation zwischen dem Signaturwert und einem sich an einer Ausleseposition des Stapelspeicher befindlichen Referenzwertes, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.
  • Unter einem Prozessor kann auch eine Recheneinheit oder ein Mikrocontroller verstanden werden. Unter einem Programmfluss kann eine Abfolge von durch den Prozessor zu bearbeiteten Befehlen verstanden werden. Der Programmfluss kann eine lineare Abfolge von Befehlen aufweisen. Die lineare Abfolge kann durch Unterbrechungen, Unterprogrammaufrufe oder Sprünge unterbrochen werden, woraus nicht-linearer Abläufe in dem Programmfluss resultieren. Somit kann der in den Schritten des Ablegens und Löschens genannte nicht-lineare Ablauf des Programmflusses eine Unterbrechung des Programmflusses einen Aufruf eines Unterprogramms, eine Schleife im Programmfluss oder einen Sprung in dem Programmfluss repräsentieren. Eine Unterbrechungsanfrage kann durch einen Interrupt ausgelöst werden oder einen Interrupt darstellen. Durch das Überwachen des Programmflusses können aus einer fehlerhaften Abarbeitung des Programmablaufs resultierende Fehler erkannt werden. Unter einem Stapelspeicher kann ein Speicher verstanden werden, in dem ein abzulegender Referenzwert immer an eine Ausleseposition des Stapelspeichers abgelegt wird und dabei einen sich an der Ausleseposition befindlichen Referenzwert auf nachfolgende Positionen verschiebt.
  • Das Verfahren kann einen Schritt des Zwischenspeicherns des im Schritt des Bestimmens bestimmten Signaturwertes in einem Signaturregister umfassen.
  • Dadurch kann der Signaturwert für die Bestimmung eines nachfolgenden Signaturwertes zwischengespeichert werden.
  • Gemäß einer Ausführungsform kann der Signaturwert im Schritt des Durchführens aus dem Signaturregister eingelesen werden. Alternativ kann der Signaturwert im Schritt des Durchführens unter Umgehung des Signaturregisters eingelesen werden. Letztere Vorgehensweise führt bei linearem Programmfluss zu einer guten Häufigkeitsverteilung der Werte im Signaturregister.
  • Das Verfahren kann einen Schritt des Anzeigens des Zustands des Programmflusses unter Verwendung des Ergebnisses der Vergleichsoperation umfassen. Unter dem Zustand kann beispielsweise ein fehlerfreier oder fehlerhafter Zustand verstanden werden. Der Zustand kann beispielsweise unter Verwendung eines Zustandssignals angezeigt werden.
  • Das genannte Verfahren kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in der genannten Vorrichtung implementiert sein.
  • Der hier vorgestellte Ansatz schafft ferner eine Vorrichtung, die ausgebildet ist, um die Schritte einer Variante eines hier vorgestellten Verfahrens in entsprechenden Einrichtungen durchzuführen, anzusteuern bzw. umzusetzen. Auch durch diese Ausführungsvariante der Erfindung in Form einer Vorrichtung kann die der Erfindung zugrunde liegende Aufgabe schnell und effizient gelöst werden.
  • Unter einer Vorrichtung kann vorliegend ein elektrisches Gerät verstanden werden, das Sensorsignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Bei den Sensorsignalen kann es sich bspw. um Signale eines Sensors eines Kraftfahrzeuges bzw. von in einem Kraftfahrzeug verbauten Sensor handeln. Bei den Sensorsignalen kann es sich somit um Signale eines Gassensors, bspw. einer Lambdasonde; eines Drucksensors, welcher bspw. in einer Stoßstange verbaut ist; oder eine Beschleunigungssensors, bspw. eines ESP-Sensors handeln. Bei den Steuer- und/oder Datensignalen kann es sich um Signale handeln, welche an eine Steuereinheit, bspw. ein Brems- oder Motorsteuergerät, gesendet werden. Anhand dieser Signale kann dann die Steuereinheit entscheiden, ob bei einer Fehlfunktion des geprüften Sensors bspw. ein Warnsignal ausgegeben wird und/oder ein Notlaufprogramm aktiviert wird, welches bestimmte Einheiten wie z.B. Bremsaktoren im Kraftfahrzeug ansteuert und/oder bestimmte Einheiten des Kraftfahrzeuges deaktiviert werden, um so einen sicheren Betriebszustand herbeizuführen.
  • Die Vorrichtung kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen der Vorrichtung beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
  • Eine entsprechende Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes weist die folgenden Einrichtungen auf:
    eine Bestimmungseinrichtung zum Bestimmen eines Signaturwertes unter Verwendung eines aktuellen Befehls des Programmflusses, wobei der aktuelle Befehl einen gemäß dem Programmfluss aktuell auszuführenden oder ausgeführten Befehl repräsentiert, und eines vorangegangenen Signaturwertes;
    einen Stapelspeicher zum Speichern von Referenzwerten;
    eine Stapelspeicherverwaltungseinrichtung zum Ablegen des Signaturwertes als Referenzwert an einer Ausleseposition eines Stapelspeichers, wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses anzeigt, wobei ein sich an der Ausleseposition befindlicher vorangegangener Referenzwert von der Ausleseposition auf eine Nachfolgeposition verdrängt wird, und zum Löschen eines sich in dem Stapelspeicher an der Ausleseposition befindlichen Referenzwertes, wenn der aktuelle Befehl eine Beendigung eines nicht-linearen Ablaufs des Programmflusses anzeigt, wobei ein sich an der Nachfolgeposition befindlicher Referenzwert auf die Ausleseposition nachrückt; und
    eine Durchführungseinrichtung zum Durchführen einer Vergleichsoperation zwischen dem Signaturwert und einem sich an einer Ausleseposition des Stapelspeicher befindlichen Referenzwertes, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.
  • Eine entsprechende Prozessoreinrichtung weist die folgenden Merkmale auf:
    einen Prozessor zum Ausführen von Befehlen eines Programmflusses eines von dem Prozessor ausführbaren Programmes;
    eine genannte Vorrichtung zum Überwachen des Programmflusses; und
    einen Programmspeicher zum Speichern der Befehle des Programmflusses, wobei der Programmspeicher eine Schnittstelle zum Bereitstellen der Befehle an den Prozessor und die Vorrichtung aufweist.
  • Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte des Verfahrens nach einer der vorstehend beschriebenen Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird.
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
  • 1 ein Blockschaltbild einer Prozessoreinrichtung gemäß einem Ausführungsbeispiel;
  • 2 ein Ablaufdiagramm eines Verfahrens zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel;
  • 3 eine Darstellung einer Anordnung zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel;
  • 4 eine Darstellung eines linearen Programmablaufs gemäß einem Ausführungsbeispiel;
  • 5 eine Darstellung einer Anordnung zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel;
  • 6 eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel;
  • 7 eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel; und
  • 8 eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel.
  • In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
  • 1 zeigt ein Blockschaltbild einer Prozessoreinrichtung 100 gemäß einem Ausführungsbeispiel. Die Prozessoreinrichtung 100 weist einen Prozessor 102 auf, der ausgebildet ist, um in einem Programmspeicher 104 gespeicherte und aus dem Programmspeicher 104 bereitgestellte Befehle abzuarbeiten. Eine Abfolge der aus dem Programmspeicher 104 bereitgestellten Befehle stellt einen Programmfluss eines von dem Prozessor 102 auszuführenden Programmes dar.
  • Die Prozessoreinrichtung 100 weist ferner eine Vorrichtung 106 auf, die ausgebildet ist, um den Programmfluss des von dem Prozessor 102 ausgeführten Programmes zu überwachen. Dazu weist die Vorrichtung 106 eine Bestimmungseinrichtung 108, einen Stapelspeicher 110, eine Stapelspeicherverwaltungseinrichtung 112 und eine Durchführungseinrichtung 114 auf. Die Vorrichtung 106 ist ausgebildet, um fortlaufend von dem Prozessor 102 ausgeführte oder auszuführende Befehle über eine Schnittstelle zu dem Programmspeicher 104 einzulesen, einen Programmfluss der Befehle zu überwachen und abhängig von einem Ergebnis der Überwachung des Programmflusses ein Zustandssignal 116 bereitzustellen, das beispielsweise anzeigt, ob der überwachte Programfluss fehlerfrei oder fehlerbehaftet ist.
  • Die Bestimmungseinrichtung 108 ist ausgebildet, um unter Verwendung eines aktuell eingelesenen Befehls und eines vorangegangenen Signaturwertes einen aktuellen Signaturwert zu bestimmen. Pro eingelesenen Befehl ist die Bestimmungseinrichtung 108 ausgebildet, einen Signaturwert zu bestimmen. Somit werden fortlaufend aktuelle Signaturwerte bestimmt.
  • Abhängig von der Art eines einem Signaturwert zugrundeliegenden Befehls wird der Signaturwert entweder lediglich zum Bestimmen eines nachfolgenden Signaturwertes zwischengespeichert oder zusätzlich in dem Stapelspeicher 110 als Referenzwert abgelegt. Ferner kann der Signaturwert zum Durchführen eines Vergleichs von der Durchführungseinrichtung 114 verwendet werden.
  • Der Stapelspeicher 110 ist ausgebildet, um eine Mehrzahl von Referenzwerten zu speichern. Dabei können direkt aufeinanderfolgende oder voneinander beabstandete Signaturwerte als Referenzwerte in dem Stapelspeicher abgelegt werden, wobei der jeweils zuletzt abgelegte Referenzwert jeweils eine Ausleseposition des Stapelspeichers 110 einnimmt, das heißt, bei einem Auslesen eines Referenzwertes aus dem Stapelspeicher 110 wird immer derjenige Referenzwert ausgelesen, der sich an der Ausleseposition befindet. Beim Auslesen verbleibt der ausgelesene Referenzwert in den Stapelspeicher 110 an der Ausleseposition. Wird der sich an der Ausleseposition befindliche Referenzwert gelöscht, so rutscht der zeitlich zuletzt vor dem zu löschenden Referenzwert in dem Stapelspeicher 110 abgelegte Referenzwert auf die Ausleseposition.
  • Die Stapelspeicherverwaltungseinrichtung 112 ist ausgebildet, um das Speichern oder Löschen von Referenzwerten in dem Stapelspeicher 110 zu steuern. Wenn dem aktuellen Signaturwert ein Befehl zugrunde liegt, der den Beginn eines nicht-linearen Ablaufs des Programmflusses oder eine Beendigung einer Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, es sich also beispielsweise um einen Sprungbefehl handelt, so ist die Stapelspeicherverwaltungseinrichtung 112 ausgebildet, um den aktuellen Signaturwert in dem Stapelspeicher 110 als Referenzwert abzulegen. Wenn dem aktuellen Signaturwert dagegen ein Befehl zugrunde liegt, der ein Ende eines, beispielsweise des vorangegangen genannten, nicht-linearen Ablaufs des Programmflusses anzeigt, es sich also beispielsweise um einen Rücksprungbefehl handelt, so ist die Stapelspeicherverwaltungseinrichtung 112 ausgebildet, um den sich an der Ausleseposition des Stapelspeichers 110 befindlichen Referenzwert zu löschen.
  • Die Durchführungseinrichtung 114 ist ausgebildet, um das Zustandssignal 116 zu generieren. Gemäß diesem Ausführungsbeispiel ist die Durchführungseinrichtung 114 ausgebildet, um das Zustandssignal 116 zu generieren, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert. In diesem Fall ist die Durchführungseinrichtung 114 ausgebildet, um eine Vergleichsoperation zwischen dem Signaturwert und dem sich an der Ausleseposition des Stapelspeichers 110 befindlichen Referenzwert durchzuführen und das Zustandssignal 116 unter Verwendung eines Ergebnisses der Vergleichsoperation zu generieren.
  • 2 zeigt ein Ablaufdiagramm eines Verfahrens zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel. Das Verfahren kann unter Verwendung der anhand von 1 beschriebenen Vorrichtung ausgeführt werden.
  • In einem Schritt 220 wird ein aktueller Signaturwert unter Verwendung eines aktuellen Befehls des Programmflusses sowie eines vorangegangenen Signaturwertes bestimmt.
  • Wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses anzeigt wird der aktuelle Signaturwert in einem Schritt 222 als Referenzwert an einer Ausleseposition eines Stapelspeichers abgelegt.
  • Wenn der aktuelle Befehl dagegen eine Beendigung eines nicht-linearen Ablaufs des Programmflusses anzeigt, wird ein sich aktuell an der Ausleseposition des Stapelspeichers befindlicher Referenzwert in einem Schritt 224 gelöscht.
  • Wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wird in einem Schritt 226 eine Vergleichsoperation zwischen dem Signaturwert und einem sich an der Ausleseposition des Stapelspeicher befindlichen Referenzwertes durchgeführt, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.
  • In einem optionalen Schritt 228 wird der basierend auf dem Ergebnis der Vergleichsoperation bestimmte Zustand des Programmflusses angezeigt, beispielsweise unter Verwendung eines Zustandssignals.
  • Der Schritt 220 wird fortlaufend für jeden Befehl des Programmflusses ausgeführt. Wenn der aktuelle Befehl einen linearen Ablauf des Programmflusses anzeigt, so wird der aus dem aktuellen Befehl bestimmte aktuelle Signaturwert nicht als Referenzwert in dem Stapelspeicher abgelegt und auch kein Referenzwert in dem Stapelspeicher gelöst. Die Schritte 222, 224, 226 können an sich in beliebiger Reihenfolge ausgeführt werden, wobei die Reihenfolge durch die Art und Abfolge der von dem Programmfluss umfassten Befehle definiert wird. Dabei können beispielsweise mehrere Schritte 224 ausgeführt werden, also mehrere Signaturwerte als Referenzwerte in den Stapelspeicher abgelegt werden, bevor ein Schritt 226 ausgeführt wird, und somit ein in dem Stapelspeicher abgelegter Referenzwert gelöscht wird.
  • 3 zeigt eine Darstellung einer Anordnung zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel. Gezeigt ist ein weiteres Ausführungsbeispiel der bereits anhand von 1 beschriebenen Vorrichtung 106 zum Überwachen eines Programmflusses.
  • Wie bereits anhand von 1 beschrieben, weist die Vorrichtung 106 eine Bestimmungseinrichtung 108, einen Stapelspeicher 110, eine Stapelspeicherverwaltungseinrichtung 112 und eine Durchführungseinrichtung 114 auf. Der Programmspeicher 104 kann Teil der Vorrichtung 106 sein oder einer Prozessoreinrichtung zugeordnet sein. Die Bestimmungseinrichtung 108 ist ausgebildet, um eine Signaturfunktion auszuführen. Der Stapelspeicher 110 ist als ein sogenannter Signatur-Stack ausgeführt. Der Stapelspeicher 110 weist eine Mehrzahl von Positionen auf, in denen Referenzwerte gespeichert werden können. In 3 ist eine Ausleseposition 330 und eine der Ausleseposition 330 nachfolgende Nachfolgeposition 332 gezeigt. Weitere nicht gezeigte Nachfolgepositionen schließen an die Nachfolgeposition 332 an. Die Durchführungseinrichtung 114 ist ausgebildet, um einen Vergleich durchzuführen. Die Vorrichtung 106 weist ferner ein Signaturregister 334 auf. Die Bestimmungseinrichtung 108 ist ausgebildet, um einen aktuell bestimmten Signaturwert an das Signaturregister 334 und an die Durchführungseinrichtung 114 bereitzustellen. Das Signaturregister 334 ist ausgebildet, um den aktuellen Signaturwert zwischen zu speichern. Zur Bestimmung eines zeitlich nachfolgenden Signaturwertes ist die Bestimmungseinrichtung 108 ausgebildet, um den in dem Signaturregister 334 zwischengespeicherten Signaturwert auszulesen und zusammen mit einem aktuellen Befehl aus dem Programmspeicher 104 zum Bestimmen eines nun aktuellen Signaturwertes zu verwenden. Der nun aktuelle Signaturwert wird wiederum in dem Signaturregister 334 zwischengespeichert, wobei der zeitlich vorangegangene Signaturwert überschrieben wird. Soll der aktuelle Signaturwert in dem Stapelspeicher 110 abgelegt werden, so ist das Signaturregister 334 ausgebildet, um den zwischengespeicherten Signaturwert an den Stapelspeicher 110 bereitzustellen.
  • Die Durchführungseinrichtung 114 ist ausgebildet, um ansprechend auf einen Trigger 336 einen Vergleich zwischen einem aktuellen Signaturwert und einem sich an der Ausleseposition 330 befindlichen Referenzwert durchzuführen.
  • Abhängig von einem Ergebnis des Vergleichs ist die Durchführungseinrichtung 114 ausgebildet, um ein Zustandssignal, hier ein Fehlersignal 116, auszugeben.
  • Die in 3 dargestellten Pfeile repräsentieren gemäß einem Ausführungsbeispiel Signalleitungen, so dass die Befehle, Signaturwerte und Referenzwerte als elektrische Signale aufgefasst werden können.
  • Der beschriebene Ansatz unterscheidet sich gemäß einem Ausführungsbeispiel von bisherigen Lösungen neben den gewählten Signaturfunktionen vor allem hinsichtlich der Möglichkeiten einer Absicherung von bedingten und nicht-bedingten Unterprogrammaufrufen und Unterbrechungen (lnterrupts). Im Unterschied zu Lösungen, bei denen Schattenregister (je eines pro Unterbrechungsmöglichkeit) eingesetzt werden, um im Fall einer Unterbrechung die aktuelle Signatur zwischenzuspeichern und eine neue Signaturrechnung für die Unterbrechungsbearbeitung zu starten, wobei am Ende der Unterbrechungsbearbeitung dann deren Signatur geprüft und anschließend wieder auf die vor der Unterbrechung aktuelle Signatur umgeschaltet wird, kann gemäß dem hier beschriebenen Ansatz auch im Moment des Umschaltens eine vollständige Absicherung geboten werden, d.h. ein Fehler im Programmablauf während des Umschaltens wird nicht unentdeckt bleiben. Somit kann auch für die Fälle von bedingten und nicht-bedingten Unterprogrammaufrufen und Unterbrechungen eine lückenlose Absicherung realisiert werden.
  • Dies wird durch eine Schaltungsanordnung zur Programmflussüberwachung eines Prozessors ermöglicht, mit der eine lückenlose Absicherung des Programmablaufs, insbesondere für die Ausführung von Unterbrechungen und bedingten und nicht-bedingten Unterprogrammaufrufen, durch fortlaufendes Signaturmonitoring ermöglicht wird.
  • Gemäß dem beschriebenen Ansatz wird der Stapelspeicher 110, beispielsweise in Form eines Stack oder Kellerspeichers, verwendet, um bei nicht-linearem Programmablauf, also z.B. bei Unterbrechung, bedingtem oder unbedingtem Unterprogrammaufruf oder auch bei einer Schleife, den Signaturwert, im Folgenden auch als Signatur bezeichnet, zwischenzuspeichern. Beim Rücksprung in den ursprünglichen Programmablauf wird die zuletzt in Form eines Referenzwertes gespeicherte Signatur vom Stapelspeicher 110 entfernt. Der Stapelspeicher 110 ist gemäß einem Ausführungsbeispiel als Hardware-Stack mittels Register implementiert.
  • Die Verwendung des Stapelspeichers 110 ermöglicht es, eine einzige Signatur über den gesamten Programmablauf, einschließlich der Unterbrechungen, zu berechnen und an jeder beliebigen Stelle zu prüfen. Tritt beispielsweise während einer Unterbrechung ein Fehler im Programmfluss auf, dann ist der Beitrag dieses Fehlers zur Signatur nicht nur während der Unterbrechung sondern auch nach Beendigung der Unterbrechung im weiteren Programmablauf erkennbar. Diese kontinuierliche Berechnung ist vorteilhaft gegenüber der bisher üblichen Unterbrechung der Signaturberechnung bei Verwendung eines Schattenregisters.
  • Durch Verwendung des Stapelspeichers 110 sind insbesondere auch Mehrfach-Schachtelungen, wie z.B. ein Unterprogrammaufruf in einer Unterbrechung, möglich. Für eine ausreichende Stacktiefe des Stapelspeichers 110 – größer oder gleich der maximal möglichen Verschachtelungstiefe – ist bei der Hardwaredimensionierung zu sorgen. Dies kann durch eine geeignete Anzahl von Positionen 330, 332 des Stapelspeichers 110 an denen Referenzwerte gespeichert werden können, gewährleistet werden.
  • Ein Überschreiten der Stacktiefe im Betrieb zeigt einen unvorhergesehenen Programmablauf; eine Überwachung hinsichtlich Überschreiten der Stacktiefe bietet eine zusätzliche Fehlererkennungsmöglichkeit.
  • Die in 3 gezeigte Darstellung zeigt ein Ausführungsbeispiel einer Schaltungsanordnung zur Programmflussüberwachung. Dabei wird bei Unterbrechung des Programmflusses der aktuelle Wert des Signaturregisters 334 auf den Stapelspeicher 110 in Form eines Signaturstacks kopiert. An einem Prüfpunkt innerhalb des Programmflusses wird das Ergebnis der in der Bestimmungseinrichtung 108 gebildeten Signaturfunktion mit dem letzten Eintrag des Stapelspeichers 110 verglichen. Der Signaturwert zum Zeitpunkt des Vergleichs wird nicht im Signaturregister 334 abgelegt. Die von der in der Bestimmungseinrichtung 108 umgesetzte Berechnungsvorschrift für Signaturwerte in Form von Signaturen S unter Einbeziehung einer Befehlszeile I, also eines Befehls I des Programmflusses, lässt sich immer als Signaturfunktion f der Form S(n) = f(S(n – I); I(n)) darstellen, wobei S(n) die aktuelle Signatur, S(n – 1) die vorherige und l(n) die aktuelle Befehlszeile (ausgeführter Inhalt des Programmspeichers 104) bezeichnet. Die aktuelle Signatur wird in dem Signaturregister 334 gespeichert. Beim Rücksetzen des Prozessors wird das Signaturregister 334 mit einem definierten Wert S(0) initialisiert. Der Stapelspeicher 110 ist nach dem Rücksetzen leer; der leere Stapelspeicher 110 liefert denselben Wert S(0) zurück, bzw. verallgemeinert einen Wert, der bei Signaturvergleich in der Durchführungseinrichtung 114 keinen Fehler im Fehlersignal 116 liefert.
  • An bestimmten Stellen im Programmablauf sind sogenannte Prüfpunkte angeordnet. An diesen Stellen wird die Signatur, also der von der Bestimmungseinrichtung 108 bestimmte Signaturwert überprüft. Ein solcher Prüfpunkt ist in 4 dargestellt. Dies kann z.B. automatisch beim Rücksprung aus einem Unterprogramm oder einer Unterbrechungsbearbeitung, oder parallel zur Ausführung eines Sprungbefehls erfolgen. Vorzugsweise können zusätzliche Prüfpunkte im Programm, z.B. in Form eines speziellen Prüfbefehls, definiert werden.
  • An den Prüfpunkten liefert der Programmspeicher 104 einen Wert Ip(n), der zur Kompilationszeit derart berechnet wird, dass im fehlerfreien Fall f(S(n – 1); Ip(n)) und der letzte Eintrag des Stapelspeicher 110 hinsichtlich der in der Durchführungseinrichtung 114 ausgeführten Vergleichsoperation identisch sind.
  • 4 zeigt eine Darstellung eines linearen Programmablaufs gemäß einem Ausführungsbeispiel. Gezeigt ist ein Programmfluss mit einem Start 440, einer Mehrzahl von Befehlen 442 und einem innerhalb der Abfolge von Befehlen 442 angeordneten Prüfpunkt 444. Der Prüfpunkt 444 kann als ein spezieller Befehl innerhalb des Programmflusses aufgefasst werden. Somit weist der lineare Programmablauf einen Prüfpunkt 444 auf.
  • 5 zeigt eine Darstellung einer Anordnung zum Überwachen eines Programmflusses gemäß einem Ausführungsbeispiel. Gezeigt ist ein weiteres Ausführungsbeispiel der bereits anhand von 3 beschriebenen Vorrichtung 106 zum Überwachen eines Programmflusses. Die Vorrichtung 106 unterscheidet sich von der anhand von 3 beschriebenen Vorrichtung 106 in der Anordnung des Signaturregisters 334. Gemäß dem in 5 gezeigten Ausführungsbeispiel ist das Signaturregister 334 in einem Pfad zwischen der Bestimmungseinrichtung 108 und der Durchführungseinrichtung 114 angeordnet. Auf diese Weise wird der von der Bestimmungseinrichtung 108 bestimmte aktuelle Signaturwert in dem Signaturregister 334 zwischengespeichert und aus dem Signaturregister 334 an die Durchführungseinrichtung 114 bereitgestellt.
  • Bei der in 5 gezeigten alternativen Schaltungsanordnung ist lp(n) derart zu berechnen, dass im fehlerfreien Fall das Signaturregister 334 am Prüfpunkt mit dem letzten Eintrag des Stapelspeichers 110, also dem sich an der Ausleseposition des Stapelspeichers 110 befindlichen Eintrag, hinsichtlich der in der die Durchführungseinrichtung 114 ausgeführten Vergleichsoperation, übereinstimmt.
  • Die Schaltungsanordnungen, die in den 3 und 5 gezeigt sind, führen zu unterschiedlicher Häufigkeitsverteilung der Werte im Signaturregister 334. Die in 3 gezeigte Anordnung ist gegenüber der in 5 gezeigten Anordnung vorteilhaft, da anderenfalls bei linearem Programmfluss nach jedem Prüfpunkt derselbe Wert, der identisch mit dem letzten Eintrag des Stapelspeichers 110 ist, im Signaturregister 334 steht.
  • Der Stapelspeicher 110 wird bei nicht-linearem Programmablauf genutzt. Bei Auftreten einer Unterbrechung oder bei Aufruf eines Unterprogrammes wird der aktuelle Wert des Signaturregisters 334 auf den Stapelspeicher 110 kopiert. Dieser in den Stapelspeicher 110 kopierte Wert dient dann als neuer Referenzwert für den Vergleich.
  • Hierdurch wird eine Platzierung von Prüfpunkten an beliebiger Stelle in beliebig verschachtelten Unterbrechungen bzw. Unterprogrammen, bis zur Stacktiefe des Stapelspeichers 110, ermöglicht. Prüfpunkte können nun unabhängig von Unterbrechungen und Programmstruktur gesetzt werden, was die mögliche Programmabdeckung durch Signaturmonitoring und somit die Fehlersicherheit erhöht.
  • Bei Abschluss der Unterbrechung bzw. Rücksprung aus dem Unterprogramm wird der letzte Wert des Stapelspeichers 110 verworfen, wie es in den 6 und 7 dargestellt ist. Somit wird von nun an für den in der Durchführungseinrichtung 114 durchgeführten Vergleich wieder der zuvor gültige Referenzwert verwendet.
  • Gemäß einem Ausführungsbeispiel wird eine Modifikation (m) des Signaturwerts durchgeführt, z.B. beim Einspringen, um die bedingte Ausführung in der Signatur zu neutralisieren.
  • Gemäß dem beschriebenen Ansatz wird die in der Bestimmungseinrichtung 108 ausgeführte Signaturfunktion also durchgängig – auch bei nicht-linearem Programmfluss – auf den einen Signaturwert angewandt, nur der Referenzwert ändert sich. Diese Durchgängigkeit ermöglicht eine lückenlose Überwachung des Programmflusses.
  • Tritt beispielsweise während einer Unterbrechung ein Fehler im Programmfluss auf, dann ist der Beitrag dieses Fehlers zur Signatur nicht nur während der Unterbrechung, sondern auch nach Beendigung der Unterbrechung im weiteren Programmablauf erkennbar.
  • Die Stacktiefe des Stapelspeichers 110 wird gemäß einem Ausführungsbeispiel so dimensioniert, dass bis zur maximal möglichen Verschachtelungstiefe gespeichert werden kann. Ein Überschreiten der Stacktiefe im Betrieb zeigt dann einen unvorhergesehenen Programmablauf; das Überschreiten der möglichen Stacktiefe führt vorteilhafterweise ebenfalls zur Erkennung eines Programmflussfehlers.
  • Ein weiteres Anwendungsszenario ist die in 8 dargestellte Schleifenbearbeitung bei fester Länge.
  • 6 zeigt eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel. Gezeigt ist ein Programmfluss mit einer Unterbrechung (IRQ) 650, einer Modifikation m des Signaturwertes und einen Rücksprung (RTI) 652.
  • Gezeigt ist somit ein Programmfluss bei Ausführung einer Unterbrechung (IRQ) 650. Dabei wird der aktuelle Signaturwert auf den Stapelspeicher 110 kopiert. Bei Rücksprung (RTI) 652 aus der Unterbrechungsbearbeitung wird der letzte Eintrag des Stapelspeichers 110 verworfen.
  • 7 zeigt eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel. Gezeigt ist ein Programmfluss bei (bedingtem) Aufruf eines Unterprogramms (Call) 770. Der aktuelle Signaturwert wird auf den Stapelspeicher 110 kopiert. Bei Rücksprung aus dem Unterprogramm (RTS) 772 wird der letzte Eintrag des Stapelspeichers 110 verworfen. Optional wird einer Modifikation m des Signaturwertes durchgeführt.
  • 8 zeigt eine Darstellung eines nicht-linearen Programmablaufs gemäß einem Ausführungsbeispiel. Gezeigt ist ein Programmfluss bei Schleifenbearbeitung fester Länge. Der aktuelle Signaturwert wird bei Eintritt in die Schleife auf den Stapelspeicher 110 kopiert. Zu Beginn jeder Schleifenwiederholung wird der letzte Eintrag des Stapelspeichers 110 durch den aktuellen Signaturwert ersetzt. Am Ende der Schleife wird der letzte Eintrag des Stapelspeichers 110 verworfen. Bezüglich der Schleifenbearbeitung sind in 8 ein Befehl „FOR 0-2“ 880 und Befehle „NEXT“ 882 gezeigt.
  • Unter Verwendung des beschriebenen Signaturmonitoring ist eine Ausgabe des Fehlerstatus, beispielsweise in Form eines Fehlersignals, über eine externe Schnittstelle realisierbar. Der beschriebene Ansatz ermöglicht zudem eine Erkennung einer Manipulation des Programmspeicherinhalts. Wird beispielsweise eine Signaturmodifikation durchgeführt, z.B. eine Unterbrechungsroutine so geändert, dass die Signatur verfälscht wird, wobei der nächste Prüfpunkt außerhalb dieser Unterbrechungsroutine liegt, kann bei Einsatz des Stapelspeichers und einer kommutativen Signaturfunktion an diesem Prüfpunkt die Auswirkung der verfälschten Signatur noch erkannt werden.
  • Die beschriebene Schaltungsanordnung kann beispielsweise in einem Signalprozessor implementiert werden, der wiederum beispielsweise in einem Sensor-ASIC eingesetzt werden kann.
  • Umfasst ein Ausführungsbeispiel eine „und/oder“ -Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.
  • 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 102010031017 A1 [0004]

Claims (10)

  1. Verfahren zum Überwachen eines Programmflusses eines von einem Prozessor (102) ausführbaren Programmes, wobei das Verfahren die folgenden Schritte umfasst: Bestimmen (220) eines Signaturwertes unter Verwendung eines aktuellen Befehls des Programmflusses, wobei der aktuelle Befehl einen gemäß dem Programmfluss aktuell auszuführenden oder ausgeführten Befehl repräsentiert, und eines vorangegangenen Signaturwertes; Ablegen (222) des Signaturwertes als Referenzwert an einer Ausleseposition (330) eines Stapelspeichers (110), wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses oder eine Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Ausleseposition (330) befindlicher vorangegangener Referenzwert von der Ausleseposition (330) auf eine Nachfolgeposition (332) verdrängt wird; Löschen (224) eines sich in dem Stapelspeicher (110) an der Ausleseposition (330) befindlichen Referenzwertes, wenn der aktuelle Befehl eine Beendigung eines nicht-linearen Ablaufs des Programmflusses oder eine Beendigung einer Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Nachfolgeposition (332) befindlicher Referenzwert auf die Ausleseposition (330) nachrückt; Durchführen (226) einer Vergleichsoperation zwischen dem Signaturwert und einem sich an einer Ausleseposition (330) des Stapelspeicher (110) befindlichen Referenzwertes, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.
  2. Verfahren gemäß Anspruch 1, mit einem Schritt des Zwischenspeicherns des im Schritt des Bestimmens bestimmten Signaturwertes in einem Signaturregister (334).
  3. Verfahren gemäß Anspruch 2, bei dem der Signaturwert im Schritt des Durchführens aus dem Signaturregister (334) eingelesen wird.
  4. Verfahren gemäß Anspruch 2, bei dem der Signaturwert im Schritt des Durchführens unter Umgehung des Signaturregisters (334) eingelesen wird.
  5. Verfahren gemäß einem der vorangegangenen Ansprüche, bei dem der nicht-lineare Ablauf des Programmflusses eine Unterbrechung des Programmflusses, einen Aufruf eines Unterprogramms, eine Schleife im Programmfluss oder einen Sprung in dem Programmfluss repräsentiert.
  6. Verfahren gemäß einem der vorangegangenen Ansprüche, mit einem Schritt des Anzeigens (228) des Zustands des Programmflusses unter Verwendung des Ergebnisses der Vergleichsoperation.
  7. Vorrichtung (106) zum Überwachen eines Programmflusses eines von einem Prozessor (102) ausführbaren Programmes, wobei die Vorrichtung (106) die folgenden Einrichtungen aufweist: eine Bestimmungseinrichtung (108) zum Bestimmen eines Signaturwertes unter Verwendung eines aktuellen Befehls des Programmflusses, wobei der aktuelle Befehl einen gemäß dem Programmfluss aktuell auszuführenden oder ausgeführten Befehl repräsentiert, und eines vorangegangenen Signaturwertes; einen Stapelspeicher (110) zum Speichern von Referenzwerten; eine Stapelspeicherverwaltungseinrichtung (112) zum Ablegen des Signaturwertes als Referenzwert an einer Ausleseposition (330) eines Stapelspeichers (110), wenn der aktuelle Befehl einen Beginn eines nicht-linearen Ablaufs des Programmflusses oder eine Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Ausleseposition (330) befindlicher vorangegangener Referenzwert von der Ausleseposition (330) auf eine Nachfolgeposition (332) verdrängt wird, und zum Löschen eines sich in dem Stapelspeicher (110) an der Ausleseposition befindlichen Referenzwertes, wenn der aktuelle Befehl eine Beendigung eines nicht-linearen Ablaufs des Programmflusses oder eine Beendigung einer Unterbrechung aufgrund einer Unterbrechungsanfrage anzeigt, wobei ein sich an der Nachfolgeposition (332) befindlicher Referenzwert auf die Ausleseposition (330) nachrückt; und eine Durchführungseinrichtung (114) zum Durchführen einer Vergleichsoperation zwischen dem Signaturwert und einem sich an einer Ausleseposition (330) des Stapelspeicher (110) befindlichen Referenzwertes, wenn der aktuelle Befehl einen Prüfpunkt repräsentiert, wobei ein Ergebnis der Vergleichsoperation einen Zustand des Programmflusses anzeigt.
  8. Prozessoreinrichtung (100) mit folgenden Merkmalen: einem Prozessor (102) zum Ausführen von Befehlen eines Programmflusses eines von dem Prozessor (102) ausführbaren Programmes; eine Vorrichtung (106) gemäß Anspruch 7 zum Überwachen des Programmflusses; und einen Programmspeicher (104) zum Speichern der Befehle des Programmflusses, wobei der Programmspeicher eine Schnittstelle zum Bereitstellen der Befehle an den Prozessor (102) und die Vorrichtung (106) aufweist.
  9. Computerprogramm, das dazu eingerichtet ist, das Verfahren gemäß einem der vorangegangenen Ansprüche auszuführen.
  10. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 9 gespeichert ist.
DE102015218386.6A 2015-09-24 2015-09-24 Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung Pending DE102015218386A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015218386.6A DE102015218386A1 (de) 2015-09-24 2015-09-24 Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015218386.6A DE102015218386A1 (de) 2015-09-24 2015-09-24 Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung

Publications (1)

Publication Number Publication Date
DE102015218386A1 true DE102015218386A1 (de) 2017-03-30

Family

ID=58281760

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015218386.6A Pending DE102015218386A1 (de) 2015-09-24 2015-09-24 Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung

Country Status (1)

Country Link
DE (1) DE102015218386A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010031017A1 (de) 2010-07-06 2012-01-12 Robert Bosch Gmbh Verfahren zur Überwachung des Programmablaufs eines Prozessors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010031017A1 (de) 2010-07-06 2012-01-12 Robert Bosch Gmbh Verfahren zur Überwachung des Programmablaufs eines Prozessors

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GALLA, T. u.a.: Control Flow Monitoring for a Time-Triggered Communication Controller. 10th European Workshop on Dependable Computing (EWDC-10). Mai 1999
SCHÜTTE, M.A. u.a.: Processor Control Flow Monitoring Using Signatured Instruction Streams. Computers, IEEE Transactions on, Vol.C-36, März 1987, S. 264 – 276

Similar Documents

Publication Publication Date Title
DE112017004962T5 (de) Steuerflussintegrität
EP1794680A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
DE102014117971B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102017213510A1 (de) Verfahren und Vorrichtung zum Erzeugen eines maschinellen Lernsystems, und virtuelle Sensorvorrichtung
DE102014115411A1 (de) Datenverarbeitungsanordnung und -verfahren zur sicherstellung der integrität der ausführung eines computerprogramms
DE102006006843B4 (de) Verfahren zum Antworten auf einen Steuermodulausfall
DE102018117509A1 (de) Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Überwachen einer Wirkkette eines Wirknetzes eines Fahrzeuges
DE102015218386A1 (de) Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
EP2990941B1 (de) Computerimplementiertes verfahren zur erzeugung eines steuergeräteprogrammcodes und diesbezügliche meldungsverwaltungsumgebung
EP1892639B1 (de) Sichere Programmcodeausführung
DE102004046288A1 (de) Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102015211458A1 (de) Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
DE102020210866A1 (de) Vorrichtung zur Erfassung und Verarbeitung einer Messgröße eines Sensors in einem Kraftfahrzeug
EP3388944A1 (de) Verfahren zur fehlererkennung in einem betriebssystem
DE102019219730A1 (de) Verfahren und Vorrichtung zur modellbasierten Analyse
DE112018006331T5 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
EP2634700A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms
DE102017214610A1 (de) Verfahren zum Überprüfen von zumindest einer Fahrzeugfunktion sowie Prüfvorrichtung
DE102018201710A1 (de) Verfahren und Vorrichtung zum Überprüfen einer Funktion eines neuronalen Netzes
DE102012010102A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE102021208954A1 (de) Verfahren und Vorrichtung zum Überwachen eines Betriebs mindestens einer elektrischen Last für ein Fahrzeug
DE102022210264A1 (de) Verfahren zur Erkennung von potenziellen Datenexfiltrationsangriffen bei wenigstens einem Softwarepaket
DE102009009171B4 (de) Vorrichtung und Verfahren zum Bereitstellen eines Triggers

Legal Events

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