DE60224552T2 - Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften - Google Patents

Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften Download PDF

Info

Publication number
DE60224552T2
DE60224552T2 DE60224552T DE60224552T DE60224552T2 DE 60224552 T2 DE60224552 T2 DE 60224552T2 DE 60224552 T DE60224552 T DE 60224552T DE 60224552 T DE60224552 T DE 60224552T DE 60224552 T2 DE60224552 T2 DE 60224552T2
Authority
DE
Germany
Prior art keywords
levels
data
storage units
reference levels
quality
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 - Lifetime
Application number
DE60224552T
Other languages
English (en)
Other versions
DE60224552D1 (de
Inventor
Geoffrey S. Los Altos Gongwer
Shahzad B. Union City KHALID
Daniel C. Fremont Guterman
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.)
SanDisk Corp
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of DE60224552D1 publication Critical patent/DE60224552D1/de
Application granted granted Critical
Publication of DE60224552T2 publication Critical patent/DE60224552T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die Erfindung betrifft ein Speichersystem für nicht flüchtige Datenspeicherung und insbesondere ein Speichersystem, das Referenzniveaus zum Lesen von Daten verwendet, die in einem Format mit mehreren Zuständen gespeichert sind.
  • Beschreibung des Stands der Technik
  • Speicherkarten werden im Allgemeinen verwendet, um digitale Daten für eine Verwendung mit verschiedenen Produkten (beispielsweise elektronischen Produkten) zu speichern. Beispiele für Speicherkarten sind Flashkarten, die Flash- oder EEPROM-Speicherzellen zum Speichern der Daten verwenden. Flashkarten weisen einen relativ kleinen Formfaktor auf und wurden zum Speichern digitaler Daten für Produkte, wie beispielsweise Kameras, tragbare Computer, Set-Top-Boxen, tragbare oder andere kleine Tonabspieler/Aufnahmegeräte (zum Beispiel MP3-Geräte) und medizinische Überwachungsgeräte verwendet. Ein Hauptlieferant von Flashkarten ist die SanDisk Corporation in Sunnyvale, CA.
  • Von diesen Speicherkarten wird zunehmend erwartet, dass sie immer größere Mengen von Daten speichern. Folglich wurden individuelle Speicherelemente innerhalb dieser Speicherkarten zum Unterstützen mehrere Niveaus entwickelt, um mehrere Bits von Daten effektiv zu speichern. Herkömmliche Speicherelemente speichern nur zwei Zustände, während Speicherelemente mit mehreren Niveaus oder hoher Dichte mehr als zwei Zustände (zum Beispiel vier Zustände) speichern. Zum Beispiel können Speicherelemente in einigen heutigen Mehrfach-Niveau- Speicherkarten vier (4) Niveaus speichern und somit gewissermaßen einem einzelnen Speicherelement ermöglichen, als zwei (2) Bits von Daten zu wirken. Während diese mehrere Niveaus einer Speicheranordnung ermöglichen, wesentlich größere Mengen von Daten ohne eine entsprechende Vergrößerung der Größe oder der Kosten zu speichern, ist es schwieriger, gespeicherte Daten aus der Speicheranordnung zu lesen.
  • Nicht flüchtige Speicher sind sehr beliebt und nützlich, weil sie Daten sogar behalten, nachdem sie von der Stromversorgung getrennt wurden. Allerdings ist die Aufrechterhaltung der Ladung von nicht flüchtigen Speichern nicht perfekt. Folglich kann nach dem Programmieren einer Speicherzelle die Spannung der Speicherzelle nach oben oder nach unten driften, in Abhängigkeit von verschiedenen Einflüssen, wie beispielsweise angelegte Vorspannungen, elektromagnetische Felder, die in der Speichervorrichtung erzeugt werden, und Ladung, die in Dielektrika der Speichervorrichtung gefangen ist.
  • Wenn nicht flüchtige Speicher mehrere Zustände in jedem Speicherelement unterstützen, was als ein Speicher mit mehreren Zuständen bezeichnet wird, werden Referenzniveaus benötigt, um ein Unterscheiden zwischen den Zuständen zu unterstützen, wenn Daten von den Speicherzellen gelesen werden.
  • Herkömmliche Referenzzellen wurden innerhalb der Speichervorrichtung zum Speichern von globalen Referenzspannungen verwendet, die in der Fabrik programmiert werden können, oder vor oder mit den Benutzerzellen geschrieben werden können. Allerdings ist die Fähigkeit, diese Referenzspannungen auf eine genaue Weise abzurufen schwierig aufgrund von Schwellwertspannungs-/Stromverteilungen unter beschriebenen Referenzspeichereinheiten. Die Verteilungen können verursacht werden durch Schwankung in anfänglich geschriebenem Schwellwert/Strom; Spannungsstörungen; materielle Schwankungen, welche in unterschiedlicher Umgebungsempfindlichkeit resultieren; und Ladungsverlust von eingebauten elektrischen oder magnetischen Feldern. In jedem Fall ist das Ergebnis eine erhöhte Fehlerwahrscheinlichkeit während Leseoperationen.
  • US-B-6275419 offenbart Methoden für eine hoch dichte Kodierung mit mehreren Zuständen für einen Speicher mit mehreren Zuständen. Die Methoden umfassen das Bestimmen optimaler Vergleichspunkte für verschiedene Zustände durch die Verwendung von Referenzzellen. Vergleichsniveaus werden von den Referenzzellen bestimmt. Insbesondere wird ein optimaler Vergleichspunkt erhalten, indem zehn Referenzzellen ausgelesen werden und ihre Daten zusammensummiert werden, was eine Anhäufung der Daten dieser zehn Zellen ergibt. Max- und Min-Register werden beibehalten. Der Filterpunkt wird dann durch Subtraktion des Max und Min von der Summe und Dividieren durch acht ermittelt, was das mittlere Speicherniveau, das der Referenzzelle zugeordnet ist, ergibt. Demgemäß minimiert diese Methode die Wahrscheinlichkeit eines Fehlers von einer isolierten, fehlerhaften Zelle, ob hoch oder niedrig.
  • WO-A-0227729 offenbart Methoden zum Verwenden von beschreibbaren Referenzzellen mit Speicherung mit mehreren Zuständen. Mehrere Referenzzellen werden für jeden Speicherschreibblock bereitgestellt. Diese Zellen werden jedes Mal umprogrammiert, wenn die Benutzerzellen des zugeordneten Schreibblocks beschrieben werden, vorzugsweise zur selben Zeit, unter Verwendung der gleichen festgelegten globalen Referenzniveaus, um die programmierten Schwellwerte der Referenz- und Benutzerzellen festzulegen. Die Schwellwertspannungen der Referenzzellen werden jedes Mal gelesen, wenn die Benutzerzellen ge lesen werden, und diese Schwellwerte werden zum Bestimmen der gespeicherten logischen Niveaus der Benutzerzellen verwendet.
  • Somit besteht ein Bedarf für verbesserte Vorgehensweisen zum verlässlichen Speichern und Erfassen von Referenzniveaus, so dass Zustände (logische Niveaus) von Speicherzellen mit mehreren Zuständen verlässlich über die Lebensdauer der Speichervorrichtung abgerufen werden können.
  • Allgemein gesagt betrifft die Erfindung ein Speichersystem (zum Beispiel Speicherkarte), das eine Fehlerbehandlung für gespeicherte Niveaus (zum Beispiel Referenzniveaus), die bei einer Unterscheidung von logischen Niveaus für Datenspeichereinheiten, die Datenspeicherung bereitstellen, verwendet werden, aufweist. Die gespeicherten Niveaus können in vorbestimmten Speichereinheiten (zum Beispiel beschreibbare Referenzspeichereinheiten) in dem Speichersystem gespeichert werden. Das Speichersystem ist typischerweise ein nicht flüchtiges Speicherprodukt oder eine nicht flüchtige Speichervorrichtung, die binäre Datenspeicherung oder Datenspeicherung mit mehreren Zuständen bereitstellt.
  • Die Erfindung kann auf vielfältige Weise implementiert werden. Beispielsweise kann die Erfindung als ein System, eine Vorrichtung oder ein Verfahren implementiert werden. Mehrere Ausführungsformen der Erfindung werden nachstehend diskutiert.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Lesen von Daten von einer Speichervorrichtung bereitgestellt, die Datenspeichereinheiten und zugeordnete Referenzspeichereinheiten aufweist, wobei das Verfahren umfasst: (a) im Wesentlichen gleichzeitiges Lesen von Datenniveaus von be stimmten Datenspeichereinheiten und von Referenzniveaus von Referenzspeichereinheiten, die den bestimmten Datenspeichereinheiten zugeordnet sind; (b) Berechnen eines verarbeiteten Referenzniveaus von den Referenzniveaus; (c) Ermitteln von Zustandsunterscheidungsniveaus basierend auf dem verarbeiteten Referenzniveau; (d) Unterscheiden von Zuständen der Datenniveaus von den bestimmten Datenspeichereinheiten basierend auf den Zustandsunterscheidungsniveaus, um gelesene Daten für einen Anforderer zu erfassen; (e) Bewerten der Qualität der Referenzniveaus; (f) Ermitteln ob die Qualität der Referenzniveaus akzeptabel ist; (g) Senden der gelesenen Daten an den Anforderer, wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus akzeptabel ist; und (h) Anhalten des Sendens (g) und Korrigieren für mindestens eines der Referenzniveaus, wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Speichersystem bereitgestellt, das umfasst: mehrere Datenspeichereinheiten, wobei jede der Datenspeichereinheiten Datenspeicher mit mehreren Zuständen auf eine nicht flüchtige Weise bereitstellt; mehrere Referenzspeichereinheiten, wobei die Referenzspeichereinheiten Speicher für Referenzniveaus auf eine nicht flüchtige Weise bereitstellen; einen Referenzniveaufehlerbehandler, der betriebsfähig zum Empfangen der Referenzniveaus von den Referenzspeichereinheiten verbunden ist, wobei der Referenzniveaufehlerbehandler die Qualität der Referenzniveaus bewertet; und eine Speichersteuereinheit, die betriebsfähig mit den Datenspeichereinheiten und den Referenzspeichereinheiten verbunden ist, wobei die Speichersteuereinheit betrieben wird, um Lese-, Schreib- und Löschvorgänge mit Bezug auf Datenspeichereinheiten und die Referenzspeichereinheiten zu steuern, wobei die Speichersteuereinheit Zustands unterscheidungsniveaus verwendet, um den Zustand der Datenspeicherelemente, die gelesen werden, zu ermitteln, wobei das Speichersystem betrieben wird zum Ermitteln, ob die Qualität der gelesenen Daten für einen Anfordernden akzeptabel ist, und Senden der gelesenen Daten an einen Anfordernden, wenn es ermittelt wird, dass die Qualität der Referenzniveaus akzeptabel ist; und Anhalten des Sendens der gelesenen Daten an den Anfordernden und Korrigieren für mindestens eines der Referenzniveaus, wenn das Referenzniveau nicht akzeptabel ist.
  • Andere Aspekte und Vorteile der Erfindung werden von der folgenden genauen Beschreibung in Verbindung mit den beiliegenden Zeichnungen deutlich werden, welche mittels Beispielen die Prinzipien der Erfindung veranschaulichen.
  • Die Erfindung wird leicht verstanden werden durch die folgende genaue Beschreibung in Verbindung mit den beiliegenden Zeichnungen, wobei gleiche Bezugszeichen gleiche strukturelle Elemente bezeichnen, und in welchen:
  • 1A ein funktionelles Blockschema eines Speichersystems gemäß einer Ausführungsform der Erfindung ist;
  • 1B ein Flussdiagramm einer Unterscheidungsniveauverarbeitung gemäß einer Ausführungsform der Erfindung ist;
  • 2A ein Flussdiagramm einer Leseanfrageverarbeitung gemäß einer Ausführungsform der Erfindung ist;
  • 2B ein Flussdiagramm einer Leseanfrageverarbeitung gemäß einer anderen Ausführungsform der Erfindung ist;
  • 2C ein Flussdiagramm einer Leseanfrageverarbeitung 270 gemäß noch einer anderen Ausführungsform der Erfindung ist; und
  • 3 ein Flussdiagramm einer Leseanfrageverarbeitung gemäß einer anderen Ausführungsform der Erfindung ist.
  • Genaue Beschreibung der Erfindung
  • Die Erfindung betrifft ein Speichersystem (zum Beispiel Speicherkarte), das eine Fehlerbehandlung für gespeicherte Niveaus (zum Beispiel Referenzniveaus), die bei einer Unterscheidung von logischen Niveaus für Datenspeichereinheiten, die Datenspeicherung bereitstellen, verwendet werden, aufweist. Die gespeicherten Niveaus können in vorbestimmten Speichereinheiten (zum Beispiel beschreibbare Referenzspeichereinheiten) in dem Speichersystem gespeichert werden. Das Speichersystem ist typischerweise ein nicht flüchtiges Speicherprodukt oder eine nicht flüchtige Speichervorrichtung, das bzw. die binäre Datenspeicherung mit mehreren Zuständen bereitstellt.
  • Das Speichersystem kann beispielsweise zu einer Speicherkarte (wie beispielsweise eine Steckkarte), einem Speicherstift oder einem anderen Halbleiterspeicherprodukt gehören. Beispiele von Speicherkarten umfassen PC-Karten (frühere PCMCIA-Vorrichtungen), Flash-Karten, Flash-Datenträger, Multimediakarten, und ATA-Karten.
  • Ausführungsformen von diesem Aspekt der Erfindung werden nachstehend mit Bezug auf 1A bis 3 diskutiert. Allerdings wird ein Fachmann es leicht zu würdigen wissen, dass die genaue Beschreibung, die hierin mit Bezug auf diese Figu ren gegeben wird, für erklärende Zwecke ist, da sich die Erfindung über diese begrenzten Ausführungsformen hinaus erstreckt.
  • 1A ist ein funktionelles Blockschema eines Speichersystems 10 gemäß einer Ausführungsform der Erfindung. Das Speichersystem 10 stellt hoch dichte Datenspeicherung unter Verwendung von Speicherung mit mehreren Zuständen bereit. Das Speichersystem 10 weist eine Speichersteuereinheit 12 auf, die Operationen (zum Beispiel Lesen, Löschen, Programmieren) für das Speichersystem 10 steuert und mit einem Host über einen Datenbus 13 kommuniziert. Das Speichersystem 10 weist auch Datenspeichereinheiten mit mehreren Zuständen 14 (zum Beispiel Speicherzellen) auf, die Daten für das Speichersystem 10 auf eine nicht flüchtige Weise speichern. Die Datenspeichereinheiten mit mehreren Zuständen 14 stellen hoch dichte Speicherung für Daten bereit, weil jede Datenspeichereinheit (Datenspeicherelement) fähig ist, mehr als zwei Zustände zu speichern. Mit anderen Worten ist jede Datenspeichereinheit (zum Beispiel Speicherzelle) fähig, mehr als ein Bit von Daten zu speichern. Die Datenspeichereinheiten mit mehreren Zuständen 14 sind typischerweise in Blöcken angeordnet, welche die kleinste Schreibeinheit bei einer Ausführungsform repräsentieren.
  • Das Speichersystem 10 weist auch Referenzspeichereinheiten 16 auf, die Referenzniveaus auf eine nicht flüchtige Weise speichern, einen Referenzniveaufehlerbehandler 18 und eine Zustandsunterscheidungsniveau-Schaltung 20. Die Referenzspeichereinheiten 16 sind den Datenspeichereinheiten mit mehreren Zuständen 14 zugeordnet. Insbesondere werden mehrere der Referenzspeichereinheiten 16 für jeden Block von Speicher in den Datenspeichereinheiten mit mehreren Zuständen 14 bereit gestellt und diesem zugeordnet. Die Referenzspeichereinheiten 16, die einem Block von Daten zugeordnet sind, der geschrieben wird, werden jedes Mal, wenn die Datenspeichereinheiten mit mehreren Zuständen 14, die dem Block zugeordnet sind, beschrieben werden mit Referenzniveaus umprogrammiert. Typischerweise werden die Referenzspeichereinheiten 16 mit festgelegten, globalen Referenzniveaus zur selben Zeit programmiert, zu der die Datenspeichereinheiten mit mehreren Zuständen 14 mit den Referenzniveaus umprogrammiert werden. Die gespeicherten Referenzniveaus in den Referenzspeichereinheiten 16 werden verwendet, um Schwellwertniveaus (zum Beispiel Spannungsschwellwerte) festzulegen, die bei einer Zustands-logisches Niveau)Unterscheidung von sowohl den Datenspeichereinheiten 14 als auch den Referenzspeichereinheiten 16 verwendet werden. Die Referenzniveaus, die in den Referenzspeichereinheiten 16 gespeichert sind, werden jedes Mal gelesen, wenn die Datenspeichereinheiten 14 gelesen werden, und diese Referenzniveaus (zum Beispiel Schwellwertspannungen) werden verwendet, um die gespeicherten logischen Niveaus der Datenspeichereinheiten 14 zu bestimmen.
  • Es ist bekannt, dass nicht flüchtige Speicherzellen Ladungsaufrechterhaltungseigenschaften aufweisen, die sich als eine Funktion der Anzahl von durchgeführten Programmier/Löschzyklen verändern. Durch Umprogrammieren der Referenzspeichereinheiten 16 jedes Mal, wenn die zugeordneten Datenspeichereinheiten 14 programmiert werden, entwickeln die Referenzspeichereinheiten 16 die gleiche Vorgeschichte, und darum die gleichen Ladungsaufrechterhaltungseigenschaften wie die zugeordneten Datenspeichereinheiten 14. Mit anderen Worten indem die Referenzspeichereinheiten 16 genauso oft wie die entsprechenden Datenspeichereinheiten 14 gelöscht und umprogrammiert werden, wird die Zyklusabhängigkeit von der La dungsaufrechterhaltung berücksichtigt, was es ermöglicht, die effektive Schwellwertspanne zum Unterscheiden der logischen Niveaus, die in den Datenspeichereinheiten 14 gespeichert sind, beizubehalten. Folglich wird eine Verschlechterung der effektiven Schwellwertspanne der Datenspeichereinheiten 14 aufgrund von Ladungsverlust reduziert. Demgemäß kann die Bestimmung von gespeicherten logischen Niveaus für die Datenspeichereinheiten 14 zuverlässig über die Lebensdauer der Speichervorrichtung durchgeführt werden.
  • Gemäß einer Ausführungsform der Erfindung werden mehrere der Referenzspeichereinheiten 16 mit vorbestimmten Zuständen jedes Mal beschrieben, wenn die zugeordneten Datenspeichereinheiten 14 beschrieben werden. Wenn die zugeordneten Datenspeichereinheiten 14 gelesen werden sollen, werden die Referenzniveaus von den mehreren Referenzspeichereinheiten 16, die diesen zugeordnet sind, gelesen, und von der Zustandsunterscheidungsniveau-Schaltung 20 verwendet, um Unterscheidungspunkte (Zustandsunterscheidungsniveaus) zu bestimmen. Sobald die Unterscheidungspunkte bestimmt sind, kann die Speichersteuereinrichtung 12 (oder die Datenspeichereinheiten selber) die gespeicherten logischen Niveaus innerhalb der Datenspeichereinheiten 14 bestimmen. Während die Unterscheidungspunkte bestimmt werden oder während die logischen Niveaus, die in den Datenspeichereinheiten 14 gespeichert sind, unter Verwendung der Unterscheidungspunkte bestimmt werden, kann die Qualität der Referenzniveaus (Spannung oder Strom) von dem Referenzniveaufehlerbehandler 18 untersucht werden. Jedes der Referenzniveaus von den Referenzspeichereinheiten 14, für die ein Referenzniveau mit einer nicht akzeptablen Qualität festgestellt wurde, kann korrigiert werden (zum Beispiel gelöscht oder ersetzt). Danach werden neue Unterscheidungspunkte von der Zustandsunterscheidungsniveau-Schaltung 20 bestimmt unter Verwendung der Referenzniveaus von den Referenzspeichereinheiten 14 mit akzeptabler Qualität. Die neuen Unterscheidungspunkte werden dann verwendet, um die Speicherlogikniveaus von den Datenspeichereinheiten 16 zu entnehmen.
  • Obwohl der Referenzniveaufehlerbehandler 18 und die Zustandsunterscheidungsniveau-Schaltung 20 als separate Komponenten gezeigt sind, können die Schaltungen für diese Komponenten auch zusammengelegt werden, oder können mit der Speichersteuereinheit 12 zusammengelegt werden. Im Allgemeinen stellt das Speichersystem 10 hoch dichte, nicht flüchtige Datenspeicherung bereit und kann auf vielfältige Weise ausgestaltet werden. Beispielsweise kann das Speichersystem 10 als eine Speicherkarte (wie beispielsweise eine Steckkarte), ein Speicherstift oder ein anderes Halbleiterspeicherprodukt ausgebildet sein.
  • 1B ist ein Flussdiagramm einer Unterscheidungsniveauverarbeitung 100 gemäß einer Ausführungsform der Erfindung. Die Unterscheidungsniveauverarbeitung 100 wird beispielsweise von einem Speichersystem durchgeführt, das Speicherung mit mehreren Zuständen (zum Beispiel Speichersystem 10) bereitstellt. Mit einer Speicherung mit mehreren Zuständen ist eine Speicherkapazität höherer Dichte für Daten verfügbar, weil jede Datenspeichereinheit (Datenspeicherelement) fähig ist, mehr als zwei Zustände zu speichern. Mit anderen Worten ist jede Datenspeichereinheit (zum Beispiel Speicherzelle) fähig, mehr als 1 Bit von Daten zu speichern. Somit können die Datenspeichereinheiten auch als Datenspeichereinheiten mit mehreren Zuständen bezeichnet werden.
  • Die Unterscheidungsniveauverarbeitung 100 liest (102) anfänglich Referenzniveaus von Referenzspeichereinheiten. Die Referenzspeichereinheiten werden in dem Speichersystem zum Bereitstellen von Referenzniveaus bereitgestellt, welche beim Bestimmen von Unterscheidungsniveaus verwendet werden, die wiederum zum Unterscheiden zwischen den verschiedenen Zuständen, die von dem Speicher mit mehreren Zuständen unterstützt werden, verwendet werden. Nachdem die Referenzniveaus von den Referenzspeichereinheiten gelesen werden (102), wird die Qualität der Referenzniveaus bewerte (104). Hier ist die Qualität der Referenzniveaus ein Maß für wie zuverlässig die Referenzniveaus sind, da diese Referenzniveaus durch eine Vielfalt von Einflüssen verschlechtert oder unbrauchbar werden können.
  • Als nächstes wird eine Entscheidung (106) gemacht, um zu ermitteln, ob die Qualität der Referenzniveaus akzeptabel ist. Wenn die Entscheidung (106) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist, dann wird die Unterscheidungsniveauverarbeitung 100 tätig bwz. betrieben, um für die Referenzniveaus zu korrigieren (110), die eine nicht akzeptable Qualität aufweisen. Bei einer Ausführungsform kann das Korrigieren (110) zum Ändern oder Entfernen eines oder mehrerer der Referenzniveaus, die eine nicht akzeptable Qualität aufweisen, betrieben werden.
  • Andererseits, wenn die Entscheidung (106) ermittelt, dass die Qualität der Referenzniveaus akzeptabel ist (oder folgend auf ein Korrigieren (110) von Referenzniveaus mit nicht akzeptabler Qualität), dann können die Referenzniveaus von dem Speichersystem bei seinem Betrieb verwendet werden. Und zwar werden, nachdem die Entscheidung (106) ermittelt hat, dass die Qualität der Referenzniveaus akzeptabel ist (oder nach Korri gieren (110), wenn die Qualität der Referenzniveaus nicht akzeptabel war), Zustandsunterscheidungsniveaus ermittelt (108). Hier werden die Referenzniveaus, die von den Referenzspeichereinheiten erhalten wurden, zum Ermitteln der Zustandsunterscheidungsniveaus verwendet. Diese Zustandsunterscheidungsniveaus werden dann von dem Speichersystem verwendet, um zwischen den verschiedenen Zuständen, die in den Datenspeichereinheiten mit mehreren Zuständen gespeichert werden können, zu unterscheiden. Jede Datenspeichereinheit (zum Beispiel Speicherzelle) des Speichersystems kann eine Ladungsmenge speichern, die einem von mehr als zwei Zuständen entspricht. Beispielsweise könnten die Datenspeichereinheiten mit mehreren Zuständen 16 Zustände oder Speicherniveaus in einer einzelnen Datenspeichereinheit unterstützen, was vier Bits von Daten entspricht. Somit können die Zustandsunterscheidungsniveaus Strom oder Spannungsniveaus bereitstellen, die es dem Speichersystem oder einer anderen Schaltung ermöglicht, den bestimmten Zustand zu ermitteln, in welchem sich eine gegebene Datenspeichereinheit befindet. Folgend auf die Operation (108) ist die Unterscheidungsniveauverarbeitung 100 vollständig und endet.
  • 2A ist ein Flussdiagramm einer Leseanfrageverarbeitung 200 gemäß einer Ausführungsform der Erfindung. Die Leseanfrageverarbeitung 200 wird beispielsweise von einem Speichersystem, das Datenspeichereinheiten mit mehreren Zuständen aufweist, durchgeführt, wenn ein Anfordernder (zum Beispiel Host) angefordert hat, Daten von Speicherstellen innerhalb des Speichersystems zu lesen.
  • Die Leseanfrageverarbeitung 200 liest (202) anfänglich Referenzniveaus von Referenzspeichereinheiten als auch Datenniveaus von Datenspeichereinheiten. Hier werden die Referenzni veaus von den Referenzspeichereinheiten gelesen, die den Datenspeichereinheiten, die die Datenniveaus, die gelesen werden, enthalten, zugeordnet sind. Zusätzlich werden die Referenzniveaus im Wesentlichen zur selben Zeit gelesen, zu der die Datenniveaus gelesen werden. Die Referenzniveaus können ein oder mehrere Niveaus betreffen. Bei einer Ausführungsform speichern mehrere Referenzspeichereinheiten die gleichen Referenzniveaus für eine verbesserte Zuverlässigkeit. Bei einer Implementierung werden beispielsweise zwei oder mehr (zum Beispiel 16) Referenzspeichereinheiten zum Speichern des gleichen Referenzniveaus verwendet. Die Referenzspeichereinheiten werden beschrieben, gelöscht und gelesen, wenn ihre zugeordneten Datenspeichereinheiten geschrieben, gelöscht oder gelesen werden und „verfolgen" somit die Verwendung der zugeordneten Datenspeichereinheiten. Als ein Ergebnis entwickeln die Referenzspeichereinheiten dieselbe Vorgeschichte und darum dieselben Ladungsaufrechterhaltungseigenschaften wie die Datenspeichereinheiten. Zusätzlich erfahren die Referenzspeichereinheiten die gleichen Betriebsbedingungen wie beispielsweise Spannung und Temperatur, welche ein Erkennen von Zuständen beeinflussen kann. Folglich wird die Unterscheidung von Datenniveaus, die in den Datenspeichereinheiten gespeichert sind, zuverlässiger gemacht.
  • Als nächstes wird ein mittleres Referenzniveau berechnet (204). Hier können die Referenzniveaus, die gelesen (202) werden, gemittelt werden, um das mittlere Referenzniveau zu erzeugen. Nachdem das mittlere Referenzniveau berechnet (204) ist, werden Zustandsunterscheidungsniveaus ermittelt (206) basierend auf dem mittleren Referenzniveau. Wie oben bemerkt werden die Zustandsunterscheidungsniveaus von dem Speichersystem zum Unterscheiden zwischen den verschiedenen Zustän den, die von den Datenspeichereinheiten mit mehreren Zuständen unterstützt werden, verwendet.
  • Sobald die Zustandsunterscheidungsniveaus ermittelt wurden (206), können Zustände der Datenspeichereinheiten unterschieden werden (208) unter Verwendung der Datenniveaus von den Datenspeichereinheiten und der Zustandsunterscheidungsniveaus von den Referenzspeichereinheiten, um gelesene Daten zu erfassen. Hier können die vorher gelesenen Datenniveaus (Operation 202) untersucht werden, um den Zustand für die Datenspeichereinheiten durch Verwendung der Zustandsunterscheidungsniveaus zu ermitteln. In der Tat ermöglicht die Unterscheidung (208) der Zustände dem Speichersystem, die gelesenen Daten zu erfassen, die durch die Leseanforderungsverarbeitung 200 gelesen werden sollen. Im Wesentlichen gleichzeitig mit dem Unterscheiden (208) bewertet (210) die Leseanforderungsverarbeitung (200) auch eine Qualität der Referenzniveaus. Bei einer Ausführungsform wird die Bewertung der Qualität der Referenzniveaus typischerweise individuell an jedem der Referenzniveaus durchgeführt. Allerdings könnte bei anderen Ausführungsformen die Qualität der Referenzniveaus stattdessen an zwei oder mehreren Referenzniveaus als eine Gruppe durchgeführt werden.
  • Folgend auf die Operationen 208 und 210 ermittelt eine Entscheidung (212), ob die Qualität der Referenzniveaus akzeptabel ist. Wenn die Entscheidung (212) ermittelt, dass die Qualität nicht akzeptabel ist, dann wird die Leseanfrageverarbeitung 200 tätig, um für die Referenzniveaus mit der geringen Qualität zu korrigieren (214). Hier kann das Korrigieren (214) betrieben werden, um einen oder mehrere der Referenzniveaus, die eine geringe Qualität aufweisen, zu entfernen, zu ersetzen oder auf eine andere Weise zu ändern. Folgend auf die Operation 214 kehrt die Leseanfrageverarbeitung 200 zurück, um die Operation 204 und folgende Operationen zu wiederholen, so dass die Zustandsunterscheidungsniveaus wieder ermittelt und verwendet werden können, basierend auf den dem Korrigieren (214) folgenden Referenzniveaus. Alternativ, wenn die Entscheidung (212) bestimmt, dass die Qualität akzeptabel ist, können die gelesenen Daten dann zu dem Anforderer für die Leseoperation geschickt werden (216). Typischerweise ist der Anforderer eine Host-Vorrichtung, die das Speichersystem verwendet. Der Operation 216 folgend ist die Leseanfrageverarbeitung 200 vollständig und endet.
  • Durch im Wesentlichen gleichzeitiges Durchführen der Bewertung (210) und der Unterscheidung (208) kann die Bewertung (210) der Qualität der Referenzniveaus ohne eine Leistungseinbuße für die Leseanfrageverarbeitung 200 durchgeführt werden, wann immer die anfänglich gelesene Referenzzellenqualität für akzeptabel erachtet wird. Mit einem optimal ausgestalteten und hergestellten Speichersystem werden die Referenzniveaus in den meisten Fällen eine akzeptable Qualität aufweisen, wenn sie anfänglich gelesen werden. Somit wird die Bewertung (210) der Qualität der Referenzniveaus keinen wesentlichen Einfluss auf die Leistung (und zwar Leseleistung) des Speichersystems haben. In den seltenen Fällen, wenn eines oder mehrere der Referenzniveaus eine nicht akzeptable Qualität aufweist, wird eine Leistungsbelastung auferlegt, weil die Referenzniveaus korrigiert (214) werden müssen und dann die Operationen 204208 wieder durchgeführt werden müssen. Allerdings ist aufgrund ihrer Seltenheit die Leistungsbelastung minimiert.
  • 2B ist ein Flussdiagramm einer Leseanfrageverarbeitung 250 gemäß einer anderen Ausführungsform der Erfindung. Die Leseanfrageverarbeitung 250 ist im Allgemeinen der Leseanfrageverarbeitung 200, die in 2A mit Bezug auf verschiedene Operationen, und zwar den Operationen 202210, veranschaulicht ist, ähnlich. Allerdings betrifft die Leseanfrageverarbeitung 250 eine andere Ausführungsform, bei welcher die Unterscheidung (208) vervollständigt wird, bevor die Bewertung (210) vervollständigt wird. Somit kann bei dieser Ausführungsform damit begonnen werden, die gelesenen Daten zu dem Anforderer zu senden, während die Bewertung (210) weiterläuft. Wenn benötigt, kann hier auch die Bewertung (210) gleichzeitig mit mindestens einem Teil des Sendens der gelesenen Daten an den Anforderer durchgeführt werden. Insbesondere ermittelt eine Entscheidung (252) folgend auf das Unterscheiden (208) der Zustände der Datenspeichereinheiten, ob die Qualität der Referenzniveaus akzeptabel ist. Wenn die Entscheidung (252) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist, dann werden jegliche der gelesenen Daten, die schon zu dem Anforderer gesendet wurden, widerrufen (254). Da die Bewertung (210) nicht vollständig sein könnte, wenn das Unterscheiden (208) vollständig ist, können hier die gelesenen Daten ihre Übermittlung zu dem Anforderer beginnen. Wenn festgestellt wird, dass die Qualität der Referenzniveaus, die beim Ermitteln der Unterscheidungs-(208)Zustände verwendet wurden, nicht akzeptabel war, dann werden die gelesenen Daten, die in diesem Bezug gesendet wurden, widerrufen (254). Als nächstes korrigiert (256) die Leseanfrageverarbeitung 250 für die Referenzniveaus mit geringer Qualität. Wiederum kann das Korrigieren (256) ein Einstellen oder Entfernen von einem oder mehreren Referenzniveaus, die geringe Qualität aufweisen, betreffen. Folgend auf die Operation 256 kehrt die Leseanfrageverarbeitung 250 zurück, um die Entscheidung (204) und folgende Operationen zu wiederholen, so dass die Referenzniveaus, wie korrigiert, in einem Wiederermitteln der Zustandsunterscheidungsniveaus und somit der gelesenen Daten von den Datenspeichereinheiten mit mehreren Zuständen verwendet werden können.
  • Andererseits, wenn die Entscheidung (252) ermittelt, dass die Qualität der Referenzniveaus akzeptabel ist (was anfänglich angenommen wird), kann damit begonnen werden, die gelesenen Daten zu dem Anforderer zu senden (258). An diesem Punkt wurden die Zustände der Datenspeichereinheiten mit mehreren Zuständen bei Operation 208 festgelegt, und somit kann das Senden der gelesenen Daten fortfahren. Im Allgemeinen wird die Entscheidung (252) asynchron mit dem Senden (258) der Daten durchgeführt. Der Operation 258 folgend ermittelt eine Entscheidung (260), ob das Senden der gelesenen Daten vollständig ist. Wenn die Entscheidung (260) ermittelt, dass die gelesenen Daten nicht vollständig zu dem Anforderer gesendet wurden, dann kehrt die Leseanforderungsverarbeitung 250 zurück, um die Entscheidung (252) und folgende Operationen zu wiederholen, so dass das Senden (258) der gelesenen Daten fortfahren kann, bis es entweder bei Operation 254 widerrufen wird (aufgrund nicht akzeptabler Qualität der Referenzniveaus) oder bis es bei der Entscheidung (260) vollständig ist. Sobald das Senden der gelesenen Daten vervollständigt wurde (ohne widerrufen zu werden), ist die Leseanfrageverarbeitung 250 vollständig und endet, da die Leseanfrage vollständig verarbeitet wurde.
  • 2C ist ein Flussdiagramm einer Leseanfrageverarbeitung 270 gemäß noch einer anderen Ausführungsform der Erfindung. Die Leseanfrageverarbeitung 270 ist im Wesentlichen ähnlich zu der in 2A veranschaulichten Leseanfrageverarbeitung 200 in Bezug auf verschiedene Operationen, und zwar Operationen 202216. Allerdings weist die Leseanfrageverarbeitung 270 des Weiteren ein Schleifensteuerungsmerkmal auf. Das Schleifensteuerungsmerkmal steuert wie oft Operationen 204214 wiederholt werden können. Mit anderen Worten ist es aus Gründen der Leistung wünschenswert, die Menge an Zeit zu begrenzen, die verwendet werden kann, um zu versuchen, eine ausreichende Qualität zu erreichen. Gemäß der Leseanfrageverarbeitung 270 wird beim Starten der Verarbeitung eine Zählung auf einen vorbestimmten Wert (zum Beispiel „0") initialisiert 272. Dann ermittelt folgend auf Operationen 208 und 210 eine Entscheidung (274), ob eine Zählung (d. h. Schleifenzählung) größer ist als eine Schleifengrenze (zum Beispiel „1"). Wenn die Zählung nicht größer als die Schleifengrenze ist, dann kann Operation 212 durchgeführt werden. Wenn die Entscheidung (212) bestimmt, dass die Qualität nicht akzeptabel ist, dann kann Operation 214 durchgeführt werden. Folgend auf Operation 214, vor einem Zurückkehren der Schleife zu Operation 204, wird der Zähler erhöht (276). Demgemäß kann die Schleifengrenze bewirken, dass die Leseanfrageverarbeitung 270 die gelesenen Daten an den Anfordernden sendet (216) (oder ansonsten die Leseanfrageverarbeitung 270 verlassen), sogar wenn die Qualität noch nicht als akzeptabel erachtet wird. Das Schleifensteuerungsmerkmal kann auch mit der Leseanfrageverarbeitung 250 von 2B verwendet werden.
  • Des Weiteren, obgleich die Leseanfrageverarbeitungen 200, 250 und 270, die in 2A, 2B und 2C veranschaulicht sind, die Berechnung eines mittleren Referenzniveaus bei Operation 204 andeuten, ist eine solche Berechnung nicht auf Mitteln beschränkt. Allgemeiner können die Referenzniveaus auf jegliche Weise mathematisch verarbeitet werden (zum Beispiel statistisch verarbeitet), wie beispielsweise durch Berechnung eines Minimums, eines Maximums, eines quadratischen Mittelwerts (RMS), eines Scheitelpunkts, eines Mittels, eines Medians, eines Moduls und/oder einer linearen Regression. Ungeachtet der mathematischen Verarbeitung, die an den Referenzniveaus durchgeführt wird, werden die Zustandsunterscheidungsniveaus danach basierend auf dem verarbeiteten Referenzniveau ermittelt. Wie oben erwähnt, werden die Zustandsunterscheidungsniveaus von dem Speichersystem zum Unterscheiden zwischen den verschiedenen Zuständen, die von den Datenspeichereinheiten mit mehreren Zuständen unterstützt werden, verwendet.
  • Die Leseanfrageverarbeitungen 200, 250 und 270, die in 2A bzw. 2B bzw. 2C veranschaulicht sind, beziehen sich im Allgemeinen auf die Verwendung eines einzelnen Referenzniveaus, das von mehreren Referenzniveaus erhalten wurde, die eigentlich dasselbe Niveau speichern. Allerdings sollte man verstehen, dass die Leseanfrageverarbeitung zwei oder mehr Referenzniveaus verwenden kann, um mehrere Zustandsunterscheidungsniveaus zu ermitteln, die von dem Speicher mit mehreren Zuständen verwendet werden. Diesbezüglich werden für jedes der eingerichteten Referenzniveaus mehrere Referenzspeichereinheiten verwendet, die das gleiche Referenzniveau speichern. Beispielsweise, wenn die Referenzniveaus von den Referenzspeichereinheiten gelesen werden, würde eine erste Anzahl der Referenzspeichereinheiten einem ersten Referenzniveau entsprechen, und eine zweite Anzahl von Referenzspeichereinheiten würde ein zweites Referenzniveau betreffen, usw., wenn mehr als zwei mittlere Referenzniveaus verwendet werden. Das Ermitteln der Zustandsunterscheidungsniveaus kann dann das eine oder mehrere Referenzniveaus verwenden. Alternativ kann der gesamte Bestand von Referenzspeichereinheiten, die zum Überspannen des Bereichs von Referenzniveaus eingerichtet sind, als ein Ensemble statistisch verarbeitet werden, zum Beispiel unter Verwendung von linearer Regressionsmethodik.
  • Gemäß einem anderen Aspekt der Erfindung kann ein Speichersystem auch Fehlerkorrekturcodes (ECC) beim Lesen von Daten verwenden. ECC ist bekannt und wird oft verwendet, um zu ermöglichen, Daten mit erhöhter Zuverlässigkeit zu lesen. ECC wird verwendet, um zu minimieren, wie oft die Qualitätsbewertung und/oder eine Korrektur von Referenzniveaus durchgeführt werden muss. Da die Qualitätsbewertung und/oder die Korrekturverarbeitung Rechenleistung und Zeit benötigt, verringert eine Minimierung ihrer Verwendung den Leistungsverlust, der durch das Verarbeiten verursacht wird.
  • 3 ist ein Flussdiagramm einer Leseanfrageverarbeitung 300 gemäß einer anderen Ausführungsform der Erfindung. Die Leseanfrageverarbeitung 300 wird zum Beispiel von einem Speichersystem durchgeführt, das Datenspeichereinheiten mit mehreren Zuständen aufweist, wenn ein Anforderer (zum Beispiel Host) ein Lesen von Daten von Speicherstellen innerhalb des Speichersystems angefordert hat.
  • Die Leseanfrageverarbeitung 300 liest (202) anfänglich Referenzniveaus von Referenzspeichereinheiten als auch Datenniveaus von Datenspeichereinheiten. Hier werden die Referenzniveaus von den Referenzspeichereinheiten gelesen, die den Datenspeichereinheiten zugeordnet sind, die die Datenniveaus halten, die gelesen werden. Zusätzlich werden die Referenzniveaus im Wesentlichen zur gleichen Zeit gelesen, zu der die Datenniveaus gelesen werden. Die Referenzniveaus können einen oder mehrere Niveaus betreffen. Bei einer Ausführungsform speichern mehrere Referenzspeichereinheiten das gleiche Referenzniveau für eine verbesserte Zuverlässigkeit. Die Referenzspeichereinheiten werden beschrieben, gelöscht und gelesen, wenn ihre zugeordneten Datenspeichereinheiten beschrie ben, gelöscht oder gelesen werden, und „verfolgen" somit die Verwendung der zugeordneten Datenspeichereinheiten. Als ein Ergebnis entwickeln die Referenzspeichereinheiten dieselbe Vorgeschichte und darum dieselben Ladungsaufrechterhaltungseigenschaften wie die Datenspeichereinheiten. Zusätzlich erfahren die Referenzspeichereinheiten die gleichen Betriebsbedingungen, wie beispielsweise Spannung und Temperatur, welche eine Zustandserkennung beeinflussen können. Folglich ist die Zuverlässigkeit der Unterscheidung der Datenniveaus, die in den Datenspeichereinheiten gespeichert sind, erhöht.
  • Als nächstes wird ein verarbeitetes Referenzniveaus berechnet (304). Hier werden die Referenzniveaus, die gelesen werden (302), zum Erstellen des verarbeiteten Referenzniveaus verarbeitet. Die Berechnung (304) der Referenzniveaus beim Erstellen des verarbeiteten Referenzniveaus kann auf jegliche Weise erreicht werden, wie beispielsweise durch Berechnung eines Minimums, eines Maximums, eines quadratischen Mittelwerts (RMS), eines Scheitelpunkts, eines Mittels, eines Medians, eines Moduls und/oder einer linearen Regression. Nachdem das verarbeitete Referenzniveau berechnet wurde (304), werden Zustandsunterscheidungsniveaus ermittelt (306) basierend auf dem verarbeiteten Referenzniveau. Wie oben erwähnt werden die Zustandsunterscheidungsniveaus von dem Speichersystem zum Unterscheiden zwischen den verschiedenen Zuständen, die von den Datenspeichereinheiten mit mehreren Zuständen unterstützt werden, verwendet.
  • Sobald die Zustandsunterscheidungsniveaus ermittelt wurden (306), können die gelesenen Daten von den Datenniveaus unter Verwendung der Zustandsunterscheidungsniveaus und Fehlerkorrekturcodes ermittelt werden (308). Hier werden die vorher gelesenen Datenniveaus (Operation 302) untersucht, um den Zu stand der Datenspeichereinheiten durch Verwendung der Zustandsunterscheidungsniveaus zu ermitteln. Zusätzlich wird ECC, das auch von dem Speichersystem bereitgestellt wird, verwendet, um die gelesenen Daten zuverlässiger zu ermitteln (308).
  • Als nächstes bestimmt eine Entscheidung (310) unter Verwendung des ECC, ob ein Datenfehler beim Ermitteln (308) der gelesenen Daten identifiziert wird. Typischerweise, wenn der ECC nicht fähig ist, zuverlässig die gelesenen Daten zu ermitteln, deutet der ECC an, dass ein Datenfehler vorhanden ist. Wenn die Entscheidung (310) ermittelt, dass es keinen Datenfehler gibt, dann werden die gelesenen Daten zu dem Anforderer gesendet (312). Andererseits, wenn die Entscheidung (310) ermittelt, dass ein Datenfehler vorhanden ist, dann kann die Qualitätsbewertung und/oder die Korrektur an den Referenzniveaus in dem Bestreben durchgeführt werden, den Datenfehler zu überwinden. Insbesondere wird, wenn die Entscheidung (310) ermittelt, dass ein Datenfehler vorhanden ist, die Qualität der Referenzniveaus bewertet (314). Bei einer Ausführungsform wird die Bewertung der Qualität der Referenzniveaus typischerweise individuell an jedem der Referenzniveaus durchgeführt. Allerdings könnte bei anderen Ausführungsformen die Qualität der Referenzniveaus stattdessen an zwei oder mehr der Referenzniveaus als eine Gruppe durchgeführt werden. Eine Entscheidung (316) ermittelt dann, ob die Qualität der Referenzniveaus akzeptabel ist. Wenn die Entscheidung (316) ermittelt, dass die Qualität nicht akzeptabel ist, dann arbeitet die Leseanfrageverarbeitung 300 zum Korrigieren (318) der Referenzniveaus mit geringer Qualität. Hier kann das Korrigieren (318) tätig werden, um eines oder mehrere der Referenzniveaus, die eine geringe Qualität aufweisen, zu ändern oder zu entfernen. Folgend auf die Operation 318 kehrt die Leseanfrageverarbeitung 300 zurück, um die Operation 304 und folgende Operationen zu wiederholen, so dass die Zustandsunterscheidungsniveaus wieder bestimmt und verwendet werden können, um die gelesenen Daten auf Basis der Referenzniveaus folgend auf das Korrigieren (318) wieder zu ermitteln. Alternativ, wenn die Entscheidung (316) ermittelt, dass die Qualität akzeptabel ist, dann sind die gelesenen Daten fehlerbehaftet und somit wird ein Datenlesefehler zu dem Anforderer gesendet (320). Typischerweise ist der Anforderer eine Host-Vorrichtung, die das Speichersystem verwendet. Folgend auf die Operationen 312 oder 320 ist die Leseanfrageverarbeitung 300 vollständig und endet. Das in 2C gezeigte Schleifensteuerungsmerkmal kann auch mit der Leseanfrageverarbeitung 300 verwendet werden.
  • Es sollte erwähnt werden, dass bei dieser Ausführungsform die Operationen 314318 der Leseanfrageverarbeitung 300 nur durchgeführt werden, wenn der ECC einen Fehler beim Lesen der Daten aufzeigt. Als ein Ergebnis werden mit einem optimal ausgestalteten System die Operationen 314318 nur in seltenen Fällen durchgeführt. Es erfolgt dann nur in seltenen Fällen, dass die Leseverarbeitungsleistung verlangsamt oder verschlechtert wird aufgrund der Leistung der Qualitätsbewertung und/oder Korrekturverarbeitung der Operationen 314318.
  • Obwohl vieles der oben bereitgestellten Erörterung der Erfindung Vorrichtungen mit vielen Zuständen betrifft, sollte es klar sein, dass die Erfindung auch auf binäre Speichervorrichtungen anwendbar ist. Vorrichtungen mit mehreren Zuständen stellen allerdings eine größere Speicherdichte als binäre Speichervorrichtungen bereit.
  • Die Erfindung kann des Weiteren ein elektronisches System, das ein Speichersystem wie oben erörtert aufweist, betreffen. Speichersysteme (d. h. Speicherkarten) werden allgemein zum Speichern digitaler Daten zur Verwendung mit verschiedenen elektronischen Produkten verwendet. Oft ist das Speichersystem von dem elektronischen System entfernbar, so dass die gespeicherten digitalen Daten tragbar sind. Das erfindungsgemäße Speichersystem kann einen relativ kleinen Formfaktor aufweisen und kann zum Speichern digitaler Daten für elektronische Produkte, wie beispielsweise Kameras, tragbare oder Notebook-Computer, Netzwerkkarten, Netzwerkgeräte, Set-Top-Boxen, tragbare oder andere kleine Klangabspieler/Rekorder (zum Beispiel MP3-Geräte) und medizinischen Überwachungsgeräte verwendet werden.
  • Die Vorteile der Erfindung sind zahlreich. Verschiedene Ausführungsformen oder Implementierungen können einen oder mehrere der folgenden Vorteile ergeben. Ein Vorteil der Erfindung ist, dass eine Fehlerbehandlung für Referenzniveaus bereitgestellt wird. Ein anderer Vorteil der Erfindung ist, dass eine Fehlerbehandlung für Referenzniveaus ohne eine wesentliche Leistungseinbuße durchgeführt werden kann. Noch ein anderer Vorteil der Erfindung ist, dass zuverlässige, Hochleistungsspeichersysteme erhalten werden können.
  • Die vielen Merkmale und Vorteile der vorliegenden Erfindung sind aus der schriftlichen Beschreibung ersichtlich, und somit wird mit den beigefügten Ansprüchen beabsichtigt, alle solche Merkmale und Vorteile der Erfindung zu erfassen. Des Weiteren, da zahlreiche Abwandlungen und Veränderungen einem Fachmann leicht einfallen werden, sollte die Erfindung nicht als beschränkt auf die exakte Ausführung und den exakten Betrieb wie beschrieben und veranschaulicht erachtet werden.
  • Demzufolge sind alle geeigneten Abwandlungen und Äquivalente im Umfang der Erfindung inbegriffen, wie in den Ansprüchen definiert.

