AT15180U1 - RAM Bitfehler Detektion - Google Patents

RAM Bitfehler Detektion Download PDF

Info

Publication number
AT15180U1
AT15180U1 ATGM8015/2016U AT80152016U AT15180U1 AT 15180 U1 AT15180 U1 AT 15180U1 AT 80152016 U AT80152016 U AT 80152016U AT 15180 U1 AT15180 U1 AT 15180U1
Authority
AT
Austria
Prior art keywords
variable
ram
area
memory area
storage area
Prior art date
Application number
ATGM8015/2016U
Other languages
English (en)
Inventor
Brandl Harald
Original Assignee
Avl List 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 Avl List Gmbh filed Critical Avl List Gmbh
Priority to ATGM8015/2016U priority Critical patent/AT15180U1/de
Publication of AT15180U1 publication Critical patent/AT15180U1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Um Bitfehler in einem RAM-Bereich (RAM) eines Getriebe-Steuergeräts sicher zu detektieren, um im Falle der Detektion ein Fehlersignal ausgeben zu können, wird eine Programmlogik zum Ausgeben eines Fehlersignals bei Detektion eines Bitfehlers in einem RAM-Bereich eines Getriebe-Steuergeräts offenbart, wobei eine Ablaufvorschrift (P) auf zumindest eine, in einem Variablenspeicherbereich (VB) des RAM-Bereichs (RAM) des Getriebe-Steuergeräts gespeicherte Variable (V) zugreift, gekennzeichnet durch die folgenden Schritte: a)Kopieren des Inhalts des Variablenspeicherbereichs (VB) in einen Spiegelspeicherbereich (SB), wenn die Ablaufvorschrift (P) auf zumindest eine, in einem Variablenspeicherbereich (VB) des RAM-Bereichs (RAM) des Getriebe-Steuergeräts gespeicherte Variable (V) zugreift; b)Erstes Durchlaufen der Ablaufvorschrift (P), wobei die zumindest eine Variable (V) im Variablenspeicherbereich (VB) geändert wird; c)Zweites Durchlaufen der Ablaufvorschrift (P) unter Verwendung des Spiegelspeicherbereichs (SB), wobei die Kopie der zumindest einen Variablen (V) geändert wird; d)Vergleich des Inhalts des Variablenspeicherbereichs (VB) nach Schritt b) mit dem Inhalt des die Kopie der zumindest einen Variablen (V) beinhaltenden Speicherbereichs nach Schritt c); e)Ausgabe eines Fehlersignals, wenn der Vergleich gemäß Schritt d) einen Bitfehler in Form eines Unterschieds zwischen dem Variablenspeicherbereich (VB) und dem Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs ergibt. Zudem wird ein Getriebe-Steuergerät mit einer Programmlogik nach offenbart.

Description

