DE102020209236A1 - Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit - Google Patents

Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit Download PDF

Info

Publication number
DE102020209236A1
DE102020209236A1 DE102020209236.2A DE102020209236A DE102020209236A1 DE 102020209236 A1 DE102020209236 A1 DE 102020209236A1 DE 102020209236 A DE102020209236 A DE 102020209236A DE 102020209236 A1 DE102020209236 A1 DE 102020209236A1
Authority
DE
Germany
Prior art keywords
stored
user data
value
counter value
memory unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020209236.2A
Other languages
English (en)
Inventor
Thomas Eschbach
Henning Bien
Karthik Tharabenahalli Doreswamy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102020209236.2A priority Critical patent/DE102020209236A1/de
Publication of DE102020209236A1 publication Critical patent/DE102020209236A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit, wobei in der nicht-flüchtigen Speichereinheit Nutzdaten, ein Prüfwert und ein Zählerwert hinterlegt sind, wobei der Zählerwert vor jedem Schreibvorgang des Zählerwerts in die nicht-flüchtige Speichereinheit inkrementiert wird und wobei in eine Rechenvorschrift zur Ermittlung des Prüfwerts die Nutzdaten und der Zählerwert eingehen, wobei zu Beginn einer Betriebsphase (201) der nicht-flüchtigen Speichereinheit in Abhängigkeit von dem hinterlegten Prüfwert (112) und von dem hinterlegten Zählerwert (113) eine Überprüfung der nicht-flüchtigen Speichereinheit (110) durchgeführt wird, insbesondere dahingehend, ob die hinterlegten Nutzdaten korrekt sind (204, 220), und wobei in Abhängigkeit von einem Ergebnis dieser Überprüfung die nicht-flüchtige Speichereinheit freigegeben wird (215) oder eine vorgegebene Fehlermaßnahme durchgeführt wird (214, 226).

Description

  • 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.

Claims (14)

  1. Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit (110), wobei in der nicht-flüchtigen Speichereinheit Nutzdaten (111), ein Prüfwert (112) und ein Zählerwert (113) hinterlegt sind, wobei der Zählerwert (113) vor jedem Schreibvorgang des Zählerwerts in die nicht-flüchtige Speichereinheit (110) inkrementiert wird und wobei in eine Rechenvorschrift zur Ermittlung des Prüfwerts (112) die Nutzdaten (111) und der Zählerwert (113) eingehen, wobei zu Beginn einer Betriebsphase (201) der nicht-flüchtigen Speichereinheit (110) in Abhängigkeit von dem hinterlegten Prüfwert (112) und von dem hinterlegten Zählerwert (113) eine Überprüfung der nicht-flüchtigen Speichereinheit (110) durchgeführt wird, insbesondere dahingehend, ob die hinterlegten Nutzdaten korrekt sind (204, 220), und wobei in Abhängigkeit von einem Ergebnis dieser Überprüfung die nicht-flüchtige Speichereinheit freigegeben wird (215) oder eine vorgegebene Fehlermaßnahme durchgeführt wird (214, 226).
  2. Verfahren nach Anspruch 1, wobei in Abhängigkeit von den hinterlegten Nutzdaten (111) und von dem hinterlegten Zählerwert (113) ein aktueller Prüfwert bestimmt wird (203) und wobei im Zuge eines Prüfiniertvergleichs (204) dieser aktuelle Prüfwerts mit dem hinterlegten Prüfwert (112) verglichen wird.
  3. Verfahren nach Anspruch 2, wobei, wenn im Zuge des Prüfiniertvergleichs (204) bestimmt wird, dass der aktuelle Prüfwert und der hinterlegte Prüfwert (112) nicht übereinstimmen, im Zuge einer Nutzdatenverifikation (220) überprüft wird, ob die hinterlegten Nutzdaten (111) korrekt oder fehlerhaft sind.
  4. Verfahren nach Anspruch 3, wobei die Nutzdatenverifikation (220) durchgeführt wird, indem ein zweiter Zählerwert inkrementiert wird (221), der hinterlegte Zählerwert dekrementiert wird (223), um einen aktuellen Zählerwert zu bilden, insbesondere um den Wert des zweiten Zählerwerts, erneut ein aktueller Prüfwert in Abhängigkeit von den hinterlegten Nutzdaten und von dem aktuellen Zählerwert bestimmt wird (224) und im Zuge eines erneuten Prüfiniertvergleichs (225) dieser aktuelle Prüfwert mit dem hinterlegten Prüfwert verglichen wird.
  5. Verfahren nach Anspruch 4, wobei die Nutzdatenverifikation (220) so oft durchgeführt wird, bis entweder im Zuge des jeweiligen erneuten Prüfwertvergleichs (225) bestimmt wird, dass der aktuelle Prüfwert mit dem hinterlegten Prüfwert übereinstimmt, oder bis der zweite Zählerwert einen Schwellwert erreicht (226).
  6. Verfahren nach Anspruch 4 oder 5, wobei, wenn der aktuelle Prüfwert mit dem hinterlegten Prüfwert übereinstimmt, bestimmt wird, dass die hinterlegten Nutzdaten (111) korrekt sind (205), und, wenn der zweite Zählerwert den Schwellwert erreicht, bestimmt wird, dass die hinterlegten Nutzdaten fehlerhaft sind (226).
  7. Verfahren nach einem der Ansprüche 3 bis 6, wobei, wenn im Zuge der Nutzdatenverifikation (220) bestimmt wird, dass die hinterlegten Nutzdaten (111) fehlerhaft sind, die vorgegebene Fehlermaßnahme durchgeführt wird (226), und, wenn im Zuge der Nutzdatenverifikation (220) bestimmt wird, dass die hinterlegten Nutzdaten (111) korrekt sind, im Zuge einer Beschreibbarkeitsüberprüfung (210) überprüft wird, ob die nicht-flüchtige Speichereinheit (110) beschreibbar ist.
  8. Verfahren nach einem der Ansprüche 2 bis 7, wobei, wenn im Zuge des Prüfwertvergleichs (204) bestimmt wird, dass der aktuelle Prüfwert und der hinterlegte Prüfwert (112) übereinstimmen, bestimmt wird, dass die hinterlegten Nutzdaten korrekt sind (205), und wobei im Zuge einer Beschreibbarkeitsüberprüfung (210) überprüft wird, ob die nicht-flüchtige Speichereinheit (110) beschreibbar ist (213).
  9. Verfahren nach Anspruch 7 oder 8, wobei, wenn im Zuge der Beschreibbarkeitsüberprüfung (210) bestimmt wird, dass die nicht-flüchtige Speichereinheit (110) nicht beschreibbar ist, die vorgegebene Fehlermaßnahme durchgeführt wird (214), und, wenn im Zuge der Beschreibbarkeitsüberprüfung (210) bestimmt wird, dass die nicht-flüchtige Speichereinheit (110) beschreibbar ist, die nicht-flüchtige Speichereinheit (110) freigegeben (215).
  10. Verfahren nach Anspruch 7, 8 oder 9, wobei die Beschreibbarkeitsüberprüfung (210) durchgeführt wird, indem der hinterlegte Zählerwert (113) inkrementiert wird, um einen aktuellen Zählerwert zu erhalten, und der aktuelle Zählerwert in der nicht-flüchtigen Speichereinheit (110) hinterlegt wird (211), der hinterlegte Zählerwert aus der nicht-flüchtigen Speichereinheit (110) eingelesen wird (212), überprüft wird, ob dieser eingelesene Zählerwert und der aktuelle Zählerwert übereinstimmen (213), und in Abhängigkeit von einem Ergebnis dieser Überprüfung bestimmt wird, ob die nicht-flüchtige Speichereinheit beschreibbar (215) oder nicht beschreibbar ist (214).
  11. Verfahren nach einem der vorstehenden Ansprüche, wobei am Ende der Betriebsphase aktuelle Nutzdaten und ein aktueller Prüfwert in Abhängigkeit von aktuellen Nutzdaten und einem aktuellen Zählerwert bestimmt und in der nicht-flüchtigen Speichereinheit (110) hinterlegt werden (240).
  12. Recheneinheit (100), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  13. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.
  14. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 13.
