-
Die
Erfindung betrifft ein Verfahren zur Belegung eines Speichers, eine
Speichereinrichtung, ein Computerprogramm und ein Computerprogrammprodukt.
-
Stand
der Technik
-
Auf
EEPROM-Speicherbausteinen werden nicht-flüchtige Steuergerätedaten
abgelegt. Hierzu werden unterschiedliche Speicherlayouts bzw. Speicherauslegungen
verwendet. Eine Layout-Strategie besteht
darin, den EEPROM-Speicher in Blöcke
gleicher Größe zu unterteilen
und in diesen Blöcken
die eigentlichen Nutzdaten abzulegen. Zusätzlich zu diesen Nutzdaten
wird für
jeden Block eine Verwaltungsinformation benötigt. Die Verwaltungsinformation
für einen
Block kann unter anderem darüber
Aufschluss geben, ob ein Block frei oder belegt ist, oder welche Länge die
im Block gespeicherten Nutzdaten und welche Prüfdaten, bspw. Checksumme/CRC,
diese Nutzdaten haben und dergleichen. In der Regel wird diese Verwaltungsinformation
in einem anderen Bereich des EEPROM-Speichers als die Nutzdaten
abgelegt. Es gibt also einen Bereich für die Verwaltungsinformationen
und einen Bereich für
die Nutzdaten. Dies ist vergleichbar mit dem FAT(File Allocation
Table bzw. Dateizuordnungstabelle)-Dateisystem für Festplatten unter Windows.
Zudem ist bekannt, ein blockorientiertes EEPROM-Dateisystem in unterschiedlichen
Steuergeräten
einzusetzen.
-
Mit
der vorliegenden Erfindung werden ein Verfahren mit den Merkmalen
des Patentanspruchs 1, eine Speichereinrichtung mit den Merkmalen
des Patentanspruchs 6, ein Computerprogramm mit den Merkmalen des
Patentanspruchs 9 und ein Computerprogrammprodukt mit den Merkmalen
des Patentanspruchs 10 vorgestellt.
-
Vorteile der Erfindung
-
Bei
dem erfindungsgemäßen Verfahren
zum Belegen einer Speichereinrichtung mit mehreren Blöcken werden
Verwaltungsinformationen eines jeden Blocks und die zu dem Block
gehörenden
Nutzdaten zusammen abgelegt.
-
Vorteilhafte
Ausgestaltungen ergeben sich aus den Unteransprüchen.
-
Die
erfindungsgemäße Speichereinrichtung ist
derart mit einer Anzahl Blöcken
belegt, dass eine Verwaltungsinformation eines jeden Blocks und
die zu dem Block gehörenden
Nutzdaten gemeinsam abgelegt sind.
-
Mit
dieser Speichereinrichtung sind sämtliche Schritte des erfindungsgemäßen Verfahrens durchführbar.
-
Die
Erfindung betrifft außerdem
ein Computerprogramm mit Programmcodemitteln, um alle Schritte eines
erfindungsgemäßen Verfahrens
durchzuführen,
wenn das Computerprogramm auf einem Computer oder einer entsprechenden
Recheneinheit, insbesondere mit einer erfindungsgemäßen Speichereinrichtung,
ausgeführt
wird.
-
Die
Erfindung betrifft des weiteren ein Computerprogrammprodukt mit
Programmcodemitteln, die auf einem computerlesbaren Datenträger gespeichert
sind, um alle Schritte eines erfindungsgemäßen Verfahrens durchzuführen, wenn
das Computerprogramm auf einem Computer oder einer entsprechenden
Recheneinheit, insbesondere mit einer erfindungsgemäßen Speichereinrichtung,
ausgeführt wird.
-
Die
Speichereinrichtung kann als EEPROM (Electrically Erasable Programmable
Read-Only Memory), also als ein elektrisch löschbarer, programmierbarer
Nur-Lese-Speicher oder als ein nichtflüchtiger, elektronischer Speicherbaustein,
der unter anderem in Embedded Systems (eingebetteten Systemen) eingesetzt
wird, ausgebildet sein.
-
Das
Verfahren und somit eine Strategie zum Belegen des Speichers bzw.
zur Speicherbelegung erlauben es, einen Kapazitätsverlust zu vermeiden oder
zu verringern, der sich typischerweise bei blockorientierten Speichereinrichtungen
oder Dateisystemen durch Verschnitt bei bestimmten EEPROMs typischerweise
ergibt.
-
Die
mit der Erfindung vorgestellte Strategie eignet sich somit zur Bereitstellung
einer Speicherbelegung bzw. eines Speicherlayouts, einer Speicherplanung
oder einer Speicheraufteilung der Speichereinrichtung und kann auf
unterschiedlicher EEPROM-Speicher-Hardware eingesetzt werden. Es wird
somit eine effiziente Nutzung von Segmenten der Speichereinrichtung
durch strukturierte oder blockweise geordnete Ablage bzw. Speicherung
von Daten, die sowohl Verwaltungsinformationen als auch Nutzdaten
umfassen können,
in Blöcken
der Speichereinrichtung ermöglicht.
-
Mit
der Erfindung ist somit vorgesehen, die Verwaltungsinformation eines
jeden Blocks lokal bei den zu dem Block gehörenden Nutzdaten bzw. Datensätzen gemeinsam
abzulegen. Die Nutzdaten eines Blocks können aus Daten, die jeweils
mindestens ein Nutzdatum bzw. mindestens einen Datensatz mit Dateiinhalten
umfassen, gebildet sein. Es ist nunmehr möglich, sämtliche Dateien des jeweiligen Blocks
gemeinsam abzulegen.
-
Anstatt
das EEPROM in zwei große
Bereiche für
Verwaltungsinformationen und für
Nutzdaten zu unterteilen, kann das Speicherlayout bzw. der Speicheraufbau
vorsehen, dass auf die Verwaltungsinformation von Block 1 die Nutzdaten
von Block 1 folgen. Dann folgt die Verwaltungsinformation von Block
2, gefolgt von den Nutzdaten von Block 2 usw., so dass der Verwaltungsinformation
eines Blocks n jeweils die Nutzdaten dieses Blocks n folgen und
somit gemeinsam abgelegt werden. Hierbei ist es jedoch nicht wesentlich,
ob jeweils zuerst die Verwaltungsinformationen oder zuerst das mindestens
eine Nutzdatum abgelegt werden. Selbst eine Verschränkung zwischen
einer Verwaltungsinformation und mindestens einem Nutzdatum eines
jeweiligen Blocks ist möglich.
-
Der
Vorteil dieser Aufteilung ergibt sich aus einer technischen Eigenschaft
von EEPROM-Speicher-Hardware:
Bei jedem EEPROM-Typ ist der Speicher in so genannte Segmente unterteilt.
Zur Vermeidung von Datenverlusten durch Spannungseinbrüche beim
Schreiben auf das EEPROM bzw. der Speichereinrichtung werden unterschiedliche
Daten, die die Verwaltungsinformationen und die Nutzdaten umfassen,
an Segmentgrenzen voneinander getrennt. Bei ungünstiger Segmentgröße ergibt
sich daher zwischen zwei Nutzdaten ein Verschnitt, falls die Segmente
nicht vollständig
gefüllt
werden können.
-
Das
hier vorgeschlagene Verfahren erlaubt es, diesen "Verschnitt" zu reduzieren und
somit die effektiv nutzbare Kapazität des EEPROM-Speichers zu vergrößern. Eine
weitere Eigenschaft des Verfahrens ist, dass es für unterschiedliche
Segmentgrößen geeignet
ist. Damit ist das Verfahren auf verschiedene EEPROM-Speichertypen
anwendbar und erleichtert so die Entwicklung einer portablen, wiederverwendbaren
Implementierung.
-
Die
typischerweise sensibel einzustufende Abspeicherung nicht-flüchtiger
Nutzdaten kann durch das Verfahren, insbesondere bei Steuergeräten mit erfindungsgemäßen Speichereinrichtungen,
verbessert werden.
-
In
einem ersten Beispiel sei auf einen Prozessor mit einer Segmentgröße von 4
Bytes (bspw. Freescale HC12) verwiesen, wobei als mögliche Konstellation
angenommen ist, dass die Verwaltungsinformation 3 Bytes pro Block
belegt. Die Nutzdaten bestehen aus 40 Daten, von denen die längsten eine
Länge von
21 Bytes haben.
-
Damit
könnte
ein nach dem Stand der Technik aufgebautes Speicherlayout folgendermaßen aussehen:
40 mal 1 Segment, also 40 mal 4 Bytes für die Verwaltungsinformation,
so dass sich je Block 3 Bytes für
Daten und 1 Byte Verschnitt ergeben. Des weiteren 40 mal 6 Segmente,
also 40 mal 24 Bytes für
die Nutzdaten, dabei besteht für
die längsten Nutzdaten
ein Block aus vorzugsweise 21 Bytes für Daten und 3 Bytes für Verschnitt.
Bei kürzeren
Daten entsteht entsprechend mehr Verschnitt. Insgesamt ergibt sich
ein Bedarf von 1120 Bytes.
-
Unter
Anwendung des hier vorgestellten erfindungsgemäßen Verfahrens sieht die Speicherbelegung
bzw. das Speicherlayout in diesem Fall folgendermaßen aus:
40 mal 6 Segmente, also 40 mal 24 Bytes für Verwaltungsinformationen
und Nutzdaten bzw. Datensätze.
Für die
längsten
Nutzdaten besteht ein Block aus 3 Bytes Verwaltungsinformationen
und 21 Bytes Nutzdaten, also 0 Bytes für Verschnitt. Bei kürzeren Daten
entsteht auch hier ein Verschnitt. Insgesamt ergibt sich ein Bedarf
von nur 960 Bytes. Die Einsparung ergibt sich in diesem Beispiel
deshalb, weil der Verschnitt der Verwaltungsinformationen und der
Verschnitt für
die Nutzdaten summiert immer mindestens der Größe eines Segments entsprechen.
Durch die erfindungsgemäße Zusammenfassung
kann daher für
jeden Block ein Segment eingespart werden.
-
In
einem zweiten Beispiel soll zusätzlich
die Option betrachtet werden, dass Nutzdaten über mehr als einen Block verteilt
werden. Es sei wieder ein HC12 Prozessor zugrunde gelegt, wobei
die Verwaltungsinformationen 3 Bytes pro Block betrage. Das EEPROM
besitze eine Gesamtkapazität
von 1024 Bytes. Um dieses Kapazität vollständig auszunutzen, könnte beispielsweise
eine Aufteilung in 32 Blöcke mit
jeweils insgesamt 32 Bytes für
Verwaltungsinformationen und Nutzdaten gewählt werden. Damit sieht der
Speicherbedarf für
ein Nutzdatum einer Länge
von 29 Bytes nach dem Stand der Technik derart aus, dass sich 32
Bytes für
jeden Block in einem Segment mit 4 Bytes für die Verwaltungsinformation und
7 Segmente mit 28 Bytes für
die Nutzdaten unterteilen. Das Nutzdatum wird über zwei Blöcke verteilt, wobei sich in
einem ersten Block die ersten 28 Bytes befinden, das letzte Byte
wird im zweiten Block abgelegt.
-
Unter
Anwendung des erfindungsgemäßen Verfahrens
ergibt sich folgendes Bild: Die 32 Bytes für jeden Block unterteilen sich
in 3 Bytes für
die Verwaltungsinformation und 29 Bytes für die Nutzdaten. Ein Nutzdatum
bzw. ein Datensatz kann somit in einem einzelnen Block untergebracht
werden. Die Einsparung beträgt
einen kompletten Block und ergibt sich in diesem Beispiel daraus,
dass das eine Byte Verschnitt innerhalb der Verwaltungsinformation,
das sich nach dem Stand der Technik ergibt, mit dem hier vorgestellten
Verfahren zur Aufnahme von Datenbytes genutzt werden kann.
-
Die
Erfindung, insbesondere die EEPROM-Speichereinrichtung, kann in
Rechensystemen, wie bspw. in eingebetteten Systemen wie sog. Bodycomputern,
eingesetzt werden, dies gilt auch für zukünftige Bodycomputer mit einem
EEPROM zur Abspeicherung nicht-flüchtiger Nutzdaten. Die Erfindung
kann in Fahrzeugen mit Steuergeräten
umgesetzt werden. Mit der hier vorgestellten Erfindung ist eine
Weiterentwicklung von blockorientierten EEPROM-Dateisystemen möglich, da eine gute Übertragbarkeit
auf unterschiedliche EEPROM-Hardware mit unterschiedlichen Eigenschaften
gewährleistet ist.
-
Weitere
Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der
Beschreibung und der beiliegenden Zeichnung.
-
Es
versteht sich, dass die vorstehend genannten und die nachstehend
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
ein erstes Beispiel für
eine Speicherbelegung nach Stand der Technik.
-
2 zeigt
ein erstes Beispiel für
eine erfindungsgemäße Speicherbelegung.
-
3 zeigt
ein zweites Beispiel für
eine Speicherbelegung nach Stand der Technik.
-
4 zeigt
ein zweites Beispiel für
eine erfindungsgemäße Speicherbelegung.
-
Ausführungsform
der Erfindung
-
Bei
einer blockorientierten Speicherbelegung nach dem Stand der Technik
sind in einem in 1 gezeigten EEPROM-Speicher 100 Verwaltungsinformationen 102, 104, 106 und
Nutzdaten 108, 110, 112 in zwei Bereichen 114, 116 abgelegt, wobei
ein erster Bereich 114 die Verwaltungsinformationen 102, 104, 106 für alle Blöcke umfasst,
ein zweiter Bereich 116 umfasst die Nutzdaten 108, 110, 112 für alle Blöcke. Eine
Reihenfolge dieser beiden Bereiche 114, 116 ist
egal. Bei dem EEPROM-Speicher 100, der n Blöcke enthält, sieht
eine Struktur oder ein Speicheraufbau im Detail wie in 1 gezeigt
aus, wobei Speicheradressen von links nach rechts aufsteigen, dabei
ist Vx die Verwaltungsinformation 102, 104, 106 von
Block x und Dx das Nutzdatum 108, 110, 112 von
Block x:
V1 102, V2 104, ..., Vn 106,
D1 108, D2 110, ..., Dn 112
-
Im
Gegensatz hierzu sieht die in 2 vorgestellte
Speicherbelegung einer als EEPROM-Speicher ausgebildeten Speichereinrichtung 200 bei
einem ersten Beispiel einer Anwendung der Erfindung nur einen Bereich
vor, bei dem die Verwaltungsinformationen 202, 204, 206 und
mindestens ein Nutzdatum 208, 210, 212 für einen
Block jeweils zusammen abgelegt werden.
-
Bei
einem EEPROM-Speicher, der n Blöcke enthält, ergibt
sich nachfolgende Aufteilung, wobei Vx die Verwaltungsinformation 202, 204, 206 von Block
x und Dx das mindestens eine Nutzdatum 208, 210, 212 von
Block x ist:
V1 202, D1 208, V2 204,
D2 210, ..., Vn 206, Dn 212
-
Hierbei
kommt es nicht darauf an, ob jeweils zuerst die Verwaltungsinformationen 202, 204, 206 oder
zuerst das mindestens eine Nutzdatum 208, 210, 212 abgelegt
werden, es wäre
sogar eine Verschränkung
zwischen einer Verwaltungsinformation 202, 204, 206 und
mindestens einem Nutzdatum 208, 210, 212 eines
jeweiligen Blocks möglich.
-
Der
Vorteil dieser Aufteilung ergibt sich aus einer Segmentierung der
Speichereinrichtung 200. Ein Segment ist dadurch definiert,
dass Speicherzellen innerhalb des Segments beschrieben werden können, ohne
dass Daten, die hier die Verwaltungsinformationen 202, 204, 206 und
die Nutzdaten 208, 210, 212 umfassen,
in anderen Segmenten dadurch beeinflusst werden. Die Daten innerhalb
desselben Segments dagegen sind voneinander nicht völlig unabhängig.
-
Für den Fall,
dass der vorliegende EEPROM-Speicher einen Prozessor mit einer Segmentgröße von 4
Byte hat, kann jedes Segment unabhängig von jedem anderen Segment
verändert
werden. Die 4 Bytes innerhalb desselben Segments müssen dagegen
jeweils gemeinsam behandelt werden. Aus dieser Segmentstruktur der
Speichereinrichtung 200 ergeben sich Auswirkungen auf den
Speicheraufbau oder ein entsprechendes Speicherlayout bei Belegung
der Speichereinrichtung 200 mit den Daten. Es ist beim
Schreiben auf die Speichereinrichtung 200 stets mit einem
Abbruch zu beliebigen Zeitpunkten zu rechnen, beispielsweise durch
Unterbrechung der Stromversorgung. Dabei ist es unvermeidbar, dass bei
einem derartigen Schreib-Abbruch die gerade geschriebenen Daten
verloren gehen.
-
Mit
der Erfindung wird vermieden, dass weitere Daten oder Blöcke, die
jeweils eine Verwaltungsinformation 202, 204, 206 und
das mindestens eine Nutzdatum 208, 210, 212 umfassen,
dadurch ebenfalls beschädigt
werden. Es ist vorgesehen, dass sich zwei unterschiedliche Daten
niemals ein Segment teilen dürfen.
Wird ein Datum der beiden Daten geschrieben und deshalb das gemeinsame
Segment verändert,
wird somit verhindert, dass ein Schreib-Abbruch beim Schreiben des
gemeinsamen Segments auch beide Daten beschädigt. Folglich endet jedes
einzelne Datum auf der Speichereinrichtung 200 an einer
Segmentgrenze.
-
Hierdurch
kann sich ein Verschnitt ergeben, wenn ein Datum seine Segmente
nicht vollständig ausfüllt. Ein
Datum der Länge
9 Bytes würde
beispielsweise beim HC 12 drei Segmente mit jeweils 4 Bytes belegen,
wobei das dritte Segment nur mit einem Byte belegt wäre und sich
somit ein Verschnitt von 3 Bytes ergäbe.
-
3 zeigt
ein zweites Beispiel für
einen Speicheraufbau nach dem derzeitigen Stand der Technik bei
einem EEPROM-Speicher 300, wobei die Verwaltungsinformationen 302, 304, 306 und
die Nutzdaten 308, 310, 312 jeweils eines
Blocks voneinander getrennt werden. Hier tritt an doppelt so vielen Stellen
als bei der erfindungsgemäßen Vorgehensweise
ein Verschnitt 314 auf dem EEPROM-Speicher 300 und
somit einem Medium auf, da kein Segment die Verwaltungsinformationen 302, 304, 306 von mehr
als einem Block enthalten darf. Anderenfalls würde ein Schreib-Abbruch bei
der Aktualisierung der Verwaltungsinformation 302, 304, 306 eines Blocks
auch die Verwaltungsinformation 302, 304, 306 eines
anderen Blocks beeinflussen. Somit kann zwischen zwei benachbarten
Verwaltungsinformationen 302, 304, 306 jeweils
ein Verschnitt 314 entstehen. Außerdem darf kein Segment Nutzdaten 308, 310, 312 von
mehr als einem Block enthalten, auf diese Weise kann auch zwischen
zwei benachbarten Nutzdaten 308, 310, 312 Verschnitt 314 entstehen.
-
Um
dieses zu verdeutlichen, ist im folgenden die Speicheraufteilung
für n Blöcke dargestellt,
diesmal im Vergleich zur 1 zusätzlich mit allen Stellen, an
denen Verschnitt 314 entstehen kann, mit von links nach
rechts aufsteigenden Speicheradressen, wobei Vx für eine Verwaltungsinformation 302, 304, 306 von
Block x und Dx für
ein Nutzdatum 308, 310, 312 von Block
x steht, S steht für
einen möglichen Verschnitt 314:
V1 302,
S 314, V2 304, S 314, ..., S 314,
Vn 306, S 314, D1 308, S 314,
D2 310, S 314, ..., S 314, Dn 310,
S 314
-
4 zeigt
ein zweites Beispiel einer erfindungsgemäßen Speicherbelegung für eine als
EEPROM-Speicher ausgebildete Speichereinrichtung 400. Hier
sind für
von links nach rechts aufsteigende Speicheradressen, Vx für eine Verwaltungsinformation 402, 404, 406 von
Block x und Dx für
mindestens ein Nutzdatum 408, 410, 412 von
Block x gezeigt, S steht für
einen möglichen
Verschnitt 414.
-
Auch
bei diesem Beispiel der Erfindung werden die Verwaltungsinformationen 402, 404, 406 und das
mindestens eine Nutzdatum 408, 410, 412 eines einzelnen
Blocks zusammenhängend
abgespeichert, so tritt ein eventueller Verschnitt 414 nur
noch zwischen den gemeinsamen Daten, also Verwaltungsinformationen 402, 404, 406 und
Nutzdaten 408, 410, 412, der unterschiedlichen
Blöcke
auf: Die Verwaltungsinformationen 402, 404, 406 und
das mindestens eine Nutzdatum 408, 410, 412 desselben
Blockes nutzen gemeinsam jeweils ein Segment.
V1 402,
D1 410, S 414, V2 404, D2 410,
S 414, ..., S 414, Vn 406, Dn 412,
S 414
-
Somit
kann diese Erfindung eine effektiv nutzbare Kapazität der Speichereinrichtung 400 erhöhen. Dies
ist dann der Fall, wenn durch die Zusammenlegung der Verwaltungsinformationen 402, 404, 406 und
Nutzdaten 408, 410, 412 ein um mindestens die
Segmentgröße geringerer
Verschnitt 414 als bei getrennter Ablage nach dem Stand
der Technik entsteht.