DE102006013763A1 - Verfahren zum Betreiben einer Speichereinrichtung - Google Patents

Verfahren zum Betreiben einer Speichereinrichtung Download PDF

Info

Publication number
DE102006013763A1
DE102006013763A1 DE102006013763A DE102006013763A DE102006013763A1 DE 102006013763 A1 DE102006013763 A1 DE 102006013763A1 DE 102006013763 A DE102006013763 A DE 102006013763A DE 102006013763 A DE102006013763 A DE 102006013763A DE 102006013763 A1 DE102006013763 A1 DE 102006013763A1
Authority
DE
Germany
Prior art keywords
block
blocks
memory
bit
bit pattern
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
DE102006013763A
Other languages
English (en)
Inventor
Jens Liebehenschel
Joern Boettcher
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 DE102006013763A priority Critical patent/DE102006013763A1/de
Priority to US12/294,400 priority patent/US8250321B2/en
Priority to EP07726878A priority patent/EP2005440A1/de
Priority to CNA2007800103824A priority patent/CN101405816A/zh
Priority to PCT/EP2007/052382 priority patent/WO2007110327A1/de
Priority to JP2009502008A priority patent/JP2009531757A/ja
Priority to KR1020087023184A priority patent/KR20080107426A/ko
Publication of DE102006013763A1 publication Critical patent/DE102006013763A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer Speichereinrichtung (2), die eine Anzahl Blöcke (6) aufweist. Bei Durchführung des Verfahrens wird einem Speicherbereich, also mindestens einer Speicherzelle (14) eines Blocks (6), nach Durchführung einer Löschoperation (16), die von einer Schreiboperation (20) getrennt ist, ein Bitmuster zugeordnet, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block (6) eine zustandsänderung (18) erkannt werden kann.