Claims (20)

  1. Verfahren zum Lesen von Daten von einer Speichervorrichtung (10), die Datenspeichereinheiten (14) und zugeordnete Referenzspeichereinheiten (16) aufweist, wobei das Verfahren umfasst: (a) im Wesentlichen gleichzeitiges Lesen (202) von Datenniveaus von bestimmten Datenspeichereinheiten (14) und von Referenzniveaus von Referenzspeichereinheiten (16), die den bestimmten Datenspeichereinheiten zugeordnet sind; (b) Berechnen (204) eines verarbeiteten Referenzniveaus von den Referenzniveaus; (c) Ermitteln (206) von Zustandsunterscheidungsniveaus basierend auf dem verarbeiteten Referenzniveau; (d) Unterscheiden (208) von Zuständen der Datenniveaus von den bestimmten Datenspeichereinheiten basierend auf den Zustandsunterscheidungsniveaus, um gelesene Daten für einen Anforderer zu erfassen; (e) Bewerten (210) der Qualität der Referenzniveaus; (f) Ermitteln (252) ob die Qualität der Referenzniveaus akzeptabel ist; (g) Senden (258) der gelesenen Daten an den Anforderer, wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus akzeptabel ist; und (h) Anhalten des Sendens (g) und Korrigieren (256) für mindestens eines der Referenzniveaus, wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist.
  2. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: (j) folgend auf das Korrigieren (i), ein- oder mehrmaliges Wiederholen des Berechnens (b) bis zu dem Korrigieren (i), wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Anhalten (h) ein Widerrufen (254) jeglicher gelesener Daten umfasst, die von dem Anforderer vor dem Anhalten (h) empfangen wurden.
  4. Verfahren nach einem der Ansprüche 1–3, wobei das Ermitteln (252), ob die Qualität der Referenzniveaus akzeptabel ist, umfasst: Vergleichen von jedem der Referenzniveaus mit dem verarbeiteten Referenzniveau.
  5. Verfahren nach einem der Ansprüche 1–4, wobei die Referenzniveaus, die von dem Lesen (a) gelesen werden, sich auf erste und zweite Referenzniveaus beziehen, wobei das Berechnen (b) ein erstes verarbeitetes Referenzniveau von den Referenzniveaus, die sich auf das erste Referenzniveau beziehen, berechnet, und ein zweites verarbeitetes Referenzniveau von den Referenzniveaus, die sich auf das zweite Referenzniveau beziehen, berechnet, und wobei das Ermitteln (c) die Zustandsunterscheidungsniveaus basierend auf den ersten und zweiten verarbeiteten Referenzniveaus ermittelt.
  6. Verfahren nach Anspruch 5, wobei das Ermitteln (f), ob die Qualität der Referenzniveaus akzeptabel ist, umfasst: Vergleichen jedes der Referenzniveaus, die sich auf das erste Referenzniveau beziehen, mit dem ersten verarbeiteten Referenzniveau, und Vergleichen jedes der Referenzniveaus, die sich auf das zweite Referenzniveau beziehen, mit dem zweiten verarbeiteten Referenzniveau.
  7. Verfahren nach einem der Ansprüche 1–6, wobei die Speichervorrichtung (10) eine Speicherkarte ist, die nicht flüchtigen Datenspeicher mit mehreren Zuständen bereitstellt.
  8. Verfahren nach einem der Ansprüche 1–7, wobei das Berechnen (b) zum Mitteln der Referenzniveaus betrieben wird, um das verarbeitete Referenzniveau zu berechnen.
  9. Verfahren nach einem der Ansprüche 1–7, wobei das Berechnen (b) mindestens eines von einem Minimum, Maximum, quadratischem Mittelwert (RMS), Scheitelpunkt, Mittel, Median, Modul und einer linearen Regression mit Bezug auf das Referenzsignal beim Berechnen des verarbeiteten Referenzniveaus berechnet.
  10. Verfahren nach Anspruch 1, wobei das Unterscheiden (d) zum Erfassen der gelesenen Daten unter Verwendung einer Fehlerkorrekturcode-Verarbeitung durchgeführt wird, und wobei das Verfahren des Weiteren umfasst: Ermitteln, ob ein Datenfehler durch die Fehlerkorrekturcode-Verarbeitung aufgezeigt wird; und Korrigieren für mindestens eines der Referenzniveaus, das geringe Qualität aufweist, wenn ein Datenfehler gefunden wird.
  11. Verfahren nach Anspruch 10, wobei das Verfahren umfasst: (g) Wiederholen des Berechnens (b), des Ermittelns (c) und des Ermittelns (d) folgend auf das Korrigieren von mindestens einem der Referenzniveaus.
  12. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: (i) Initiieren einer Zählung vor dem Lesen (a); (j) Vergleichen der Zählung mit einer Zählgrenze; (k) Korrigieren für mindestens eines der Referenzniveaus, wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist, und das Vergleichen (j) ermittelt, dass die Zählung die Zählgrenze nicht überschreitet; (l) Aktualisieren der Zählung; (m) ein- oder mehrmaliges Wiederholen von mindestens dem Berechnen (b) bis zu dem Vergleichen (j), wenn das Ermitteln (f) ermittelt, dass die Qualität der Referenzniveaus nicht akzeptabel ist, und das Vergleichen (j) ermittelt, dass die Zählung die Zählgrenze nicht überschreitet; und (n) Leiten der gelesenen Daten zu dem Anforderer, wenn das Ermitteln (g) ermittelt, dass die Qualität der Referenzniveaus akzeptabel ist, oder wenn das Vergleichen (j) ermittelt, dass die Zählung die Zählgrenze überschreitet.
  13. Speichersystem (10), umfassend: mehrere Datenspeichereinheiten (14), wobei jede der Datenspeichereinheiten Datenspeicher mit mehreren Zuständen auf eine nicht flüchtige Weise bereitstellt; mehrere Referenzspeichereinheiten (16), wobei die Referenzspeichereinheiten Speicher für Referenzniveaus auf eine nicht flüchtige Weise bereitstellen; einen Referenzniveaufehlerbehandler (18), der betriebsfähig zum Empfangen der Referenzniveaus von den Referenzspeichereinheiten verbunden ist, wobei der Referenzniveaufehlerbehandler die Qualität der Referenzniveaus bewertet; und eine Speichersteuereinheit (12), die betriebsfähig mit den Datenspeichereinheiten und den Referenzspeichereinheiten verbunden ist, wobei die Speichersteuereinheit betrieben wird, um Lese-, Schreib- und Löschvorgänge mit Bezug auf Datenspeichereinheiten und die Referenzspeichereinheiten zu steuern, wobei die Speichersteuereinheit Zustandsunterscheidungsniveaus verwendet, um den Zustand der Datenspeicherelemente, die gelesen werden, zu ermitteln, wobei das Speichersystem betrieben wird zum: Ermitteln (252), ob die Qualität der gelesenen Daten für einen Anfordernden akzeptabel ist, und Senden (258) der gelesenen Daten an einen Anfordernden, wenn es ermittelt wird, dass die Qualität der Referenzniveaus akzeptabel ist; und Anhalten des Sendens der gelesenen Daten an den Anfordernden und Korrigieren (256) für mindestens eines der Referenzniveaus, wenn es ermittelt wird, dass die Qualität der Referenzniveaus nicht akzeptabel ist.
  14. Speichersystem nach Anspruch 13, wobei das Speichersystem des Weiteren umfasst: eine Zustandsunterscheidungsniveau-Schaltung (20), die betriebsfähig mit den Referenzspeichereinheiten (110), dem Referenzniveaufehlerbehandler (118) und der Speichersteuereinheit (112) verbunden ist, wobei die Zustandsunterscheidungsniveau-Schaltung (20) betrieben wird, um basierend auf mehreren der Referenzniveaus die Zustandsunterscheidungsniveaus für eine Verwendung durch die Speichersteuereinheit zu ermitteln.
  15. Speichersystem nach Anspruch 13 oder 14, wobei der Referenzniveaufehlerbehandler (18) für einen oder mehrere der Re ferenzniveaus korrigiert, die eine nicht akzeptable Qualität aufweisen.
  16. Speichersystem nach einem der Ansprüche 13–15, wobei das Speichersystem (10) eine Speicherkarte ist.
  17. Speichersystem nach Anspruch 16, wobei mindestens der Referenzniveaufehlerbehandler (18) oder die Zustandsunterscheidungsniveau-Schaltungen (20) innerhalb der Speichersteuereinheit bereitgestellt werden.
  18. Speichersystem nach einem der Ansprüche 13–17, wobei die Speichersteuereinheit (12) veranlasst, dass Daten in einen Block der Datenspeichereinheiten (14) geschrieben werden, und wobei ein Satz der Referenzspeichereinheiten (16), die dem Block der Datenspeichereinheiten zugeordnet sind, mit vorbestimmten Referenzniveaus beschrieben wird, wann immer der Block der Datenspeichereinheiten (14) beschrieben wird.
  19. Speichersystem nach Anspruch 18, wobei der Satz der Referenzspeichereinheiten (16) gelesen wird, wann immer der Block der Datenspeichereinheiten gelesen wird.
  20. Speichersystem nach einem der Ansprüche 13–19, wobei das Speichersystem des Weiteren umfasst: eine Fehlerkorrektureinheit, die in der Ermittlung des Zustands der Datenspeicherelemente, die gelesen werden, mitwirkt.
