-
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer Speichereinheit einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Nicht-flüchtige Speichereinheiten wie beispielsweise Flash-Speicher können zumeist nicht beliebig oft beschrieben und gelöscht werden. Zumeist besitzen derartige Speichereinheiten eine maximale Anzahl an Schreib-Lösch-Zyklen (engl. „program - erase cycle“, P/E cycle), bis zu welcher eine Datenintegrität gewährleistet werden kann. Wird diese Anzahl überschritten, kann der Verschleiß der Speichereinheit derart groß werden, dass Daten nicht mehr zuverlässig in der Speichereinheit gehalten werden können und eine Datenintegrität nicht mehr gesichert ist.
-
Ferner können in nicht-flüchtigen Speichereinheiten Fehler auftreten, beispielsweise derartig, dass einzelne Speicherzellen nur noch den Wert Eins oder nur noch den Wert Null speichern können. Um derartige Fehler zu erkennen, kann die Speichereinheit Speichertests unterzogen werden, wobei beispielsweise verschiedene Testdaten in die Speichereinheit geschrieben werden und überprüft wird, ob diese Testdaten jeweils korrekt ausgelesen werden können. Im Zuge derartiger Speichertest werden mehrmals Daten in die Speichereinheit geschrieben und wieder gelöscht. Häufig durchgeführte Speichertest können daher zum Erreichen der maximalen Anzahl an Schreib-Lösch-Zyklen beitragen und sich somit negativ auf die Datenintegrität auswirken.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Betreiben einer Speichereinheit einer Recheneinheit sowie eine 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 bedient sich der Maßnahme, in der Speichereinheit hinterlegten Datenblöcken jeweils einen Prüfwert zuzuweisen, beispielsweise einen CRC- oder Hashwert. Wenn auf einen Datenblock der Speichereinheit zugegriffen werden soll, wird ein diesem Datenblock zugewiesener Prüfwert auf Korrektheit überprüft. Wenn der Prüfwert als korrekt bewertet wird, wird auf den Datenblock zugegriffen. Wenn der Prüfwert hingegen nicht als korrekt bewertet wird, wird die Speichereinheit zumindest teilweise auf Fehler überprüft. Alle Datenblöcke können dieselbe (feste) Größe aufweisen.
-
Insbesondere wird jedem einzelnen adressierbaren Datenblock in der Speichereinheit jeweils eindeutig und reproduzierbar ein Prüfwert zugewiesen. Zweckmäßigerweise sind die Prüfwerte ebenfalls in der Speichereinheit hinterlegt. Es versteht sich jedoch, dass dadurch die verfügbare Kapazität der Speichereinheit entsprechend reduziert wird.
-
Die einzelnen Prüfwerte können beispielsweise vor erstmaliger Inbetriebnahme der Speichereinheit bestimmt werden, insbesondere wenn die einzelnen Datenblöcke erstmalig in die Speichereinheit geschrieben werden. Solche Datenblöcke enthalten insbesondere die Firmware bzw. Programmierung von Recheneinheiten, wie z.B. Steuergeräten, und Daten, die sich während der Laufzeit nicht mehr ändern, z.B. feste Einstellparameter. Zweckmäßigerweise können entsprechende Prüfwerte auch während des regulären Betriebs der Speicher- bzw. Recheneinheit bestimmt werden, wenn Datenblöcke neu in der Speichereinheit hinterlegt oder geändert werden. Solche Datenblöcke enthalten insbesondere Daten, die sich während der Laufzeit ändern, z.B. variablen Einstellparameter.
-
Wenn im regulären Betrieb der Speicher- bzw. Recheneinheit auf einen jeweiligen Datenblock zugegriffen werden soll, kann dieser Datenblock beispielsweise zusammen mit dem zugewiesenen Prüfwert eingelesen werden. Aus dem eingelesenen Datenblock kann ein Vergleichswert bestimmt werden, zweckmäßigerweise auf die entsprechende Weise, auf welche auch der Prüfwert bestimmt wird. Der Prüfwert sowie der Vergleichswert können miteinander verglichen werden. Sind diese beiden Werte identisch, wird der Prüfwert (und damit auch der Datenblock) als korrekt bewertet. Unterscheiden sich diese Werte jedoch, wird der Prüfwert als nicht korrekt bewertet, d.h. der Prüfwert und/oder der Datenblock entsprechen nicht dem fehlerfreien Zustand.
-
Bei korrektem Prüfwert kann insbesondere rückgeschlossen werden, dass der jeweilige Datenblock korrekt ist und dass ferner die Speichereinheit fehlerfrei funktioniert. Wenn der jeweilige Prüfwert hingegen nicht korrekt ist, deutet dies insbesondere darauf hin, dass der Datenblock und/oder der Prüfer nicht korrekt in der Speichereinheit hinterlegt sind. Dies könnte an einem Fehler der Speichereinheit liegen, so dass in diesem Fall die Speichereinheit oder zumindest ein Teil der Speichereinheit zweckmäßigerweise auf Fehler hin überprüft wird.
-
Zu diesem Zweck werden in die Speichereinheit bzw. in den zu testenden Teil der Speichereinheit insbesondere verschiedene Testdaten geschrieben und es wird überprüft wird, ob diese Testdaten jeweils korrekt ausgelesen werden können. Ist dies der Fall, wird die Speichereinheit bzw. der zu testende Teil insbesondere als fehlerfrei bewertet, anderenfalls als nicht fehlerfrei.
-
Durch das vorliegende Verfahren wird eine Möglichkeit bereitgestellt, nur dann einen Speichertest durchzuführen, wenn ein konkreter Verdacht auf einen Fehler der Speichereinheit vorliegt. Die den einzelnen Datenblöcken zugewiesenen Prüfwerte stellen eine besonders effektive Möglichkeit dar, um auf einen möglichen Fehler der Speichereinheit rückschließen zu können und um zu bewerten, ob ein Speichertest sinnvoll ist.
-
Insbesondere in sicherheitsrelevanten Anwendungen, wie z.B. Fahrfunktionen, werden Speichereinheiten aus Sicherheitsgründen oftmals in regelmäßigen Abständen Speichertests unterzogen, um sicherstellen zu können, dass die Speichereinheit fehlerfrei funktioniert und die darin hinterlegten Daten korrekt sind. Beispielsweise kann dies der Fall sein, wenn die Recheneinheit zum Steuern einer Maschine verwendet wird und in der Speichereinheit Daten hinterlegt sind, welche für den Betrieb der jeweiligen Maschine benötigt werden. Beispielsweise wird in derartigen Fällen oftmals bei jedem Betrieb ein Speichertest vorgenommen, beispielsweise bei jedem Starten und/oder Deaktivieren der Recheneieinheit. Oftmals werden Speichereinheiten bei jedem Hochfahren der entsprechenden Recheneinheit als vorbeugende Maßnahme einem Speichertest unterzogen, unabhängig davon, ob die einzelnen Speichereinheiten im darauffolgenden Betrieb der Recheneinheit überhaupt verwendet werden. Da im Zuge derartiger Speichertest zumeist mehrmals Daten in die Speichereinheit geschrieben und wieder gelöscht werden, kann ein derart regelmäßiges und häufiges Durchführen von Speichertest zum Erreichen der maximalen Anzahl an Schreib-Lösch-Zyklen beitragen, zu erhöhtem Verschleiß der Speichereinheit führen und sich negativ auf die Datenintegrität auswirken.
-
Beispielsweise können im Zuge derartiger Speichertests in der Speichereinheit hinterlegte Daten zunächst an anderen Speicherstellen gesichert werden. Die Speichereinheit kann dann mit ersten Testdaten beschrieben werden, die z.B. nur aus Nullen besteht, und es kann überprüft werden, ob diese ersten Testdaten korrekt ausgelesen werden können. Daraufhin können zweite Testdaten in die Speichereinheit geschrieben werden, welche zweckmäßigerweise invers zu den ersten Testdaten sind und beispielsweise nur aus Einsen bestehen, und es kann überprüft werden, ob auch diese zweiten Testdaten korrekt ausgelesen werden können. Wird die Speichereinheit als fehlerfrei bewertet, werden wieder die ursprünglichen Daten dort hinterlegt. Im Zuge eines derartigen Speichertest wird die Speichereinheit also je dreimal gelöscht und dreimal beschrieben. Häufiges, regelmäßiges Durchführen derartiger Speichertest kann sich somit deutlich auf die Lebensdauer der Speichereinheit auswirken.
-
Durch die Verwendung und Überprüfung von Prüfwerten im Zuge des vorliegenden Verfahrens kann die Speichereinheit während ihres aktiven Betriebs auf potentielle Fehler hin überwacht werden, ohne dabei regelmäßig Speichertest durchzuführen. Durch das vorliegende Verfahren kann zweckmäßigerweise auf ein prophylaktisches Durchführen von Speichertest in regelmäßigen Abständen verzichtet werden. Insbesondere kann verhindert werden, dass die Speichereinheit auch dann einem Speichertest unterzogen wird, wenn diese im aktuellen Betrieb der Recheneinheit nicht verwendet wird.
-
Im Rahmen des vorliegenden Verfahrens werden Speichertest zweckmäßigerweise nur dann durchgeführt, wenn die Speichereinheit aktiv verwendet wird und wenn in Abhängigkeit von den Prüfwerten ein konkreter Verdacht auf einen möglichen Fehler in der Speichereinheit erkannt wird. Die Anzahl von durchgeführten Speichertests kann besonders zweckmäßig auf ein Minimum reduziert werden. Verschleiß der Speichereinheit durch eine große Anzahl an durchgeführten Speichertest kann reduziert werden, die Lebensdauer der Speichereinheit kann erhöht werden und die Datenintegrität wird nicht unnötig beeinträchtigt. Durch die reduzierte Anzahl an durchgeführten Speichertest kann ferner ein Energieverbrauch der Recheneinheit reduziert und deren Leistung erhöht werden.
-
Gemäß einer besonders bevorzugten Ausführungsform wird, wenn der Prüfwert nicht als korrekt bewertet wird, zumindest ein Speicherbereich der Speichereinheit auf Fehler überprüft, in welchem der Datenblock hinterlegt ist. Ein derartiger Speicherbereich kann insbesondere eine oder mehrere Speicherzellen bzw. Speicherstellen umfassen, welche jeweils insbesondere eine kleinste bzw. kleinstmögliche Einheit der Speichereinheit bzw. eine kleinste adressierbare Einheit darstellen. Wenn in der Speichereinheit tatsächlich ein Fehler vorliegt, kann durch die Überprüfung der Prüfwerte einzelner Datenblöcke vorab bereits eingegrenzt werden, in welchem konkreten Teil der Speichereinheit der Fehler vorliegt, so dass nicht die gesamte Speichereinheit einem Speichertest unterzogen werden muss, sondern nur der Speicherbereich desjenigen Datenblocks mit fehlerhaftem Prüfwert.
-
Wenn auf herkömmliche Weise eine gesamte Speichereinheit einem Speichertest unterzogen wird, kann gegebenenfalls die Speichereinheit als ganzes als fehlerhaft deklariert werden, auch wenn beispielsweise nur einzelne Speicherzellen einen Fehler aufweisen, welche jedoch überhaupt nicht oder nur selten verwendet werden oder überhaupt keine Datenblöcke enthalten. In derartigen Fällen wird gegebenenfalls die gesamte Speichereinheit ausgetauscht, obwohl diese noch weiter verwendet werden könnte.
-
Im Rahmen des vorliegenden Verfahrens werden hingegen bei Verdacht auf einen Fehler besonders zweckmäßig gezielt einzelne Speicherbereiche bzw. Speicherzellen Tests unterzogen, um herauszufinden, ob und, wenn ja, welche Speicherbereiche bzw. Speicherzellen einen Fehler aufweisen. Das Verfahren ermöglicht es somit einzelne fehlerhafte Speicherbereiche in der Speichereinheit differenziert zu erkennen. Abhängig von dem konkreten Speicherbereich, welcher als fehlerhaft erkannt wird, kann die Speichereinheit gegebenenfalls weiter verwendet werden, beispielsweise indem der entsprechende fehlerhafte Speicherbereich deaktiviert wird und das dort hinterlegte Datum an einen anderen, fehlerfreien Speicherort verschoben wird.
-
Wenn die Speichereinheit im Zuge der Überprüfung als fehlerfrei bewertet wird, wird vorzugsweise auf den Datenblock zugegriffen. In diesem Fall kann beispielsweise nur der dem jeweiligen Datenblock zugewiesene Prüfwert fehlerhaft sein und korrigiert werden. Beispielsweise kann in diesem Fall auch nur der Vergleichswert für die Überprüfung des Prüfwerts fehlerhaft bestimmt worden sein, wobei es keiner weiteren Korrektur bedarf.
-
Wenn die Speichereinheit im Zuge der Überprüfung hingegen als nicht fehlerfrei bewertet wird, wird vorteilhafterweise eine vorgebbare Maßnahme durchgeführt. In diesem Fall liegt insbesondere tatsächlich ein Fehler der Speichereinheit vor bzw. ein Fehler des entsprechenden wenigstens einen Speicherbereichs, in welchem der jeweilige Datenblock hinterlegt ist und welcher auf Fehler überprüft wurde. Durch die vorgebbare Maßnahme kann dem erkannten Fehler zweckmäßigerweise entgegengewirkt werden.
-
Vorteilhafterweise können eine oder mehrere der nachfolgenden vorgebbaren Maßnahmen durchgeführt werden, wenn die Speichereinheit als nicht fehlerfrei bewertet wird. Ein Zugriff auf den jeweiligen Datenblock wird vorzugsweise verweigert, da dieser Datenblock aufgrund des Fehlers in der Speichereinheit nicht korrekt ist. Bevorzugt wird eine Fehlermeldung erzeugt und beispielsweise in der Recheneinheit hinterlegt, beispielsweise in einem Fehlerspeicher, oder einem Benutzer der Recheneinheit ausgegeben. Vorzugsweise wird ein Fehlermodus aktiviert, beispielsweise ein abgesicherter Modus der Recheneinheit, in welchem beispielsweise nur wesentliche Grundfunktionen aufrechterhalten werden. Bevorzugt wird die Speichereinheit oder zumindest ein Speicherbereich der Speichereinheit, in welchem der Datenblock hinterlegt ist, deaktiviert. Abhängig von Anzahl bzw. Größe der fehlerhaften Speicherbereiche kann zweckmäßigerweise der Betrieb der Recheneinheit aufrechterhalten werden, wenn die fehlerhaften Speicherbereiche deaktiviert und deren Inhalte in andere fehlerfreie Speicherbereiche kopiert werden. Vorzugsweise wird eine Reparatur oder ein Austausch der Speichereinheit durchgeführt. Falls dies nicht sofort möglich ist, beispielsweise weil die Recheneinheit für den Betrieb einer Maschine verwendet wird, kann die Reparatur bzw. der Austausch zweckmäßigerweise auch einem Benutzer der Recheneinheit bzw. der Maschine empfohlen werden, beispielsweise durch Ausgabe einer obig erläuterten Fehlermeldung.
-
Besonders bevorzugt wird als vorgebbare Maßnahme ein Diagnosefehlercode (engl. „Diagnostic Trouble Code“, DTC) erzeugt. Derartige Diagnosefehlercodes werden insbesondere im (Kraft-) Fahrzeugbereich eingesetzt und dienen zur Identifikation von Fehlfunktionen eines Fahrzeugs, die während dessen Betrieb auftreten können. Ein Diagnosefehlercode wird insbesondere in einem Fehlerspeicher abgelegt und kann mit Hilfe von Diagnosegeräten in einer Werkstatt ausgelesen werden. Auf diesen Diagnosefehlercode hin kann in der Werkstatt zweckmäßigerweise eine Reparatur oder ein Austausch der Speichereinheit erfolgen.
-
Vorteilhafterweise ist jedem Datenblock als Prüfwert jeweils ein Hashwert zugewiesen. Ein derartiger Hashwert wird aus dem jeweiligen Datenblock durch eine entsprechende Hashfunktion bzw. Streuwertfunktion bestimmt. Wenn auf einen jeweiligen Datenblock zugegriffen werden soll, wird beim Einlesen dieses Datenblocks zweckmäßigerweise mittels derselben Hashfunktion ein entsprechender Vergleichswert bestimmt, welcher mit dem diesem Datenblock zugewiesenen Hashwert verglichen wird. Geeignete Hashwertfunktionen (z.B. CRC, MD, SHA usw.) sind dem Fachmann geläufig.
-
Besonders vorteilhaft eignet sich das Verfahren zum Einsatz im (Kraft-) Fahrzeugbereich. Vorteilhafterweise wird die Speichereinheit in einer Recheneinheit eines Fahrzeugs verwendet, insbesondere in einem Steuergerät, z.B. zum Steuern eines Verbrennungsmotors, Elektromotors, Getriebes, ABS, ESP usw., oder beispielsweise in einem sog. „Body Computer“ eines Fahrzeugs zum Steuern und Überwachen von Komponenten einer Karosserieelektronik und deren Funktionen. Beispielsweise kann die Recheneinheit zum Ausführen sicherheitskritischer Funktionen des Fahrzeugs vorgesehen sein, z.B. von Fahrassistenzsystemen bis hin zu autonomen und vollautonomem Fahren.
-
Besonders vorteilhaft kann durch das vorliegende Verfahren sichergestellt werden, dass die Speichereinheit nur dann als fehlerhaft deklariert und zweckmäßigerweise nur dann ausgetauscht wird, wenn ein Fehler vorliegt, welcher den aktiven Betrieb der Recheneinheit beeinträchtigen könnte. Es sei an dieser Stelle angemerkt, dass in der Speichereinheit bzw. in einzelnen Speicherbereichen Fehler vorliegen können, welche im Rahmen des Verfahrens jedoch so lange nicht erkannt werden, bis sie sich negativ auf den aktuellen Betrieb der Recheneinheit auswirken. Somit wird im Rahmen des Verfahrens automatisch ermöglicht, dass die Speichereinheit trotz entsprechender Fehler weiter verwendet wird, so lange diese Fehler keine Gefahr für den Betrieb der Recheneinheit darstellen.
-
So kann etwa ein Speicherbereich fehlerhaft sein, in welchem keine Datenblöcke hinterlegt sind oder nur Datenblöcke, welche nicht für den aktuellen Betrieb der Recheneinheit benötigt werden. Der aktuelle Betrieb der Recheneinheit wird durch einen derartigen Fehler somit nicht beeinträchtigt, so dass die Speichereinheit trotz dieses Fehlers weiter verwendet werden kann. Sollte jedoch dennoch auf Datenblöcke in diesem fehlerhaften Speicherbereich zugegriffen werden, wird der Fehler schließlich im Rahmen des Verfahrens erkannt, so dass stets ein sicherer Betrieb der Recheneinheit gewährleistet wird.
-
Beispielsweise kann es auch zu dem Fall kommen, dass ein Speicherbereich zwar fehlerhaft ist, dass aber die dort hinterlegten Daten durch diesen Fehler nicht beeinträchtigt bzw. verfälscht werden. Wenn beispielsweise durch einen Fehler an einem speziellen Speicherbereich nur eine Null gespeichert werden kann, an dieser Stelle aber ohnehin eine Null gespeichert werden soll, fällt auch dieser Fehler zunächst nicht auf und beeinträchtigt ferner den aktuellen Betrieb der Recheneinheit nicht, so dass die Speichereinheit auch in diesem Fall weiter verwendet werden kann. Wenn jedoch die in einem derartigen fehlerhaften Speicherbereich hinterlegten Daten geändert werden, so dass nun diese neuen Daten durch den Fehler verfälscht werden, wird der Fehler schließlich im Rahmen des Verfahrens erkannt, sobald auf diese neuen Daten das erste Mal zugegriffen werden soll. Auch in diesem Fall kann somit dennoch ein sicherer fehlerfreier Betrieb der Recheneinheit gewährleistet 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, Flash-Speicher, 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 ein Steuergerät eines Kraftfahrzeugs, das dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
- 2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 ist ein Steuergerät eines Fahrzeugs schematisch dargestellt und mit 100 bezeichnet. Beispielsweise kann es sich bei dem Steuergerät 100 um ein Motorsteuergerät zum Steuern eines Verbrennungsmotors des Fahrzeugs handeln.
-
Das Steuergerät 100 umfasst eine Prozessoreinheit 110, die beispielsweise als ein Multicore-Prozessor mit mehreren Prozessorkernen ausgebildet sein kann. Ferner umfasst das Steuergerät 100 eine nichtflüchtige Speichereinheit 120, beispielsweise einen Flash-Speicher.
-
Die Speichereinheit 120 umfasst eine Vielzahl verschiedener Speicherbereiche 121, bei welchen es sich beispielsweise jeweils um einzelne Speicherzellen bzw. Speicherstellen handeln kann, insbesondere jeweils um kleinste adressierbare Einheiten der Speichereinheit 120. In der Speichereinheit 120 bzw. in den einzelnen Speicherbereichen 121 ist eine Vielzahl von Daten in Datenblöcken hinterlegt, welche für den Betrieb des Steuergeräts 100 bzw. ferner für den Betrieb des Fahrzeugs benötigt werden.
-
Obgleich in 1 aus Gründen der Übersichtlichkeit nur drei derartige Speicherbereiche 121 dargestellt sind, versteht es sich, dass die Speichereinheit 120 eine andere, zweckmäßige Anzahl an Speicherbereichen umfassen kann. Ferner versteht sich, dass das Steuergerät 100 zweckmäßigerweise noch weitere Komponenten aufweisen kann, beispielsweise weitere Speichereinheiten wie RAM-Speicher usw., welche aus Gründen der Übersichtlichkeit in 1 nicht gezeigt sind.
-
Um erkennen zu können, ob einzelne der Speicherbereiche 121 einen Fehler aufweisen, beispielsweise derart, dass in einem fehlerhaften Speicherbereich nur noch der Wert Eins oder nur noch der Wert Null gespeichert wird, ist das Steuergerät 100, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen, welche in 2 schematisch als ein Blockdiagramm dargestellt ist und nachfolgend erläutert werden soll.
-
In Schritt 200 wird jedem Datenblock in der Speichereinheit 120 jeweils ein Prüfwert in Form eines Hashwerts zugewiesen. Ein derartiger Prüfwert wird zu diesem Zweck in Abhängigkeit von dem jeweiligen Datenblock durch eine entsprechende Hashfunktion bzw. Streuwertfunktion bestimmt. Datenblock und zugewiesener Prüfwert können beispielsweise in demselben Speicherbereich in der Speichereinheit 120 hinterlegt werden oder auch in unterschiedlichen Speicherbereichen.
-
Die einzelnen Hashwerte können beispielsweise vor einer ersten Inbetriebnahme des Steuergeräts 100 bestimmt und in der Speichereinheit hinterlegt werden, beispielsweise während eines Herstellungsprozesses bzw. während einer Konfigurationsphase, z.B. nach dem Aufspielen der Firmware u.ä. Ferner kann jedes Mal, wenn ein Datum neu in die Speichereinheit 120 eingebracht oder dort verändert wird, ein entsprechender Hashwert bestimmt und dem entsprechenden Datenblock in der Speichereinheit 120 zugeordnet werden.
-
In Schritt 201 wird das Steuergerät 100 regulär betrieben. In Schritt 202 soll auf ein spezielles in der Speichereinheit 120 hinterlegtes Datum bzw. einen dieses Datum enthaltenden Datenblock lesend zugegriffen werden.
-
In Schritt 203 wird der diesem Datenblock zugewiesene Prüfwert auf Korrektheit überprüft. Beispielsweise wird zu diesem Zweck in Abhängigkeit von dem jeweiligen Datenblock mit Hilfe der Hash- bzw. Streuwertfunktion ein Vergleichswert bestimmt, welcher mit dem zugewiesenen Prüfwert verglichen wird.
-
Stimmen Prüf- und Vergleichswert überein, wird der Prüfwert in Schritt 204 als korrekt bewertet. In Schritt 205 wird dann auf den Datenblock zugegriffen und das Datum gelesen. Nach erfolgtem Zugriff wird mit dem regulären Betrieb des Steuergeräts gemäß Schritt 201 fortgefahren.
-
Wenn Prüf- und Vergleichswert hingegen nicht übereinstimmen, wird der Prüfwert in Schritt 206 nicht als korrekt bewertet. Dies deutet auf einen möglichen Fehler des Speicherbereichs hin, in welchem der entsprechende Datenblock hinterlegt ist. In Schritt 207 wird dieser Speicherbereich daher auf Fehler überprüft.
-
Zu diesem Zweck wird in Schritt 207 im Zuge eines Speichertest zunächst die in dem zu testenden Speicherbereich hinterlegten Daten an einer anderen Speicherstelle gesichert. Der Speicherbereich wird dann mit ersten Testdaten beschrieben, z.B. nur Nullen, und es wird überprüft, ob diese ersten Testdaten korrekt ausgelesen werden können. Daraufhin werden zweite Testdaten invers zu den ersten Testdaten in den Speicherbereich geschrieben, z.B. nur Einsen, und es wird überprüft, ob auch diese zweiten Testdaten korrekt ausgelesen werden können.
-
Wenn beide Testdaten korrekt ausgelesen werden, wird der Speicherbereich in Schritt 208 als fehlerfrei bewertet. Die zuvor gesicherten Daten werden zurück in den Speicherbereich geschrieben, der angefragte Zugriff auf das Datum bzw. den Datenblock wird gewährt und in Schritt 209 durchgeführt. Daraufhin wird der reguläre Betrieb des Steuergeräts gemäß Schritt 201 fortgesetzt.
-
Wenn jedoch die ersten und/oder zweiten Testdaten nicht korrekt ausgelesen werden können, wird der Speicherbereich in Schritt 210 als fehlerhaft bewertet. In Schritt 211 wird daraufhin eine vorgebbare Maßnahme durchgeführt. Insbesondere wird dabei ein Diagnosefehlercode erzeugt und in einem Fehlerspeicher des Steuergeräts 100 hinterlegt. Das Steuergerät 100 wird ferner in einen Fehlermodus bzw. einen abgesicherten Modules überführt, in welchem zumindest die Grundfunktionen des Steuergeräts 100 aufrechterhalten werden. Ferner kann der Fahrer des Fahrzeugs durch eine Fehlermeldung darauf hingewiesen werden, eine Werkstatt aufzusuchen, in welcher die Speichereinheit 120 ausgetauscht werden kann.
-
Im Rahmen des Verfahrens wird somit nur dann ein Speichertest durchgeführt, wenn durch Überprüfen des Hashwerts ein Verdacht auf einen Fehler in der Speichereinheit 120 vorliegt. Auf einen derartigen Verdacht wird derjenige der Speicherbereiche 121 einem Speichertest unterzogen, in welchem der Fehler vermutet wird. Somit kann vermieden werden, unverhältnismäßig oft Speichertest der gesamten Speichereinheit 120 durchzuführen, was zu erhöhtem Verschleiß bzw. zu einem schnelleren Erreichen der maximalen Schreib-Lösch-Zyklen führen kann. Die Lebensdauer der Speichereinheit 120 kann verlängert werden und es kann für eine längere Zeit Datenintegrität gewährleistet werden. Darüber hinaus kann sichergestellt werden, dass die Speichereinheit 120 nur dann ausgetauscht wird, wenn auch ein Fehler vorliegt, welcher den aktiven Betrieb des Steuergeräts 100 beeinträchtigen könnte.