Description

  • Die Erfindung betrifft ein Verfahren zum Betreiben einer Speichereinrichtung, eine Vorrichtung zum Betreiben einer Speichereinrichtung, eine Speichereinrichtung, ein Computerprogramm und ein Computerprogrammprodukt.
  • Stand der Technik
  • Speichereinrichtungen oder Speichermedien haben eine begrenzte Lebensdauer, die im wesentlichen durch die Anzahl von Schreibvorgängen bestimmt wird. Mit zunehmender Anzahl an Schreibvorgängen verkürzt sich die Datenerhaltungszeit. Deshalb ist es bei der Entwicklung von Speichereinrichtungen ein Ziel, Speichereinrichtungen sparsam bezüglich der relevanten Operationen zu verwenden und somit eine Speicher-Hardware u. a. durch Reduzierung der Schreibvorgänge zu schonen. Bei Bedarf können hierzu in angemessenem Rahmen andere Ressourcen, wie RAM, ROM oder Laufzeit, eingesetzt werden. Auf diese Weise soll eine Verlängerung der Lebensdauer von Speichereinrichtungen erreicht werden.
  • Offenbarung der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren mit den Merkmalen des Patentanspruchs 1, eine Vorrichtung mit den Merkmalen des Patentanspruchs 12, eine Speichereinrichtung mit den Merkmalen des Patentanspruchs 13, ein Computerprogramm mit den Merkmalen des Patentanspruchs 14 und ein Computerprogrammprodukt mit den Merkmalen des Patentanspruchs 15.
  • Bei blockorientierten Speichereinrichtungen oder Dateisystemen, für die das Verfahren anwendbar ist, ist ein Speicherbereich üblicherweise in bspw. logische Blöcke gleicher Größe unterteilt. Blöcke können unterschiedliche Zustände annehmen, wie bspw. frei oder belegt. Blöcke enthalten mindestens eine Verwaltungsinformation, die nicht notwendigerweise mit den Daten zusammen abgelegt werden muss. Dabei können die Daten in verketteten Listen von Blöcken abgelegt werden. Jede verkettete Liste besteht aus mindestens einem Block. In der Regel ist keine feste Zuordnung von Daten und Speicherbereichen auf dem Medium vorgesehen, so dass die Daten immer wieder in unterschiedlichen Blöcken an unterschiedlichen Positionen abgespeichert werden. Dadurch wird die Speichereinrichtung gleichmäßiger belastet, als dies bei einer festen Zuordnung von Daten zu Blöcken bzw. Speicherbereichen der Fall ist. Vor dem Schreiben von Daten ist es erforderlich, nach freien bzw. leeren Blöcken zu suchen. Bei der Suche nach den freien Blöcken sollten keine defekten Blöcke ausgewählt werden. Insgesamt sollte jedoch immer eine möglichst große Anzahl an freien Blöcken zur Verfügung stehen.
  • Bei Ausführung des erfindungsgemäßen Verfahrens zum Betreiben einer Speichereinrichtung, die eine Anzahl Blöcke aufweist, wird einem Speicherbereich, also mindestens einer Speicherzelle, eines Blocks nach Durchführung einer Löschoperation, die von einer Schreiboperation getrennt ist, ein erstes Bitmuster zugeordnet. Im Fall eines Umkippens von mindestens einem Bit innerhalb dieses Speicherbereichs kann für diesen Block eine Zustandsänderung erkannt werden.
  • Weitere Ausführungsformen des Verfahrens ergeben sich aus den abhängigen Ansprüchen.
  • Die erfindungsgemäße Vorrichtung zum Betreiben einer Speichereinrichtung, die eine Anzahl Blöcke aufweist, ist dazu ausgebildet, einem Speicherbereich, also mindestens einer Speicherzelle, eines Blocks nach Durchführung einer Löschoperation, die von einer Schreiboperation getrennt ist, ein Bitmuster zuzuordnen, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block eine Zustandsänderung erkannt werden kann.
  • Die Erfindung betrifft außerdem eine Speichereinrichtung, die eine Anzahl Blöcke aufweist und dazu ausgebildet ist, einem Speicherbereich, also mindestens einer Speicherzelle, eines Blocks, nach Durchführung einer Löschoperation, die von einer Schreiboperation getrennt ist, ein Bitmuster zuzuordnen, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block eine Zustandsänderung erkannt werden kann.
  • Sämtliche Schritte des erfindungsgemäßen Verfahrens sind mit der erfindungsgemäßen Vorrichtung und der erfindungsgemäßen Speichereinrichtung durchführbar. Zwischen der erfindungsgemäßen Vorrichtung und der erfindungsgemäßen Speichereinrichtung kann eine Wechselwirkung bestehen. In möglichen Ausführungsformen der Erfindung kann die Vorrichtung als eine Komponente der Speichereinrichtung oder die Speichereinrichtung als eine Komponente der Vorrichtung ausgebildet sein.
  • Das erfindungsgemäße Computerprogramm mit Programmcodemitteln ist dazu ausgebildet, alle Schritte eines erfindungsgemäßen Verfahrens durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Recheneinheit, insbesondere einer erfindungsgemäßen Vorrichtung, ausgeführt wird.
  • Die Erfindung betrifft des weiteren ein Computerprogrammprodukt mit Programmcodemitteln, die auf einem computerlesbaren Datenträger gespeichert sind, um alle Schritte eines erfindungsgemäßen Verfahrens durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Recheneinheit, insbesondere einer erfindungsgemäßen Vorrichtung, ausgeführt wird.
  • Bei Durchführung des erfindungsgemäßen Verfahrens wird ein Block durch Einführung eines neuen Zustands als gelöscht klassifiziert und entsprechend markiert, indem der mindestens einen Speicherzelle des Blocks der erste von zwei möglichen Bitwerten bzw. Bits zugeordnet wird. Die Löschoperation für einen bisherigen Inhalt des Blocks wird separat von einer Schreiboperation für einen neuen Inhalt dieses Blocks ausgeführt, so dass Lösch- und Schreiboperationen, insbesondere zeitlich unabhängig und getrennt voneinander und nicht wie ansonsten üblich automatisch oder unmittelbar nacheinander durchgeführt werden. Blöcke weisen in der Regel mehrere Speicherzellen auf, mindestens ein Block kann zur Speicherung insbesondere eines insbesondere nicht-flüchtigen Datums verwendet werden, dieses Datum kann durch inhaltliche Veränderung von Speicherzellen des mindestens einen Blocks gespeichert und gelöscht werden.
  • Das Verfahren bietet sich insbesondere für eine Speichereinrichtung an, bei der die Wahrscheinlichkeit, dass der erste Bitwert durch Umkippen zu dem zweiten Bitwert wird, größer ist als die Wahrscheinlichkeit, dass der zweite Bitwert durch Umkippen zu dem ersten Bitwert wird.
  • Durch eine derartige separate Ausführung der Löschoperation, der Schreiboperation und einer Zuweisung des neuen Zustands "gelöscht" können insbesondere sog. speicherbedingte Zustandsänderungen des Blocks, die in der Regel durch physikalische Einflüsse verursacht werden, besser erkannt werden, indem der mindestens einen Speicherzelle des Blocks der erste Bitwert zugeordnet wird. Eine Markierung des Blocks als gelöscht bzw. eine Zuweisung des Zustands "gelöscht" im Zusammenhang mit der Löschoperation, kann nach, insbesondere unmittelbar nach, der Löschoperation und somit an diese anschließend erfolgen. Bei Realisierung der Erfindung kann dies auch bedeuten, dass die Zuweisung des Zustands "gelöscht" implizit mit dem Löschvorgang und somit als Teil des Löschvorgangs erfolgen kann.
  • Mit der Erfindung ist es insbesondere bei blockorientierten Speichereinrichtungen oder Dateisystemen, bspw. bei EEPROMs, möglich, die Lebensdauer derartiger Speichereinrichtungen zu erhöhen und somit eine Verfügbarkeit eines Dienstes zur Verwaltung und/oder Speicherung bspw. nicht-flüchtiger Daten zu verbessern. Das vorgestellte Verfahren verringert die Wahrscheinlichkeit, dass physikalisch defekte Blöcke zur Speicherung von Daten herangezogen werden. Außerdem kann vermieden werden, dass physikalisch intakte Blöcke nicht zur Speicherung verwendet werden.
  • Ein Block einer Speichereinrichtung wird bei bekannten Vorgehensweisen automatisch gelöscht, wenn neue Daten in den Block geschrieben werden. Dabei werden der Schreibvorgang und der Löschvorgang gemeinsam bzw. miteinander gekoppelt ausgeführt.
  • Bei der vorliegenden Erfindung ist dagegen für blockorientierte Speichereinrichtungen, die bspw. als EEPROMs ausgebildet sind, unterstützt durch die Hardware und Software vorgesehen, die Löschoperation bzw. einen Löschvorgang getrennt von der Schreiboperation bzw. einem Schreibvorgang auszuführen. Beide Operationen sind somit zeitlich voneinander unabhängig. Ein anschließendes oder späteres Schreiben führt zu der gleichen Belastung des entsprechenden Speicherbereichs wie ein Schreibvorgang, der wie bei herkömmlichen Vorgehensweisen einen Löschvorgang umfasst.
  • Im Fall der separaten Lösch- und Schreiboperation wird ausgenutzt, dass der Block, ohne Einfluss auf die Anzahl von Schreiboperationen oder -zugriffen, den weiteren Zustand "gelöscht" annehmen kann. Dabei kann eine Zuweisung dieses Zustands oder eine entsprechende Markierung des Blocks bei Durchführung des Löschvorgangs erfolgen. Der gelöschte Block kann entsprechend markiert werden. Dadurch kann eine bestimmte Situation codiert werden. Der Zustand "gelöscht" wird durch ein bestimmtes Bitmuster der mindestens einen Speicherzelle eines Speicherbereichs oder sämtlicher Speicherzellen des Blocks markiert und somit gekennzeichnet. Durch Verwendung des zusätzlichen Zustands "gelöscht" ist eine Verlängerung der Lebensdauer der Speichereinrichtung oder eines entsprechenden Mediums erreichbar. Dies ist dagegen nicht möglich, wenn die Lösch- und Schreiboperation gemeinsam ausgeführt werden.
  • Die Markierung mit dem neuen Zustand "gelöscht" sowie eine Trennung der Lösch- und Schreiboperation bei der Speichereinrichtung wird dazu eingesetzt, die Wahrscheinlichkeit der richtigen Erkennung eines Status von Blöcken zu erhöhen. Dazu werden die Rahmenbedingungen und eine Codierung von der Verwaltungsinformation und von den Daten des jeweiligen Blocks bei Durchführung des Verfahrens in geeigneter Weise angepasst.
  • Das vorliegende Verfahren kann in möglicher Ausgestaltung mit einer Vorgehensweise zur Erkennung defekter Blöcke ergänzt werden. Gemäß dieser Ausgestaltung des Verfahrens kann ein Block als intakt, in diesem Fall ist der Block entweder frei oder belegt, markiert sein. Falls es für den Block zu der insbesondere speicherbedingten Zustandsänderung kommt, wobei es sich hierbei um eine unbeabsichtigte oder ungewollte Zustandsänderung handelt, die nicht durch ein Eingreifen eines Anwenders verursacht wird, kann der Block des weiteren als defekt oder verdächtig markiert werden. Diese Zustandsänderung kann durch mindestens einen Fehler bedingt sein und sich durch das Kippen mindestens eines Bits der mindestens einen Speichereinrichtung automatisch bemerkbar machen. In Abhängigkeit einer Art oder einer Häufigkeit des Fehlers wird der Block entweder als verdächtig oder defekt eingestuft und entsprechend klassifiziert. Eine explizite Markierung als verdächtig oder defekt kann erfolgen.
  • Als verdächtig markierte oder erkannte Blöcke können hinsichtlich der weiteren Entwicklung beobachtet werden. Ein zumindest ursprünglich intakter Block kann hierbei nach Auftreten eines ersten Fehlers als verdächtig markiert werden. Ein Block kann gemäß dieser Vorgehensweise nur nach zwei aufeinanderfolgenden Fehlern als defekt markiert werden, wobei der zweite Fehler im Zustand verdächtig auftreten muss. Unter Ausnutzung dieser Zustände ist es möglich, die Wahrscheinlichkeiten der richtigen Erkennung der Zustände der Blöcke zusätzlich zu erhöhen.
  • Zur Realisierung des Verfahrens liegt in einer nachfolgend beschriebenen Ausführungsform die Annahme zugrunde, dass das Verfahren für ein blockorientiertes Dateisystem bzw. eine blockorientierte Speichereinrichtung mit einer Anzahl Blöcken angewendet wird. Jeder Block besteht aus Daten bzw. Nutzdaten und einer Verwaltungsinformation, die Auskunft über einen Status und einen Typ des Blocks liefert sowie einen Zeiger auf den nächsten Block bereitstellt. Ferner können Prüfdaten eingesetzt werden. Durch Bestimmung derartiger Prüfdaten kann für den Block, bei dem mindestens ein Bit gekippt ist, überprüft werden, ob der Inhalt des Blocks sich in dem Zustand befindet, der geschrieben worden ist. Über die Prüfdaten können somit vermeintlich speicherbedingte Zustandsänderungen sowie durch eine beabsichtigte Operation gezielt hervorgerufene Zustandsänderungen erkannt werden.
  • Es sei nunmehr angenommen, dass in der vorliegend beschriebenen Ausführungsform der Zustand oder Status des Blocks durch die Codierung oder ein Bitmuster der Speicherzellen codiert ist. Bei dem in der Ausführungsform vorgestellten Verfahren ist ohne Beschränkung der Allgemeinheit vorgesehen, dass die Speicherzellen die binären Werte Eins ("1") und Null ("0") annehmen können. Bei anderen Ausführungen der Erfindung können den Speicherzellen beliebige geeignete Zeichen, die eindeutige, vorzugsweise binäre Werte darstellen, zugewiesen werden.
  • Ein Datensatz besteht aus einem ersten Block und kann mehrere weitere Blöcke enthalten, was von der Länge eines Datums abhängt.
  • In der nachfolgenden Tabelle 1 sind Beispiele für Blöcke in unterschiedlichen Zuständen und deren jeweilige Codierungen angeführt. Dabei umfasst in diesem Ausführungsbeispiel jede Codierung acht Speicherzellen, wobei die Codierung zur Festlegung und/oder Markierung des Zustands des jeweiligen Blocks vorgesehen ist.
  • Bei den in Tabelle 1 dargestellten Beispielen sind bei dem freien und somit gelöschten Block sämtliche Werte für die Speicherzellen der Codierung Einsen. Bei dem ersten Block des Datensatzes ist die erste Speicherzelle der Codierung eine Eins, die weiteren Speicherzellen sind mit beliebigen Bitwerten belegt, mit Ausnahme des Bitmusters für freie Blöcke. Bei einem verdächtigen Block weist die erste Speicherzelle der Codierung eine Null auf, die weiteren Speicherzellen sind Einsen. Eine erste Speicherzelle einer Codierung eines weiteren Blocks des Datums ist eine Null, die weiteren Speicherzellen sind beliebig, mit Ausnahme des Bitmusters für verdächtige Blöcke.
  • Figure 00070001
    Tabelle 1
  • Wenn Blöcke bei Durchführung der Löschoperation gelöscht werden, was bedeutet, dass deren Inhalte und somit Daten gelöscht werden, ist vorgesehen, dass insbesondere der ersten Speicherzelle der Codierung eines jeweiligen Blocks der Wert Eins bzw. "1", d. h. logisch1, zugeordnet bzw. zugewiesen wird. Eine derartige Zuweisung oder Markierung kann automatisch oder implizit mit der Löschoperation oder zumindest unmittelbar nach der Löschoperation durchgeführt werden. Durch diese Maßnahme kann durch die Codierung der Zustand bzw. Status des Blocks markiert und somit bei einer Überprüfung schnell und zuverlässig erkannt werden. Dieser ersten Speicherzelle zur Bestimmung des Status des Blocks den Wert bzw. Bitwert "1" zuzuordnen ist dann sinnvoll, wenn es wahrscheinlicher ist, dass ein Bitwert innerhalb der Codierung eher von "1" in den Zustand Null bzw. "0", d. h. logisch0 kippt als umgekehrt.
  • Außerdem kann in der Codierung für den Status codiert werden, ob es sich bei dem betreffenden Block um einen ersten oder einen weiteren Block innerhalb des Datensatzes handelt. Des weiteren befindet sich dort eine Codierung der ID, unter der das Datum in der Speichereinrichtung gefunden werden kann.
  • Belegte Blöcke enthalten demnach an mindestens einer Speicherzelle, außer an der ersten Speicherzelle, den Wert "logisch0". Diese belegten Blöcke können in weiterer Ausgestaltung der Erfindung durch Bestimmung der Prüfdaten als korrekt oder fehlerhaft erkannt werden.
  • Defekte Blöcke sehen aus wie verdächtige Blöcke, jedoch befindet sich bei der Codierung defekter Blöcke an mindestens einer weiteren Speicherzelle der Wert bzw. Bitwert "0". Wenn ein Block als freier Block markiert werden soll, wird er gelöscht. So ist es möglich, den zusätzlichen Zustand "gelöscht" der Speichereinrichtung durch die Trennung der Operationen Löschen und Schreiben auszunutzen. Eine Markierung eines gelöschten und somit freien Blocks erfordert keinen Schreibzugriff. Ein Schreibzugriff erfolgt erst, wenn der gelöschte Block wieder mit Daten beschrieben wird.
  • Da es wahrscheinlicher ist, dass der Bitwert von "1" nach "0" kippt als umgekehrt, wird in einer weiteren Ausgestaltung der Erfindung für die Codierung des freien bzw. gelöschten Blocks ein aus Einsen bestehendes Bitmuster "1 ... 1" gewählt. Das Verfahren kann in Ausgestaltung auch die Möglichkeit umfassen, dass durch Bereitstellung des Bitmusters, gemäß dem der mindestens einen Speicherzelle der erste Bitwert zugeordnet und somit der Block als gelöscht markiert wird, die Löschoperation automatisch erfolgt, so dass ein Markieren des Blocks als gelöscht auch der Löschoperation entsprechen oder diese umfassen kann. Somit wird einerseits erreicht, dass mögliche Speicherfehler erkannt werden können, andererseits wird die Speichereinrichtung bzw. ein Medium geschont, da zur Erkennung des Zustands kein Schreibzugriff erforderlich ist.
  • Auch bei einem verdächtigen Block können Fehler mit hoher Wahrscheinlichkeit erkannt werden. Die Codierung eines verdächtigen Blockes unterscheidet sich nur durch eine Speicherzelle von der Codierung eines freien Blocks. Dieses Bit an der den Zustand markierenden, vorzugsweise ersten Speicherzelle der Codierung dient auch der Unterscheidung eines ersten Blocks eines Datensatzes und der weiteren Blöcke für diesen Datensatz.
  • Wenn der Fehler an der den Zustand markierenden Speicherzelle der Codierung des freien Blocks auftritt, kann dieser zu einem verdächtigen Block werden. Wenn der Fehler an dieser den Zustand markierenden Speicherzelle bei einem verdächtigen Block auftritt, kann dieser Block ohne Probleme für jeden Block eines Datensatzes mit Ausnahme des ersten Blocks verwendet werden. Die Unterscheidung der Codierung des ersten und aller weiteren Blöcke wird so gewählt, dass mit viel größerer Wahrscheinlichkeit aus einem ersten Block in einer Liste ein weiterer Block werden kann, als dass aus einem weiteren Block ein erster Block wird.
  • Bei einer weiteren vorteilhaften Ausgestaltung des Verfahrens können Codierungen in Tabelle 1 für andere Zustände verwendet werden. Bspw. ist der nur aus "0" bestehende Status bei bestimmten Speichern gut zur Markierung defekter Blöcke geeignet.
  • Bei Speichereinrichtungen oder Dateisystemen dieser Art ist neben den für einen Anwender sichtbaren Funktionen, wie Lesen, Schreiben und Löschen, eine weitere Funktion zum Bereinigen der Speichereinrichtung vorgesehen. Diese Funktion umfasst zum Beispiel eine Freigabe unvollständiger Ketten und ein Markieren verdächtiger Blöcke. Bei allen erwähnten Operationen kann es erforderlich sein, den Status von Blöcken erkennen oder markieren zu müssen. Eine genaue Vorgehensweise zur Realisierung der Erfindung kann von nicht-funktionalen Anforderungen an das System abhängen.
  • Anhand einer Gewichtung der nicht-funktionalen Anforderungen kann das Verfahren im Detail festgelegt werden. Insbesondere kann festgelegt werden, zu welchen Zeitpunkten und bei welchen Operationen welche Typen von Blöcken wie markiert werden und welche Typen von Blöcken zum Speichern von Daten verwendet werden dürfen. Eine Markierung für die mindestens eine Speicherzelle einer jeweiligen Codierung, wobei durch diese mindestens eine Speicherzelle der Status des Blocks angezeigt wird, ist je nach Anwendung derart gewählt, dass, insbesondere unter Berücksichtigung von Bitkippern und abgebrochenen Lösch- und Schreibvorgängen, Blöcke, die aufgrund der insbesondere speicherbedingten Zustandsänderung defekt sind, mit hoher Wahrscheinlichkeit als defekt und intakte Blöcke als intakt erkannt werden.
  • Im allgemeinen kann die Ursache für einen fehlerhaften Speicherinhalt nicht mit hundertprozentiger Sicherheit erkannt werden. Bei Fehlern kann es sich zum Beispiel um physikalische Fehler in der Speicher-Hardware oder um nicht abgeschlossene Schreibvorgänge, die durch Spannungsunterbrechungen oder Resets verursacht sind, handeln. Dennoch wird bei der Erkennung eines Speicherfehlers häufig entweder der entsprechende Block als defekt markiert und nicht wieder verwendet oder aber der Fehler wird ignoriert und der Block weiterverwendet. Bei einer Ausgestaltung des vorliegenden Verfahren können Blöcke als gelöscht und somit als frei sowie des weiteren als intakt, als verdächtig und als defekt markiert werden. Auf diese Weise ist es möglich, eine Verfügbarkeit gespeicherter oder zu speichernder Daten zu erhöhen.
  • Das Verfahren kann ebenfalls eine Strategie zur Wiederbelebung oder Reaktivierung von verdächtigen Blöcken umfassen. Es gibt verschiedene Aspekte für diese Strategie, bspw. eine Wiederbelebung bei Bedarf, nach einer gewissen Zeit und/oder nach bestimmten Vorgaben, wonach bspw. nur eine benötigte Anzahl von Blöcken oder alle verdächtigen, nicht defekten Blöcke wiederbelebt werden. Eine bestimmte Ausgestaltung dieser Strategie hängt ebenfalls von den nicht-funktionalen Anforderungen an die Speichereinrichtung ab. Ein Beispiel für eine Gewichtung nicht-funktionaler Anforderungen kann umfassen, dass darüber eine Entscheidung getroffen wird, ob die Datensicherheit oder die Lebensdauer der Speichereinrichtung wichtiger ist. Eine mögliche Frage hierzu wäre, ob ein Datenverlust mit der Konsequenz, dass ein geschriebenes Datum nicht gelesen werden kann, oder ein Speicherverlust mit der Konsequenz, dass eine Speicherzelle fälschlicherweise als defekt erkannt wird, eher akzeptabel ist.
  • In Abhängigkeit von der verwendeten Hardware und Software können inverse Vorraussetzungen gegeben sein: Der gelöschte Zustand der Speicherzelle entspricht "0" und die Wahrscheinlichkeit von Bitkippern von "0" nach "1" ist größer als von "1" nach "0". Dies erfordert lediglich eine andere, insbesondere inverse, Codierung oder Auslegung des Bitmusters der mindestens einen Speicherzelle. Dementsprechend sind die anderen Markierungen zur Erkennung der weiteren voranstehend beschriebenen Zustände zu verändern. Dadurch bleibt das Verfahren an sich unverändert.
  • Die Codierung kann bspw. hinsichtlich eines Aufbaus und/oder hinsichtlich der Bestandteile der Verwaltungsinformation und Daten variieren. Dies kann einen Status, also Typ und Zustand des Blocks, einen Verweis auf einen nächsten Block eines Datums und/oder eine Verwendung und Typen von Checksummen sowie deren Anordnung betreffen. Des weiteren kann die Codierung in Abhängigkeit eines Typs der blockorientierten Speichereinrichtung variieren. Es kann bspw. vorgesehen sein, die Verwaltungsinformation getrennt von den Daten zu speichern. In einer hierzu alternativ ausgebildeten Speichervorrichtung kann dagegen die Verwaltungsinformation mit den Daten zusammen abgelegt werden.
  • Die Erfindung kann in eingebetteten Systemen, bspw. Steuergeräten im Kfz, die jeweils erfindungsgemäße Speichereinrichtungen aufweisen und/oder mit diesen in Wechselwirkung stehen, eingesetzt werden.
  • Durch Ausnutzung der Verwendung des zusätzlichen Zustands "gelöscht", der durch die getrennte Ausführung der Lösch- und Schreiboperation bereitgestellt wird, kann eine Reduktion der Anzahl der Schreibvorgänge und eine Verlängerung der Lebensdauer der Speichereinrichtung erreicht werden. Durch Verwendung des beschriebenen Verfahrens kann die Verfügbarkeit bei bestimmten blockorientierten EEPROM-Dateisystemen, bei denen Blöcke entweder als intakt, verdächtig oder defekt markiert werden, erhöht werden.
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
  • 1 zeigt in schematischer Darstellung ein Ausführungsbeispiel einer Vorrichtung sowie einer Speichereinrichtung mit einem Block bei einer Ausführungsform des Verfahrens
  • Ausführungsform der Erfindung
  • Die in 1 schematisch dargestellte Speichereinrichtung 2 (gestrichelter Kasten) und Vorrichtung 4 stehen bei Durchführung der beschriebenen Ausführungsform des Verfahrens in Wechselwirkung. Die Speichereinrichtung 2 weist ein beliebige Anzahl von Blöcken 6 auf, die zur Speicherung von Daten vorgesehen sind. In 1 ist ein Block 6 in verschiedenen Zuständen dargestellt. Die Zustände sind jeweils durch Bitwerte, die den Speicherzellen 14 des Blocks 6 zugeordnet sind, markiert.
  • Bei dem ersten Zustand ist der Block 6 mit einem Datum beschrieben. Dies wird dadurch markiert, dass der ersten Speicherzelle der Codierung 14 der Bitwert "0", d. h. logisch0, zugewiesen ist, den vier weiteren Speicherzellen 14 sind zur Charakterisierung des Datums in diesem Ausführungsbeispiel die Bitwerte "1010" zugewiesen.
  • Bei Ausführung des Verfahrens wird durch die Vorrichtung 4 ein Inhalt des befindlichen Blocks 6 gelöscht und somit eine Löschoperation 16 durchgeführt. Unmittelbar nach dieser Löschoperation 16 wird der ersten Speicherzelle 14 und den vier weiteren Speicherzellen 14 des Blocks 6 jeweils der Bitwert "1", d. h. logisch1, zugewiesen. Durch eine derartige Zuweisung wird der sich Block 6 als gelöscht markiert, so dass dieser gelöschte Block 6 bei einer Suche nach freien Blöcken zur Speicherung neuer Daten schnell identifiziert werden kann.
  • Für den Fall, dass eine Zustandsänderung 18 für den Block 6, bei der es sich in dieser Ausführungsform um eine speicherbedingte Zustandsänderung 18 handelt, auftreten sollte, macht sich diese Zustandsänderung durch Kippen des im vorliegenden Ausführungsbeispiel des Bitwerts von "1" nach "0" in der ersten Speicherzelle 14 des Blocks bemerkbar. Für die Speichereinrichtung 2 gilt in diesem Ausführungsbeispiel, dass eine Wahrscheinlichkeit für ein speicherbedingtes Kippen eines Bitwerts von "1" nach "0" größer als von "0" nach "1" ist. Ein derartiges zufälliges oder unbeabsichtigtes Kippen wird in der Regel durch einen Fehler in der entsprechenden Speicherzelle 14 verursacht. Aufgrund der Wahl für eine Codierung der Speicherzellen 14 bzw. für ein Bitmuster der Speicherzellen 14 des Blocks macht sich das bspw. fehlerbedingte Kippen des Bitwerts automatisch und somit selbsttätig bemerkbar, dadurch kann die Zustandsänderung 18 des Blocks 6 gut erkannt werden.
  • Zu einem späteren Zeitpunkt kann unabhängig von dem Löschvorgang 16 für den gelöschten Block 6 durch die Vorrichtung 4 eine Schreiboperation 20, bei der auf dem Block 6 ein neues Datum gespeichert wird, erfolgen. Dabei wird der ersten Speicherzelle 14 des Blocks 6 der Wert "0" zugewiesen. Den weiteren Speicherzellen 14 werden Bitwerte "0101 ", die dieses neue Datum charakterisieren, zugewiesen.

