-
Die vorliegende Erfindung betrifft ein Verfahren zum Durchführen einer Speicherauffrischung einer nichtflüchtigen Speichereinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Nichtflüchtige Speichereinheiten (non volatile random access memory, NVRAM) werden verwendet, um dauerhaft Daten abzuspeichern. Zwar behalten nichtflüchtige Speichereinheiten ihren Speicherinhalt auch ohne Stromversorgung, jedoch verflüchtigt er sich in Abhängigkeit vom Typ dennoch früher oder später. Dies gilt für Fälle sowohl mit als auch ohne Spannungsversorgung. Auch nichtflüchtige Speichereinheiten müssen daher hin und wieder aufgefrischt („refresh“) werden.
-
Daher werden bei nichtflüchtigen Speichereinheiten in bestimmten Zeitabständen sogenannte Refreshs, also Speicherauffrischungen, des darin hinterlegten Speicherinhalts durchgeführt, um den Speicherinhalt zu erhalten. Dabei wird der Speicherinhalt eingelesen und der entsprechende Speicherbereich wird mit diesem eingelesenen Speicherinhalt wieder überschrieben.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Durchführen einer Speicherauffrischung einer nichtflüchtigen Speichereinheit 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.
-
Im Rahmen des vorliegenden Verfahrens wird eine Überprüfung durchgeführt, ob eine oder mehrere Speicherbereiche der Speichereinheit jeweils einen Fehler aufweisen.
-
Bei diesen Speicherbereichen kann es sich insbesondere um Speicherzellen bzw. Speicherstellen handeln, insbesondere um die kleinsten bzw. kleinstmöglichen Einheiten der Speichereinheit bzw. kleinste adressierbare Einheit. Beispielsweise kann in den Speicherbereichen jeweils ein Bit hinterlegt werden oder ein aus mehreren Bits bestehendes Wort bzw. Datenwort, als jeweils kleinste adressierbare Einheit.
-
Als Fehler des Speicherbereichs sei in dem vorliegenden Zusammenhang insbesondere ein auf eine Verflüchtigung des in dem Speicherbereich hinterlegten Speicherinhalts hindeutender Fehler zu verstehen. Ein erkannter Fehler deutet also insbesondere darauf hin, dass es zu einer Verflüchtigung in dem jeweiligen fehlerhaften Speicherbereich kommt oder kommen könnte und dass der entsprechende fehlerhafte Speicherbereich daher insbesondere einer Speicherauffrischung bedarf, um Datenverluste zu vermeiden. Eine Fehlererkennung kann z.B. über eine Prüf- bzw. Checksumme oder einen durch Hardware bereitgestellten Integritätscheck erfolgen.
-
Wenn im Zuge der Überprüfung bestimmt wird, dass wenigstens ein Speicherbereich der Speichereinheit einen Fehler aufweist, wird in Abhängigkeit von einem vorgegebenen Kriterium ein Auffrischungszeitpunkt bestimmt, zu welchem eine Speicherauffrischung des wenigstens einen fehlerhaften Speicherbereichs durchgeführt werden soll. Bei Erreichen des bestimmten Auffrischungszeitpunkts wird die Speicherauffrischung des wenigstens einen fehlerhaften Speicherbereichs dann durchgeführt. Im Zuge der Speicherauffrischung wird zweckmäßigerweise der Speicherinhalt des fehlerhaften Speicherbereichs eingelesen und der fehlerhafte Speicherbereich wird mit diesem eingelesenen Speicherinhalt überschrieben.
-
Das vorliegende Verfahren umfasst somit insbesondere einen Überwachungs- bzw. Analyseschritt zum Erkennen und Identifizieren von fehlerhaften Speicherbereichen bzw. Speicherzellen, ferner insbesondere einen Algorithmus zur Bestimmung des optimalen Korrektur- bzw. Auffrischungszeitpunkts und ferner zweckmäßigerweise einen Korrekturmechanismus zum Durchführen der Auffrischung.
-
Während einer derartigen Speicherauffrischung eines Speicherbereichs kann zumeist nicht regulär auf diesen Speicherbereich zugegriffen werden, zumeist weder lesend noch schreibend. Wenn daher während der Speicherauffrischung im regulären Betrieb auf diesen fehlerhaften Speicherbereich zugegriffen werden soll, beispielsweise weil ein ausgeführter Prozess auf einen in dem fehlerhaften Speicherbereich hinterlegten Speicherinhalt zugreifen möchte oder weil ein in dem fehlerhaften Speicherbereich hinterlegter Programmcode ausgeführt werden soll, kann es zu Verzögerungen oder gar zu Fehlern in der Abarbeitung von Prozessen bzw. Tasks kommen. Derartige Verzögerungen können sich negativ auf den regulären Betrieb auswirken, hohe Laufzeiteinbußen zur Folge haben und gar dazu führen, dass durch den regulären Betrieb auszuführende Funktion nicht mehr korrekt aufgeführt werden können.
-
Insbesondere in Echtzeitsystemen, in welchen die garantierte Abarbeitung von Prozessen bzw. Tasks bis zu bestimmten Zeitpunkten essentiell ist, können sich derartige Verzögerungen besonders kritisch auswirken. Beispielsweise könnten derartige Verzögerungen bzw. Laufzeiteinbußen bei Echtzeitsystemen in Fahrzeugen dazu führen, dass bestimmte Funktionen des Fahrzeugs nicht mehr korrekt ausgeführt werden oder gar ausfallen können.
-
Der Auffrischungszeitpunk wird im Rahmen des vorliegenden Verfahrens zweckmäßigerweise derart bestimmt, dass es durch die Speicherauffrischung nicht zu derartigen Verzögerungen, Laufzeiteinbußen oder gar Fehlern kommen kann. Insbesondere berücksichtigt das vorgegebene Kriterium daher, wie es durch Speicherauffrischungen zu Fehlern des regulären Betriebs kommen kann und wie diese vermieden werden können. Durch das vorliegende Verfahren kann somit insbesondere vermieden werden, dass es durch Speicherauffrischungen zu Fehlern im regulären Betrieb kommt und dass Funktionen nicht mehr korrekt ausgeführt werden oder gar ausfallen.
-
Beispielsweise kann im Rahmen des vorgegebenen Kriteriums berücksichtigt werden, ob aktuell ein regulärer Betrieb, ein Hochfahren (sog. Vorlauf) oder ein Herunterfahren (sog. Nachlauf) einer die Speichereinheit umfassenden Recheneinheit durchgeführt wird. Wenn die Überprüfung auf Fehler beispielsweise während eines Hochfahrens oder Herunterfahrens dieser Recheneinheit durchgeführt wird, kann ein erkannter fehlerhafter Speicherbereich zweckmäßigerweise sofort aufgefrischt werden, da während dieser Hoch- bzw. Herunterfahrphasen üblicherweise keine kritischen Funktionen aufgeführt werden und nicht auf die Speichereinheit zugegriffen wird. Als Auffrischungszeitpunkt kann in diesem Fall daher zweckmäßigerweise der aktuelle bzw. nächstmögliche Zeitpunkt bestimmt werden.
-
Wenn der Fehler während des regulären Betriebs der die Speichereinheit umfassenden Recheneinheit erkannt wird, können im Rahmen des vorgegebenen Kriteriums zweckmäßigerweise in der Recheneinheit auszuführende Prozesse bzw. Tasks berücksichtigt werden. Beispielsweise kann ein Abarbeitungs- bzw. Ablaufplan berücksichtigt werden, in welchem hinterlegt ist, zu welchen Zeitpunkten Prozesse bzw. Tasks ausgeführt werden sollen. Als Auffrischungszeitpunkt kann insbesondere ein Zeitpunkt bestimmt werden, zu welchem keine oder zumindest nur wenige andere Prozesse bzw. Tasks ausgeführt werden sollen und welcher somit ein offenes Zeitfenster für die Durchführung der Speicherauffrischung bietet.
-
Die Überprüfung der Speichereinheit auf fehlerhafte Speicherbereiche hin hat insbesondere keine oder zumindest kaum zeitliche Auswirkungen auf die Abarbeitung von Prozessen, so dass die Überprüfung auch im regulären Betrieb zweckmäßigerweise durchgeführt werden kann, ohne dass es zu Verzögerungen, Laufzeiteinbußen oder Fehlern kommt. Insbesondere kann die Überprüfung daher in vorgegebenen Überprüfungsintervallen oder zweckmäßigerweise auch kontinuierlich während des regulären Betriebs durchgeführt werden. Diese Überprüfungsintervalle können insbesondere in Abhängigkeit von Systemanforderungen bezüglich des Zeitrahmens gewählt werden, in welchem die komplette Speichereinheit geprüft werden soll. Wenn im Zuge der Überprüfung fehlerhafte Speicherbereiche erkannt werden, kann dies insbesondere an eine übergeordnete Instanz bzw. Funktion gemeldet werden, beispielsweise ein Betriebssystem oder einen verwaltenden Hypervisor, welche daraufhin den Auffrischungszeitpunkt bestimmt.
-
Wenn kein Zeitpunkt gefunden werden kann, der das vorgegebene Kriterium erfüllt, wird gemäß einer bevorzugten Ausführungsform nach einem vorgegebenen Zeitintervall und/oder auf eine Aufforderung hin erneut überprüft, ob ein Zeitpunkt das vorgegebene Kriterium erfüllt. Beispielsweise bei einer aktuell hohen Auslastung kann es gegebenenfalls vorkommen, dass nach dem vorgegebenen Kriterium aktuell kein Zeitpunkt gefunden werden kann, zu welchem die Speicherauffrischung durchgeführt werden kann. In diesem Fall wird zweckmäßigerweise zyklisch oder auf die Aufforderung bzw. Meldung hin erneut überprüft, ob und wenn ja wann die Auffrischung durchgeführt werden kann. Insbesondere werden jeweils so lange nach dem vorgegebenen Zeitintervall bzw. auf Aufforderung hin Zeitpunkte überprüft, bis ein geeigneter Auffrischungszeitpunkt gefunden werden kann, der das vorgegebene Kriterium erfüllt.
-
Gemäß einer besonders vorteilhaften Ausführungsform wird als das vorgegebene Kriterium eine zu erfüllende Echtzeitanforderung berücksichtigt. Der Auffrischungszeitpunkt wird zweckmäßigerweise derart gewählt, dass auch trotz der durchgeführten Speicherauffrischung diese Echtzeitanforderung erfüllt ist und dass es insbesondere zu keiner funktionalen Beeinträchtigung kommt. Vorzugsweise können zu diesem Zweck eine Auslastung und/oder eine momentane zeitliche Anforderung und/oder in Echtzeit durchzuführende Prozesse berücksichtigt werden. Bei hoher Auslastung bzw. einer hohen Anzahl an in Echtzeit durchzuführenden Prozessen kann ein Zeitpunkt als Auffrischungszeitpunkt gewählt werden, nachdem diese Anzahl an Prozessen abgearbeitet wurde, damit die zeitlichen Anforderungen bzw. die Echtzeitanforderung an diese Prozesse erfüllt werden können.
-
Falls keine Echtzeitanforderung zu erfüllen ist und beispielsweise keine Prozesse in Echtzeit auszuführen sind, kann die Speicherauffrischung insbesondere auch sofort durchgeführt werden und ein aktueller bzw. sofortiger Zeitpunkt kann als Auffrischungszeitpunkt bestimmt werden.
-
Beispielsweise kann es auch möglich sein, Systeme für die Dauer der Speicherauffrischung anzuhalten. Bei derartigen Systemen kann zweckmäßigerweise ebenfalls ein sofortiger Zeitpunkt als Auffrischungszeitpunkt bestimmt werden. Das System kann in diesem Fall zweckmäßigerweise nach Erkennen eines fehlerhaften Speicherbereichs angehalten werden, die Auffrischung kann sofort durchgeführt werden und anschließend kann das System wieder regulär weiter betrieben werden.
-
Vorteilhafterweise wird als das vorgegebene Kriterium berücksichtigt, ob seit einer zuletzt durchgeführten Korrektur ein vorgegebenes Zeitintervall vergangen ist. Gegebenenfalls kann bei direkt oder kurzzeitig hintereinander durchgeführten Auffrischungen die Gefahr bestehen, dass ein Fehlerfall auftritt, z.B. dass es zu Tasküberläufen kommt. Daher kann durch das Kriterium sichergestellt werden, dass nach einer durchgeführten Speicherauffrischung stets das vorgegebene Zeitintervall als Sicherheitspuffer verstreicht, um derartige Fehlerfälle zu vermeiden.
-
Vorzugsweise wird als das vorgegebene Kriterium eine Art des Fehlers des wenigstens einen Speicherbereichs berücksichtigt. Beispielsweise kann dabei eine Schwere des Fehlers bewertet werden und es kann beispielsweise unterschieden werden zwischen kritischen Fehlern, die einer schnellstmöglichen Auffrischung bedürfen, und unkritischen Fehlern, welche nicht einer sofortigen Auffrischung bedürfen. Bei derartigen kritischen Fehlern kann es sich beispielsweise um 2-Bit-Fehler bzw. um Fehler handeln, die gerade noch korrigiert werden können. Für derartige Fehler kann insbesondere ein nächstmöglicher Zeitpunkt als Auffrischungszeitpunkt bestimmt werden.
-
Unkritische Fehler können beispielsweise einzelne Bit-Fehler sein. Insbesondere kann bei einem erkannten unkritischen Fehler eine Auffrischung zunächst hintangestellt werden und es kann beispielsweise abgewartet werden, bis eine bestimmte Anzahl an derartigen unkritischen Fehler erkannt wurde. Die entsprechenden fehlerhaften Speicherbereiche können dann zweckmäßigerweise gemeinsam aufgefrischt werden. Dies hat zum einen den Vorteil, dass mehrere Fehler gesammelt behandelt werden können, was laufzeiteffizient wäre, und zum anderen, dass mit der Fehlerkorrektur bzw. Auffrischung gewartet werden kann, bis ein Zustand auftritt, in dem eine Auffrischung umfänglich ohne funktionale Einbußen gemacht werden kann, z.B. während des Herunterfahrens.
-
Bevorzugt werden als das vorgegebene Kriterium vorbestimmte Zeitpunkte berücksichtigt, zu welchen eine Speicherauffrischung erlaubt ist. Diese vorbestimmten Zeitpunkte können beispielsweise vor einer Inbetriebnahme der Speichereinheit bzw. der die Speichereinheit umfassenden Recheneinheit bestimmt werden, etwa während einer Planungs- bzw. Designphase, beispielsweise mit Hilfe statischer Analysen. Beispielsweise kann während einer derartigen Designphase ein Scheduling bzw. Ablaufplan für die Recheneinheit und deren Prozessorkern(e) erstellt werden, wobei bestimmte Zeitpunkte für die Durchführung von Speicherauffrischungen vorgegeben werden können. Zweckmäßigerweise kann bei Erkennen eines Fehlers der zeitlich nächste dieser vorbestimmten Zeitpunkte als Auffrischungszeitpunkt bestimmt werden.
-
Vorzugsweise wird, wenn die Speicherauffrischung durchgeführt wird und ein weiterer Zugriff, z.B. eines Tasks, auf den wenigstens einen fehlerhaften Speicherbereich durchgeführt werden soll, dieser weitere Zugriff auf eine weitere Speichereinheit umgeleitet, in welcher ein Speicherinhalt des fehlerhaften Speicherbereichs redundant hinterlegt ist. Bei dieser weiteren Speichereinheit kann es sich beispielsweise um eine Reservespeichereinheit handelt, in welcher der entsprechende Speicherinhalt gesichert ist, so dass Daten oder Programmcode doppelt vorgehalten werden. Somit kann auch während einer Speicherauffrischung auf den entsprechenden Speicherinhalt zugegriffen werden, ohne dass es zu Verzögerungen oder Laufzeiteinbußen kommt.
-
Insbesondere wird vor Inbetriebnahme im Zuge der Planungs- bzw. Designphase bestimmt, welche Speicherinhalte in der weiteren Speichereinheit bzw. dem Reservespeicher redundant hinterlegt werden. Beispielsweise können sämtliche Speicherinhalte redundant hinterlegt werden oder auch nur spezielle Speicherinhalte, beispielsweise solche Inhalte, deren Auffrischung signifikante Auswirkung haben könnte. Wenn beispielsweise die Auffrischung eines entsprechenden Speicherbereichs 1ms dauert, dann wären z.B. 1 ms dauernde Tasks oder 2ms dauernde Tasks signifikant betroffen. Ein 100ms dauernder Task würde hingegen davon fast nichts merken.
-
Bevorzugt wird ein Speicherinhalt des fehlerhaften Speicherbereichs in eine weitere Speichereinheit kopiert. Wenn, während die Speicherauffrischung durchgeführt wird, ein weiterer Zugriff auf den wenigstens einen fehlerhaften Speicherbereich durchgeführt werden soll, wird dieser weitere Zugriff bevorzugt auf diese weitere Speichereinheit umgeleitet. Beispielsweise kann es sich bei dieser weiteren Speichereinheit um einen sog. Overlay Speicher handeln, einen beschreibbaren Speicher, der über einen Mechanismus einen Speicher ersetzet, der normal nicht beschreibbar ist. Beispielsweise kann bei Erkennen des Fehlers durch Hardware oder auch durch Software ein neuer Mechanismus aktiviert werden, der den Speicherinhalt des betroffenen Speicherbereichs in diesen separaten Overlay Speicher kopiert. Nach dieser Kopieraktion werden Zugriffe auf den fehlerhaften Speicherbereich zweckmäßigerweise auf die weitere Speichereinheit umgeleitet, z.B. durch eine Speicherverwaltungseinheit (engl. „memory management unit“, MMU) in einem Prozessorkern, welche eine Adressübersetzung vor einem Buszugriff durchführt, oder auch durch einen Flashspeicher selbst, etwa wenn der Overlay Speicher direkt an dem Flash angebunden ist. Sobald diese Umleitung aktiv ist, kann die Speicherauffrischung ohne Auswirkung auf das System durchgeführt werden. Nach Abschluss der Auffrischung wird die Umleitung zweckmäßigerweise wieder zurückgenommen und der Speicherinhalt wird wieder aus der Speichereinheit gelesen.
-
In besonders vorteilhafterweise eignet sich die Erfindung für eine als Phasenübergangsspeicher ausgebildete Speichereinheit. In einem derartigen Phasenübergangsspeicher (engl. „phase change memory“, PCM) werden insbesondere Phasenübergänge in speziellen Legierungen genutzt, um Informationen zu speichern. Insbesondere wird dabei eine Änderung des elektrischen Widerstandes eines entsprechenden Phasenwechselmaterials ausgenutzt, wobei das Phasenwechselmaterial in einer amorphen Phase zumeist einen hohem Widerstand aufweist und in einer kristallinen Phase zumeist einen geringem Widerstand. Als Phasenwechselmaterial wird zumeist eine Chalkogenid-Legierung verwendet.
-
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. Ein Verlust von Speicherinhalten in einer derartigen Recheneinheit eines Fahrzeugs kann im schlimmsten Fall zu einem Ausfall von Fahrzeugfunktionen führen, was ein hohes Sicherheitsrisiko darstellen kann. Beispielsweise kann ein plötzlicher Ausfall eines Motorsteuergeräts eine Gefährdung für Insassen des Fahrzeugs und weiterer Verkehrsteilnehmer darstellen und gar dazu führen, dass ein Fahrer die Kontrolle über das Fahrzeug verliert. Das vorliegende Verfahren eignet sich daher in besonders vorteilhafter Weise für Speichereinheiten, besonders vorteilhaft für Phasenübergangsspeicher, im Fahrzeugbereich, um Verluste von Speicherinhalten zu vermeiden, die zu Sicherheitsrisiken für den Betrieb eines Fahrzeugs führen können.
-
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 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.
- 3 zeigt schematisch ein Zeit-Diagramm, das im Zuge einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens bestimmt werden kann.
- 4 zeigt schematisch ein Zeit-Diagramm, das im Zuge einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens bestimmt werden kann.
- 5 zeigt schematisch ein Zeit-Diagramm, das im Zuge einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens bestimmt werden kann.
-
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, die besonders bevorzugt als ein Phasenübergangsspeicher (engl. „phase change memory“, PCM) ausgebildet ist.
-
Die Speichereinheit 120 umfasst eine Vielzahl verschiedener Speicherbereiche 121. 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. Bei diesen Speicherbereichen 121 handelt es sich jeweils um Speicherzellen bzw. Speicherstellen, insbesondere jeweils um die kleinsten adressierbaren Einheiten der Speichereinheit 120, in welchen beispielsweise jeweils ein aus mehreren Bits bestehendes Wort bzw. Datenwort hinterlegt ist.
-
Im Zuge eines regulären Betriebsmodus führt die Prozessoreinheit 110 Prozesse zur Steuerung des Motors des Fahrzeugs aus, beispielsweise um Einspritzzeiten oder eine einzuspritzende Kraftstoffmenge zu bestimmen. Zu diesem Zweck werden von der Prozessoreinheit 110 bestimmte Prozesse bzw. Tasks in Echtzeit durchgeführt. In der Speichereinheit 120 können beispielsweise Daten hinterlegt sein, welche zum Durchführen dieser Prozesse bzw. Tasks und somit zum Bestimmen der Einspritzzeiten und der einzuspritzenden Kraftstoffmenge benötigt werden.
-
Zwar behalten nichtflüchtige Speichereinheiten wie die Speichereinheit 120 ihre Speicherinhalte auch ohne Stromversorgung, jedoch verflüchtigen sich die Speicherinhalte dennoch früher oder später. Dies gilt für Fälle sowohl mit als auch ohne Spannungsversorgung. Um Datenverluste durch derartige Verflüchtigungen zu vermeiden, ist es von Bedeutung regelmäßig Speicherauffrischungen der Speichereinheit 120 durchzuführen.
-
Zu diesem Zweck 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.
-
In einem Schritt 210 wird dabei von der Prozessoreinheit 110 eine Überprüfung durchgeführt, ob eine oder mehrere Speicherbereiche 121 der Speichereinheit 120 einen Fehler aufweisen. Insbesondere wird dabei für jede der Speicherzellen 121 der Speichereinheit 120 jeweils überprüft, ob ein auf einen Datenverlust bzw. auf eine Verflüchtigung hindeutendes Kriterium erfüllt ist, z.B. weil ein Prüfsummenfehler erkannt wird.
-
Diese Überprüfung 210 auf fehlerhafte Speicherbereiche hin wird zweckmäßigerweise in vorgegebenen Zeitintervallen wiederholt, angedeutet durch das Bezugszeichen 211. Da durch diese Überprüfung insbesondere keine oder zumindest kaum zeitliche Auswirkungen auf die Abarbeitung von Prozessen durch die Prozessoreinheit 110 hat, wird die Überprüfung zweckmäßigerweise während des regulären Betriebs des Steuergeräts 100 durchgeführt. Insbesondere kann die Überprüfung 210 kontinuierlich während des regulären Betriebs durchgeführt werden.
-
Wenn im Zuge der Überprüfung 210 bestimmt wird, dass wenigstens ein Speicherbereich der Speichereinheit 120 einen Fehler aufweist, wird in Schritt 220 in Abhängigkeit von einem vorgegebenen Kriterium ein Auffrischungszeitpunkt bestimmt, zu welchem eine Speicherauffrischung des wenigstens einen fehlerhaften Speicherbereichs durchgeführt werden soll.
-
Insbesondere wird als das vorgegebene Kriterium eine zu erfüllende Echtzeitanforderung berücksichtigt und der Auffrischungszeitpunkt wird derart bestimmt, dass entsprechende Echtzeitanforderung für von der Prozessoreinheit 110 durchzuführende Prozesse auch trotz der Speicherauffrischung erfüllt werden können.
-
Zu diesem Zweck kann als das vorgegebene Kriterium ferner eine aktuelle Auslastung der Prozessoreinheit 110 berücksichtigt werden, beispielsweise anhand eines Abarbeitungs- bzw. Ablaufplans, welcher vorgibt, zu welchen Zeitpunkten welche Prozesse bzw. Tasks von der Prozessoreinheit 110 abzuarbeiten sind. Als Auffrischungszeitpunkt wird zweckmäßigerweise ein Zeitpunkt bestimmt, zu welchem keine oder zumindest kaum andere Prozesse bzw. Tasks von der Prozessoreinheit 110 ausgeführt werden.
-
Beispielsweise bei einer aktuell hohen Auslastung der Prozessoreinheit 110 kann es vorkommen, dass in Schritt 220 nach dem vorgegebenen Kriterium aktuell kein Zeitpunkt gefunden werden kann, zu welchem die Speicherauffrischung durchgeführt werden kann, ohne dass es zu Verzögerungen oder Laufzeiteinbußen der Prozessoreinheit 110 kommt. In diesem Fall wird, angedeutet durch Bezugszeichen 221, nach einem vorgegebenen Zeitintervall erneut überprüft, ob ein Zeitpunkt gefunden werden kann, der das vorgegebene Kriterium erfüllt und zu welchem somit die Speicherauffrischung durchgeführt werden soll.
-
Bei Erreichen des bestimmten Auffrischungszeitpunkts wird in Schritt 230 die Speicherauffrischung des wenigstens einen fehlerhaften Speicherbereichs durchgeführt, indem der in dem jeweiligen fehlerhaften Speicherbereich hinterlegte Speicherinhalt eingelesen und erneut in den jeweiligen Speicherbereich geschrieben wird.
-
In den 3 bis 5 sind jeweils Beispiele für bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens anhand von Zeitdiagrammen dargestellt, wobei die horizontale Achse jeweils die Zeit t repräsentiert.
-
In den Diagrammen repräsentieren die jeweils mit dem Bezugszeichen 210 bezeichneten Blöcke die Überprüfung, ob wenigstens ein Speicherbereich 121 der Speichereinheit 120 einen Fehler aufweist, wie zuvor in Bezug auf 2 erläutert.
-
In den 3, 4 und 5 ist mit 301, 401 bzw. 501 jeweils ein Hochfahren bzw. Hochlauf des Steuergeräts 100 bezeichnet, mit 302, 402 bzw. 502 jeweils der reguläre Betrieb und mit 303, 403 bzw. 503 jeweils ein Nachlauf bzw. Herunterfahren.
-
Wie in den 3, 4 und 5 zu erkennen ist, wird während des Hoch- und während des Herunterfahrens jeweils einmal eine Überprüfung durchgeführt und während des regulären Betriebes mehrmals in regelmäßigen Zeitintervallen.
-
In den gezeigten Beispielen wird während des Hochfahrens 301, 401 bzw. 501 jeweils eine Überprüfung durchgeführt und ein Fehler eines Speicherbereichs erkannt. Da während des Hochfahrens noch keine kritischen Funktionen in dem Steuergerät 100 ausgeführt werden und nicht auf die Speichereinheit 120 zugegriffen wird, wird der entsprechende fehlerhafte Speicherbereich jeweils sofort aufgefrischt, jeweils angedeutet durch die Blöcke 310, 410 bzw. 510.
-
Entsprechend wird beispielhaft auch während des Herunterfahrens 303, 403 bzw. 503 jeweils ein Fehler erkannt, wobei auch hier der entsprechende fehlerhafte Speicherbereich jeweils sofort aufgefrischt wird, angedeutet durch die Blöcke 330, 440 bzw. 530, da während des Herunterfahrens nicht mehr auf die Speichereinheit 120 zugegriffen wird.
-
In 3 sei ferner beispielhaft angenommen, dass zu einem Zeitpunkt t1 während des regulären Betriebes 302 des Steuergeräts 100 ein fehlerhafter Speicherbereich erkannt wird. Dieser wird jedoch nicht sofort aufgefrischt, sondern es wird der Zeitpunkt t2 als Auffrischungszeitpunkt bestimmt, zu welchem die Auffrischung durchgeführt werden soll, so dass es zu keiner Einschränkung der Echtzeitfähigkeit des Steuergeräts 100 kommt. Zu dem Zeitpunkt t1 wird beispielsweise an eine übergeordnete Instanz wie ein Betriebssystem oder einen Hypervisor gemeldet, dass zu dem Auffrischungszeitpunkt t2 die entsprechende Speicherauffrischung durchgeführt werden soll, angedeutet durch den Block 321.
-
Bei Erreichen des Auffrischungszeitpunkts weist die entsprechende übergeordnete Instanz an, die Auffrischung durchzuführen, angedeutet durch den Block 322. Die Auffrischung wird daraufhin durchgeführt, angedeutet durch Block 323.
-
Wenn von dem Steuergerät 100 beispielsweise keine Prozesse in Echtzeit ausgeführt werden, können erkannte fehlerhafte Speicherberieche während des regulären Betriebs auch sofort aufgefrischt werden, wie es beispielsweise in 4 gezeigt ist.
-
Zu einem Zeitpunkt t3 wird ein Fehler erkannt und gemäß Block 420 wird sofort eine Speicherauffrischung durchgeführt. Zu einem Zeitpunkt t4 wird beispielsweise ebenfalls ein fehlerhafter Speicherbereich erkannt. Dabei wird gemäß Block 431 zunächst die übergeordnete Instanz benachrichtigt, welche daraufhin eine sofortige Auffrischung 432 autorisiert.
-
Gemäß einer bevorzugten Ausführungsform kann ferner vorgesehen sein, dass bei unkritischen Fehlern nicht sofort und nicht einzeln eine Auffrischung durchgeführt wird, sondern eine gemeinsame Mehrfachauffrischung, wie es in 5 beispielhaft gezeigt ist.
-
Beispielsweise kann es sich bei derartigen unkritischen Fehlern um einzelne Bit-Fehler handeln. Bei Erkennen eines derartigen unkritischen Fehlers kann zweckmäßigerweise zunächst abgewartet werden, bis eine bestimmte Anzahl von diesen unkritischen Fehlern erkannt wurde, bevor eine Auffrischung durchgeführt wird.
-
Dieser Fall ist beispielhaft in 5 gezeigt, wobei zu einem Zeitpunkt t5 während des regulären Betriebs des Steuergeräts 100 ein erster unkritischer Fehler erkannt und gemäß Block 521 an die übergeordnete Instanz gemeldet wird. Zu einem Zeitpunkt t6 wird ein zweiter unkritischer Fehler erkannt und gemäß Block 522 an die übergeordnete Instanz gemeldet. Ferner wird ein dritter unkritischer Fehler zu einem Zeitpunkt t7 erkannt und gemäß Block 523 an die übergeordnete Instanz gemeldet.
-
Ferner bestimmt die übergeordnete Instanz in Block 523 den Zeitpunkt t8 als Auffrischungszeitpunkt, zu welchem die entsprechenden fehlerhaften Speicherbereiche, welche diese drei unkritischen Fehler aufweisen, gemeinsam aufgefrischt werden sollen. Gemäß Block 524 wird diese Speicherauffrischung zu dem Auffrischungszeitpunkt t8 durchgeführt.