AT15180U1 - RAM Bitfehler Detektion - Google Patents
RAM Bitfehler Detektion Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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)
- Ansprüche1. 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. Getriebe-Steuergerät mit einer Programmlogik nach Anspruch 1.
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) |
-
2015
- 2015-07-07 AT ATGM8015/2016U patent/AT15180U1/de not_active IP Right Cessation
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 |