Claims (15)

  1. Verfahren zum Betreiben einer Speichereinrichtung (2), die eine Anzahl Blöcke (6) aufweist, bei dem einem Speicherbereich, also mindestens einer Speicherzelle (14), eines Blocks (6) nach Durchführung einer Löschoperation (16), die von einer Schreiboperation (20) getrennt ist, ein Bitmuster zugeordnet wird, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block (6) eine Zustandsänderung (18) erkannt werden kann.
  2. Verfahren nach Anspruch 1, bei dem nach dem Kippen des mindestens einen Bits eine explizite Änderung des Zustands des Blocks (6) durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der Block (6) durch Zuordnung eines Bitmusters zu der mindestens einen Speicherzelle (14) als gelöscht markiert wird.
  4. Verfahren nach einem der voranstehenden Ansprüche, bei dem ein Zustand des Blocks (6) durch ein Bitmuster der mindestens einen Speicherzelle (14) charakterisiert wird.
  5. Verfahren nach einem der voranstehenden Ansprüche, bei dem sämtlichen Speicherzellen (14) des Blocks (6) ein bestimmtes Bitmuster zugeordnet wird.
  6. Verfahren nach einem der voranstehenden Ansprüche, bei dem des weiteren vorgesehen ist, dass mittels Prüfdaten des Blocks (6) zu überprüfen ist, ob das Kippen mindestens eines Bits des Blocks (6) durch eine insbesondere speicherbedingte Zustandsänderung (18) verursacht ist.
  7. Verfahren nach einem der voranstehenden Ansprüche, bei dem der Block (6) nach Umkippen mindestens eines Bits des Blocks (6) als verdächtig markiert wird.
  8. Verfahren nach einem der voranstehenden Ansprüche, bei dem dem Speicherbereich innerhalb des Blocks (6) ein Bitmuster "1 ... 1" zugewiesen wird, wenn der Block (6) gelöscht wird, und bei dem zur Markierung eines verdächtigen Blocks (6) ein Bitmuster verwendet wird, das bis auf mindestens eine "0" an beliebigen Stellen nur die Bitwerte "1" aufweist.
  9. Verfahren nach einem der Ansprüche 1 bis 7, bei dem dem Speicherbereich innerhalb des Blocks (6) ein Bitmuster "0 ... 0" zugewiesen wird, wenn der Block (6) gelöscht wird, und bei dem zur Markierung eines verdächtigen Blocks (6) ein Bitmuster verwendet wird, das bis auf mindestens eine "1" an beliebigen Stellen nur die Bitwerte "0" aufweist.
  10. Verfahren nach einem der voranstehenden Ansprüche, das für einen Block (6) eines Datums, das in einer Anzahl miteinander verketteter Blöcke (6) gespeichert wird, durchgeführt wird.
  11. Verfahren nach einem der voranstehenden Ansprüche, das für eine Speichereinrichtung (2), deren Hardware als ein EEPROM ausgebildet ist, durchgeführt wird.
  12. Vorrichtung zum Betreiben einer Speichereinrichtung (2), die eine Anzahl Blöcke (6) aufweist, wobei die Vorrichtung (4) dazu ausgebildet ist, einem Speicherbereich, also mindestens einer Speicherzelle (14), eines Blocks (6) nach Durchführung einer Löschoperation (16), die von einer Schreiboperation (20) getrennt ist, ein Bitmuster zuzuordnen, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block (6) eine Zustandsänderung (18) erkannt werden kann.
  13. Speichereinrichtung, die eine Anzahl Blöcke (6) aufweist und dazu ausgebildet ist, einem Speicherbereich, also mindestens einer Speicherzelle (14), eines Blocks (6) nach Durchführung einer Löschoperation (16), die von einer Schreiboperation (20) getrennt ist, ein Bitmuster zuzuordnen, so dass für den Fall eines Umkippens von mindestens einem Bit innerhalb des Speicherbereichs für diesen Block (6) eine Zustandsänderung (18) erkannt werden kann.
  14. Computerprogramm mit Programmcodemitteln, um alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Recheneinheit, insbesondere einer Vorrichtung (4) nach Anspruch 12, ausgeführt wird.
  15. Computerprogrammprodukt mit Programmcodemitteln, die auf einem computerlesbaren Datenträger gespeichert sind, um alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Recheneinheit, insbesondere einer Vorrichtung (4) nach Anspruch 12, ausgeführt wird.
