DE102006013764A1 - Verfahren zum Betreiben einer Speichereinrichtung - Google Patents

Verfahren zum Betreiben einer Speichereinrichtung Download PDF

Info

Publication number
DE102006013764A1
DE102006013764A1 DE200610013764 DE102006013764A DE102006013764A1 DE 102006013764 A1 DE102006013764 A1 DE 102006013764A1 DE 200610013764 DE200610013764 DE 200610013764 DE 102006013764 A DE102006013764 A DE 102006013764A DE 102006013764 A1 DE102006013764 A1 DE 102006013764A1
Authority
DE
Germany
Prior art keywords
data
date
stored
segment
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200610013764
Other languages
English (en)
Inventor
Jens Liebehenschel
Dirk Herrmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200610013764 priority Critical patent/DE102006013764A1/de
Publication of DE102006013764A1 publication Critical patent/DE102006013764A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es wird ein Verfahren zum Betreiben einer Speichereinrichtung zum Speichern von veränderbaren Daten (401, ..., 404; 110', ..., 1000'; 301, ..., 305) vorgestellt, wobei einem Datum (401, ..., 404; 110', ..., 1000'; 301, ..., 305) ein Standardwert zugeordnet wird, ein zum Speichern vorgesehenes Datum (116', 301) in der Speichereinrichtung gespeichert wird, wenn es nicht seinen zugeordneten Standardwert aufweist, und ein gespeichertes Datum (401, ..., 404; 110', ..., 1000'; 301, ..., 305) gelöscht wird, wenn das zum Speichern vorgesehene Datum (116', 301) seinen zugeordneten Standardwert aufweist. Weiterhin werden ein entsprechendes Computerprogramm und ein Computerprogrammprodukt vorgestellt. Mit der erfindungsgemäßen Lösung kann die Lebensdauer einer Speichereinrichtung erhöht werden.

Description

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