Beschreibung
RAM BITFEHLER DETEKTION
[0001] Die gegenständliche Erfindung betrifft eine Programmlogik zum Ausgeben eines Fehlersignals bei Detektion eines Bitfehlers in einem RAM-Bereich eines Getriebe-Steuergeräts, wobei eine Ablaufvorschrift auf zumindest eine, in einem Variablenspeicherbereich des RAM-Bereichs des Getriebe-Steuergeräts gespeicherte Variable zugreift.
[0002] Ablaufvorschriften greifen in der Regel auf den RAM (Random Access Memory) zu, in welchem beispielsweise Variablen der Ablaufvorschrift während der Laufzeit der Ablaufvorschrift abgelegt und auch geändert werden. In vielen Anwendungen ist es wichtig Bitfehler im RAM zu detektieren, um eine sichere Funktion einer Ablaufvorschrift, bzw. eines Prozesses, der von der Ablaufvorschrift beeinflusst wird, sicherzustellen. Es gibt verschiedene Methoden einen RAM auf Bitfehler zu überprüfen. Es ist eine Hardwareprüfung durch beispielsweise ECC (Error-correcting code) Speicher üblich. Hierbei wird durch am RAM angebrachte zusätzliche Hardware sichergestellt, dass die geschriebenen Bits immer den gelesenen Bits entsprechen, was Abhilfe gegen viele Arten von Bitfehler leistet. Der große Nachteil solcher Hardwareprüfungen des RAMs ist zweifellos der große schaltungstechnische Aufwand und daraus entstehende Kosten. In den meisten Standardanwendungen, wie beispielsweise E-Mail oder Office-Anwendungen werden üblicherweise einzelne Bitfehler toleriert, da diese kein sicherheitsrelevantes Risiko darstellen.
[0003] In sicherheitskritischen Anwendungen können Bitfehler jedoch schwerwiegende Folgen haben, weswegen Fehler im RAM sicher detektiert werden müssen. Meistens wird eine Redundanz der Variablen in Form eines mehrfachen Abspeicherns durch die eigentliche Ablaufvorschrift softwaremäßig erzeugt. Dabei werden sicherheitskritische Variablen einfach redundant angelegt und von der Ablaufvorschrift geschrieben bzw. gelesen. Eine solche Redundanz kann aber mit herkömmlichen Compilern nicht erzeugt werden, da durch die im Compiler eingebauten Optimierungsmaßnahmen Redundanzen entfernt werden. Damit kann eine solche Redundanz zu Zwecken der Datensicherheit nicht auf Basis höherer Programmiersprachen erzeugt werden, sondern muss nachträglich in den compilierten, in Maschinencode vorliegenden Programmcode eingefügt werden. Alternativ können die Variablen als „volatile" deklariert werden, damit der Compiler keine Registerwerte, sondern den Speicher direkt verwendet. Sowohl das Verwenden dieser Variablendeklaration und damit verbundene zusätzlich notwendige einzuhaltende Richtlinien, als auch das Manipulieren des Programmcodes auf Compilerebene bedingen einerseits sehr gute Programmierkenntnisse qualifizierter Fachkräfte, und damit einhergehend andererseits einen hohen Zeitaufwand.
[0004] Aufgabe der vorliegenden Erfindung ist es auftretende Bitfehler in einem sicherheitsrelevanten RAM-Bereich eines Getriebe-Steuergeräts sicher zu detektieren, um im Falle der Detektion ein Fehlersignal ausgeben zu können.
[0005] Diese Aufgabe wird erfindungsgemäß durch folgende Schritte gelöst: [0006] a) Kopieren des Inhalts des Variablenspeicherbereichs in einen Spiegelspeicherbereich, wenn die Ablaufvorschrift auf zumindest eine, in einem Variablenspeicherbereich des RAM- Bereichs des Getriebe-Steuergeräts gespeicherte Variable zugreift; [0007] b) Erstes Durchlaufen der Ablaufvorschrift, wobei die zumindest eine Variable im Variab lenspeicherbereich geändert wird; [0008] c) Zweites Durchlaufen der Ablaufvorschrift unter Verwendung des Spiegelspeicherbe reichs (SB), wobei die Kopie der zumindest einen Variablen geändert wird; [0009] d) Vergleich des Inhalts des Variablenspeicherbereichs nach Schritt mit dem Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs nach Schritt c); [0010] e) Ausgabe eines Fehlersignals, wenn der Vergleich gemäß Schritt d) einen Bitfehler in
Form eines Unterschieds zwischen dem Variablenspeicherbereich und dem Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs ergibt.
[0011] Die Aufgabe wird zudem durch ein Getriebe-Steuergerät mit einer Programmlogik nach den oben beschriebenen Schritten gelöst.
[0012] Somit können transiente Bitfehler im RAM-Speicher des Getriebe-Steuergeräts detektiert werden, da die Ablaufvorschrift zu verschiedenen Zeitpunkten auf verschiedenen Speicherbereichen abgearbeitet wird. Transiente Bitfehler basieren nicht auf physikalischen Defekten, sondern liegen beispielsweise elektromagnetischen Störungen zugrunde.
[0013] Eine Ablaufvorschrift greift auf zumindest eine, in einem Variablenspeicherbereich eines RAM-Bereichs gespeicherte Variable zu, der Inhalt des Variablenspeicherbereichs wird in einen Spiegelspeicherbereich kopiert, danach die Ablaufvorschrift ein erstes Mal abgearbeitet, wobei die zumindest eine Variable im Variablenspeicherbereich geändert wird, die Ablaufvorschrift ein zweites Mal unter Verwendung des Spiegelspeicherbereichs abgearbeitet, wobei die Kopie der zumindest einen Variable geändert wird und der Inhalt des Variablenspeicherbereichs nach dem ersten Abarbeiten der Ablaufvorschrift mit dem Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs nach dem zweiten Abarbeiten der Ablaufvorschrift verglichen und ein Bitfehler dann detektiert, wenn sich der Variablenspeicherbereich und der Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs unterscheiden.
[0014] Vorteilhafterweise wird ein Fehlersignal ausgegeben, wenn der Inhalt des Variablenspeicherbereichs und der Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs nicht identisch sind.
[0015] Eine mögliche Realisierung des Verfahrens ist es die Abarbeitungen der Ablaufvorschrift sequentiell durchzuführen.
[0016] Es ist aber auch möglich die erste Abarbeitung der Ablaufvorschrift und die zweite Abarbeitung der Ablaufvorschrift parallel durchzuführen. Dies ist insbesondere bei Verwendung von Getriebe-Steuergeräten, welche Mehrkernprozessoren aufweisen vorteilhaft und kann den gesamten Prozess der Fehlerdetektion beschleunigen.
[0017] Im Falle sequentieller Abarbeitungen der Ablaufvorschrift kann nach der ersten Abarbeitung der Ablaufvorschrift und vor der zweiten Abarbeitung der Ablaufvorschrift der Inhalt des Variablenspeicherbereichs aus dem Spiegelspeicherbereich wiederhergestellt werden. Die zweite Abarbeitung der Ablaufvorschrift erfolgt dann auf dem Variablenspeicherbereich, nachdem die Kopie der zumindest einen Variable im Variablenspeicherbereich wiederhergestellt wurde, was ermöglicht transiente Fehler zu detektieren.
[0018] Für die Detektion von permanenten Bitfehlern ist daher in dieser Variation ein zusätzlicher Test, ein sogenannter March-Test, notwendig. Dieser March-Test schreibt vorgegebene oder errechnete Muster in einer bestimmten Reihenfolge in einem oder mehreren Durchgängen in den Variablenspeicherbereich. Vorteilhafterweise wird somit jedes Bit mindestens einmal mit einem O-Bit und einem 1 -Bit beschrieben und nach der jeweiligen Beschreibung ausgelesen. March-Tests dienen dazu, permanente Bitfehler, wie „hängengebliebene“ 0-Bits oder „hängengebliebene“ 1 -Bits zu detektieren. Der March-Test wird in dieser Variation des Verfahrens somit nach dem ersten Abarbeiten der Ablaufvorschrift durchgeführt. Nach Durchführung des March-Tests wird der Inhalt des Variablenspeicherbereichs, welcher vor dem ersten Ablauf der Ablaufvorschrift vorhanden war rekonstruiert, indem der Inhalt des Zwischenspeicherbereichs herangezogen wird. Anschließend wird die Ablaufvorschrift das zweite Mal abgearbeitet. Das Detektieren transienter Fehler erfolgt wie oben beschrieben mittels Vergleich des Inhalt des Variablenspeicherbereichs nach der ersten Abarbeitung der Ablaufvorschrift und des Inhalts des Variablenspeicherbereichs nach der zweiten Abarbeitung der Ablaufvorschrift.
[0019] Vorteilhafterweise kann bei Diagnostizierung eines Fehlers durch den March-Test ein
Fehlersignal ausgegeben werden, um einen permanenten Bitfehler zu signalisieren.
[0020] Eine weitere vorteilhafte Variation des Verfahrens führt nach Kopie des Inhalts des Variablenspeicherbereichs in den Spiegelspeicherbereich, die erste Abarbeitung der Ablaufvorschrift auf den Variablenspeicherbereich und die zweite Abarbeitung der Ablaufvorschrift auf den Spiegelspeicherbereich durch. Diese Abarbeitungen können parallel oder sequentiell erfolgen. Nach Vergleich der Inhalte des Variablenspeicherbereichs und des Spiegelspeicherbereichs nach jeweiligen Abarbeitungen der Ablaufvorschrift können Bitfehler bei Nichtüberein-stimmen der Inhalte detektiert werden. Hierbei sind sowohl transiente, als auch permanente Bitfehler detektierbar.
[0021] Vorteilhafterweise wird der Vergleich des Inhalts des Variablenspeicherbereichs nach der ersten Abarbeitung der Ablaufvorschrift und des Inhalts des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs nach der zweiten Abarbeitung der Ablaufvorschrift durch einen Vergleich der Checksummen durchgeführt. Durch die Bildung von Checksummen ist bei einem Speichern oder Senden, wie beispielsweise über einen CAN-Bus, dieser Checksummen weniger Speicherplatz vonnöten, bzw. sind weniger Daten zu übertragen, als wie wenn die gesamten Inhalte der Speicherbereiche zwischengespeichert bzw. übertragen werden würden. Die Bildung der Checksumme des Inhalts des Variablenspeicherbereichs nach der ersten Abarbeitung der Ablaufvorschrift und die Bildung der Checksumme des Inhalts des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs nach der zweiten Abarbeitung der Ablaufvorschrift kann ebenfalls sequentiell oder parallel erfolgen.
[0022] Vorteilhafterweise erfolgt das Bilden der Checksummen über den gesamten Inhalt des Variablenspeicherbereichs und die Bildung der Checksumme über den gesamten die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs.
[0023] Zur Durchführung des erfindungsgemäßen Verfahrens kann darüber hinaus ein Überwachungsprogramm implementiert sein. Das Überwachungsprogramm ruft die Ablaufvorschrift auf und steuert beispielsweise die Abarbeitungen, Speicherzugriffe, Checksummenbildung usw.
[0024] Im Falle eines detektierten Bitfehlers können Aktionen gesetzt werden, wie beispielsweise der Aufruf eines Interrupts oder die Durchführung eines Resets. Damit kann eine entsprechende, auf die jeweilige Anwendung angepasste Fehlerbehandlung eingeleitet werden, da ein Weiterarbeiten mit ungültigem Speicher zu unvorhersehbaren Reaktionen führen kann.
[0025] Die gegenständliche Erfindung wird nachfolgend unter Bezugnahme auf die Fig. 1 und 2 näher erläutert, welche beispielhaft, schematisch und nicht einschränkend vorteilhafte Ausgestaltungen der Erfindung zeigen. Dabei zeigt [0026] Fig.1 das Flussdiagramm der Verfahrensschritte und die zugehörigen Speicherinhalte einer ersten Ausgestaltung, [0027] Fig.2 das Flussdiagramm der Verfahrensschritte und die zugehörigen Speicherinhalte einer zweiten Ausgestaltung.
[0028] Die Erfindung beruht auf dem Grundgedanken, dass eine Ablaufvorschrift P, die auf eine sicherheitskritische Variable V in einem Variablenspeicherbereich VB in einem RAM- Speicher RAM zugreift, wobei die Ablaufvorschrift P zumindest zweimal abgearbeitet wird und nach jedem Abarbeiten die Speicherbereiche, auf denen die Ablaufvorschrift P abgearbeitet wurde, untersucht werden, um so Bitfehler zu detektieren. Um Bitfehler erkennen zu können, wird der Inhalt des Variablenspeicherbereichs VB zuerst in einem Spiegelspeicherbereich SB kopiert und die Ablaufvorschrift P einmal auf dem Variablenspeicherbereich VB abgearbeitet und ein zweites Mal unter Verwendung des Spiegelspeicherbereiches SB. Wenn keine Bitfehler im RAM-Speicher RAM auftreten, muss der Inhalt der Speicherbereiche, die von der Ablaufvorschrift P beeinflusst werden, bei beiden Abarbeitungen der Ablaufvorschrift P gleich sein. Der Variablenspeicherbereich VB und der Spiegelspeicherbereich SB müssen aber nicht unbedingt im selben physischen RAM-Speicher liegen.
[0029] Die vorliegende Erfindung wird nachfolgend im Detail anhand zweier Ausgestaltungen beschrieben. Die erste Ausgestaltung wird mit Bezugnahme auf die Fig.1 beschrieben. Auf der linken Seite ist ein Flussdiagramm der Verfahrensschritte abgebildet, rechts davon ist der Inhalt des Variablenspeicherbereichs VB und des Spiegelspeicherbereichs SB als Teil des RAM-Speichers RAM nach dem jeweiligen Verfahrensschritt abgebildet. Eine zweite Ausgestaltung ist der Fig.2 abgebildet, wobei analog die Verfahrensschritte und Speicherinhalte dargestellt sind.
[0030] Das erste und das zweite Abarbeiten der Ablaufvorschrift P kann sowohl sequentiell als auch parallel erfolgen. Insbesondere bei der Verwendung von Getriebe-Steuergeräten mit Mehrprozessorrechnern oder Mehrkernprozessoren, ist eine zumindest teilweise parallele Abarbeitung zielführend.
[0031] In der ersten Ausgestaltung nach Fig.1 erfolgen sequentielle Abarbeitungen der Ablaufvorschrift P. Es wird also im Verfahrensschritt 1 die Ablaufvorschrift P aufgerufen, wobei die Variable V bereits im Variablenspeicherbereich VB angelegt ist. Im Verfahrensschritt 2 wird der Inhalt des Variablenspeicherbereichs VB in Form der zumindest einen Variablen V vor der ersten Abarbeitung der Ablaufvorschrift P in einen Spiegelspeicherbereich SB kopiert. Somit enthält der Spiegelspeicherbereich SB die Kopie der zumindest einen Variablen V. Durch das erstmalige Abarbeiten der Ablaufvorschrift P im Verfahrensschritt 3 ändert sich der Inhalt des Variablenspeicherbereichs VB und damit die zumindest eine Variable von V auf V‘. Danach wird der Inhalt des Variablenspeicherbereichs VB, also die zumindest eine Variable V‘ festgestellt und gespeichert, im vorliegenden Ausführungsbeispiel durch das Erstellen einer Checksumme CSV im Verfahrensschritt 4 über zumindest einen Teil des geänderten Inhalts des Variablenspeicherbereichs VB mit der geänderten zumindest einen Variable V‘. Die Speicherung der Checksumme CSV entspricht dann dem Verfahrensschritt 5. Des Weiteren wird im Verfahrensschritt 6, der Inhalt, der sich im Verfahrensschritt 2 im Variablenspeicherbereich VB befunden hatte, also die Variable V aus dem Spiegelspeicherbereich SB in den Variablenspeicherbereich VB wiederhergestellt. Damit ist die Kopie des ursprünglichen Inhalts des Variablenspeicherbereichs VB wieder im Variablenspeicherbereich VB enthalten. Die zweite Abarbeitung der Ablaufvorschrift P erfolgt damit im Verfahrensschritt 7 unter Verwendung des Spiegelspeicherbereichs SB. Durch die zweite Abarbeitung der Ablaufvorschrift P wird damit die Kopie des Variablenspeicherbereichs VB, also die zumindest eine Variable V auf die zumindest eine Variable V“ verändert. Es stellt also der Variablenspeicherbereich VB selbst den Speicherbereich dar, der die Kopie der zumindest einen Variablen V beinhaltet. Nun kann der Inhalt des Variablenspeicherbereichs VB, wie in Schritt 5 erneut festgestellt und gespeichert werden. Im vorliegenden Ausführungsbeispiel erfolgt dies wieder durch das Erstellen einer Checksumme CSX über zumindest einen Teil des Inhalts des Variablenspeicherbereichs VB mit der zumindest einen Variablen V“ im Verfahrensschritt 8. Die beiden Inhalte können im Verfahrensschritt 9 mittels der Checksummen CSV, CSX auf Identität verglichen werden. Durch diese Ausführung können im Verfahrensschritt 9 transiente Bitfehler detektiert werden, wenn sich die Checksummen CSV, CSX unterscheiden. Natürlich ist auch ein bitweiser Vergleich zumindest von Teilen der Inhalte, des Variablenspeicherbereichs VB zu den jeweiligen Verfahrensschritten oder auch eine andere geeignete Methode zur Bestimmung des Inhalts des Variablenspeicherbereichs VB, denkbar.
[0032] Vorteilhafterweise erfolgt die Bildung der Checksumme CSV über den gesamten Variablenspeicherbereich VB und die Bildung der Checksumme CSX über den gesamten die Kopie der zumindest einen Variablen beinhaltenden Speicherbereich.
[0033] Um auch permanente Bitfehler detektieren zu können, kann in dieser ersten Ausgestaltung zusätzlich ein optionaler March-Test durchgeführt werden. Bei diesem March-Test wird idealerweise jedes Bit des Variablenspeicherbereichs VB mindestens einmal mit eine 0-Bit überschrieben und mindestens einmal mit einem 1 -Bit überschrieben. Diese Überschreibung kann in vorgegebenen Mustern erfolgen und hilft „hängengebliebene“ 0-Bits oder „hängengebliebene“ 1 -Bits zu detektieren. Der March-Test wird nach dem Verfahrensschritt 5 und vor dem Verfahrensschritt 6 durchgeführt, in Fig.1 als Verfahrensschritt 5a bezeichnet und kann optional angewendet werden.
[0034] Eine zweite Ausgestaltung der Erfindung nach Fig.2 kann ebenfalls bei sequentiellen oder parallelen Abarbeitungen der Ablaufvorschrift P erfolgen. In dieser vorteilhaften Ausgestaltung wird die zweite Abarbeitung der Ablaufvorschrift P direkt auf den Spiegelspeicherbereich SB ausgeführt.
[0035] Im Verfahrensschritt 1 wird die Ablaufvorschrift P aufgerufen, wobei die Variable V bereits im Variablenspeicherbereich VB angelegt ist. Der Inhalt des Variablenspeicherbereichs VB wird im Verfahrensschritt 2 vor der ersten Abarbeitung der Ablaufvorschrift P in einen Spiegelspeicherbereich SB kopiert. Es befindet sich somit die Kopie der zumindest einen Variablen V im Spiegelspeicherbereich SB. Durch die erste Abarbeitung der Ablaufvorschrift P im Verfahrensschritt 3 ändert sich der Inhalt des Variablenspeicherbereichs VB und somit die zumindest eine Variable V auf die zumindest eine Variable V‘. Die zweite Abarbeitung der Ablaufvorschrift P erfolgt wieder unter Verwendung des Spiegelspeicherbereichs SB und ist in Fig.2 im Verfahrensschritt 3a zwar parallel dargestellt, kann aber auch sequentiell zum Verfahrensschritt 3 erfolgen. Parallel bedeutet, dass das erstmalige und zweite Abarbeiten der Ablaufvorschrift P zumindest teilweise gleichzeitig erfolgen kann, z.B. auf verschiedenen Prozessorkernen eines Mehrkernprozessors des Getriebe-Steuergeräts, auf verschiedenen Prozessoren, auf verteilten Rechnersystemen, etc. Durch die zweite Abarbeitung der Ablaufvorschrift P unter Verwendung des Spiegelspeicherbereichs SB, ändert sich die Kopie der zumindest einen Variable V auf die zumindest eine Variable V“. Der Vergleich des Inhalts, der sich nach dem ersten Abarbeiten der Ablaufvorschrift P im Variablenspeicherbereich VB befindet, mit dem Inhalt, der sich nach dem zweiten Abarbeiten der Ablaufvorschrift P im Spiegelspeicherbereich SB befindet, also in vorliegendem Beispiel ein Vergleich der Variable V‘ mit der Variable V“, kann wiederum derart erfolgen, dass im Verfahrensschritt 4 eine Checksumme CSV über den Inhalt des Variablenspeicherbereichs VB und im Verfahrensschritt 4a eine Checksumme CSX über den Inhalt des Spiegelspeicherbereichs SB gebildet wird. Die Verfahrensschritte 4 und 4a sind in der Fig.2 parallel dargestellt, können aber auch seriell erfolgen. Die Checksummen CSV, CSX werden im Verfahrensschritt 5 verglichen. Wird eine Unterscheidung der Checksummen CSV, CSX festgestellt, so wird ein Bitfehler im RAM-Speicher RAM detektiert. Das Senden der Checksummen CSV, CSX an eine Überwachungseinheit, in der auch der Vergleich erfolgen kann, kann über einen Bus, z.B. einen CAN-Bus, erfolgen. Gleichfalls ist wiederum ein bitweiser Vergleich der Inhalte des Variablenspeicherbereichs VB und des Spiegelspeicherbereich SB, und damit ein bitweiser Vergleich der sicherheitsrelevanten zumindest einen Variablen V’ mit der zumindest einen Variablen V“, nach den beiden Abarbeitungen der Ablaufvorschrift P denkbar.
[0036] Falls ein Bitfehler detektiert wurde kann vorteilhafterweise ein Fehlersignal erzeugt und gegebenenfalls auch ausgegeben werden. Das Fehlersignal kann auch dazu führen, dass das Abarbeiten der Ablaufvorschrift P unterbrochen wird oder dass ein sicherer Zustand herbeigeführt wird.
[0037] Zur Durchführung des erfindungsgemäßen Verfahrens kann ein Überwachungsprogramm implementiert sein, das beispielsweise in einer Überwachungseinheit abgearbeitet wird. Das Überwachungsprogramm sorgt einerseits für die oben beschriebenen Kopiervorgänge bzw. Wiederherstellvorgänge der benötigen Speicherbereiche des RAM-Speichers RAM. Andererseits veranlasst das Überwachungsprogramm auch das zweimalige Abarbeiten der Ablaufvorschrift P, beispielsweise einfach durch herkömmliche Software gesteuerte Aufrufe der Ablaufvorschrift P ähnlich zu Prozeduraufrufen. Das Überwachungsprogramm kann auch die Inhalte der Speicherbereiche wie oben beschrieben ermitteln und miteinander vergleichen.
[0038] Je nach Ergebnis kann das Überwachungsprogramm dann verschiedene Aktionen setzen, wie beispielsweise das Auslösen eines Interrupts oder eines Resets im Falle eines erkannten Bitfehlers. Damit könnten durch verschiedene Interrupts und den zugeordneten Interruptabhandlungsroutinen auch verschiedene Fehlermaßnahmen gesetzt werden.