DE102006013763A 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung Withdrawn DE102006013763A1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE102006013763A DE102006013763A1 (de) 2006-03-24 2006-03-24 Verfahren zum Betreiben einer Speichereinrichtung
US12/294,400 US8250321B2 (en) 2006-03-24 2007-03-14 Method for operating a memory device
EP07726878A EP2005440A1 (de) 2006-03-24 2007-03-14 Verfahren zum betreiben einer speichereinrichtung
CNA2007800103824A CN101405816A (zh) 2006-03-24 2007-03-14 运行存储装置的方法
PCT/EP2007/052382 WO2007110327A1 (de) 2006-03-24 2007-03-14 Verfahren zum betreiben einer speichereinrichtung
JP2009502008A JP2009531757A (ja) 2006-03-24 2007-03-14 記憶装置の駆動方法
KR1020087023184A KR20080107426A (ko) 2006-03-24 2007-03-14 메모리 유닛 작동 방법

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=38134769

Family Applications (1)

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

Country Status (7)

Country Link
US (1) US8250321B2 (de)
EP (1) EP2005440A1 (de)
JP (1) JP2009531757A (de)
KR (1) KR20080107426A (de)
CN (1) CN101405816A (de)
DE (1) DE102006013763A1 (de)
WO (1) WO2007110327A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799188B2 (en) * 2011-02-08 2014-08-05 International Business Machines Corporation Algorithm engine for use in a pattern matching accelerator
JP5581256B2 (ja) * 2011-03-28 2014-08-27 株式会社東芝 メモリシステム、コントローラ、およびメモリシステムの制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3485938B2 (ja) * 1992-03-31 2004-01-13 株式会社東芝 不揮発性半導体メモリ装置
US5761440A (en) * 1994-09-15 1998-06-02 International Business Machines Corporation System and method utilizing multiple search trees to route data within a data processing network
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JPH11110304A (ja) * 1997-09-30 1999-04-23 Sanyo Electric Co Ltd マイクロコンピュータ
DE69732637T2 (de) * 1997-12-22 2005-12-29 Stmicroelectronics S.R.L., Agrate Brianza Selbsttest und Korrektur von Ladungsverlustfehlern in einem Sektorenlöschbaren und-programmierbaren Flashspeicher
JP3937214B2 (ja) * 1999-09-17 2007-06-27 株式会社ルネサステクノロジ エラー訂正回数を記録する記憶装置
US6671837B1 (en) * 2000-06-06 2003-12-30 Intel Corporation Device and method to test on-chip memory in a production environment
JP2003076604A (ja) * 2001-09-03 2003-03-14 Nec Access Technica Ltd フラッシュメモリのログ情報収集方式および方法
JP4188744B2 (ja) * 2003-04-08 2008-11-26 株式会社ルネサステクノロジ メモリカード
JP4172699B2 (ja) * 2003-04-25 2008-10-29 Tdk株式会社 不揮発性半導体メモリ
JP4222879B2 (ja) 2003-05-30 2009-02-12 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Also Published As

