-
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer nicht-flüchtige Speichereinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
In nicht-flüchtigen Speichereinheiten, beispielsweise Flashspeicher, EEPROM, usw., können Daten dauerhaft gespeichert werden, auch wenn die Speichereinheit nicht mit elektrischer Energie versorgt wird. Dennoch kann es auch in nicht-flüchtigen Speichereinheiten zu einem Verlust von Daten kommen, beispielsweise durch Hardwarefehler der Speichereinheit oder beispielsweise durch eine Unterbrechung der Spannungsversorgung oder einen Systemneustart während einer Schreiboperation. Ferner kann in einer nicht-flüchtigen Speichereinheit zumeist nur eine begrenzte Anzahl von Schreiboperationen durchgeführt werden, bis Daten nicht mehr dauerhaft hinterlegt werden können.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund werden ein Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit sowie eine die Speichereinheit aufweisende Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung versieht in der nicht-flüchtigen Speichereinheit gespeicherte Nutzdaten sowohl mit einem Prüfwert (meist auch als Prüfsumme bezeichnet) als auch einem Zählerwert, der vor jedem Schreibvorgang des Zählerwerts inkrementiert wird. Ist das Inkrement Eins und der Startzählerwert Null, entspricht der Zählerwert direkt der Anzahl der Schreibvorgänge; dies ist jedoch beliebig.
-
In die Rechenvorschrift zur Ermittlung des Prüfwerts gehen sowohl die Nutzdaten als auch der Zählerwert ein. Somit kann bei jedem Auslesen festgestellt werden, ob der ausgelesene Datensatz enthaltend die Nutzdaten, den Prüfwert und den Zählerwert konsistent ist. Als Fehlerkorrekturverfahren bzw. Fehlererkennungsverfahren zur Berechnung des Prüfwerts kann ein beliebiges geeignetes Fehlerkorrekturverfahren, etwa ein Hamming-Code, verwendet werden. Solche Verfahren sind dem Fachmann an sich bekannt.
-
Im Einzelnen sind in der nicht-flüchtigen Speichereinheit die Nutzdaten, sowie der die Nutzdaten betreffende Prüfwert und der die Anzahl der Schreibvorgänge des Zählerwerts betreffende Zählerwert hinterlegt. Insbesondere sind einzelne Nutzdaten jeweils in einem bestimmten Speicherbereich oder Speichereintrag bzw. an einer bestimmten Speicheradresse zusammen mit dem entsprechenden Prüfwert und dem entsprechenden Zählerwert hinterlegt.
-
Zu Beginn einer Betriebsphase der nicht-flüchtigen Speichereinheit wird in Abhängigkeit von dem hinterlegten Prüfwert und von dem hinterlegten Zählerwert eine Überprüfung der nicht-flüchtigen Speichereinheit durchgeführt, insbesondere dahingehend, ob die hinterlegten Nutzdaten korrekt sind, ferner insbesondere ob die nicht-flüchtige Speichereinheit beschreibbar ist. In Abhängigkeit von einem Ergebnis dieser Überprüfung wird die nicht-flüchtige Speichereinheit freigegeben oder eine Fehlermaßnahme wird durchgeführt.
-
Vorzugsweise entspricht eine Betriebsphase der Phase von einem Einschalten der Recheneinheit bis zu ihrem Ausschalten; jedoch kann sie auch kürzer oder länger sein. Beispielsweise kann eine Betriebsphase auch immer dann enden, wenn sich die Nutzdaten geändert haben, und anschließend eine neue beginnen.
-
Wenn im Zuge der Überprüfung bestimmt wird, dass die hinterlegten Nutzdaten korrekt sind und dass ferner die Speichereinheit insbesondere beschreibbar ist, wird die Speichereinheit zweckmäßigerweise für den regulären Betrieb während der Betriebsphase freigegeben. Wenn hingegen bestimmt wird, dass die hinterlegten Nutzdaten nicht korrekt sind oder dass die Speichereinheit nicht beschreibbar ist, wird als vorgegebene Fehlermaßnahme beispielsweise eine die Speichereinheit aufweisende Recheneinheit in einen sicheren Zustand überführt.
-
So kann zu Beginn einer jeden Betriebsphase überprüft werden, ob die Integrität der jeweiligen Nutzdaten seit der letzten Betriebsphase gewahrt ist. Ferner kann überprüft werden, ob eine Funktionalität der Speichereinheit gegeben ist und ob neue Nutzdaten in die Speichereinheit geschrieben und von dieser korrekt gespeichert werden können oder ob beispielsweise aufgrund eines Hardwaredefekts Schreiboperationen nicht mehr korrekt durchgeführt werden können. Die Erfindung eignet sich vorteilhaft für Anwendungen, bei denen in der nicht-flüchtigen Speichereinheit für den Betrieb der Recheneinheit benötigte Nutzdaten hinterlegt sind, die jeweils zu Beginn einer Betriebsphase, beispielsweise bei Inbetriebnahme (Einschalten) der Recheneinheit, gelesen werden, die sich während der Betriebsphase ändern können (auch mehrmals), und die am Ende der Betriebsphase, beispielsweise beim Ausschalten der Recheneinheit, wieder gespeichert werden, um für die nächsten Betriebsphase wieder zur Verfügung zu stehen.
-
Zweckmäßigerweise wird die Überprüfung im Zuge eines Hochfahrens bzw. Aufstartens einer die Speichereinheit aufweisenden Recheneinheit durchgeführt. Somit kann die Speichereinheit bei jedem Hochfahren der entsprechenden Recheneinheit zweckmäßigerweise auf Nutzdatenintegrität und korrekte Funktionalität hin überprüft werden. Beispielsweise bietet sich das vorliegende Verfahren dabei besonders an, wenn in der nicht-flüchtigen Speichereinheit sicherheitsrelevante Nutzdaten bzw. für den sicheren Betrieb der Recheneinheit bedeutende Nutzdaten hinterlegt werden.
-
Vorteilhafterweise wird in Abhängigkeit von den hinterlegten Nutzdaten und von dem hinterlegten Zählerwert ein aktueller Prüfwert bestimmt. Im Zuge eines Prüfwertvergleichs wird vorteilhafterweise dieser aktuelle Prüfwert mit dem hinterlegten Prüfwert verglichen. Zu Beginn einer Betriebsphase sollte nämlich dieser aktuelle Prüfwert mit dem hinterlegten Prüfwert übereinstimmen. Sollte dies nicht der Fall sein, kann dies auf mangelnde Nutzdatenintegrität oder einen Fehler der Speichereinheit hin deuten.
-
Wenn im Zuge des Prüfiniertvergleichs bestimmt wird, dass der aktuelle Prüfwert und der hinterlegte Prüfwert nicht übereinstimmen, wird vorteilhafterweise im Zuge einer Nutzdatenverifikation überprüft, ob die hinterlegten Nutzdaten korrekt oder fehlerhaft sind. Insbesondere wird im Zuge der Nutzdatenverifikation die Integrität der Nutzdaten überprüft. Nicht übereinstimmende Prüfwerte müssen nicht zwangsweise eine mangelnde Nutzdatenintegrität bedeuten. Wenn es beispielsweise aufgrund eines Zurücksetzens oder einer Unterbrechung der Spannungsversorgung zu einem irregulären Neustart der Recheneinheit kommt, kann gegebenenfalls der Prüfwert nicht korrekt abhängig von den jeweiligen aktuellen Nutzdaten und dem jeweiligen aktuellen Zählerwert aktualisiert worden sein. Somit kann im Zuge der nächsten Betriebsphase der Speichereinheit durch den nicht bestandenen Prüfwertvergleich automatisch die Nutzdatenverifikation ausgelöst werden und es kann überprüft werden, ob trotz des irregulären Neustarts die Nutzdatenintegrität gewahrt ist. Besonders zweckmäßig kann im Zuge der Nutzdatenverifikation überprüft werden, ob die hinterlegten Nutzdaten früher in einer vorhergehenden Betriebsphase der Speichereinheit als fehlerfrei bzw. gültig erkannten Nutzdaten entsprechen. Besonders zweckmäßig kann im Zuge der Nutzdatenverifikation überprüft werden, ob zuletzt gültige Nutzdaten wiederhergestellt werden können bzw. es kann eine Entprellung der Nutzdaten vorgenommen werden.
-
Gemäß einer besonders bevorzugten Ausführungsform wird die Nutzdatenverifikation durchgeführt, indem der aktuelle Prüferwert mit unterschiedlichen Zählerwerten berechnet wird. Insbesondere wird dazu der die Nutzdaten betreffende, hinterlegte Zählerwert dekrementiert, um einen aktuellen Zählerwert zu bilden, und erneut ein aktueller Prüfwert in Abhängigkeit von den hinterlegten Nutzdaten und von dem aktuellen Zählerwert bestimmt, also von dem entsprechend dekrementierten hinterlegten Zählerwert. Vorzugsweise wird im Zuge eines erneuten Prüfwertvergleichs dieser erneut bestimmte aktuelle Prüfwert mit dem hinterlegten Prüfwert verglichen. Insbesondere wird somit im Zuge des erneuten Prüfiniertvergleichs überprüft, ob die hinterlegten Nutzdaten den im Zuge der letzten Betriebsphase als korrekt befundenen Nutzdaten entsprechen.
-
Um die Anzahl der Nutzdatenverifikationsversuche zu bestimmen, wird vorzugsweise jedes Mal, wenn der der die Nutzdaten betreffende, hinterlegte Zählerwert dekrementiert wird, ein zweiter Zählerwert inkrementiert. Zweckmäßigerweise stellt dieser zweite Zählerwert somit eine Art Entprellungszählerwert bzw. Fehlerzählerwert dar, welcher insbesondere charakterisiert, wir oft die Integrität der hinterlegten Nutzdaten überprüft wurde. Der zweite Zählerwert kann zweckmäßigerweise zu Beginn der Nutzdatenverifikation den Wert null besitzen. Wird dieser zweite Zählerwert zu groß, deutet dies auf einen Fehler der Speichereinheit hin.
-
Eine besonders einfache Implementierung der Nutzdatenverifikation wird erreicht, wenn der hinterlegte Zählerwert bei jedem Korrekturversuch um den aktuellen Wert des zweiten Zählerwerts dekrementiert wird, um den neuen aktuellen Zählerwert zu bilden.
-
Besonders vorteilhaft wird die Nutzdatenverifikation so oft durchgeführt, bis entweder im Zuge des jeweiligen erneuten Prüfwertvergleichs bestimmt wird, dass der aktuelle Prüfwert mit dem hinterlegten Prüfwert übereinstimmt, oder bis der zweite Zählerwert einen Schwellwert erreicht. Wenn also der erneute Prüfwertvergleich negativ ausfällt, wird vorzugsweise abermals der zweite Zählerwert inkrementiert, der die Nutzdaten betreffende hinterlegte Zählerwert dekrementiert und ein entsprechender Prüfwertvergleich durchgeführt. Insbesondere gibt dieser Schwellwert vor, wie viele Durchläufe der Nutzdatenverifikation maximal durchgeführt werden sollen, bevor ein Fehler festgestellt wird.
-
Bevorzugt wird bestimmt, dass die hinterlegten Nutzdaten korrekt sind, wenn der aktuelle Prüfwert mit dem hinterlegten Prüfwert übereinstimmt. Insbesondere liegt in diesem Fall ein Fehler (nur) des hinterlegten Zählerwerts vor, beispielsweise aufgrund eines irregulären Neustarts der jeweiligen Recheneinheit. Wenn der zweite Zählerwert hingegen den Schwellwert erreicht, wird vorzugsweise bestimmt, dass die hinterlegten Nutzdaten fehlerhaft sind. Wenn somit eine bestimmte Anzahl an Nutzdatenverifikationsdurchläufen durchgeführt wurde, wird zweckmäßigerweise davon ausgegangen, dass die hinterlegten Nutzdaten fehlerhaft sind.
-
Vorzugsweise wird die vorgegebene Fehlermaßnahme durchgeführt, wenn im Zuge der Nutzdatenverifikation bestimmt wird, dass die hinterlegten Nutzdaten fehlerhaft sind. In diesem Fall kann beispielsweise ein Hardwarefehler der Speichereinheit vorliegen und als Fehlermaßnahme kann die jeweilige Recheneinheit beispielsweise in einen sicheren Zustand überführt werden. Wenn hingegen im Zuge der Nutzdatenverifikation bestimmt wird, dass die hinterlegten Nutzdaten korrekt sind, wird vorzugsweise im Zuge einer Beschreibbarkeitsüberprüfung überprüft, ob die nicht-flüchtige Speichereinheit beschreibbar ist. Insbesondere stimmen die hinterlegten Nutzdaten in diesem Fall mit zuvor als fehlerfrei bestimmten Nutzdaten überein und es liegt nur ein Fehler des hinterlegten Zählerwerts vor. Da somit die Integrität der hinterlegten Nutzdaten verifiziert werden kann, wird im Zuge der Beschreibbarkeitsüberprüfung zweckmäßigerweise überprüft, ob die Funktionalität der Speichereinheit gegeben ist.
-
Gemäß einer vorteilhaften Ausführungsform wird bestimmt, dass die hinterlegten Nutzdaten korrekt sind, wenn im Zuge des Prüfwertvergleichs bestimmt wird, dass der aktuelle Prüfwert und der hinterlegte Prüfwert übereinstimmen. In diesem Fall wird vorteilhafterweise im Zuge einer Beschreibbarkeitsüberprüfung überprüft, ob die nicht-flüchtige Speichereinheit beschreibbar ist. Wenn also im Zuge des Prüfwertvergleichs die Integrität der hinterlegten Nutzdaten verifiziert werden kann, wird im Zuge der Beschreibbarkeitsüberprüfung ferner überprüft, ob die Funktionalität der Speichereinheit gegeben ist
-
Vorzugsweise wird die vorgegebene Fehlermaßnahme durchgeführt, wenn im Zuge der Beschreibbarkeitsüberprüfung bestimmt wird, dass die nicht-flüchtige Speichereinheit nicht beschreibbar ist. Zwar sind in diesem Fall die hinterlegten Nutzdaten korrekt, jedoch können Schreiboperationen nicht mehr korrekt durchgeführt werden, so dass im Zuge der Fehlermaßnahme beispielsweise ein sicherer Zustand der die Speichereinheit aufweisenden Recheneinheit herbei geführt wird. Wenn hingegen im Zuge der Beschreibbarkeitsüberprüfung bestimmt wird, dass die nicht-flüchtige Speichereinheit beschreibbar ist, wird die nicht-flüchtige Speichereinheit vorzugsweise freigegeben und es kann der reguläre Betrieb der Speichereinheit bzw. der jeweiligen Recheneinheit begonnen werden.
-
Gemäß einer bevorzugten Ausführungsform wird die Beschreibbarkeitsüberprüfung durchgeführt, indem der hinterlegte Zählerwert inkrementiert wird, um einen aktuellen Zählerwert zu erhalten, und der aktuelle Zählerwert wird in der nicht-flüchtigen Speichereinheit hinterlegt. Der bisher hinterlegte Zählerwert wird somit insbesondere durch den aktuellen Zählerwert ersetzt bzw. aktualisiert. Zweckmäßigerweise wird somit im Zuge einer regulären Schreiboperation ein Wert in die Speichereinheit geschrieben. Durch Überprüfung, ob dieser aktuelle Zählerwerts korrekt in der Speichereinheit hinterlegt wurde, kann zweckmäßigerweise auf die Funktionalität der Speichereinheit rückgeschlossen werden. Bevorzugt wird zu diesem Zweck nach dem Schreiben der dann hinterlegte Zählerwert aus der nicht-flüchtigen Speichereinheit eingelesen bzw. rückgelesen und es wird überprüft, ob dieser eingelesene Zählerwert und der entsprechende aktuelle Zählerwert übereinstimmen. Es wird also überprüft, ob der aktuelle Zählerwert korrekt hinterlegt wurde. In Abhängigkeit von einem Ergebnis dieser Überprüfung wird vorzugsweise bestimmt, ob die nicht-flüchtige Speichereinheit beschreibbar oder nicht beschreibbar ist.
-
Wenn der eingelesene Zählerwert und der aktuelle Zählerwert übereinstimmen, wird insbesondere bestimmt, dass die nicht-flüchtige Speichereinheit beschreibbar ist. Stimmen der eingelesene und der aktuelle Zählerwert hingegen nicht überein, deutet dies auf einen Fehler der Speichereinheit hin. In diesem Fall wird insbesondere bestimmt, dass die nicht-flüchtige Speichereinheit nicht beschreibbar ist und die vorgegebene Fehlermaßnahme wird durchgeführt.
-
Gleichzeitig führt es dadurch, dass der Zählerwert bereits zu Beginn einer Betriebsphase wieder gespeichert (und entsprechend zuvor inkrementiert) wird, die Nutzdaten und der neue Prüfwert jedoch noch nicht (sondern vorzugsweise erst am Ende der Betriebsphase), dazu, dass vor dem Speichern von Nutzdaten und Prüfwert bzw. während der Betriebsphase somit kein konsistenter Datensatz vorliegt, da der hinterlegte (alte) Prüfwert nicht mehr zum (neuen) hinterlegten Zählerwert passt. Somit ist durch Auslesen des Datensatzes beispielsweise zu Beginn einer neuen Betriebsphase immer erkennbar, ob die vorherige Betriebsphase bzw. der vorherige Speichervorgang von Nutzdaten und Prüfwert ordnungsgemäß beendet wurde oder nicht.
-
Vorteilhafterweise werden am Ende der Betriebsphase, insbesondere am Ende des regulären Betriebs der Speichereinheit, aktuelle Nutzdaten und ein neuer Prüfwert in Abhängigkeit von den aktuellen Nutzdaten und einem aktuellen Zählerwert bestimmt und in der nicht-flüchtigen Speichereinheit hinterlegt. Bei diesem aktuellen Zählerwert handelt es sich vorteilhafterweise um denjenigen aktuellen Zählerwert, der bereits im Zuge der Beschreibbarkeitsüberprüfung bestimmt und in der Speichereinheit hinterlegt wurde; andernfalls muss auch der aktuelle Zählerwert noch hinterlegt werden. Zweckmäßigerweise wird diese Aktualisierung der Nutzdaten und des Prüfwerts während des Herunterfahrens der jeweiligen die Speichereinheit aufweisenden Recheneinheit durchgeführt.
-
Besonders vorteilhaft eignet sich das vorliegende Verfahren zur Verwendung im (Kraft-) Fahrzeugbereich, insbesondere für nicht-flüchtige Speichereinheiten von Steuergeräten bzw. Mikrocontrollern, in welchen sicherheitsrelevante Nutzdaten hinterlegt werden bzw. Nutzdaten, welche für den sicheren Betrieb eines (Kraft-) Fahrzeugs vorgesehen sind. Durch das Verfahren können besonders zweckmäßig Nutzdatenintegrität und Funktionalität der Speichereinheit bei jedem Start des jeweiligen Steuergeräts verifiziert werden. Funktionale Sicherheit bzw. Ausfallsicherheit des Steuergeräts bzw. des Fahrzeugs können durch das vorliegende Verfahren erhöht werden. Insbesondere können durch das Verfahren Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, wie sie beispielsweise in der Norm ISO 26262 oder insbesondere von dem sog. „Automotive Safety Integrity Level“ (ASIL), eine von der ISO 26262 spezifizierte Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen, vorgegeben werden.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, FlashSpeicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Figurenliste
-
- 1 zeigt schematisch eine Recheneinheit mit einer nicht-flüchtigen Speichereinheit, welche einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens zugrunde liegen kann.
- 2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 ist eine Recheneinheit schematisch dargestellt und mit 100 bezeichnet, die beispielsweis als ein Steuergerät eines (Kraft-) Fahrzeugs ausgebildet ist, beispielsweise als ein Motorsteuergerät.
-
Das Steuergerät 100 weist eine nicht-flüchtige Speichereinheit 110 auf, beispielsweise in Form eines EEPROM- oder Flash-Speichers. Ferner weist das Steuergerät 100 einen Prozessor 120 auf, beispielsweise einen Multicore-Prozessor aus mehreren Prozessorkernen.
-
Im Zuge eines regulären Betriebs des Steuergeräts 100 bzw. des jeweiligen Fahrzeugs führt der Prozessor 120 eine Vielzahl von Prozessen aus, beispielsweise zum Bestimmen von Ansteuerwerten für eine Brennkraftmaschine des Fahrzeugs. Im Zuge dessen greift der Prozessor 120 insbesondere auf sicherheitsrelevante Nutzdaten zurück, z.B. auf Konstanten, Kennfelder, usw., die in der Speichereinheit 110 hinterlegt sind.
-
Einzelne Einträge in der Speichereinheit 110 bzw. einzelne Speicherbereiche oder Speicheradressen umfassen neben den dort hinterlegten Nutzdaten 111 ferner jeweils einen die jeweiligen Nutzdaten 111 betreffenden Prüfwert 112 sowie ferner einen die jeweiligen Nutzdaten 111 betreffenden Zählerwert 113.
-
In 1 ist beispielhaft nur ein derartiger Speichereintrag aus Nutzdaten 111, Prüfwert 112 und Zählerwert 113 dargestellt, aber es versteht sich, dass in der Speichereinheit 110 eine Vielzahl derartiger Einträge hinterlegt sein kann. Insbesondere können alle sicherheitsrelevanten Nutzdaten in der Speichereinheit 110 auf derartige Weise hinterlegt sein.
-
Ferner versteht sich, dass das Steuergerät 100 zweckmäßigerweise weitere Komponenten aufweisen kann, beispielsweise flüchtige Speichereinheiten bzw. RAM-Speicher („random access memory“) sowie Peripherieeinheiten wie beispielsweise Analog-Digital-Wandler (ADC), Digital-Analog-Wandler (DAC), Ein/-Ausgänge (E/A) usw.
-
Um die Integrität der in der Speichereinheit 110 hinterlegten Nutzdaten sowie die korrekte Funktionalität der Speichereinheit 110 verifizieren zu können und um somit einen sicheren Betrieb des Steuergeräts 100 und des Fahrzeugs sicherstellen zu können, ist das Steuergerät 100, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in 2 schematisch als ein Blockdiagramm dargestellt ist und nachfolgend in Bezug auf die 1 und 2 erläutert werden soll.
-
In einem Schritt 201 wird mit dem Hochfahren des Steuergeräts 100 begonnen und eine Betriebsphase der Speichereinheit 110 beginnt.
-
In Schritt 202 werden die hinterlegten Nutzdaten 111 sowie der hinterlegte Prüfwert 112 und der hinterlegte Zählerwert 113 aus der nicht-flüchtigen Speichereinheit 110 in einen Arbeitsspeicher (RAM) des Steuergeräts 100 eingelesen.
-
In Schritt 203 wird in Abhängigkeit von den eingelesenen, hinterlegten Nutzdaten 111 und von dem eingelesenen, hinterlegten Zählerwert 113 ein aktueller Prüfwert bestimmt.
-
In Schritt 204 wird ein Prüfwertvergleich dieses in Schritt 203 bestimmten, aktuellen Prüfwerts und dem in Schritt 201 eingelesenen, hinterlegten Prüfwert 112 durchgeführt.
-
Wenn der aktuelle Prüfwert und der hinterlegte Prüfwert 112 übereinstimmen, wird in Schritt 205 bestimmt, dass die hinterlegten Nutzdaten 111 korrekt sind. Die eingelesenen Nutzdaten können dann beispielsweise im Betrieb des Steuergeräts 100 verwendet werden.
-
Wenn in Schritt 205 die Integrität der Nutzdaten verifiziert werden konnte, wird anschließend die Funktionalität der Speichereinheit 110 überprüft. Zu diesem Zweck wird im Zuge einer Beschreibbarkeitsüberprüfung 210 überprüft, ob die nicht-flüchtige Speichereinheit 110 beschreibbar ist.
-
Im Zuge dieser Beschreibbarkeitsüberprüfung 210 wird zunächst in Schritt 211 der hinterlegte Zählerwert 113 inkrementiert, insbesondere um den Wert eins, um einen aktuellen Zählerwert zu erhalten. Dieser entsprechend inkrementierte, aktuelle Zählerwert wird in der nicht-flüchtigen Speichereinheit 110 hinterlegt. Insbesondere wird der bisher hinterlegte Zählerwert 113 durch diesen aktuellen Zählerwert überschrieben bzw. aktualisiert. In Schritt 212 wird der neu hinterlegte Zählerwert aus der nicht-flüchtigen Speichereinheit 110 wieder rückgelesen. In Schritt 213 wird überprüft, ob dieser in Schritt 212 eingelesene Zählerwert und der in Schritt 211 bestimmte aktuelle Zählerwert übereinstimmen.
-
Wenn der eingelesene Zählerwert und der aktuelle Zählerwert nicht übereinstimmen, wird in Schritt 214 bestimmt, dass die nicht-flüchtige Speichereinheit 110 nicht beschreibbar ist, z.B. aufgrund eines Hardwarefehlers. In diesem Fall wird eine vorgegebene Fehlermaßnahme durchgeführt, beispielsweise wird das Steuergerät 100 in einen sicheren Zustand überführt.
-
Wenn hingegen der eingelesene Zählerwert und der aktuelle Zählerwert übereinstimmen, wird in Schritt 215 bestimmt, dass die nicht-flüchtige Speichereinheit 110 beschreibbar ist und dass deren Funktionalität gegeben ist. In diesem Fall wird die Speichereinheit 110 in Schritt 215 für den regulären Betrieb freigegeben und in Schritt 230 wird mit dem regulären Betrieb der Speichereinheit 110 bzw. des Steuergeräts 100 begonnen.
-
Wenn hingegen im Zuge des Prüfwertvergleichs 204 bestimmt wird, dass der in Schritt 203 bestimmte, aktuelle Prüfwert und der in Schritt 201 eingelesene, hinterlegte Prüfwert 112 nicht übereinstimmten, könnte dies darauf hindeuten, dass die hinterlegten Nutzdaten 111 fehlerhaft sind. In diesem Fall wird im Zuge einer Nutzdatenverifikation 220 überprüft, ob die hinterlegten Nutzdaten korrekt oder fehlerhaft sind.
-
Im Zuge dieser Nutzdatenverifikation 220 wird in Schritt 221 zunächst ein zweiter Zählerwert (Entprellungszählerwert) inkrementiert. Insbesondere besitzt der zweite Zählerwert zu Beginn der Nutzdatenverifikation 220 den Wert null und wird in Schritt 221 auf den Wert eins inkrementiert.
-
In Schritt 222 wird überprüft, ob der entsprechend inkrementierte zweite Zählerwert einen Schwellwert erreicht. Beispielsweise kann dieser Schwellwert den Wert drei betragen.
-
Sofern der zweite Zählerwert den Schwellwert nicht erreicht, wird in Schritt 223 der hinterlegte Zählerwert 113 dekrementiert, um einen aktuellen Zählerwert zu bilden. Insbesondere wird der hinterlegte Zählerwert 113 dabei um den Wert des zweiten Zählerwerts dekrementiert. Daraufhin wird in Schritt 224 erneut ein aktueller Prüfwert in Abhängigkeit von den hinterlegten Nutzdaten 111 und von dem in Schritt 223 bestimmten aktuellen Zählerwert bestimmt. In Schritt 225 wird im Zuge eines erneuten Prüfwertvergleichs dieser in Schritt 224 bestimmte aktuelle Prüfwert mit dem hinterlegten Prüfwert 112 verglichen.
-
Wenn der erneut bestimmte, aktuelle Prüfwert und der hinterlegte Prüfwert 112 übereinstimmen, wird wie obig erläutert in Schritt 205 bestimmt, dass die hinterlegten Nutzdaten 111 korrekt sind. In diesem Fall ist nur der hinterlegte Zählerwert 113 fehlerhaft, z. B. weil das Steuergerät 100 zuletzt nicht regulär heruntergefahren wurde, sondern beispielsweise aufgrund einer Unterbrechung der Energieversorgung ausgeschaltet wurde.
-
Wenn jedoch auch der erneut bestimmte, aktuelle Prüfwert und der hinterlegte Prüfwert 113 nicht übereinstimmen, wird ein weiterer Durchlauf der Nutzdatenverifikation 220 durchgeführt und es wird erneut bei Schritt 221 mit dem Inkrementieren des zweiten Zählerwerts begonnen. Insbesondere wird die Nutzdatenverifikation 220 so lange durchgeführt, bis entweder im Zuge des jeweiligen erneuten Prüfwertvergleichs 225 bestimmt wird, dass der im jeweiligen Schritt 224 erneut bestimmte, aktuelle Prüfwert mit dem hinterlegten Prüfwert 112 übereinstimmt, oder bis der zweite Zählerwert in der Überprüfung 222 den Schwellwert erreicht. Wenn dies der Fall ist, wird in Schritt 226 bestimmt, dass die hinterlegten Nutzdaten 111 nicht korrekt sind und es wird eine vorgegebene Fehlermaßnahme durchgeführt, beispielsweise wird das Steuergerät 100 in einen sicheren Zustand überführt.
-
Wenn der reguläre Betrieb des Steuergeräts 100 bzw. der Speichereinheit 110 beendet wird, wird das Steuergerät 100 heruntergefahren. Im Zuge dessen wird am Ende der Betriebsphase der nicht-flüchtigen Speichereinheit 110 in Schritt 240 in Abhängigkeit von den aktuellen Nutzdaten sowie von dem aktuellen Zählerwert ein neuer, aktueller Prüfwert bestimmt und zusammen mit den Nutzdaten in der Speichereinheit 110 hinterlegt. Anschließend kann die Energieversorgung der Speichereinheit 110 unterbrochen werden. Mit Hilfe des in Schritt 240 hinterlegten Prüfwerts sowie des hinterlegten Zählerwerts können im Zug des nächstens Starts abermals die Nutzdatenintegrität und Funktionalität der nicht-flüchtigen Speichereinheit 110 überprüft werden.