Claims (2)

  1. Ansprüche
    1. Programmlogik zum Ausgeben eines Fehlersignals bei Detektion eines Bitfehlers in einem RAM-Bereich eines Getriebe-Steuergeräts, wobei eine Ablaufvorschrift (P) auf zumindest eine, in einem Variablenspeicherbereich (VB) des RAM-Bereichs (RAM) des Getriebe-Steuergeräts gespeicherte Variable (V) zugreift, gekennzeichnet durch die folgenden Schritte: a) Kopieren des Inhalts des Variablenspeicherbereichs (VB) in einen Spiegelspeicherbereich (SB), wenn die Ablaufvorschrift (P) auf zumindest eine, in einem Variablenspeicherbereich (VB) des RAM-Bereichs (RAM) des Getriebe-Steuergeräts gespeicherte Variable (V) zugreift; b) Erstes Durchlaufen der Ablaufvorschrift (P), wobei die zumindest eine Variable (V) im Variablenspeicherbereich (VB) geändert wird; c) Zweites Durchlaufen der Ablaufvorschrift (P) unter Verwendung des Spiegelspeicherbereichs (SB), wobei die Kopie der zumindest einen Variablen (V) geändert wird; d) Vergleich des Inhalts des Variablenspeicherbereichs (VB) nach Schritt b) mit dem Inhalt des die Kopie der zumindest einen Variablen (V) beinhaltenden Speicherbereichs nach Schritt c); e) Ausgabe eines Fehlersignals, wenn der Vergleich gemäß Schritt d) einen Bitfehler in Form eines Unterschieds zwischen dem Variablenspeicherbereich (VB) und dem Inhalt des die Kopie der zumindest einen Variablen beinhaltenden Speicherbereichs ergibt.
  2. 2. Getriebe-Steuergerät mit einer Programmlogik nach Anspruch 1.