Publication number Publication date
CN101405816A (zh) 2009-04-08
WO2007110327A1 (de) 2007-10-04
US20090319732A1 (en) 2009-12-24
EP2005440A1 (de) 2008-12-24
US8250321B2 (en) 2012-08-21
KR20080107426A (ko) 2008-12-10
JP2009531757A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102005028827A1 (de) Flashspeicherbauelement und Verfahren zur Defektblockbehandlung
DE102005034611A1 (de) Speichersystem und zugehörige Betriebs- und Blockverwaltungsverfahren
DE10344625A1 (de) Halbleiterspeichervorrichtung mit einer Verhinderungsfunktion betreffend eine Datenänderung aufgrund sich aufsummierender Störungen
EP1008993A2 (de) Schreib/Lesespeicher mit Selbsttestvorrichtung und zugehöriges Testverfahren
DE102007062674A1 (de) Integrierte Schaltkreise, Speicher-Steuerungseinheit und Speichermodule
DE60317801T2 (de) Verfahren und vorrichtung zur erkennung von fehlern während des schreibens in einen nichtflüchtigen speicher
DE102012101405B4 (de) Steuervorrichtung zum Steuern eines Datenlesens und - schreibens von und zu einem Flash-Speicher
DE102006013763A1 (de) Verfahren zum Betreiben einer Speichereinrichtung
DE102006009214A1 (de) Verfahren und Vorrichtung zum Schreiben in eine Zielspeicherseite eines Speichers
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
DE102005016801B4 (de) Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
DE19952357A1 (de) Schreibvorrichtung für eine nicht-flüchtige Halbleiter-Speichervorrichtung
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE10322723B3 (de) Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers
EP2002446B1 (de) Verfahren zum betreiben einer speichereinrichtung mit markierung von als fehlerhaft erkannten speicherblöcken
DE19959779A1 (de) Vorrichtung zum Erhalten von Fehlverhaltensinformationen sowie diese verwendende Halbleiterspeicher-Prüfvorrichtung
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE102008010556A1 (de) Verfahren und Vorrichtung zum Speichern von Informationsdaten
DE102017119426A1 (de) Verfahren und vorrichtung zum test von speicherzellen
DE102017117779B4 (de) Verfahren und Vorrichtung zum Test von Speicherzellen
DE102014203963A1 (de) Verfahren und Vorrichtung zum Kontrollieren eines Speichers
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102006013762A1 (de) Verfahren zum Betreiben einer Speichereinrichtung
DE10340010B4 (de) Verfahren und Vorrichtung zum sicheren Speichern von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20121205

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