Claims (13)

  1. Verfahren zum Betreiben einer Speichereinrichtung zum Speichern von veränderbaren Daten (401, ..., 404; 110', ..., 1000'; 301, ..., 305), dadurch gekennzeichnet, dass einem Datum (401, ..., 404; 110', ..., 1000'; 301, ..., 305) ein Standardwert zugeordnet wird, ein zum Speichern vorgesehenes Datum (116', 301) in der Speichereinrichtung gespeichert wird, wenn es nicht seinen zugeordneten Standardwert aufweist, und ein gespeichertes Datum (401, ..., 404; 110', ..., 1000'; 301, ..., 305) gelöscht wird, wenn das zum Speichern vorgesehene Datum (116', 301) seinen zugeordneten Standardwert aufweist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das zum Speichern vorgesehene Datum (116', 301) nur dann gespeichert wird, wenn das zum Speichern vorgesehene Datum (116', 301) nicht mit der letzten gespeicherten Version des Datums identisch ist.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass es eine EEPROM-Speichereinrichtung betrieben wird.
  4. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass es eine Flash-Speichereinrichtung betrieben wird, wobei wenigstens ein logisches Segment (400; 100, 150) vorgesehen wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass wenigstens zwei logische Segmente (100, 150) vorgesehen werden, wobei ein erstes logisches Segment (100) als aktives logisches Segment gekennzeichnet wird, das zum Speichern vorgesehenes Datum (116', 301) in dem aktiven logischen Segment (100, 150) gespeichert wird, eine Reorganisation der Flash-Speichereinrichtung durchgeführt wird, wobei ein zweites logisches Segment (150) als neues aktives logisches Segment gekennzeichnet wird und in dem ersten logischen Segment (100) gespeicherte Daten (110', ..., 1000') in das zweite logische Segment (150) übertragen werden, wobei Daten (301, ..., 305) aus einer Arbeitspeichereinrichtung (300) in dem zweiten logischen Segment (150) gespeichert werden, wenn die Daten (301, ..., 305) in der Arbeitspeichereinrichtung (300) nicht mit den Daten (110', ..., 1000') in dem ersten logischen Segment (100) übereinstimmen.
  6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass das logische Segment (100, 115) wenigstens aus einer zusammenhängend löschbaren Flash-Einheit ausgebildet wird.
  7. Verfahren nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass das zum Speichern vorgesehene Datum (116') in einem ersten Bereich (101) des aktiven logischen Segments (100, 150) abgelegt wird, und eine zugehörige Datumsverwaltungsinformation (116) in einem zweiten Bereich (102) des aktiven logischen Segments (100, 150) abgelegt wird.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass genau eine Version eines gespeicherten Datums (110', ..., 1000') gültig ist, und die Gültigkeit des Datums anhand der Datumsverwaltungsinformation (110, ..., 1001) bestimmt wird.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass die Gültigkeit des Datums (110', ..., 1000') anhand des Speicherortes der Datumsverwaltungsinformation (110, ..., 1001) bestimmt wird.
  10. Verfahren nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass ein Separatordatum (120) zur Abgrenzung des ersten (101) und/oder des zweiten (102) Bereichs vorgesehen wird.
  11. Verfahren nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass eine Segmentverwaltungsinformation in einem dritten Bereich (103, 153) jedes logischen Segments (100, 150) abgelegt wird.
  12. Computer- bzw. Mikroprozessorprogramm mit Programmcodemitteln um alle Schritte eines Verfahrens gemäß einem der Ansprüche 1 bis 11 durchzuführen, wenn das Programm auf einem Computer, einem Mikroprozessor oder einer entsprechenden Recheneinheit ausgeführt wird.
  13. Computer- bzw. Mikroprozessorprogrammprodukt mit Programmcodemitteln, die auf einem maschinen- bzw. computerlesbaren Datenträger gespeichert sind, um alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn das Programmprodukt auf einem Computer, einem Mikroprozessor oder auf einer entsprechenden Recheneinheit ausgeführt wird.
DE200610013764 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung Withdrawn DE102006013764A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200610013764 DE102006013764A1 (de) 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610013764 DE102006013764A1 (de) 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung

Publications (1)

Publication Number Publication Date
DE102006013764A1 true DE102006013764A1 (de) 2007-09-27

Family

ID=38438393

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610013764 Withdrawn DE102006013764A1 (de) 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung

Country Status (1)

Country Link
DE (1) DE102006013764A1 (de)

Similar Documents

Publication Publication Date Title
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE69630624T2 (de) EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE102007006307A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
DE102012203713A1 (de) Verfahren und Vorrichtung zur Verlängerung der Lebensdauer von Speichern
EP2608037B1 (de) Verfahren zum Verwalten von Daten in einem Flash-Speicher, Fahrerassistenzeinrichtung und Kraftfahrzeug
DE60019364T2 (de) Speicherdefragmentierung in Chipkarten
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
EP1559111B1 (de) Verfahren zum betreiben einer speicheranordnung
WO2014114388A1 (de) Verfahren zum sicheren löschen eines nichtflüchtigen halbleiter-massenspeichers, computersystem sowie computerprogrammprodukt
EP3885957A1 (de) Vorrichtung zur speicherung von daten in einem nichtflüchtigen speicher
DE10322723B3 (de) Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers
DE102006013764A1 (de) Verfahren zum Betreiben einer Speichereinrichtung
DE102006013759B4 (de) Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
DE10030990A1 (de) Verfahren zum Beschreiben und Löschen eines nichtflüchtigen Speicherbereichs
EP1564754B1 (de) Verfahren und Vorrichtung zur Verwaltung von Daten in einem nichtflüchtigen Datenspeicher
WO2009074499A1 (de) Verfahren zum betreiben eines steuergerätes und steuergerät
DE102006013760A1 (de) Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
EP1675008B1 (de) Verwaltung von Datenobjekten in einem nichtflüchtigen überschreibbaren Speicher
DE19738712C2 (de) Nichtflüchtiger Speicher mit zu Subblöcken zusammengefaßten Speicherzellen
DE102007059142B3 (de) Verfahren zum Speichern eines Datums in einer Speichereinrichtung und Speichereinrichtung

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20111001