ATGM8015/2016U 2015-07-07 2015-07-07 RAM Bitfehler Detektion AT15180U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ATGM8015/2016U AT15180U1 (de) 2015-07-07 2015-07-07 RAM Bitfehler Detektion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ATGM8015/2016U AT15180U1 (de) 2015-07-07 2015-07-07 RAM Bitfehler Detektion

Publications (1)

Publication Number Publication Date
AT15180U1 true AT15180U1 (de) 2017-02-15

Family

ID=57984708

Family Applications (1)

Application Number Title Priority Date Filing Date
ATGM8015/2016U AT15180U1 (de) 2015-07-07 2015-07-07 RAM Bitfehler Detektion

Country Status (1)

Country Link
AT (1) AT15180U1 (de)

Similar Documents

Publication Publication Date Title
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
EP2466466B1 (de) Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
EP3841438B1 (de) Automatisierungssystem zur überwachung eines sicherheitskritischen prozesses
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
EP3271856B1 (de) Verfahren und vorrichtung zum verarbeiten und übertragen von daten innerhalb eines funktional sicheren elektrischen, elektronischen und/oder programmierbar elektronischen systems
DE102016215345A1 (de) Verfahren und Vorrichtung zur redundanten Datenverarbeitung
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
EP2085883A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
EP3614268B1 (de) Verfahren und vorrichtung zum verarbeiten von daten mittels codierter operationen
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
AT515341B1 (de) Verfahren zur Überprüfung der Abarbeitung von Software
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
AT15180U1 (de) RAM Bitfehler Detektion
DE102004051966A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102006035662A1 (de) Datenverarbeitungseinrichtung und Verfahren zum Überwachen des korrekten Betriebs einer Datenverarbeitungseinrichtung
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
WO2016050857A1 (de) Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist und datenverarbeitungsanordnungen zum erzeugen von programm-code
WO2016206847A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
DE102004051967A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
AT15189U1 (de) Überwachung von Stack-Variablen
DE102022207612A1 (de) Computer-implementiertes Verfahren zur Verifikation einer Softwarekomponente einer automatisierten Fahrfunktion
DE102021209038A1 (de) Verfahren zum automatischen Erkennen und Korrigieren von Speicherfehlern in einem sicheren mehrkanaligen Rechner
DE102017005974A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung der Datennutzung außerhalb ihres Gültigkeitszeitraums in Datenverarbeitungseinheiten
WO2022069154A1 (de) Verfahren zur protokollierung einer vielzahl von ereignissen in einer codierten tracer-variablen in einem sicherheitsgerichteten computerprogramm

Legal Events

Date Code Title Description
MM01 Lapse because of not paying annual fees

Effective date: 20180731