DE10315189B4 - Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung - Google Patents

Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung Download PDF

Info

Publication number
DE10315189B4
DE10315189B4 DE10315189.3A DE10315189A DE10315189B4 DE 10315189 B4 DE10315189 B4 DE 10315189B4 DE 10315189 A DE10315189 A DE 10315189A DE 10315189 B4 DE10315189 B4 DE 10315189B4
Authority
DE
Germany
Prior art keywords
generation
memory
block
memory block
blocks
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.)
Expired - Fee Related
Application number
DE10315189.3A
Other languages
English (en)
Other versions
DE10315189A1 (de
Inventor
Frank Neukam
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 DE10315189.3A priority Critical patent/DE10315189B4/de
Publication of DE10315189A1 publication Critical patent/DE10315189A1/de
Application granted granted Critical
Publication of DE10315189B4 publication Critical patent/DE10315189B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks (11) einer Speichereinrichtung (10) mit einer Mehrzahl von N Speicherblöcken, wobei N eine natürliche Zahl größer als 1 ist, mit den Schritten:
Bereitstellen eines Generationen-Index (13) iGeneration als Zählvariable in einem Datenkopf (12) eines jeden Speicherblocks (11) der N Speicherblöcke (11) der Speichereinrichtung (10), wobei im Anfangszustand, in welchem alle Speicherblöcke (11) der Speichereinrichtung (10) gelöscht sind, der Startwert n0 der Generationen-Indizes (13) iGeneration zu N gewählt wird;
Schreiben eines neuen Wertes des Generationen-Indizes (13) iGeneration in den Datenkopf (12) des Speicherblocks (11) nach einem Löschvorgang des Speicherblocks (11), wobei der neue Wert des Generationen-Indizes (13) iGeneration um eins größer als der größte Wert der Generationen-Indizes (13) iGeneration der anderen N – 1 Speicherblöcke (11) ist; und
Bestimmen der Anzahl der Löschvorgänge eines Speicherblocks (11) aus dem Wert des Generationen-Index (13) iGeneration im Datenkopf (12) des entsprechenden Speicherblocks (11).

Description

  • STAND DER TECHNIK
  • Die Erfindung betrifft ein Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung, und insbesondere eines Flash-Speichers zur EEPROM-Emulation.
  • Obwohl die vorliegende Erfindung nachstehend mit Bezug auf Flash-Speicher insbesondere zur Emulation von EEPROMs beschrieben wird, lässt sie sich grundsätzlich auf beliebige Speichereinrichtungen anwenden. Beim Einsatz eines Flash-Speichers beispielsweise bei der Emulation eines EEPROM-Speichers müssen Daten, welche mit fortschreitender Zeit an den Speicher angelegt werden, in mehreren in der Regel alternierend genutzten Blöcken in dem Flash-Speicherbaustein gespeichert werden. Im wesentlichen bleibt dabei das Gesamtaufkommen der zu speichernden ”aktuellen” Daten konstant. In einem Flash-Speicherbaustein können allerdings im Gegensatz zu einem EEPROM veraltete Daten eines Datensatzes nicht einfach mit neuen Werten bzw. Daten überschrieben werden, so dass bei jeder Änderung eines Datensatzes neue Daten an einem bisher nicht genutzten Speicherort zu speichern sind, und die alten Daten erst zu einem geeigneten Zeitpunkt gelöscht bzw. verworfen werden können.
  • Die Notwendigkeit einer alternierenden Speicherung liegt darin begründet, dass ein mit Daten gefüllter Speicherblock bei Flash-Speicherbausteinen vor einer erneuten Aufnahme von neuen Daten gelöscht werden muss. Bei einem solchen Löschvorgang, welcher unter Umständen zeitintensiv ist, müssten im Falle einer nicht alternierenden Speicherung die vorher in diesem Block gespeicherten Daten in einem RAM zwischengespeichert werden, wobei es sich dabei allerdings nur um die aktuellsten Datenwerten eines jeden Datensatzes handelt würde. Hinsichtlich der Datensicherheit, insbesondere bei einer Unterbrechung der Betriebsspannung während dieses Zwischenspeichervorgangs, stellt dies eine suboptimale Lösung dar, so dass sich folglich eine alternierende Speicherung in mehreren Blöcken durchgesetzt hat.
  • Bei einer derartigen alternierenden Speicherung von Daten in mehreren Blöcken in der Speichereinrichtung ist es erforderlich, sichergestellt und auf Basis der Betrachtung von im Flash-Speicherbaustein gespeicherten Daten zu erkennen, welcher der zur Datenspeicherung eingesetzten Blöcke die aktuellen Daten enthält. Zustandsvariable in einem RAM, welche diese Information bereitstellen, sind in der Regel nicht gegen ein Löschen bei einem Ausfall der Spannungsversorgung gesichert und somit dafür ungeeignet. Um die eindeutige Erkennung des aktuellen Datenblocks bei alternierender Speicherung der Daten in mehreren Blöcken zu gewährleisten, besteht die Möglichkeit einer Indizierung der zur Datenspeicherung verwendeten Speicherblöcke mit einem Generationen-Index. Dadurch wird jedem Block ein eindeutiges, relatives ”Alter” zugeordnet.
  • Problematisch bei bisher bekannten Verfahren einer alternierenden Speicherung beispielsweise in Flash-Speicherbausteinen ist, dass die Anzahl der Löschvorgänge eines Flash-Blocks, sogenannte Zyklen, für einen Flash-Speicherbaustein aus physikalischen Gründen begrenzt ist. Wird ein Flash-Block zu oft gelöscht, sinkt die Fähigkeit des entsprechenden Speicherblocks, die in ihm abgelegten Daten über lange Zeit sichergestellt im einprogrammierten Zustand zu erhalt, d. h. die Haltezeit sinkt. Somit ist die Anzahl der Löschvorgänge eines Flash-Blocks ein direktes Maß für die Abnutzung dieser Speicher-Blöcke.
  • Aus der DE 69 430 668 T2 und der DE 69 226 847 T2 sind bereits Verfahren zur direkten Bestimmung der Anzahl der Löschvorgänge eines Speicherblocks und Speicherung dieser Anzahl für den betreffenden Speicherblock bekannt.
  • VORTEILE DER ERFINDUNG
  • Das erfindungsgemäße Verfahren zur Bestimmung der Anzahl der Löschvorgänge in Datenblöcken einer Speichereinrichtung mit den Merkmalen des Anspruchs 1 weist gegenüber dem Stand der Technik den Vorteil auf, dass die Anzahl der Löschvorgänge eines Blocks jederzeit bestimmt werden können und überwachbar sind. Somit wird ein Verfahren bereitgestellt, welches eine einfache Bestimmung des Nutzungsgrades des beispielsweise zu einer EEPROM-Emulation verwendeten Speichers ermöglicht. Von Vorteil beim erfindungsgemäßen Verfahren ist darüber hinaus, dass es sich lediglich auf Größen stützt, welche in einem nicht flüchtigen Speicher wie beispielsweise einem Flash-Speicherbaustein gespeichert sind, da ein solcher Speicher seinen Inhalt auch ohne angelegte Versorgungsspannung hält und damit zur Datensicherheit beiträgt.
  • Die der vorliegenden Erfindung zugrundliegende Idee besteht im wesentlichen darin, zur Bestimmung der Anzahl der Löschzyklen eines Blocks einer Speichereinrichtung einen Generationen-Index eines Blocks heranzuziehen. Insbesondere bei der Verwendung von Flash-Speicherbausteinen, bei welchen die Anzahl der Löschvorgänge eines Blocks beschränkt ist, bietet sich durch eine solche Zyklen-Messung die Möglichkeit einer Diagnose und Frühwarnung bei zu häufig auftretenden und dadurch den Baustein gefährdenden Schreib- und somit auch Löschvorgängen.
  • Mit anderen Worten wird ein Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung mit einer Mehrzahl von N Speicherblöcken, wobei N eine natürliche Zahl größer als 1 ist, mit den Schritten bereitgestellt Bereitstellen eines Generationen-Index als Zählvariable in einem Datenkopf eines jeden Speicherblocks der N Speicherblöcke der Speichereinrichtung, wobei im Anfangszustand, in welchem alle Speicherblöcke der Speichereinrichtung gelöscht sind, der Startwert n0 der Generationen-Indizes iGeneration zu N gewählt wird; Schreiben eines neuen Wertes des Generationen-Indizes iGeneration in den Datenkopf des Speicherblocks nach einem Löschvorgang des Speicherblocks, wobei der neue Wert des Generationen-Indizes iGeneration um eins größer als der größte Wert der Generationen-Indizes iGeneration der anderen N – 1 Speicherblöcke ist; und Bestimmen der Anzahl der Löschvorgänge eines Speicherblocks aus dem Wert des Generationen-Index iGeneration im Datenkopf des entsprechenden Speicherblocks.
  • In den Unteransprüchen finden sich vorteilhafte Weiterbildungen und Verbesserungen des in Anspruch 1 angegebenen Verfahrens zur Bestimmung der Anzahl der Löschvorgänge in Speicherblöcken einer Speichereinrichtung.
  • Gemäß einer bevorzugten Weiterbildung wird die Anzahl der Löschvorgänge aus dem abgerundeten Quotienten des Generationen-Index iGeneration durch die Anzahl der Speicherblöcke N bestimmt. Auf diese Weise wird vorteilhaft und einfach der Nutzungsgrad eines Speicherblocks bestimmbar.
  • Gemäß einer weiteren bevorzugten Weiterbildung wird der erste Löschvorgang bei der Ablage der Speicherblöcke in der Speichereinrichtung direkt nach der Herstellung bei der Bestimmung der Anzahl der Löschvorgänge der Speicherblöcke der Speichereinrichtung mitgezählt. Dies birgt den Vorteil einer präzisen Bestimmung der Anzahl der Löschvorgänge unter Einbeziehen des im Werk des Speicherbausteinherstellers durchgeführten ersten Löschvorgangs.
  • Gemäß einer weiteren bevorzugten Weiterbildung wird das Verfahren bei einer Speichereinrichtung zur Emulation eines EEPROMs vorgesehen. Ein vorteilhafter Einsatz des Verfahrens gerade bei der Nachbildung eines EEPROMs als Speichereinrichtung kann somit gewährleistet werden.
  • Gemäß einer weiteren bevorzugten Weiterbildung ist die Speichereinrichtung ein Flash-Speicher. Auf diese Weise wird der voraussichtlich gängigste Einsatzbereich der vorliegenden Erfindung vorteilhaft definiert.
  • Gemäß einer weiteren bevorzugten Weiterbildung weisen die Kopfdaten der Speicherblöcke an einer vorbestimmten Stelle jeweils gleich strukturierte Informationen inklusive dem Generationen-Index auf. Der Generationen-Index ist somit einfach in den Kopfdaten identifizierbar.
  • ZEICHNUNG
  • Ein Ausführungsbeispiel der Erfindung ist exemplarisch in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher erläutert.
  • Es zeigt:
  • 1 ein schematisches Ablaufdiagramm zur Erläuterung einer Ausführungsform der vorliegenden Erfindung.
  • BESCHREIBUNG DES AUSFÜHRUNGSBEISPIELS
  • In 1 ist eine Speichereinrichtung 10, vorzugsweise ein Flash-Speicher, dargestellt, welcher über N Speicherblöcke 11 verfügt (N ≥ 2). Jeder Speicherblock weist in einem Abschnitt Kopfdaten 12 auf, welche vorzugsweise jeweils alle an derselben Position im Speicherblock angeordnet sind. Teil dieser Kopfdaten 12 ist ein Generationen-Index 13, der das ”Alter” der Daten im Speicherblock im Verhältnis zu den Daten der N – 1 anderen Speicherblöcke 11 definiert. Es gibt keine zwei Generationen-Indizes 13 der Speicherblöcke 11 der Speichereinrichtung 10, welche einen gleichen Wert aufweisen.
  • Zur alternierenden Abspeicherung von Daten werden N unabhängig voneinander löschbare Blöcke 11 eingesetzt, wobei N ≥ 2 ist. Zur Verwaltung dieser Blöcke 11 werden vorzugsweise an einer zuvor festgelegten Stelle jeweils gleichstrukturierte Informationen, im folgenden Kopfdaten 12 genannt, in jedem Block abgelegt. Ein für das erfindungsgemäße Verfahren erforderlicher Kopfdatensatz 12 weist einen Generationen-Index auf. Nach dem Löschen eines Blocks 11 wird nun in die jeweiligen zugehörigen Kopfdaten 12 ein Generationen-Index 13 geschrieben, dessen Wert um 1 höher ist als der größte Generationen-Index 13 der anderen N – 1 Blöcke 11 und damit als der ”jüngste” Block 11 gilt.
  • Mittels dieses Generationen-Indizes 13 ist eine einfache Bestimmung der Anzahl der Löschvorgänge eines Blockes 11 möglich. Wählt man im noch nicht mit zu speichernden Daten versehenen Zustand, in welchem alle Blöcke 11 gelöscht sind, als Startwert no für die Generationen-Indizes 13 N, so lässt sich jederzeit bei Einhaltung des erfindungsgemäßen Verfahrens die Anzahl nLÖSCHEN der Löschvorgänge eines Blockes 11 bestimmen zu: nLÖSCHEN = floor(iGENERATION/N), wobei iGENERATION der Wert des Generationen-Index 13 des betrachteten Blocks 11 und N die Anzahl der alternierend belegten Blöcke definiert. Der bei Ablage der Blöcke in einem Flash-Speicherbaustein bei der Herstellung im Werk durchgeführte Löschvorgang ist dabei mitberücksichtigt. Somit steht ein einfaches Maß für die Zyklenzahl und damit für den Grad der Nutzung beispielsweise eines zur EEPROM-Emulation verwendeten Blocks 11 eines Flash-Speichers 10 zur Verfügung.
  • So sind insbesondere andere Startwerte und entsprechend abgewandelte Berechnungsformeln für die Anzahl der durchgeführten Löschungen der Speicherblöcke der Speichereinrichtung vorstellbar.

Claims (6)

  1. Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks (11) einer Speichereinrichtung (10) mit einer Mehrzahl von N Speicherblöcken, wobei N eine natürliche Zahl größer als 1 ist, mit den Schritten: Bereitstellen eines Generationen-Index (13) iGeneration als Zählvariable in einem Datenkopf (12) eines jeden Speicherblocks (11) der N Speicherblöcke (11) der Speichereinrichtung (10), wobei im Anfangszustand, in welchem alle Speicherblöcke (11) der Speichereinrichtung (10) gelöscht sind, der Startwert n0 der Generationen-Indizes (13) iGeneration zu N gewählt wird; Schreiben eines neuen Wertes des Generationen-Indizes (13) iGeneration in den Datenkopf (12) des Speicherblocks (11) nach einem Löschvorgang des Speicherblocks (11), wobei der neue Wert des Generationen-Indizes (13) iGeneration um eins größer als der größte Wert der Generationen-Indizes (13) iGeneration der anderen N – 1 Speicherblöcke (11) ist; und Bestimmen der Anzahl der Löschvorgänge eines Speicherblocks (11) aus dem Wert des Generationen-Index (13) iGeneration im Datenkopf (12) des entsprechenden Speicherblocks (11).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Anzahl der Löschvorgänge aus dem abgerundeten Quotienten des Generationen-Index (13) iGeneration durch die Anzahl der Speicherblöcke (11) N bestimmt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der erste Löschvorgang bei der Ablage der Speicherblöcke (11) in der Speichereinrichtung (10) direkt nach der Herstellung bei der Bestimmung der Anzahl der Löschvorgänge der Speicherblöcke (11) der Speichereinrichtung (10) mitgezählt wird.
  4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren bei einer Speichereinrichtung (10) zur Emulation eines EEPROMs vorgesehen wird.
  5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Speichereinrichtung (10) ein Flash-Speicher ist.
  6. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Kopfdaten (12) der Speicherblöcke (11) an einer vorbestimmten Stelle jeweils gleich strukturierte Informationen inklusive dem Generationen-Index (13) aufweisen.
DE10315189.3A 2003-04-03 2003-04-03 Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung Expired - Fee Related DE10315189B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10315189.3A DE10315189B4 (de) 2003-04-03 2003-04-03 Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10315189.3A DE10315189B4 (de) 2003-04-03 2003-04-03 Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung

Publications (2)

Publication Number Publication Date
DE10315189A1 DE10315189A1 (de) 2004-10-21
DE10315189B4 true DE10315189B4 (de) 2016-09-15

Family

ID=33016131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10315189.3A Expired - Fee Related DE10315189B4 (de) 2003-04-03 2003-04-03 Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung

Country Status (1)

Country Link
DE (1) DE10315189B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69226847T2 (de) * 1991-11-28 1999-01-14 Fujitsu Ltd Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C.-Speicherkarte mit solchem Datenverwaltungssystem
DE69430668T2 (de) * 1993-10-04 2003-01-02 Lexar Media Inc Flash-speicher mit verringerter löschung und überschreibung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69226847T2 (de) * 1991-11-28 1999-01-14 Fujitsu Ltd Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C.-Speicherkarte mit solchem Datenverwaltungssystem
DE69430668T2 (de) * 1993-10-04 2003-01-02 Lexar Media Inc Flash-speicher mit verringerter löschung und überschreibung

Also Published As

Publication number Publication date
DE10315189A1 (de) 2004-10-21

Similar Documents

Publication Publication Date Title
DE102005037037B4 (de) Speicheranordnung und Verfahren zum Betreiben der Speicheranordnung
DE19633466C2 (de) Nachinitialisierung von Chipkarten
DE102007006307A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
EP0195885B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE3855494T2 (de) Abfragevorrichtung und -methode
DE10192507B4 (de) Verfahren und Vorrichtung für die Vorhersage von Lösch- und Schreibzeiten von Flash-Speichern
DE2357654C2 (de) Assoziativspeicher
DE102016007651B4 (de) Numerische Steuerung mit Funktion zur automatischen Auswahl eines Speicherungsziels für ein Bearbeitungsprogramm
EP0854425A3 (de) Anordnung und Verfahren zur Verbesserung der Datensicherheit mittels Ringpuffer
DE10315189B4 (de) Verfahren zur Bestimmung der Anzahl durchgeführter Löschvorgänge eines Speicherblocks einer Speichereinrichtung
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE102015117996A1 (de) Datenspeichersystem
WO2001006347A1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
DE4220877C2 (de) Verfahren für nichtflüchtige, lösch- und programmierbare Speichereinrichtungen
EP1564754B1 (de) Verfahren und Vorrichtung zur Verwaltung von Daten in einem nichtflüchtigen Datenspeicher
DE102004039884A1 (de) Verfahren und System zur Beschreibung und Ausführung automatischer Tests
DE112017008201T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE2226856A1 (de) Stapelspeicher mit Anzeige der Überschreitung oder des Überlaufs für die Übertragung von Daten in der chronologischen Reihenfolge ihrer Eingabe
DE19731954C2 (de) Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers
DE10128752A1 (de) Verfahren zur Ablage von Daten in einen Speicherbaustein
DE19738712C2 (de) Nichtflüchtiger Speicher mit zu Subblöcken zusammengefaßten Speicherzellen
DE102020210100A1 (de) Verfahren und Vorrichtung zum Überwachen eines Betriebs einer nichtflüchtigen Speichereinrichtung
DE102004001285B4 (de) Umprogrammierbare nichtflüchtige Halbleiter-Speichereinrichtung
DE102006013759A1 (de) Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
DE102018008179A1 (de) Numerische Steuerung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee