-
Die
Erfindung betrifft ein Verfahren zum Betreiben einer Speichereinrichtung,
ein entsprechendes Computerprogramm und ein Computerprogrammprodukt.
-
Stand
der Technik
-
Flash-Speicher
werden neben EEPROM-Speicher üblicherweise
als Speicher für nicht-flüchtige Daten
insbesondere in eingebetteten Systemen (Embedded Systems) oder Steuergeräten in Kraftfahrzeugen
(Kfz) verwendet. Ein Flash-Speicher weist die Besonderheit auf,
dass er vor dem Beschreiben üblicherweise
zunächst
gelöscht
werden muss. Dazu ist der Speicher in sogenannten Sektoren oder
Erase Blocks organisiert. Diese Einheiten können nur als Ganzes gelöscht werden.
Jede Zelle einer solchen (Lösch-)Einheit
kann nach einem Löschvorgang
der gesamten Einheit einmalig beschrieben werden, wobei die Sektor-
und auch die Zellgröße vom verwendeten
Flashtyp abhängen. Üblicherweise
sind aber die Sektoren im Verhältnis
zu den einzelnen Daten eher groß.
-
Der
Löschvorgang
setzt alle Bits in einem Sektor auf den Wert "logisch 1", beim Beschreiben werden die entsprechenden
Bits auf den Wert "logisch
0" gesetzt oder,
in Abhängigkeit
von der Hardware, umgekehrt. Ohne einen vorhergehenden Löschvorgang
ist es nicht möglich,
ein Bit von "logisch
0" wieder auf "logisch 1" zu setzen. Manche Flash-Speicher
bieten jedoch die Möglichkeit,
eine bereits beschriebene Zelle erneut zu beschreiben, wobei bei
diesem erneuten Schreibvorgang wiederum nur Bits auf "logisch 0" gesetzt werden können.
-
Der
Hersteller des Flash-Speichers sichert üblicherweise eine gewisse Datenhaltungszeit
bis zu einer vorbestimmten Anzahl an Löschvorgängen zu. Diese Garantie gilt
meist nur unter bestimmten Voraussetzungen, beispielsweise die Umgebungstemperatur
betreffend. Wird die Anzahl an erlaubten Löschvorgängen überschritten, erhöht sich
die Wahrscheinlichkeit für
Fehler in den gespeicherten Daten.
-
Da
das Überschreiten
der vom Hardware-Hersteller zugesicherten Anzahl an Löschzyklen
zu Problemen führt,
sind Methoden im Einsatz, die die Anzahl der Löschzyklen verringern. Diese Verfahren
erfordern beispielsweise eine aufwendige Anpassung der Basis- oder
Anwendungssoftware.
-
Speichereinrichtungen
bzw. Speichermedien, insbesondere EEPROM- oder Flash-Speichereinrichtungen,
zur Aufnahme nicht-flüchtiger
Daten weisen allgemein eine begrenzte Lebensdauer auf, die von der
Beanspruchung, insbesondere der Anzahl der Zugriffe, abhängt.
-
Es
stellt sich daher das Problem, ein Verfahren anzugeben, mit dem
die Speichereinrichtung beim Betrieb geschont wird, also insbesondere
die Anzahl der notwendigen Lösch- und/oder Schreibzyklen
beim Betrieb der Speichereinrichtung verringert wird.
-
Mit
der vorliegenden Erfindung werden ein Verfahren zum Betreiben einer
Speichereinrichtung, ein entsprechendes Computerprogramm und ein Computerprogrammprodukt
mit den Merkmalen der unabhängigen
Patentansprüche
vorgestellt.
-
Bei
dem erfindungsgemäßen Verfahren
zum Betreiben einer Speichereinrichtung zum Speichern von veränderbaren
Daten wird einem Datum ein Standardwert zugeordnet. Im allgemeinen
besitzt jedes nicht-flüchtige
Datum in einem System einen Standardwert, der im Programmcode vorhanden
ist, nicht aber im Medium für
nicht-flüchtige
Daten. Der Besitzer eines Datums arbeitet mit dem Standardwert,
sofern noch kein Wert nicht-flüchtig
abgelegt ist oder kein Zugriff auf diesen Wert möglich ist. Der Kern der Erfindung
besteht darin, ein Datum auf einem Speichermedium nicht abzuspeichern,
wenn das abzuspeichernde Datum dem Standardwert dieses Datums entspricht,
da dann der Zugriff auf den Standardwert möglich ist.
-
Es
existieren zwei Varianten bzw. Stufen des Verfahrens. Erst einmal
werden Daten nicht abgespeichert, sofern diese Daten ihren Standardwert
besitzen. Handelt es sich darüber
hinaus um ein nicht-erstmaliges Abspeichern, müssen die Daten vom Speichermedium
gelöscht
werden. Unter "löschen" ist insbesondere
jedes für
einen Fachmann gleichwertige Verfahren zu verstehen, wie z.B. ein gespeichertes
Datum als gelöscht,
ungültig
usw. zu markieren, zu überschreiben
usw.
-
Vorteile des
Verfahrens
-
Der
Vorteil des Verfahrens besteht darin, dass über die Lebenszeit des Systems
weniger Daten geschrieben werden. Dies wirkt sich bei den hier betrachteten
Dateisystemen in einer geringeren Belastung des Mediums und somit
längeren
Lebenszeit des Systems aus. Das Verfahren wird üblicherweise in ein Anwendungsprogramm
integriert, in dem die Daten bzw. Parameter mit Werten vorbelegt
werden. Es ist aber ebenso möglich,
das Verfahren in ein Betriebssystem oder in ein Programm für den Speicherbetrieb
zu integrieren, das dann Zugriff auf die Standardwerte haben muss.
Das Verfahren führt
zum Einsparen von Speicherzugriffen und erhöht auf diesem Weg die Lebensdauer
des Systems bei bestimmten Dateisystemen. Das Verfahren kann immer
sinnvoll eingesetzt werden, wenn keine feste Zuordnung der einzelnen
Daten zu jeweiligen Speicherbereichen auf dem Medium besteht. Dateisysteme
mit derartigen Eigenschaften existieren für unterschiedliche Speichermedien
wie z.B. EEPROMs und Flash-Speicher.
-
Vorteilhafte
Ausgestaltungen sind Gegenstand der Unteransprüche und der nachfolgenden Beschreibung.
-
Zweckmäßigerweise
wird ein zum Speichern vorgesehenes Datum nur dann gespeichert,
wenn das zum Speichern vorgesehene Datum nicht mit einer letzten
gespeicherten Version identisch ist, also noch nicht als gültige Version
gespeichert ist. Ist noch keine Version des Datums gespeichert,
wird die zum Speichern vorgesehene Version gespeichert. Damit kann
die Anzahl der Schreibzugriffe weiter vorteilhaft verringert werden,
da ein Schreibzugriff nur dann durchgeführt wird, wenn er tatsächlich notwendig
ist.
-
Es
ist besonders vorteilhaft, wenn bei dem erfindungsgemäßen Verfahren
eine EEPROM- oder eine Flash-Speichereinrichtung
betrieben wird. Eine Flash-Speichereinrichtung
weist darüber
hinaus zweckmäßigerweise
wenigstens ein logisches Segment auf. Als aktives Segment wird ein
Segment bezeichnet, auf das Zugriffe stattfinden. Das erfindungsgemäß Verfahren
kann die Lebensdauer besonders von EEPROM- und Flash-Speichereinrichtungen
erhöhen,
da diese besonders leicht beschädigt
werden. Ein Vorteil besteht in der effizienten Ausnutzung der Speicher-Hardware, wodurch
eine möglichst
geringe Anzahl an Schreib- und
Löschzyklen ermöglicht wird.
Der Vorteil der effizienten Ausnutzung der Speicher-Hardware kann
auf unterschiedliche Weise ausgenutzt werden. Durch die geringere Anzahl
an Zyklen sind bei der Speicher-Hardware einer vorgegebenen Größe weniger
Fehler zu erwarten, wodurch die Zuverlässigkeit erhöht wird.
Alternativ wird weniger Speicher-Hardware benötigt, da weniger Daten geschrieben
werden müssen,
wodurch die Hardware-Kosten verringert werden. Eine Kombination
dieser beiden Aspekte bietet die Möglichkeit eines Trade-Offs
zwischen Zuverlässigkeit
und Hardware-Kosten.
-
Gemäß einer
bevorzugten Ausführungsform werden
wenigstens zwei logische Segmente vorgesehen, wobei ein erstes logisches
Segment als aktives logisches Segment gekennzeichnet wird. Ein zum
Speichern vorgesehenes Datum wird beim Betreiben der Flash-Speichereinrichtung
in dem aktiven logischen Segment gespeichert. Beim Betreiben wird eine
Reorganisation der Flash-Speichereinrichtung durchgeführt, wenn
ein freier Speicherplatz in dem aktiven logischen Segment zur Aufnahme
des zum Speichern vorgesehenen Datums nicht mehr ausreicht. Dabei
wird ein zweites logisches Segment als neues aktives logisches Segment
gekennzeichnet und in dem alten logischen Segment gespeicherte Daten
werden in das neue aktive logische Segment übertragen. Bei der Reorganisation
werden Daten aus einer Arbeitspeichereinrichtung in dem neuen aktiven
logischen Segment gespeichert, wenn die Daten in der Arbeitspeichereinrichtung
nicht mit den Daten in dem alten aktiven logischen Segment übereinstimmen,
d.h. die Daten in der Arbeitsspeichereinrichtung aktueller als die
Daten in dem vorher aktiven logischen Segment sind. Nützlicherweise
hat bei der Erfindung die zum Speichern der Daten ausgebildete Instanz
des Systems Zugriff auf die Daten in der Arbeitspeichereinrichtung.
Es versteht sich, dass in Übereinstimmung
mit der Erfindung ein Datum bei der Reorganisation nicht gespeichert
wird, wenn es seinen zugeordneten Standardwert besitzt. Die Idee dieser
vorteilhaften Ausgestaltung besteht darin, Daten bei der Umorganisation
nicht ungeprüft
von einem logischen Segment auf das andere zu kopieren, sondern
alle auf dem alten Segment gespeicherten Daten in ihrem aktuellen
Zustand – also
wie sie zum Zeitpunkt der Reorganisation von den Besitzern der Daten
verwendet werden (Variablen im RAM) – in dem neuen Segment zu speichern.
Ein Vorteil besteht in der effizienten Ausnutzung der Speicher-Hardware,
wodurch eine verminderte Anzahl an Löschzyklen erreicht wird. Die
Verminderung hängt insbesondere
von der Anzahl und Größe der Daten, ihrer
Schreib- und Veränderungshäufigkeit
und der Größe der logischen
Segmente ab.
-
Es
ist besonders vorteilhaft, wenn ein logisches Segment wenigstens
aus einer zusammenhängend
löschbaren
Flash-Einheit ausgebildet
wird. Mittels dieser Maßnahme
kann die Reorganisation einfach und ohne eventuellen Datenverlust
durchgeführt
werden. Zwischen den Löscheinheiten
der jeweiligen logischen Segmente besteht keine Überlappung, d.h. verschiedene
logische Segmente bestehen aus verschiedenen Löscheinheiten.
-
Gemäß einer
vorteilhaften Weiterbildung der Erfindung wird ein logisches Segment
in logische Bereiche unterteilt, die zweckmäßigerweise jeweils zusammenhängend, d.h.
ohne innere Lücken,
ausgebildet werden. Ein zum Speichern vorgesehenes Datum wird in
einem ersten Bereich des logischen Segments, eine dem Datum zugehörige Datumsverwaltungsinformation
in einem zweiten Bereich des logischen Segments abgelegt.
-
Diese
Weiterbildung der Erfindung betrifft das Speichern nicht-flüchtiger
Daten auf einer Flash-Speichereinrichtung. Es wird eine Organisation
der Daten auf dem Flash-Speicher dargestellt und die Zugriffsmechanismen
auf die Daten werden beschrieben. Dabei werden insbesondere die
Rahmenbedingungen eingebetteter Systeme beachtet.
-
Bei
der Datenspeicherung werden die Daten in eine zunächst keine
Daten enthaltende Zelle des ersten Bereichs und die zugehörigen Datenverwaltungsinformationen
in eine keine Datenverwaltungsinformationen enthaltende Zelle des
zweiten Bereichs gespeichert. Die Bereiche wachsen damit an und
auf dem Segment aufeinander zu, d.h. der freie Speicherplatz verringert
sich. Es versteht sich, dass damit genauso umfasst ist, dass die
Daten und/oder Datumsverwaltungs informationen in einen freien Speicherplatz
geschrieben werden, der dann durch das Beschreiben zu einem entsprechenden
Bereich wird.
-
Abgebrochene
Transaktionen (Lese- oder Schreiboperationen), beispielsweise durch
Unterbrechung der Spannungsversorgung oder durch einen Reset, führen nicht
zum Verlust bereits gespeicherter Daten. Es ist keine Mehrfachablage
der Daten erforderlich, um die Verfügbarkeit der Daten auch bei
abgebrochenen Lese- oder Schreiboperationen zu erreichen. Jedes
Datum muss nur einfach geschrieben werden. Ein einzelner Speicherfehler
kann nur zum Verlust eines einzigen gespeicherten Datums führen. Es
existiert keine Kopplung zwischen den Daten. Jedes Datum kann zu
einem beliebigen Zeitpunkt geschrieben werden, ohne dass auch andere
Daten geschrieben werden müssen.
Das Speichern eines Datums hat keinen Einfluss auf das Speichern
anderer Daten. Eine Kopplung zwischen unterschiedlichen Daten ist
beispielsweise dann nachteilig, wenn gekoppelte Daten zu unterschiedlichen
Zeitpunkten geschrieben werden. Auch die genannten im Stand der Technik
notwendigen Eingriffe in die Anwendungssoftware werden minimiert.
Es gibt keinen Code-Overhead
bspw. durch die Verwendung des virtuellen EEPROMs und durch die
Emulation.
-
Vorteilhafterweise
ist genau eine Version eines gespeicherten Datums aktuell bzw. gültig, wobei die
Gültigkeit
eines Datums anhand der Datumsverwaltungsinformation bestimmt wird.
Dazu kann beispielsweise eine fortlaufende Numerierung verwendet
werden. Eine Datumsverwaltungsinformation enthält, abhängig vom physikalischen und
logischen Aufbau des Dateisystems, vorteilhafterweise einen Speicherort,
eine Identifikation und/oder eine Länge des zugehörigen Datums
oder weitere, für
einen Fachmann notwendige und offensichtliche Inhalte. Daten sind üblicherweise
veränderbar,
liegen also häufig
in verschiedenen Versionen vor. Wenn ein Datum, insbesondere durch
eine Programmverarbeitung, geändert
wird, verliert die bis dahin gültige
Version des Datums ihre Gültigkeit.
Die gültigen
Daten werden normalerweise regelmäßig, bspw. beim Ausschalten
oder Herunterfahren der Recheneinheit, gespeichert. Ein zum Speichern
vorgesehenes Datum wird in dem ersten Bereich des logischen Segments abgelegt,
wobei der erste Bereich bereits eine oder mehrere ältere Versionen
des Datums enthalten kann, die damit ungültig werden. Die dem Datum
zugehörige
Datumsverwaltungsinformation wird in dem zweiten Bereich des logischen
Segments abgelegt, wobei der zweite Bereich entsprechend eine oder mehrere
Datumsverwaltungsinformationen ungültiger bzw. ungültig gewordener älterer Versionen
von Daten enthalten kann.
-
In
einer vorteilhaften Weiterbildung wird die Gültigkeit eines Datums anhand
des Speicherortes der Datumsverwaltungsinformation bestimmt. Beispielsweise
werden die Datumsverwaltungsinformationen fortlaufend nebeneinander
abgelegt. Die Datumsverwaltungsinformation des gültigen Datums steht somit an
einer später
geschriebenen Stelle. Damit ist vorteilhaft in einer Datumsverwaltungsinformation
keine Information zur Gültigkeit
eines Datums notwendig, womit der Datenbedarf vermindert wird.
-
Gemäß einer
bevorzugten Ausgestaltung wird ein Separatordatum zur Abgrenzung
des ersten und/oder des zweiten Bereichs vorgesehen. Das Separatordatum
befindet sich bevorzugt neben dem zweiten Bereich, der die Datums verwaltungsinformationen
enthält,
und bildet den Abschluss des Bereichs. Es bietet sich an, den Separator
bzw. das Separatordatum nicht physikalisch zu schreiben. Er kann
statt dessen aus Bits im gelöschten
Zustand, gemäß dieser
Beschreibung aus "logisch
1" gesetzten Bits,
bestehen. Mit Hilfe des Separators kann das Ende des Bereiches mit
der Verwaltungsinformation für
die Daten auf einfache Weise erkannt werden.
-
Vorteilhafterweise
wird eine Segmentverwaltungsinformation in einem dritten Bereich
des logischen Segments abgelegt. Dieser Bereich hat vorzugsweise
eine feste Länge.
Er wird auf das logische Segment geschrieben, bevor das erste Datum
darauf gespeichert wird. Die Verwaltungsinformation des Segments
enthält
verschiedene segmentspezifische Daten, bspw. eine fortlaufende Nummer.
Diese Numerierung ermöglicht
es, die Reihenfolge der Verwendung der Flash-Segmente im Fall einer abgebrochenen
Transaktion zu ermitteln. Die Verwaltungsinformation für ein gelöschtes Segment
wird vor der ersten Speicherung von Daten auf diesem Segment geschrieben.
Sie ist bevorzugt in einer Form abgelegt, dass sie auch bei einem
fehlerhaften Bit in diesem Bereich fehlerfrei rekonstruiert werden
kann.
-
Zweckmäßigerweise
wird ein freier Speicherplatz des logischen Segments den Bereichen nach
Bedarf zur Verfügung
gestellt. Dabei wächst
die Größe des mit
Daten belegten ersten Bereichs und die Größe des mit Datenverwaltungsinformationen belegten
zweiten Bereichs bei der Datenablage an. Es versteht sich, dass
gemäß einer
weniger bevorzugten Ausführungsform
der freie Speicherplatz auch fest und statisch den Bereichen zugeteilt
werden kann.
-
Die
Daten werden bei einer bevorzugten Ausgestaltung abwechselnd in
zwei logischen Segmenten gespeichert, wobei ein logisches Segmente jeweils
mindestens aus einer separat löschbaren
Einheit besteht. Ein logisches Segment beinhaltet wenigstens zwei,
vorteilhafterweise drei Bereiche, einen Bereich für Daten,
einen Bereich für
Datumsverwaltungsinformationen und in vorteilhafter Weiterbildung einen
Bereich für
Segmentverwaltungsinformationen. Die Bereiche mit den Daten und
der Verwaltungsinformation für
die Daten wachsen mit der Speicherung von Daten auf einem logischen
Segment aufeinander zu. Wenn ein zu schreibendes Datum nicht mehr
auf das logische Segment passt, ist eine Reorganisation oder ein
Transfer der Daten auf das andere Segment erforderlich.
-
Bevorzugterweise
wird das erfindungsgemäße Verfahren
in einem Embedded System, Steuergerät oder ECU in einem Kfz verwendet.
Insbesondere in einem Kfz kann ein teurer Austausch von Elektronik
vermieden werden, wenn die Lebensdauer der Speichereinrichtung erhöht wird.
-
Ein
erfindungsgemäßes Computer-
bzw. Mikroprozessorprogramm enthält
Programmcodemittel, um das erfindungsgemäße Verfahren durchzuführen, wenn
das Programm auf einem Computer, einem Mikroprozessor oder einer
entsprechenden Recheneinheit ausgeführt wird.
-
Ein
erfindungsgemäßes Computer-
bzw. Mikroprozessorprogrammprodukt beinhaltet Programmcodemittel,
die auf einem maschinen- bzw. computerlesbaren Datenträger gespeichert
sind, um ein erfindungsgemäßes Verfahren durchzuführen, wenn
das Programmprodukt auf einem Computer, einem Mikroprozessor oder
auf einer entsprechenden Recheneinheit ausgeführt wird. Geeignete Datenträger sind
insbesondere Disketten, Festplatten, ROM, Flash-Speicher, EEPROMs,
CD-ROMs, u.a.m. Auch ein Download eines Programms über Computernetze (Internet,
Intranet usw.) und Fahrzeugnetze (Body-Bus, Infotainment-Bus etc.)
oder Luftschnittstellen (Mobilfunk) ist möglich.
-
Bei
der beschriebenen erfindungsgemäßen Lösung können die
zu speichernden Daten gemäß einer
weiteren bevorzugten Ausgestaltung modifiziert werden. Es bietet
sich bspw. eine Kompression oder Verschlüsselung der Daten an. Auch
mittels einer Fehlerkorrektur oder einer Prüfsumme durch Anwendung gängiger Verfahren
kann die Sicherheit der Daten und der Verwaltungsinformationen erhöht werden.
Die Anzahl der Löschzyklen
kann weiter verringert werden, wenn die Struktur der Daten verändert wird,
zum Beispiel durch Zusammenlegen mehrerer Daten.
-
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 eines Ausführungsbeispiels
in der Zeichnung schematisch dargestellt und wird im folgenden unter
Bezugnahme auf die Zeichnung ausführlich beschrieben.
-
Figurenbeschreibung
-
1a zeigt
schematisch ein logisches Segment einer Flash-Speichereinrichtung
zur Verwendung mit einer bevorzugten Ausführungsform der Erfindung;
-
1b zeigt
schematisch ein logisches Segment nach einem Speichervorgang gemäß dem Stand
der Technik;
-
2a zeigt
schematisch ein logisches Segment einer Flash-Speichereinrichtung
zur Verwendung mit einer anderen bevorzugten Ausführungsform
der Erfindung;
-
2b zeigt
schematisch einen Schreibvorgang auf ein aktives logisches Segment
gemäß 2a;
-
2c zeigt
schematisch eine Reorganisation einer Flash-Speichereinrichtung;
und
-
3 zeigt
ein Flussdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens.
-
Im
folgenden sind figurenübergreifend
gleiche Elemente mit gleichen Bezugszeichen versehen.
-
Wenn
ein Dateisystem ohne feste Zuordnung der einzelnen Daten zu einem
bestimmten Speicherbereich auf dem Medium eingesetzt wird, geht
aus dem Medium hervor, ob ein bestimmtes Datum momentan abgespeichert
ist oder nicht. Der Vorteil bei den hier im Fokus stehenden Dateisystemen ist
eine (in Abhängigkeit
vom Dateisystem) gleichmäßige Verringerung
der Schreibzugriffe und damit eine Erhöhung der Lebensdauer der Speicher-Hardware.
-
Im
folgenden wird anhand der beiliegenden Zeichnung erläutert, wie
sich das Verhalten des Systems in der Speicher-Hardware widerspiegelt.
Da die Klasse der hier betrachteten Systeme sehr unterschiedliche
Ansätze
umfasst – angefangen
bei unterschiedlicher Speicher-Hardware bis hin zu unterschiedlichen
Verfahren – muss
für die
explizite Darstellung ein Vertreter ausgewählt werden. Das Verfahren funktioniert
jedoch analog bei vielen anderen Dateisystemen.
-
In 1a ist
ein logisches Segment 400 einer Flash-Speichereinrichtung zur Verwendung mit einer
bevorzugten Ausführungsform
der Erfindung schematisch dargestellt. Das logische Segment 400 enthält bereits
gespeicherte Daten, nämlich
ein Datum 401, ein Datum 402, ein Datum 403 usw.
Die Speicherstellen des logischen Flash-Segments 400 sind
in der Abbildung zeilenweise dargestellt. Die niedrigste Adresse
des Segments befindet sich in der Abbildung links oben, die höchste Adresse
rechts unten. Bei einer Flash-Speichereinrichtung
kann ein zu löschendes
Datum normalerweise nicht von der Speichereinrichtung entfernt werden.
Es wird daher gelöscht,
indem es auf eine geeignete Weise als gelöscht bzw. ungültig markiert
wird.
-
Anhand 1b wird
nun als Beispiel ein System mit drei Parametern x, y, z erläutert, deren Werte
zur nichtflüchtigen
Speicherung vorgesehen sind. Nach dem ersten Start des Systems entsprechen
die Werte der Parameter den Start- bzw. Standardwerten. Die Werte
werden erstmalig spätestens während des
ersten Herunterfahrens des Systems als Daten auf die Speichereinrichtung
geschrieben. Der zu diesem Zeitpunkt vorhandene Wert für Parameter
x wird als Datum 401, der Wert für Parameter y als Datum 402 und
der Wert für
Parameter z als Datum 403 zum Speichern vorgesehen. Der
Wert von Parameter z bzw. Datum 403 entspricht dem Standardwert
(im Programmcode), die Daten 401 und 402 entsprechen
nicht den zugehörigen
Standardwerten. In 1b ist eine Speichereinrichtung
gezeigt, wie sie nach dem Herunterfahren des Systems im Stand der
Technik ausgebildet ist. Ohne Verwendung der Erfindung befinden
sich dann auf dem Medium zur Aufnahme der nicht-flüchtigen
Daten alle drei Daten, wie es 1b zeigt.
Unter Verwendung der Erfindung befänden sich lediglich die Daten 401 und 402 auf
dem Medium. Offensichtlich können
auf diese Weise Schreiboperationen eingespart werden.
-
Gleiches
gilt, wenn ein Datum im System schon abgespeichert worden ist, aber
im weiteren Verlauf der Verarbeitung seinen Standardwert annimmt
und erneut gespeichert werden soll. Wenn die Werte der Parameter
gespeichert werden, ohne das Verfahren zu verwenden, müssen die
Werte aller drei Parameter als neue Daten, bspw. 404, 405 und 406 (nicht
gezeigt), in der Speichereinrichtung gespeichert werden. Im Fall
des Einsatzes der Erfindung müssen
nur die Werte der Parameter, die nicht den zugehörigen Standardwerten entsprechen,
gespeichert werden. Bereits gespeicherte Daten bzw. Werte von Parametern,
die im Lauf der Verarbeitung ihre Standardwerte wiedereingenommen
haben, müssen gelöscht werden.
In diesem Fall wird also nicht der Speicherplatz für das gesamte
Datum benötigt,
sondern nur der Speicherplatz, um ein Datum zu löschen. Ein Datum kann unter
bestimmten Voraussetzungen auch ohne Einfluss auf die Lebensdauer
der Hardware gelöscht
werden. Das Löschen
hängt von Eigenschaften
der verwendeten Speicher-Hardware ab. Es gibt zwei Varianten.
-
Sofern
es technisch möglich
ist, Bereiche auf der Hardware (mit den erwähnten Einschränkungen durch
die Flash-Technologie)
ohne Löschen
zu überschreiben,
kann die Verwaltungsinformation für das zu löschende Datum oder das Datum
selbst entsprechend überschrieben
werden. Dafür
gibt es mehrere Möglichkeiten.
Zum einen können
alle Bits auf den Wert "logisch
0" gesetzt werden,
was dann als gelöscht
erkannt werden muss und keine andere Interpretation zulassen darf.
Zum anderen können
die Bits für
die Identifikation des Datums auf den Wert "logisch 0" gesetzt werden. In diesem Fall darf
diese Identifikation ansonsten nicht verwendet werden. Es ist ebenfalls
denkbar, die Bits für
die Adresse des Datums auf den Wert "logisch 0" zu setzen, wobei in diesem Fall eine
Speicherung an dieser Adresse nicht möglich sein darf.
-
Ist
es hingegen technisch nicht möglich
ist, bereits beschriebene Bereiche ohne Löschen erneut zu überschreiben,
so wird ein neues als gelöscht
erkennbares Datum oder gemäß der weiter
unten beschriebenen Ausführungsform
eine neue Verwaltungsinformation für dieses Datum geschrieben.
Dort wird ein Verweis eingetragen, anhand dessen erkennbar ist,
dass dieses Datum gelöscht
ist. Dies kann beispielsweise durch einen Verweis auf eine Adresse
geschehen, an der keine Daten gespeichert werden können ("NIL-pointer").
-
Bislang
wurde erläutert,
dass Standardwerte verwendet werden, wenn das Datum nicht auf dem Medium
abgespeichert ist. Es wurde jedoch nicht diskutiert, wie die Standardwerte
zum Datenbesitzer gelangen. Dies wirkt sich ausschließlich in
der Software an der Schnittstelle zwischen den Datenbesitzern und
der Komponente zur Datenverwaltung aus, nicht jedoch auf die Speicher-Hardware. Es gibt
mehrere Varianten, die von dieser Erfindung umfasst sind. Es versteht
sich für
jeden Fachmann auf dem fraglichen Gebiet, wie die nachfolgenden
Aspekte zu verstehen und zu realisieren sind. Die Aspekte können in
nahezu beliebiger Kombination verwirklicht werden.
-
Zunächst ist
darauf abzustellen, wer die Standardwerte der einzelnen Daten bzw.
Parameter kennt. Es kann sich dabei um den Datenbesitzer oder um
die für
die Verwaltung der nicht-flüchtigen
Daten zuständige
Komponente (Betriebssystem, Betriebssystemkomponente usw.) handeln.
-
Weiterhin
ist zu berücksichtigen,
wie die Datenbesitzer die Standardwerte für die Parameter erhalten. Zum
einen können
die Datenbesitzer, zum anderen die für die Verwaltung der nicht-flüchtigen
Daten zuständige
Komponente dafür
verantwortlich sein.
-
Außerdem ist
zu behandeln, wer einen Lesevorgang initiiert. Dafür können wiederum
der Datenbesitzer oder die für
die Verwaltung der nicht-flüchtigen
Daten zuständige
Komponente oder auch eine andere Komponente vorgesehen sein.
-
Schließlich muss
festgestellt werden, dass die Standardwerte verwendet werden müssen. Dies kann
erneut durch den Datenbesitzer oder die für die Verwaltung der nicht-flüchtigen
Daten zuständige Komponente
erfolgen.
-
Eventuell
ist auch zu berücksichtigen,
ob der Datenbesitzer Kenntnis davon haben muss, dass er mit Standardwerten
arbeitet.
-
In 2a ist
ein logisches Segment einer Flash-Speichereinrichtung zur Verwendung mit
einer weiteren bevorzugten Ausführungsform
der Erfindung schematisch gezeigt und mit 100 bezeichnet. Das
Segment 100 weist einen ersten Bereich 101, einen
zweiten Bereich 102 und einen dritten Bereich 103 auf.
Der dritte Bereich 103 enthält die Segmentverwaltungsinformationen.
Der erste Bereich 101 enthält die Daten, der zweite Bereich 102 die
Datumsverwaltungsinformationen. Der Bereich 101 enthält ein Datum 110', ein Datum 111', ein Datum 112', ein Datum 113', ein Datum 114' und ein Datum 115'. Die zugehörigen Datumsverwaltungsinformationen sind
im Bereich 102 enthalten. Sie sind mit 110 bis 115 bezeichnet,
wobei die Datumsverwaltungsinformation 110 zum Datum 110' gehört, die
Datumsverwaltungsinformation 111 zum Datum 111' usw. An den
zweiten Bereich 102 schließt sich ein Separatordatum 120 an.
Das Separatordatum 120 begrenzt den zweiten Bereich 102.
-
Die
drei genannten Bereiche werden gemäß einer bevorzugten Ausführungsform
der Erfindung auf jedem logischen Segment ausgebildet. Neben der
in 2a gezeigten Anordnung der Bereiche sind weitere
Anordnungen denkbar, von denen noch drei weitere bevorzugt sind.
Der dritte Bereich kann am Anfang oder am Ende des logischen Segments liegen.
Der übrige
Platz wird für
die anderen beiden Bereiche verwendet, wobei der erste Bereich am
Anfang und der zweite Bereich am Ende dieses übrigen Platzes liegen können oder
umgekehrt. Bei der nachfolgenden Beschreibung wird immer eine Anordnung gemäß 2a zugrundegelegt.
-
Der
dritte Bereich 103 enthält
die Verwaltungsinformation für
das logische Segment. Dieser Bereich hat üblicherweise eine feste Länge. Er
wird bevorzugt auf das logische Segment geschrieben, bevor das erste
Datum darauf gespeichert wird. Die Verwaltungsinformation des Segments
enthält zweckmäßigerweise
verschiedene segmentspezifische Daten, unter anderem eine fortlaufende
Nummer. Diese Numerierung ermöglicht
es, die Reihenfolge der Verwendung der Flash-Segmente im Fall einer
abgebrochenen Transaktion zu ermitteln. Die Verwaltungsinformation
für ein
gelöschtes
Segment wird vor der ersten Speicherung von Daten auf diesem Segment
geschrieben. Sie ist bevorzugt in einer Form abgelegt, dass sie
auch bei einem fehlerhaften Bit in diesem Bereich fehlerfrei rekonstruiert
werden kann.
-
Der
erste Bereich 101 mit den Daten wächst mit der Anzahl der gespeicherten
Daten. Die Daten 110', 111' usw. werden
gemäß dieser
Ausführungsform
von links nach rechts geschrieben, was durch Pfeile 130' dargestellt
ist. Die Sicherheit der Daten kann durch Fehlererkennungs- und/oder
Fehlerkorrekturverfahren erhöht
werden.
-
Die
Datums-Verwaltungsinformationen 110, 111 usw.
werden im zweiten Bereich 102 gemäß der in 2a gezeigten
Ausführungsform
von rechts nach links geschrieben, was durch Pfeile 130 dargestellt
ist. Die Verwaltungsinformation zu einem Datum hat üblicherweise
eine feste Länge
und enthält zweckmäßigerweise
eine eindeutige Identifikation für das
jeweilige Datum und einen Verweis auf die Stelle (Adresse), an der
das Datum gespeichert ist. Die Verwaltungsinformation kann durch
einen Mechanismus zur Fehlererkennung abgesichert sein. Dies ist
bei der Erkennung von abgebrochenen Transaktionen nützlich.
Nach einem vollständigen
Speichervorgang existiert zu jedem gespeicherten Datum eine Verwaltungsinformation.
-
Das
zuerst auf das Segment geschriebene Datum ist 110' und die zugehörende Verwaltungsinformation
ist 110. Als nächstes
wurde das Datum 111' und
die zugehörige
Datumsverwaltungsinformation 111 auf das Segment geschrieben
usw. Zuletzt wurden Datum 115' und Datumsverwaltungsinformation 115 geschrieben.
Wird ein bereits gespeichertes Datum erneut zum Speichern vorgesehen,
wird es an die nächste
freie Stelle geschrieben. So kann beispielsweise das Datum 114' die gültige Version
und das Datum 111' eine
alte ungültige
Version desselben Datums sein. Vorteilhafterweise wird ein Datum nur
gespeichert, wenn es sich gegenüber
der gültigen
Version, die in dem logischen Segment gespeichert ist, geändert hat,
erfindungsgemäß nur, wenn es
nicht mit dem zugehörigen
Standardwert identisch ist. In diesem Fall wird das Datum gelöscht.
-
In 2c ist
eine Flash-Speichereinrichtung zur Verwendung mit einer Ausführungsform
der Erfindung dargestellt. Die Flash-Speichereinrichtung weist zwei
logische Segmente 100 und 150 auf. Segment 100 ist
das aktive logische Segment, d.h. Lese-, Schreib- und Löschzugriffe
erfolgen auf dieses Segment. Wenn sich durch das Schreiben eines
Datums und der zugehörigen
Datumsverwaltungsinformation der erste und der zweite Bereich (einschließlich des Separators) überlappen
würden,
muss das zu schreibende Datum auf das andere Segment geschrieben werden.
Außerdem
müssen
die auf dem aktiven Segment vorhandenen Daten auf das andere Segment transferiert
werden, in vorteilhafter Weiterbildung soweit sie nicht in einer
Arbeitspeichereinrichtung 300 vorhanden sind. Dieser gesamte
Vorgang wird als Reorganisation bezeichnet. Er ist im Detail weiter
unten erläutert.
-
Im
folgenden werden die Schritte bei den unterschiedlichen Interaktionen
mit dem System gemäß einer
bevorzugten Ausführungsform
der Erfindung beschrieben. Dabei wird nur das Normalverhalten betrachtet.
Insbesondere werden keine Fehlerfälle oder das Verhalten des
Systems nach abgebrochenen Transaktionen betrachtet.
-
Initialisierung des Systems
-
Zunächst wird
der Zustand der logischen Segmente anhand der Verwaltungsinformation
der Segmente überprüft. Dabei
können
drei unterschiedliche Zustände
erkannt werden:
- • Beide logischen Segmente sind
gelöscht.
Auf dem Flash-Speicher
sind in diesem Fall keine Daten gespeichert. Die Verwaltungsinformationen für dieses
Segment wird geschrieben. Damit ist das Segment initialisiert.
- • Nur
ein logisches Segment ist gelöscht.
Das andere Segment wird initialisiert.
- • Kein
logisches Segment ist gelöscht.
In diesem Fall war ein Segment voll und der Transfer der Daten auf
das andere Segment wurde unterbrochen. Der Transfer wird fortgesetzt.
Damit ist das Segment auch initialisiert.
-
Im
Anschluss an diese Operationen kann mit der normalen Verarbeitung
(Lesen, Schreiben, Löschen
von Daten) begonnen werden. Die Initialisierung eines Segments besteht
darin, Vorbereitungen zu treffen, um Daten lesen, schreiben und
löschen
zu können.
Um ein logisches Segment zu initialisieren, ist es erforderlich,
zwei Positionen zu bestimmen, nämlich
die Position, an die das nächste
zu speichernde Datum geschrieben werden kann, und die Position des
Separators. An diese Position wird die Verwaltungsinformation für das nächste zu
speichernde Datum geschrieben. In 2a liegt
die Position, an die das nächste
zu speichernde Datum geschrieben werden kann, neben Datum 115'. Der Separator
ist mit 120 bezeichnet. Diese beiden Positionen werden
bei Schreiboperationen entsprechend der geschriebenen Daten verändert.
-
Herunterfahren des Systems
-
Es
sind keine speziellen Aktionen erforderlich, um die Bearbeitung
zu beenden. Einzige Voraussetzung ist, dass alle Schreib- und Löschvorgänge abgeschlossen
sind.
-
Lesen eines Datums
-
Um
ein Datum zu lesen, wird – beginnend beim
Separator 120 – der
zweite Bereich 102 mit den Datumsverwaltungsinformationen
durchsucht, bis die eindeutige Identifikation des zu suchenden Datums gefunden
wird, bspw. in der Datumsverwaltungsinformation 113. Über die
Adresse in der Datumsverwaltungsinformation 113 wird dann
das Datum 113' im Speicher
gefunden. Sofern keine Verwaltungsinformation für die Identifikation des Datums
gefunden wurde, ist es nicht gespeichert.
-
Schreiben eines Datums
-
Das
Schreiben eines Datums wird nachfolgend anhand 2b erläutert. Um
ein Datum 116' zu schreiben,
wird zunächst überprüft, ob das
Datum zusammen mit einer Datumsverwaltungsinformation 116 und
dem Separatordatum 120 noch in das aktive Segment 100 passt.
Ist dies der Fall, wird bspw. zunächst das Datum 116' rechts neben
die schon gespeicherten Daten, im vorliegenden Beispiel rechts neben
Datum 115',
geschrieben. Im Anschluss wird das Separatordatum 120 mit
der zugehörigen
Verwaltungsinformation 116 für dieses Datum überschrieben.
Das neue Separatordatum 120 befindet sich nun links neben
der neu geschriebenen Datumsverwaltungsinformation 116.
Erfindungsgemäß wird ein
Datum nur geschrieben, wenn es nicht mit dem zugehörigen Standardwert
identisch ist. Ist ein Datum zum Speichern vorgesehen, das mit dem
zugehörigen
Standardwert identisch ist, muss eine gespeicherte Version des Datums
gelöscht
werden.
-
Reorganisation der Speichereinrichtung
-
Die
Reorganisation der Speichereinrichtung wird im folgenden anhand 2c erklärt. Neben
den beiden Segmenten 100, 150 ist die Arbeitsspeichereinrichtung 300 dargestellt.
Die Arbeitsspeichereinrichtung 300 enthält Daten 301 bis 305.
Das aktive Segment 100 ist im vorliegenden Beispiel mit
Daten 110',
..., 1000' sowie
zugehörigen
Datumsverwaltungsinformationen 110, ..., 1000 belegt.
An den zweiten Bereich der Datumsverwaltungsinformationen schließt sich
das Separatordatum 120 an. Im vorliegenden Fall ist ein
Datum 301 zum Speichern vorgesehen. Das Datum 301 befindet
sich zu diesem Zeitpunkt üblicherweise
in der Arbeitsspeichereinrichtung. Es zeigt sich, dass in dem Segment 100 nicht
genug Platz zum Speichern des Datums 301, einer zugehörigen Datumsverwaltungsinformation 1001 und
des Separatordatums 120 vorhanden ist, was durch die gestrichelten
Pfeile angedeutet wird. Daher wird das zu schreibende Datum 301 in
dem neuen Segment 150 gespeichert, was der durchgezogene
Pfeil zeigt. Danach wird von allen gespeicherten Daten 110' bis 1000' nur die jeweils
gültige Version
in dem Segment 150 gespeichert. Dazu werden die in der
Arbeitsspeichereinrichtung 300 gespeicherten Daten 302 bis 305 mit
den in dem logischen Segment 100 gespeicherten Daten 110' bis 1000' verglichen.
Befindet sich die Version eines Datum in der Arbeitsspeichereinrichtung 300,
wird diese in dem Segment 150 gespeichert, ansonsten wird
im Segment 100 gespeicherte gültige Version in das Segment 150 übertragen.
Dies ist wiederum mit durchgezogenen Pfeilen angedeutet. Im Anschluss wird
das alte Segment 100 gelöscht. Das neue Segment 150 ist
von nun an bis zur nächsten
Reorganisation das aktive Segment.
-
Löschen eines Datums
-
Das
Löschen
hängt von
Eigenschaften der verwendeten Speicher-Hardware ab. Es gibt zwei
Varianten.
-
Sofern
es technisch möglich
ist, Bereiche auf der Hardware (mit den erwähnten Einschränkungen durch
die Flash-Technologie)
ohne Löschen
zu überschreiben,
kann die Verwaltungsinformation für das zu löschende Datum entsprechend überschrieben werden.
Dafür gibt
es mehrere Möglichkeiten.
Zum einen können
alle Bits auf den Wert "logisch
0" gesetzt werden,
was dann als gelöscht
erkannt werden muss und keine andere Interpretation zulassen darf. Zum
anderen können
die Bits für
die Identifikation des Datums auf den Wert "logisch 0" gesetzt werden. In diesem Fall darf
diese Identifikation ansonsten nicht verwendet werden. Es ist ebenfalls
denkbar, die Bits für
die Adresse des Datums auf den Wert "logisch 0" zu setzen, wobei in diesem Fall eine
Speicherung an dieser Adresse nicht möglich sein darf. Wird ein Datum
gelöscht,
muss das Löschen
bei der in 2a dargestellten Anordnung im
zweiten Bereich 102 von rechts nach links erfolgen, um
bei einer abgebrochenen Transaktion nicht ein älteres Datum für ein aktuelles
gültiges
Datum zu halten.
-
Ist
es hingegen technisch nicht möglich
ist, bereits beschriebene Bereiche ohne Löschen erneut zu überschreiben,
so wird eine neue Verwaltungsinformation für dieses Datum geschrieben.
Dort wird ein Verweis eingetragen, anhand dessen erkennbar ist,
dass dieses Datum gelöscht
ist. Dies kann beispielsweise durch einen Verweis auf eine Adresse geschehen,
an der keine Daten gespeichert werden können ("NIL-pointer").
-
In 3 ist
ein Flussdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens
dargestellt. Das Verfahren beginnt in einem Schritt 200.
In einem Schritt 201 wird die Flash-Speichereinrichtung
initialisiert, wie es weiter oben bei Initialisierung des Systems
beschrieben ist.
-
In
einem anschließenden
Schritt 202 wird überprüft, ob ein
zum Speichern vorgesehenes Datum seinen Standardwert aufweist. Weist
es diesen auf, wird zu Schritt 208 verzweigt, weist es
diesen nicht auf, wird zu Schritt 203 verzweigt.
-
In
Schritt 203 wird überprüft, ob auf
dem logischen Segment genügend
freier Speicherplatz zur Aufnahme des Datums und je nach Ausgestaltung
einer zugehörigen
Datumsverwaltungsinformation und eines Separatordatums ist. Ist
genügend
Platz vorhanden, wird zu Schritt 204 verzweigt. Ist nicht
genügend
Platz vorhanden wird zu Schritt 205 verzweigt.
-
In
Schritt 204 wird das Datum auf das aktive logische Segment
geschrieben, wie es bspw. weiter oben bei Schreiben eines Datums
beschrieben ist. Ist ein weiterer Betrieb beabsichtigt, wird zu
Schritt 202 zurückgekehrt.
Ansonsten wird zu Schritt 206 verzweigt.
-
In
Schritt 206 wird das System heruntergefahren und das Verfahren
endet in einem Schritt 207.
-
In
Schritt 205 wird eine Reorganisation durchgeführt, wie
es bspw. weiter oben bei Reorganisation des Systems beschrieben
ist. Anschließend wird
entweder zu Schritt 202 zurückgekehrt, wenn ein weiterer
Betrieb notwendig oder beabsichtigt ist, oder zu Schritt 206 verzweigt,
wenn kein weiterer Betrieb beabsichtigt ist.
-
Wird
bei der Prüfung
in Schritt 202 erkannt, dass das Datum seinen Standardwert
aufweist, wird es erfindungsgemäß nicht
gespeichert. Statt dessen wird in Schritt 208 geprüft, ob bereits
eine Version des Datums gespeichert ist. Ist keine Version gespeichert,
wird zu Schritt 202 zurückgekehrt,
wenn ein weiterer Betrieb beabsichtigt ist, oder zu Schritt 206 verzweigt,
wenn kein weiterer Betrieb beabsichtigt ist. Sind hingegen eine
oder mehrere Versionen gespeichert, werden dieses bzw. diese in einem
Schritt 209 gelöscht.
Dabei bietet es sich an, die Versionen in der Reihenfolge ihres
Alters beginnend mit der ältesten
zu löschen,
um keinen Datenverlust zu erleiden, wie es weiter oben bereits beschrieben
wurde.
-
Nach
Schritt 209 folgt abhängig
von den bereits erläuterten
möglichen
auftretenden Fällen
einer der Schritte 202 oder 206, wie es sich jedem
zuständigen
Fachmann offenbart. Dabei wird bei der Beschriebenen Ausführungsform
davon ausgegangen, dass das Löschen
ohne Speicherbedarf durchgeführt werden
kann. Falls es durch Löschen
ebenfalls zu einem Speicherbedarf kommt, wird bei einer anderen nicht
gezeigten Ausführungsform
ein Schritt zur Überprüfung der
Notwendigkeit einer Reorganisation einzufügen sein, wie es sich für den zuständigen Fachmann
ergibt.
-
Es
versteht sich, dass abhängig
von der Ausgestaltung der Anwendungssoftware bei einem üblichen
Betrieb zwischen einigen Schreibvorgängen auch Lese- und Löschvorgänge stattfinden,
wie sie weiter oben beschrieben wurden.
-
Die
bevorzugte Struktur der Daten innerhalb der logischen Flash-Segmente
eröffnet
die Möglichkeit
für eine
effiziente und wenig fehleranfällige
Verwendung von Flash-Speicher
zur nichtflüchtigen
Ablage von Daten. Der genaue Aufbau der Datenfelder wurde bei der
Beschreibung offen gelassen. Es wurden nur die Inhalte erwähnt, die
zum Verständnis
des Verfahrens erforderlich sind, da sich alles weitere dem Fachmann
bei der Verwendung erschließt.
Beispielsweise ist es nicht erforderlich, die Länge der Daten im Flash-Speicher
abzulegen, sofern die Länge
im vorhinein bekannt ist und sich nicht ändert. Im Fall von Daten mit
veränderbaren
Längen
muss die Länge
hingegen gespeichert werden. Dies würde in der Verwaltungsinformation
zu den entsprechenden Daten geschehen.
-
Das
Einsparpotential durch den Einsatz des Verfahrens hängt von
vielen Faktoren, wie beispielsweise der Speicher-Hardware, dem Dateisystem, dem
Profil der Daten und der Häufigkeit
der Annahme von Standardwerten ab. Beispielsweise wird der Fehlerspeicher
im allgemeinen häufig
leer sein. Da dies dem Standardwert entspricht, können die Schreibzugriffe
für einen
leeren Fehlerspeicher eingespart werden.
-
Das
Einsparpotential ist bei Verwendung eines Flash-Dateisystems größer als bei einem EEPROM-Dateisystem,
da bei Verwendung einer Flash-Hardware systembedingt immer wieder
alle abgespeicherten Daten umorganisiert werden müssen. Dies
hat Schreibvorgänge
zur Folge. Falls jedoch ein Datum nicht gespeichert ist, weil es
seinen Standardwert besitzt, werden die Schreibzugriffe mehrmals
eingespart.