DE60224552T 2001-11-02 2002-10-30 Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften Expired - Lifetime DE60224552T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US53339 2001-11-02
US10/053,339 US6678192B2 (en) 2001-11-02 2001-11-02 Error management for writable tracking storage units
PCT/US2002/034942 WO2003041083A1 (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values

Publications (2)

Publication Number Publication Date
DE60224552D1 DE60224552D1 (de) 2008-02-21
DE60224552T2 true DE60224552T2 (de) 2009-01-08

Family

ID=21983519

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60224552T Expired - Lifetime DE60224552T2 (de) 2001-11-02 2002-10-30 Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften

Country Status (9)

Country Link
US (1) US6678192B2 (de)
EP (1) EP1440447B1 (de)
JP (1) JP4398249B2 (de)
KR (1) KR101009545B1 (de)
CN (1) CN1578988B (de)
AT (1) ATE383648T1 (de)
DE (1) DE60224552T2 (de)
TW (1) TWI285807B (de)
WO (1) WO2003041083A1 (de)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US6963505B2 (en) * 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
US6992932B2 (en) * 2002-10-29 2006-01-31 Saifun Semiconductors Ltd Method circuit and system for read error detection in a non-volatile memory array
US7237074B2 (en) * 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7257025B2 (en) * 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
KR100707200B1 (ko) * 2005-07-22 2007-04-13 삼성전자주식회사 핀-타입 채널 영역을 갖는 비휘발성 메모리 소자 및 그제조 방법
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US8725929B1 (en) 2006-11-06 2014-05-13 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US8645793B2 (en) * 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2007132453A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7551486B2 (en) 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US8000134B2 (en) * 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
JP5174028B2 (ja) * 2006-09-27 2013-04-03 サンディスク テクノロジィース インコーポレイテッド セル集団分布による読み出しマージンを有するメモリ
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
KR100826500B1 (ko) * 2006-10-23 2008-05-02 삼성전자주식회사 비휘발성 반도체 메모리 장치 및 상기 비휘발성 반도체메모리 장치의 데이터 복구 방법
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7865797B2 (en) * 2006-11-16 2011-01-04 Freescale Semiconductor, Inc. Memory device with adjustable read reference based on ECC and method thereof
US7564716B2 (en) * 2006-11-16 2009-07-21 Freescale Semiconductor, Inc. Memory device with retained indicator of read reference level
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) * 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
WO2008111058A2 (en) * 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
KR100882841B1 (ko) * 2007-06-19 2009-02-10 삼성전자주식회사 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009050703A2 (en) * 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
WO2009063450A2 (en) * 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
KR101423052B1 (ko) 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US8351236B2 (en) 2009-04-08 2013-01-08 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture
US7983065B2 (en) * 2009-04-08 2011-07-19 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines
JP2012523648A (ja) 2009-04-08 2012-10-04 サンディスク スリーディー,エルエルシー 垂直ビット線および二重グローバルビット線アーキテクチャを有する再プログラミング可能な不揮発性メモリ素子の3次元アレイ
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
TWI412036B (zh) * 2009-07-22 2013-10-11 Silicon Motion Inc 資料讀取的方法及資料儲存裝置
KR101603099B1 (ko) * 2009-10-01 2016-03-28 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US20110297912A1 (en) 2010-06-08 2011-12-08 George Samachisa Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof
US8526237B2 (en) 2010-06-08 2013-09-03 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8625322B2 (en) 2010-12-14 2014-01-07 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with low current structures and methods thereof
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
CN104040633B (zh) 2010-12-14 2017-06-13 桑迪士克科技有限责任公司 用于具有垂直位线的三维非易失性存储器的架构
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9269425B2 (en) 2011-12-30 2016-02-23 Sandisk 3D Llc Low forming voltage non-volatile storage device
US9171584B2 (en) 2012-05-15 2015-10-27 Sandisk 3D Llc Three dimensional non-volatile storage with interleaved vertical select devices above and below vertical bit lines
US9281029B2 (en) 2012-06-15 2016-03-08 Sandisk 3D Llc Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof
US8923050B2 (en) 2012-06-15 2014-12-30 Sandisk 3D Llc 3D memory with vertical bit lines and staircase word lines and vertical switches and methods thereof
CN103578532B (zh) * 2012-08-01 2016-08-10 旺宏电子股份有限公司 存储装置的操作方法与存储器阵列及其操作方法
US9202694B2 (en) 2013-03-04 2015-12-01 Sandisk 3D Llc Vertical bit line non-volatile memory systems and methods of fabrication
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9165933B2 (en) 2013-03-07 2015-10-20 Sandisk 3D Llc Vertical bit line TFT decoder for high voltage operation
US9105468B2 (en) 2013-09-06 2015-08-11 Sandisk 3D Llc Vertical bit line wide band gap TFT decoder
US9362338B2 (en) 2014-03-03 2016-06-07 Sandisk Technologies Inc. Vertical thin film transistors in non-volatile storage systems
US9379246B2 (en) 2014-03-05 2016-06-28 Sandisk Technologies Inc. Vertical thin film transistor selection devices and methods of fabrication
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9627009B2 (en) 2014-07-25 2017-04-18 Sandisk Technologies Llc Interleaved grouped word lines for three dimensional non-volatile storage
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9450023B1 (en) 2015-04-08 2016-09-20 Sandisk Technologies Llc Vertical bit line non-volatile memory with recessed word lines
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
DE69034227T2 (de) 1989-04-13 2007-05-03 Sandisk Corp., Sunnyvale EEprom-System mit Blocklöschung
US5272669A (en) 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5828601A (en) 1993-12-01 1998-10-27 Advanced Micro Devices, Inc. Programmed reference
US5712179A (en) 1995-10-31 1998-01-27 Sandisk Corporation Method of making triple polysilicon flash EEPROM arrays having a separate erase gate for each row of floating gates
US5717632A (en) 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US6282145B1 (en) 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6103573A (en) 1999-06-30 2000-08-15 Sandisk Corporation Processing techniques for making a dual floating gate EEPROM cell array
US6538922B1 (en) 2000-09-27 2003-03-25 Sandisk Corporation Writable tracking cells

