-
Die vorliegende Erfindung betrifft ein Verfahren zum Durchführen eines Refreshs eines ersten Speicherbereichs einer nichtflüchtigen Speichereinheit.
-
Stand der Technik
-
Nichtflüchtige Speichereinheiten (non volatile random access memory, NVRAM) werden verwendet, um dauerhaft Daten abzuspeichern. Nichtflüchtige Speichereinheiten behalten den Speicherinhalt zwar auch ohne Stromversorgung, jedoch verflüchtigt er sich in Abhängigkeit vom Typ (Flash Memory, Magnetoresistive Random Access Memory (MRAM), Phase Change Memory (PCM), Resistive Random Access Memory (RRAM) oder Ferroelectric Random Access Memory (FRAM)) dennoch früher oder später. 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 Speicherauffrischung, des darin hinterlegten Speicherinhalts durchgeführt, um den Speicherinhalt zu erhalten. Dabei wird der Speicherinhalt des Speicherbereichs eingelesen und der entsprechende Speicherbereich wird mit diesem eingelesenen Speicherinhalt wieder überschrieben.
-
Eine Verwendung derartiger nichtflüchtiger Speichereinheiten in eingebetteten Systemen, beispielsweise in einem Kraftfahrzeug, erweist sich insbesondere aufgrund dieser Refreshs als problematisch.
-
Während ein Refresh eines Speicherbereichs durchgeführt wird, kann zumeist nicht regulär auf diesen Speicherbereich zugegriffen werden. Während eines Refreshs ist somit zumeist weder Lesen noch Schreiben des entsprechenden Speicherbereichs im Zuge eines regulären Betriebs der nichtflüchtigen Speichereinheit möglich. In einem eingebetteten System ist es daher nötig, eine Anwendung, welche während des regulären Betriebs auf einen entsprechenden Speicherbereich zugreift, zu stoppen, um einen Refresh dieses Speicherbereichs durchzuführen.
-
Dieser Umstand kann in einem eingebetteten System zu hohen Laufzeiteinbußen führen. Wenn während des Refreshs nicht auf bestimmte Speicherinhalte zugegriffen werden kann, kann dies beispielsweise in einem eingebetteten System eines Kraftfahrzeugs dazu führen, dass eine von dem Motor des Kraftfahrzeugs erzeugte Leistung stark verringert wird oder dass sich der Motor nicht weiter drehen kann.
-
Es ist daher wünschenswert, eine Möglichkeit bereitzustellen, um einen Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit in einer Recheneinheit durchzuführen, ohne dass es zu erhöhten Laufzeiteinbußen der Recheneinheit kommt.
-
Offenbarung der Erfindung
-
Erfindungsgemäß wird ein Verfahren zum Durchführen eines Refreshs eines ersten Speicherbereichs einer nichtflüchtigen Speichereinheit mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die nichtflüchtige Speichereinheit umfasst zumindest zwei Speicherbereiche, die mit unterschiedlichen Speicherinhalten beschrieben werden können. Von einem ersten dieser Speicherbereiche soll ein Refresh durchgeführt werden, also eine Speicherauffrischung des in diesem ersten Speicherbereich hinterlegten Speicherinhalts.
-
Um auf die einzelnen Speicherbereiche zugreifen zu können, ist in der Speichereinheit ein Speicheradressbereich vorgesehen. In diesem Speicheradressbereich sind unterschiedliche Speicheradressen hinterlegt. Diese unterschiedlichen Speicheradressen adressieren bzw. verweisen auf Speicherbereiche der Speichereinheit. Mittels dieser Speicheradressen kann somit auf Speicherbereiche der Speichereinheit zugegriffen werden. Der Speicheradressbereich kann beispielsweise als ein Register oder eine Look-up Tabelle ausgebildet sein.
-
Insbesondere wird mittels des Speicheradressbereichs auf bestimmte Speicherinhalte zugegriffen. Die Speicheradressen des Speicheradressbereichs verweisen jeweils auf denjenigen Speicherbereich, in welchem ein bestimmter Speicherinhalt hinterlegt ist. In dem Speicheradressbereich wird somit für einen bestimmten Speicherinhalt der zugehörige Speicherbereich eingeblendet, in welchem der bestimmte Speicherinhalt hinterlegt ist.
-
Im Zuge des Refreshs des ersten Speicherbereichs wird zunächst wenigstens ein weiterer Speicherbereich der nichtflüchtigen Speichereinheit mit dem Speicherinhalt aus diesem ersten Speicherbereich überschrieben. Insbesondere wird der wenigstens eine weitere Speicherbereich dabei zunächst gelöscht und anschließend wird der Speicherinhalt aus dem ersten Speicherbereich in den wenigstens einen weiteren Speicherbereich kopiert.
-
In dem Speicheradressbereich wird dieser wenigstens eine weitere Speicherbereich für den entsprechenden Speicherinhalt eingeblendet. Weiterhin wird der erste Speicherbereich in dem Speicheradressbereich für den entsprechenden Speicherinhalt ausgeblendet. Wenn auf den Speicherinhalt zugegriffen werden soll, verweist der Speicheradressbereich somit nicht mehr auf den ersten Speicherbereich, sondern auf den wenigstens einen weiteren Speicherbereich.
-
Im Zuge des Refreshs wird der erste Speicherbereich mit dem Speicherinhalt aus dem wenigstens einen weiteren Speicherbereich überschrieben. Insbesondere wird dabei zunächst der Speicherinhalt aus dem ersten Speicherbereich gelöscht und anschließend der Speicherinhalt aus dem wenigstens einen weiteren Speicherbereich in den ersten Speicherbereich kopiert.
-
Somit ist der Speicherinhalt des ersten Speicherbereichs aufgefrischt. Der erste Speicherbereich wird nun wieder in dem Speicheradressbereich für den Speicherinhalt eingeblendet und der wenigstens eine weitere Speicherbereich wird ausgeblendet. Wenn auf den Speicherinhalt zugegriffen werden soll, verweist der Speicheradressbereich somit wieder auf den ersten Speicherbereich.
-
Der Speicherinhalt kann dabei genau in einen weiteren Speicherbereich oder auch in eine zweckmäßige Anzahl an weiteren Speicherbereichen kopiert werden. Der Speicherinhalt kann dabei jeweils komplett in die weiteren Speicherbereiche kopiert werden oder es können jeweils unterschiedliche Teile des Speicherinhalts in die unterschiedlichen weiteren Speicherbereiche kopiert werden.
-
Vorteile der Erfindung
-
Durch die Erfindung wird es ermöglicht, den Refresh des Speicherinhalts in dem ersten Speicherbereich durchzuführen und gleichzeitig einen regulären Betrieb bzw. einen regulären Zugriff auf den Speicherinhalt zu ermöglichen. Während des Refreshs des ersten Speicherbereichs kann gleichzeitig auf den Speicherinhalt in dem wenigstens einen weiteren Speicherbereich im Zuge eines regulären Betriebs zugegriffen werden.
-
Eine Anwendung, die gerade auf den Speicherinhalt zugreift, muss nicht gestoppt werden, um den Refresh durchzuführen. Weiterhin muss auch eine Anwendung, die während des Refreshs auf den Speicherinhalt zugreifen möchte, nicht gestoppt oder an diesem Zugriff gehindert werden. Die entsprechende Anwendung greift stattdessen während des Refreshs auf den Speicherinhalt in dem wenigstens einen weiteren Speicherbereich zu.
-
Eine Recheneinheit, in welcher die nichtflüchtige Speichereinheit implementiert ist, kann somit auch während des Refreshs regulär betrieben werden. Es kommt zu keinen Laufzeiteinbußen der Recheneinheit während des Refreshs.
-
In einer vorteilhaften Ausgestaltung der Erfindung umfasst der wenigstens eine weitere Speicherbereich der nichtflüchtigen Speichereinheit einen zweiten Speicherbereich und einen dritten Speicherbereich. Im Zuge des Refreshs des ersten Speicherbereichs werden zunächst dieser zweite Speicherbereich und dieser dritte Speicherbereich mit dem Speicherinhalt aus dem ersten Speicherbereich überschrieben. Der zweite Speicherbereich wird anschließend in den Speicheradressbereich für den Speicherinhalt eingeblendet und der erste Speicherbereich wird ausgeblendet. Soll während des Refreshs auf den Speicherinhalt zugegriffen werden, verweist der Speicheradressbereich somit auf den zweiten Speicherbereich. Im Zuge des Refreshs wird der erste Speicherbereich mit dem Speicherinhalt aus dem dritten Speicherbereich überschrieben. Insbesondere wird der erste Speicherbereich dabei zunächst gelöscht und anschließend wird der Speicherinhalt aus dem dritten Speicherbereich in den ersten Speicherbereich kopiert. Der Speicherinhalt wird dabei aus dem dritten Speicherbereich eingelesen, um den ersten Speicherbereich aufzufrischen. Soll während des Refreshs auf den Speicherinhalt im Zuge des regulären Betriebs der nichtflüchtigen Speichereinheit zugegriffen werden, wird auf den Speicherinhalt in dem zweiten Speicherbereich zugegriffen. Somit kann zwischen dem Zugriff auf den Speicherinhalt für den Refresh und für den regulären Betrieb getrennt werden. Somit wird vermieden, dass im Zuge des Refreshs und im Zuge des regulären Betriebs gleichzeitig auf den Speicherinhalt in demselben weiteren Speicherbereich zugegriffen wird. Ein derartiger gleichzeitiger Zugriff könnte zu einer Laufzeiteinbuße führen. Durch das Speichern des Speicherinhalts in dem zweiten und dem dritten Speicherbereich kann eine derartige Laufzeiteinbuße jedoch verhindert werden. Nach durchgeführtem Refresh wird der erste Speicherbereich in dem Speicheradressbereich für den Speicherinhalt wieder eingeblendet und der zweite Speicherbereich ausgeblendet.
-
Vorteilhafterweise ist der wenigstens eine weitere Speicherbereich ein Speicherbereich der nichtflüchtigen Speichereinheit, der im regulären Betrieb der nichtflüchtigen Speichereinheit nicht genutzt wird. Insbesondere ist der wenigstens eine weitere Speicherbereich als Backup vorgesehen, falls ein Speicherbereich ausfällt.
-
Der wenigstens eine weitere Speicherbereich kann auch explizit für den Refresh vorgesehen sein. Insbesondere wird mittels des wenigstens einen weiteren Speicherbereichs kontinuierlich, regelmäßig oder auf eine bestimmte Anforderung hin ein Refresh sämtlicher Speicherbereiche, welche im regulären Betrieb der nichtflüchtigen Speichereinheit genutzt werden, durchgeführt. Insbesondere werden diese Speicherbereiche, die im regulären Betrieb genutzt werden, nacheinander aufgefrischt. Sämtliche Speicherinhalte der nichtflüchtigen Speichereinheit werden somit stets aufgefrischt. Somit wird verhindert, dass Speicherinhalte der nichtflüchtigen Speichereinheiten nicht mehr korrekt ausgelesen werden können oder verloren gehen.
-
Eine derartige Anforderung, auf welche der Refresh durchgeführt wird, kann durch unterschiedliche Kriterien ausgelöst werden, beispielsweise mittels eines Auslese-Margins (dabei kann beispielsweise überprüft werden, ob ein Speicherbereich elektrische Ladungen verloren hat), eines Error Correcting Codes (ECC) und oder einer Prüfsumme. Ein Refresh auf solche Anforderungen hin ist vorteilhaft für die Lebensdauer, da bei jeder Nachprogrammierung die Zellen in unterschiedlichen Technologien jeweils gestresst werden, was die Lebensdauer negativ beeinflusst.
-
In einer bevorzugten Ausgestaltung der Erfindung wird der nichtflüchtige Speicher in einem eingebetteten System verwendet, beispielsweise in einem Steuergerät. Weiter bevorzugt wird dieses eingebettete System in einem Kraftfahrzeug verwendet. Wie eingangs erläutert, erweist sich der Refresh von Speicherbereichen in einem eingebetteten System herkömmlicherweise als schwierig, da während des Refreshs nicht im Zuge des regulären Betriebs auf den entsprechenden Speicherbereich zugegriffen werden kann. Dies kann zu hohen Laufzeiteinbußen des eingebetteten Systems führen.
-
Da es durch die Erfindung ermöglicht wird, den Speicherinhalt des ersten Speicherbereichs aufzufrischen und gleichzeitig auf den Speicherinhalt in dem wenigstens einen weiteren Speicherbereich zuzugreifen, können derartige Laufzeiteinbußen vermieden werden. Anwendung des eingebetteten Systems, welche während des Refresh des ersten Speicherbereichs auf den Speicherinhalt zugreifen, müssen dabei nicht gestoppt werden.
-
Die Erfindung bietet sich insbesondere für eingebettete Systeme in einem Kraftfahrzeug an, beispielsweise für ein Steuergerät eines Kraftfahrzeugs. Durch die Erfindung kann somit ein Refresh von Speicherbereichen in dem eingebetteten System des Kraftfahrzeugs durchgeführt werden, ohne dass es zu Leistungsschwankungen und Laufzeiteinbußen des Kraftfahrzeugs kommt oder dass sich der Motor des Kraftfahrzeugs nicht weiter drehen kann.
-
Steuergeräte in einem Kraftfahrzeug sind üblicherweise nur dann in Betrieb, wenn auch das Kraftfahrzeug in Betrieb ist und daher die Steuergeräte für die Steuerung des Kraftfahrzeugs benötigt werden. Daher ist es von besonderer Bedeutung, dass die Steuergeräte stabil und ohne Laufzeiteinbußen laufen und es durch einen durchgeführten Refresh nicht zu Leistungsschwankungen des Kraftfahrzeugs kommt. Durch Laufzeiteinbußen oder Leistungsschwankungen des Kraftfahrzeugs kann es zu einer Gefährdung von Insassen des Kraftfahrzeugs oder auch von anderen Verkehrsteilnehmern kommen. Durch die Erfindung kann die Sicherheit beim Betrieb eines Kraftfahrzeugs erhöht werden.
-
Insbesondere eignet sich die Erfindung für eingebettete Systeme, welche Prozesse zur Steuerung des Motors des Fahrzeugs durchführen. Laufzeiteinbußen derartiger eingebetteter Systeme können insbesondere zu Leistungsschwankungen des Motors des Kraftfahrzeugs führen, was durch die Erfindung verhindert wird. Beispielsweise bestimmen derartige eingebettete Systeme Einspritzzeiten oder eine einzuspritzende Kraftstoffmenge oder eine Zusammensetzung für das Luft-Kraftstoff-Gemisch für den Motor des Kraftfahrzeugs. Die Erfindung bietet sich besonders vorteilhaft für für eingebettete Systeme, welche eine Drehzahl des Motors erfassen, eine Kraftstoffeinspritzung und/oder Zündung des Luft-Kraftstoff-Gemischs steuern oder einen Druck eines Kraftstoff-Rails regeln. Weiterhin eignet sich die Erfindung besonders vorteilhaft für eine Kommunikation zwischen mehreren Steuergeräten, beispielsweise um gewünschte bzw. geforderte Momente zwischen diesen Steuergeräten auszutauschen.
-
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 des Verfahrens in Form von Software 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 Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, 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.
-
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
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 Kraftfahrzeugs schematisch dargestellt und mit 100 bezeichnet. Das Steuergerät 100 ist als ein eingebettetes System in dem Kraftfahrzeug ausgebildet. Das Steuergerät 100 soll in diesem speziellen Beispiel als ein Motorsteuergerät zum Steuern eines Verbrennungsmotors des Kraftfahrzeugs ausgebildet sein.
-
Das Steuergerät 100 umfasst eine Prozessoreinheit 110, die dazu eingerichtet ist, bestimmte Prozesse auszuführen. Das Steuergerät 100 umfasst weiterhin eine nichtflüchtige Speichereinheit 120. Die nichtflüchtige Speichereinheit 120 ist beispielsweise als ein Magnetoresistive Random Access Memory (MRAM), ein Phase Change Memory (PCM), ein Resistive Random Access Memors (RRAM), ein Ferroelectric Random Access Memory (FRAM) oder ein Flash-Speicher ausgebildet.
-
Die nichtflüchtige Speichereinheit 120 umfasst eine Vielzahl von voneinander unabhängigen Speicherbereichen 121 bis 125. Diese einzelnen Speicherbereiche 121 bis 125 werden im Zuge eines regulären Betriebs des Steuergeräts 100 genutzt, beispielsweise für Firmware-Daten des Steuergeräts 100.
-
Im Zuge dieses regulären Betriebs führt die Prozessoreinheit 110 Prozesse zur Steuerung des Motors des Fahrzeugs aus, beispielsweise um Einspritzzeiten oder eine einzuspritzende Kraftstoffmenge zu bestimmen. Um diese Prozesse auszuführen, benötigt die Prozessoreinheit 110 unterschiedliche Eingabewerte.
-
Diese Eingabewerte sind als Speicherinhalte in den einzelnen Speicherbereichen 121 bis 125 der nichtflüchtigen Speichereinheit 120 hinterlegt.
-
Weiterhin umfasst das Steuergerät 100 einen Speicheradressbereich 130. Dieser Speicheradressbereich 130 umfasst eine Vielzahl von Speicheradressen 131 bis 135. Die einzelnen Speicheradressen 131 bis 135 zeigen dabei jeweils auf denjenigen der Speicherbereiche 121 bis 125, in welchem ein bestimmter Speicherinhalt hinterlegt ist. Für die einzelnen Speicherinhalte sind in dem Speicheradressbereich 130 somit die entsprechenden Speicherbereiche 121 bis 125 eingeblendet.
-
Wenn die Prozessoreinheit 110 auf einen bestimmten Speicherinhalt zugreifen möchte, verweist der Speicheradressbereich 130 somit auf den entsprechenden eingeblendeten Speicherbereich 121 bis 125.
-
Das Steuergerät 100 ist weiterhin dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. Dabei können Speicherauffrischungen, also Refreshs, der einzelnen Speicherbereiche 121 bis 125 durchgeführt werden.
-
Die nichtflüchtige Speichereinheit 120 weist zu diesem Zweck zwei weitere Speicherbereiche 140 und 150 auf. Diese weiteren Speicherbereiche 140 und 150 werden nicht im Zuge des regulären Betriebs des Steuergeräts 100 genutzt.
-
Die bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens ist in 2 als ein Blockdiagramm 200 dargestellt. Im Folgenden wird anhand der 1 und 2 beispielhaft erläutert, wie das Steuergerät einen Refresh des ersten Speicherbereichs 121 mittels des zweiten Speicherbereichs 140 und des dritten Speicherbereichs 150 durchführt.
-
In einem ersten Schritt 201 wird der Speicherinhalt des ersten Speicherbereichs 121 sowohl in den zweiten Speicherbereich 140 als auch in den dritten Speicherbereich 150 kopiert.
-
In einem Schritt 202 wird für diesen Speicherinhalt in den Speicheradressbereich 130 der zweite Speicherbereich 140 eingeblendet. Dabei wird beispielsweise die Speicheradresse 131, welche bisher auf den ersten Speicherbereich 121 gezeigt hat, auf den zweiten Speicherbereich 140 gerichtet.
-
Wenn die Prozessoreinheit 110 in Schritt 203a im Zuge des regulären Betriebs des Steuergeräts 100 auf den entsprechenden Speicherinhalt zugreifen muss, beispielsweise um die Einspritzzeit für den Motor zu bestimmen, verweist der Speicheradressbereich 130 auf den zweiten Speicherbereich 140. Die Prozessoreinheit 110 liest in Schritt 203a im Zuge des regulären Betriebs des Steuergeräts 100 den Speicherinhalt aus dem zweiten Speicherbereich 140 ein.
-
Gleichzeitig zu dem regulären Betrieb des Steuergeräts 100 in Schritt 203a wird in Schritt 203b der Refresh des ersten Speicherbereichs 121 durchgeführt. Dabei wird zunächst der Speicherinhalt des ersten Speicherbereichs 121 gelöscht und anschließend der Speicherinhalt aus dem dritten Speicherbereich 150 eingelesen und in den ersten Speicherbereich 121 kopiert. Somit ist der Speicherinhalt in dem ersten Speicherbereich 121 aufgefrischt.
-
Anschließend wird in Schritt 204 für den Speicherinhalt in den Speicheradressbereich 130 wieder der erste der Speicherbereich 121 eingeblendet. Die Speicheradresse 131, welche bisher auf den zweiten Speicherbereich 140 gezeigt hat, wird wieder auf den ersten Speicherbereich 121 gerichtet.
-
Anschließend wird in Schritt 205 ein Refresh des nächsten Speicherbereichs 122 der nichtflüchtigen Speichereinheit 120 durchgeführt.
-
Ein derartiger Refresh der einzelnen Speicherbereiche 121 bis 125 der nichtflüchtigen Speichereinheit 120 des Steuergeräts 100 kann beispielsweise in festen Zeitabständen durchgeführt werden oder jedes Mal, wenn das Steuergerät 100 ein- und/oder ausgeschaltet wird oder das Steuergerät 100 und/oder die nichtflüchtige Speichereinheit 120 in einen Ruhemodus geschaltet werden. Alternativ oder zusätzlich kann der Refresh eines der Speicherbereiche 121 bis 125 durchgeführt werden, wenn ein bestimmtes Kriterium erfüllt ist. Ein derartiges Kriterium kann beispielsweise sein, dass ein Fehler oder eine bestimmte Anzahl an Fehlern in dem entsprechenden Speicherbereich 121 bis 125 detektiert wird.