DE102020209236.2A 2020-07-22 2020-07-22 Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit Pending DE102020209236A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020209236.2A DE102020209236A1 (de) 2020-07-22 2020-07-22 Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020209236.2A DE102020209236A1 (de) 2020-07-22 2020-07-22 Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit

Publications (1)

Publication Number Publication Date
DE102020209236A1 true DE102020209236A1 (de) 2022-01-27

Family

ID=79179467

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020209236.2A Pending DE102020209236A1 (de) 2020-07-22 2020-07-22 Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit

Country Status (1)

Country Link
DE (1) DE102020209236A1 (de)

Similar Documents

Publication Publication Date Title
EP0721644B1 (de) Verfahren zur vollständigen neuprogrammierung eines löschbaren, nichtflüchtigen speichers
DE102009020389A1 (de) System zur Aktualisierung von Firmware und Verfahren dazu, und Verfahren zum Erzeugen von Firmware
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE102014116321A1 (de) Update einer Firmware
DE10322748B4 (de) Elektronische Steuereinrichtung
DE102020209236A1 (de) Verfahren zum Betreiben einer nicht-flüchtigen Speichereinheit
EP0572019B1 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE3311805C2 (de)
DE102009002898A1 (de) Verfahren zur Aktualisierung eines Steuergeräts eines Fahrzeugs
EP0715313B1 (de) Verfahren zur Programmierung eines elektrisch löschbaren, nichtflüchtigen Speichers in einem elektronischen Rechengerät sowie Steuergerät zur Verwendung bei dem Verfahren
DE3701699A1 (de) Verfahren zur ansteuerung eines rechnergesteuerten stellgliedes sowie mit einem stellglied gekoppelter rechner
DE102019208129B4 (de) Elektronische Steuereinheit
WO2009103728A1 (de) Verfahren und vorrichtung zum speichern von informationsdaten
DE102021003840A1 (de) Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug
DE102016225308A1 (de) Verfahren und Vorrichtung zum Kalibrieren eines Steuergerätes
DE102017108288A1 (de) Aktualisieren eines Speichers
DE102023106436A1 (de) Sicherungs- und Wiederherstellungsverfahren eines Dateisystems und Kommunikationsvorrichtung dafür
DE102019220156A1 (de) Verfahren zum Betreiben einer Speichereinheit einer Recheneinheit
DE102022133764A1 (de) Firmware-aktualisierungsverfahren eines flash-bootloaders in einer mcu für ein fahrzeug
DE102007026691A1 (de) Verfahren und Steuergerät zum Betreiben eines nichtflüchtigen Speichers, insbesondere zum Einsatz in Kraftfahrzeugen
DE102019210143A1 (de) Verfahren zum Durchführen einer Speicherauffrischung einer nichtflüchtigen Speichereinheit
DE112021002282T5 (de) Elektronische steuervorrichtung und aktualisierungsverfahren für steuerungssoftware