Also Published As

Publication number Publication date
ATE383648T1 (de) 2008-01-15
CN1578988A (zh) 2005-02-09
JP4398249B2 (ja) 2010-01-13
DE60224552D1 (de) 2008-02-21
KR101009545B1 (ko) 2011-01-18
US20030086293A1 (en) 2003-05-08
WO2003041083A1 (en) 2003-05-15
CN1578988B (zh) 2010-04-28
US6678192B2 (en) 2004-01-13
KR20040074979A (ko) 2004-08-26
EP1440447B1 (de) 2008-01-09
EP1440447A1 (de) 2004-07-28
JP2005509226A (ja) 2005-04-07
TW200300227A (en) 2003-05-16
TWI285807B (en) 2007-08-21

Similar Documents

Publication Publication Date Title
DE60224552T2 (de) Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE19782077B4 (de) Verfahren und Vorrichtung zum Korrigieren eines Mehrpegelzellenspeichers durch Verwendung fehlerlokalisierender Codes
DE102006034495B4 (de) Verfahren zum Durchführen einer Programmieroperation eines nicht-flüchtigen Speicherbauelements und nicht-flüchtiges Speicherbauelement
DE60131549T2 (de) Komprimiertes ereigniszählverfahren und seine anwendung an einem flash-speichersystem
DE102011055714B4 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE60303895T2 (de) Hybridimplementierung von Fehlerkorrekturkoden eines nichtflüchtigen Speichersystems
DE602004011097T2 (de) Flash-speicherdatenkorrektur- und scrub-techniken
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE112008001151B4 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE112017000206T5 (de) Kompensation von Temperaturschwankungen eines Arbeitsspeichers
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE112007002437B4 (de) Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher
DE602004005939T2 (de) Vorrichtung und Verfahren zur Datenverwaltung nichtflüchtiger Speicher
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE112021002268T5 (de) Neuronales Regressionsnetzwerk zum Identifizieren von Schwellenspannungen, die beim Lesen von Flash-Speichervorrichtungen zu verwenden sind
DE69930439T2 (de) Elektrische Vorrichtung mit integriertem Flashspeicher
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE112021004294T5 (de) Verfahren und einrichtung zum bestimmen, wann der tatsächliche verschleiss einer flash-speichervorrichtung von zuverlässigkeitszuständen für die flash-speichervorrichtung abweicht
DE112016002631T5 (de) Speicherfunktionszustandsüberwachung
DE102019135863A1 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE102021115763A1 (de) Identifizierung und klassifizierung der schreibstrompriorität

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1440447

Country of ref document: EP

Representative=s name: PATENT- UND RECHTSANWAELTE KRAUS & WEISERT, DE