-
Verwandte Anmeldungen
-
Verwandte Anmeldungen der vorliegenden Erfinder und des vorliegenden Halters werden am selben Tag hiermit eingereicht, nämlich:
Laufende Nr. ..., mit dem Titel ”IMPLEMENTING ENHANCED DATA READ FOR MULTI-LEVEL CELL (MLC) MEMORY USING THRESHOLD VOLTAGE-DRIFT OR RESISTANCE DRIFT TOLERANT MOVING BASELINE MEMORY DATA ENCODING” (HSJ920110120US1); und
Laufende Nr. ..., mit dem Titel ”IMPLEMENTING ENHANCED DATA PARTIAL-ERASE FOR MULTI-LEVEL CELL (MLC) MEMORY USING THRESHOLD VOLTAGE-DRIFT OR RESISTANCE DRIFT TOLERANT MOVING BASELINE MEMORY DATA ENCODING” (HSJ920110121US1).
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft allgemein das Gebiet der Datenspeicherung und insbesondere ein Verfahren und eine Vorrichtung zum Implementieren von erweiterter Leistungsfähigkeit, umfassend erweitertes Datenschreiben, erweitertes Datenlesen und erweitertes Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher (Multi-Level Cell) unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie im Interesse des Erhöhen der Dauerfestigkeit von nichtflüchtigen Speichern durch Mindern von Beschädigung beim Ausführen dieser erweiterten Operationen.
-
Stand der Technik
-
In der folgenden Beschreibung und in den Ansprüchen sind die folgenden Ausdrücke folgendermaßen zu verstehen:
-
Mehrpegelzellen- bzw. MLC-Speicher sollte allgemein so aufgefasst werden, dass er sowohl NAND-Flash-Speicher als auch Phasenänderungsspeicher bzw. PCM (Phase-Change-Memory) umfasst.
-
Schwellenspannungsdrift in NAND-Flash ergibt sich aus Verlust von Ladungen im Floating-Gate mit der Wirkung einer Abnahme der Gesamtladung, und Widerstandsdrift in PCM ergibt sich aus Änderungen des Widerstands des Speicherelements, wobei der Widerstand im Allgemeinen aufgrund einer strukturellen Relaxation der amorphen Phase zunimmt, und daher die Drift. Außerdem ist es möglich, dass der amorphe Zustand sich zu dem stabileren und geringeren Widerstand aufweisenden kristallinen Zustand ändert, was aber ein katastrophales und schnelles Phänomen wäre, das die Zelle vollständig löschen würde. Spannungs- oder Widerstandsdrift sollte deshalb allgemein so aufgefasst werden, dass sie eine zeitliche Änderung von einer ursprünglichen Schreibzeit umfasst, und nicht unbedingt eine Drift nach unten oder Drift nach oben.
-
Gegenüber Schwellenspannungsdrift oder Widerstandsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie bzw. MB (Moving Baseline) sollte allgemein so aufgefasst werden, dass sie ein ausgewähltes von verschiedenen Mehrzustands-Ebenendaten in einem selbstreferenzierten Verfahren umfasst, das die Bestimmung von Inhalt jeder Speicherzelle in Bezug auf den Inhalt benachbarter Speicherzellen erlaubt.
-
Es besteht eine Notwendigkeit, einen effektiven und effizienten Mechanismus zum Implementieren von MLC-Speicherdatenschreiben, -Datenlesen und -Datenteillöschen zum Beispiel für Halbleiterlaufwerke bzw. SSD (Solid State Drives) bereitzustellen, im Interesse des Minderns einer Beschädigung oder Alterung, die bei den Speicherzellen bei jeder Schreib- oder Löschoperation auftritt.
-
Kurzfassung der Erfindung
-
Aspekte der vorliegenden Erfindung sind die Bereitstellung eines Verfahrens und einer Vorrichtung zum Implementieren von erweiterter Leistungsfähigkeit für Mehrpegelzellen- bzw. MLC-Speicher, zum Beispiel für Halbleiterlaufwerke bzw. SSD. Andere wichtige Aspekte der vorliegenden Erfindung sind die Bereitstellung eines solchen Verfahrens und einer solchen Vorrichtung im Wesentlichen ohne negative Auswirkung und zur Überwindung einiger der Nachteile vorbekannter Anordnungen.
-
Kurz gefasst werden ein Verfahren und eine Vorrichtung zum Implementieren von erweiterter Leistungsfähigkeit für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie bereitgestellt. Es wird eine Spannungsbasislinie eines Vorschreibens identifiziert und ein Datenschreiben verwendet die gegenüber Schwellenspannungsdrift oder Widerstandsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie für Daten, die in den MLC-Speicher geschrieben werden, als Reaktion auf die identifizierte Spannungsbasislinie.
-
Kurze Beschreibung der Zeichnungen
-
Die vorliegende Erfindung wird zusammen mit den obigen und anderen Aufgaben und Vorteilen am besten aus der folgenden ausführlichen Beschreibung der in den Zeichnungen dargestellten bevorzugten Ausführungsformen der Erfindung verständlich. Es zeigen:
-
1 eine Blockdiagrammdarstellung eines Systems zum Implementieren von Verfahren mit erweiterter Leistungsfähigkeit für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie für Halbleiterlaufwerke bzw. SSD gemäß einer Ausführungsform der Erfindung;
-
2A und 2B, 2C und 2D und 2E jeweilige Flussdiagramme beispielhafter Operationen des Systems von 1 zum Implementieren von erweiterter Leistungsfähigkeit, umfassend erweitertes Datenschreiben, erweitertes Datenlesen und erweitertes Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie zum Beispiel für Halbleiterlaufwerke bzw. SSD gemäß Ausführungsformen der Erfindung;
-
3A, 3B und 3C jeweils einen Startzustand, bei dem alle Zellen vollständig gelöscht sind, für 2-Bit-NAND-Zellen, 3-Bit-NAND-Zellen und 4-Bit-NAND-Zellen gemäß Ausführungsformen der Erfindung;
-
4A jeweils 2-Zustands-Zyklen des Schreibens mit beweglicher Basislinie bzw. MBW (Moving Baseline Write) für 2-Bit-NAND-Zellen, 3-Bit-NAND-Zellen und 4-Bit-NAND-Zellen gemäß Ausführungsformen der Erfindung;
-
5A, 5B, 5C und 5D jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des Starts mit allen Zellen vollständig gelöscht, des ersten Schreibens, zweiten Schreibens und dritten Schreibens für ein 2-Zustands-2-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
6A, 6B und 6C jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens, zweiten Schreibens und siebten Schreibens für ein 2-Zustands-3-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
7A, 7B und 7C jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens, zweiten Schreibens und dritten Schreibens für ein 3-Zustands-3-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
8A, 8B und 8C jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens, zweiten Schreibens und siebten Schreibens für ein 3-Zustands-4-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
9A und 9B jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens und fünften Schreibens für ein 4-Zustands-4-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
10A und 10B jeweils eine beispielhafte Spannungsdrift mit Operationen von geschriebenen Daten und gelesenen Daten für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
11A, 11B und 11C jeweils eine beispielhafte Teillöschung mit Operationen des dritten Datenschreibens, schnellen Teillöschens und Datenneuschreibens für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
12A und 12B jeweils eine beispielhafte Änderung einer Schwellenauflösung mit einer nichtbeeinträchtigen Zelle und verschlechterten Zelle für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
13A und 13B, 13C und 13D jeweils eine beispielhafte Änderung der Schwellenauflösung mit einer nichtverschlechterten Zelle und verschlechterten Zelle für ein 3-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung;
-
14 ein Diagramm von beispielhaften Parameterdaten für MLC-Zellenbeispiele gemäß Ausführungsformen der Erfindung;
-
15A und 15B eine beispielhafte Spannungsleckangabe mit Operationen von geschriebenen Daten und gelesenen Daten für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung; und
-
16 ein Blockdiagramm eines Computerprogrammprodukts gemäß Ausführungsformen der Erfindung.
-
Ausführliche Beschreibung der bevorzugten Ausführungsformen
-
In der folgenden ausführlichen Beschreibung von Ausführungsformen der Erfindung wird auf die beigefügten Zeichnungen Bezug genommen, die beispielhafte Ausführungsformen zeigen, durch die die Erfindung ausgeübt werden kann. Es versteht sich, dass andere Ausführungsformen benutzt und strukturelle Änderungen vorgenommen werden können, ohne von dem Schutzumfang der Erfindung abzuweichen.
-
Gemäß Merkmalen der Erfindung werden ein Verfahren und eine Vorrichtung zum Implementieren von erweiterter Leistungsfähigkeit bereitgestellt, umfassend erweitertes Datenschreiben, Datenlesen und Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher zum Beispiel für Halbleiterlaufwerke bzw. SSD. Das erweiterte Datenschreiben, Datenlesen und Datenteillöschen für MLC-Speicher wird unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie bzw. MB der Erfindung implementiert.
-
Gemäß Merkmalen der Erfindung wird eine bewegliche Basislinie oder Grundlinie verwendet, im Vergleich zu der Lesespannungen verglichen werden, sodass Datenintegrität weniger anfällig gegenüber Schwellenspannungsdrift oder Widerstandsdrift ist. Mehrpegelzellen- bzw. MLC-Phasenänderungsspeicher bzw. PCM und MLC-NAND-Flash-Speicher weisen beide mit der Zeit signifikante Widerstandsdrift bzw. Schwellenspannungsdrift auf, die durch typische Schreib- und Löschzyklen verschlimmert wird. Die Schwellenspannungsdrift für Zellen nahezu identischer Ladungen, die sich physisch in dem MLC-NAND-Chip nahe beieinander befinden, ist nahezu kongruent, während dies für Zellen extrem verschiedener Spannungen, die in dem Chip physisch voneinander entfernt platziert sind, nicht der Fall ist. Die große Ladungsdifferenz entsteht, wenn während Datenzellenschreibvorgängen volle MLC-Bitschreibfähigkeit verwendet wird. Ähnlich ist die Widerstandswertdrift für Zellen mit nahezu identischem Grad des amorphen/kristallinen Zustands, die in dem MLC-PCM-Chip physisch nahe beieinander platziert sind, nahezu kongruent, während dies erwartungsgemäß für Zellen mit extrem verschiedenen amorphen/kristallinen Zuständen, die in dem Chip physisch weit auseinander platziert sind, nicht der Fall sein wird. Die große Differenz beim amorphen/kristallinen Zustand tritt auf, wenn während Datenzellenschreibvorgängen die volle MLC-Bit-Schreibfähigkeit verwendet wird. Da Schwellenspannungs- oder Widerstandsdrift zwischen Speicherzellen ähnlichen Zustands in dichter physischer Nähe in dem Chip im Allgemeinen kongruent ist, können unter Verwendung von gegenüber Spannungsdrift oder Widerstandsdrift toleranter MB-Datencodierung der Erfindung Daten selbst mit einer gelegentlichen signifikanten Drift einer Speicherzelle genauer wiederhergestellt werden.
-
Gemäß Merkmalen der Erfindung werden weniger Volllöschungen von Zellen bereitgestellt, wodurch eine längere Lebensdauer für die Speichereinrichtung ermöglicht wird. Volle Löschung von Zellen verursacht signifikante Verschlechterung der Zelle; in 25-nm-MLC-NAND-Flash-Speicher sind etwa 5 k maximale Volllöschungs-/Schreibzyklen typisch. Herkömmliche höhere Spannungen und längere Zeitdauern von Spannungsereignissen während der Volllöschung verursachen anhaltende hohe elektrische Felder in der Nähe von Floating-Gates von NAND-Zellen mit mehr Beschädigung. Die vorliegende Erfindung verwendet kleinere Ladungstransfers zum Umschreiben neuer Daten auf alte Daten; wodurch die Änderung am Ladungsinhalt des Floating-Gate minimiert wird. Die aufgeschobene Löschoperation kommt nach mehreren aufeinanderfolgenden Schreiboperationen (und nicht nach jeder Schreiboperation), und wenn sie kommt, wird eine Teillöschung verwendet, statt einer Volllöschung.
-
Löschzyklen von Phasenänderungsspeicher bzw. PCM sind langsam und erfordern Erwärmung des Speicherelements und dann langsame Abkühlung des Elements. Zum Beispiel besteht eine Vorteilzeit zum schnelleren Schreiben ohne jegliches anfängliches volles Löschen. Wenn als Alternative die PCM-Zellen zum Beispiel in ihren höchsten Widerstand versetzt werden (amorpher Zustand), kann der Widerstand dieser PCM-Zellen durch einen zusätzlichen Stromimpuls oder Impulse an die Zellen verkleinert werden, wodurch sie schrittweise in Richtung des stabileren und geringeren Widerstand aufweisenden kristallinen Zustands gerückt werden. Somit kann der MLC-PCM-Zellenwiderstand ohne Volllöschung geändert werden, indem die Zelle mit Spannung/Strom gepulst wird. Ähnlich kann Ladungsinhalt in dem Floating-Gate der MLC-NAND-Zellen ohne volle Löschung vergrößert werden.
-
Die Speicherdatencodierung mit beweglicher Basislinie bzw. MB der Erfindung wird nun unter Verwendung von beispielhaften MLC-NAND-Flash-Fällen beschrieben. Es versteht sich, dass für Fachleute erkennbar ist, dass die MB-Speicherdatencodierung der Erfindung vorteilhafterweise auf Mehrpegel-PCM-Speicher erweitert wird, ohne von dem Gedanken und Schutzumfang der Erfindung abzuweichen.
-
Gemäß Merkmalen der Erfindung wird eine Gesamtzunahme der Anzahl von Byte-Schreibvorgängen in die Speichereinrichtungen ermöglicht. Zum Beispiel kann eine 3-Bit-MLC-Speicherzelle unter Verwendung eines 2-Zustands-MB-Codes vor einer Volllöschung mindestens sieben Mal beschrieben werden, wodurch die Lebensdauer von Zellen etwa um das Siebenfache vergrößert wird, und der Verlust voller Datenkapazität für jeden Schreibvorgang in eine Zelle beträgt nur ein Drittel oder ein Bit, statt drei Bit, sodass eine Gesamtzunahme der Lebensdauer der Speichereinrichtung, gemessen jeweils pro geschriebenem Byte, vorliegt. Die 2-Zustands-MB-Codierung produziert eine 1-Bit-Zahl in jeder Zelle ungeachtet der Anzahl der Schreibpegel dergestalt, dass 3, 4, 5, 6, 7, 8, 9 oder 10 Schreibpegel alle eine 1-Bit-Zahl produzieren.
-
Eine 4-Bit-MLC-Speicherzelle kann vor einer Volllöschung unter Verwendung von 2-Zustands-MB-Code mindestens fünfzehn Mal beschrieben werden, wodurch die Lebensdauer der Zelle etwa um das Fünfzehnfache vergrößert wird, und der Verlust der vollen Datenkapazität für jeden Schreibvorgang in eine Zelle beträgt nur ein Viertel oder nur ein Bit, anstatt vier Bit, sodass eine Gesamtzunahme der Lebensdauer der Speichereinrichtung, gemessen jeweils pro geschriebenem Byte, vorliegt. Tatsächlich ist, je größer die Anzahl der Pegel ist, der Nutzen in Bezug auf Lebensdauer, gemessen jeweils pro geschriebenem Byte, den MB ansammeln kann, umso größer. Man beachte, dass diese Berechnungen ungefähr sind, da Belastung während des Schreibzyklus vorliegt; diese Belastung ist jedoch signifikant geringer als die Effekte von Volllöschungsbelastungen. Darüber hinaus müssen bestimmte Schreibvorgänge die Basislinie nicht unbedingt nach oben bewegen, sodass eine größere Anzahl von Schreibvorgängen als Schwellenspannungspegel in der MLC-Zelle ermöglicht werden kann.
-
Gemäß Merkmalen der Erfindung liegen mit MB-Datencodierung Floating-Gate-Ladungen zwischen angrenzenden NAND-Flash-Zellen zum Beispiel in einem ähnlichen Bereich, was zunehmend durch Schrumpfung von Speicherzellenabmessungen favorisiert wird. Fortgesetztes Schrumpfen von NAND-Speichergrößen erweitert die Kapazitätskopplung zwischen angrenzenden Zellen, wodurch das laterale Randfeld, das NAND-Operationen stört, signifikant vergrößert wird. Zum Beispiel zeigen Simulationen, dass die durch angrenzende Zelle auf derselben Bitleitung bzw. BL und Wortleitung bzw. WL verursachte Schwellenspannungsverschiebung (ΔVT) mit Technologieskalierung exponentiell zunimmt.
-
Gemäß Merkmalen der Erfindung ist das für die MB-Datencodierung benötigte Overhead minimal. Illegale Datenkombinationen für eine Gruppe von Speicherzellen sind nur wenig wahrscheinliche Ereignisse, die mit Flag versehen werden können, während sie in Parameterdatenbereichen auftreten. Da MB selbst referenziert ist, kann es, wenn alle Zellen dieselbe Schwellenspannung aufweisen, sowohl sein, dass alle Zellen 0en sind, als auch, dass alle Zellen 1en sind. Dieser Fall kann vermieden oder mit dem in einem spezifizierten Bit gespeicherten Flag mit Flag versehen werden. Da die MB-Datencodierung Mengen von Speicherzellen selbst referenziert hält, wobei allen diesen Zellen erlaubt ist, nur einen von zwei möglichen Schwellenwerten aufzuweisen, ist es, wenn einige wenige der Zellen von der Menge wegdriften, möglich, ihre Inhalte zu korrigieren. Dies könnte die Anzahl der Byte des ECC-Schutzes, die zum Schützen von Daten notwendig ist, verringern.
-
Nunmehr mit Bezug auf die Zeichnungen ist in 1 ein beispielhaftes System zum Implementieren von Verfahren des erweiterten Datenschreibens, Datenlesens und Datenteillöschens für Mehrpegelzellen- bzw. MLC-Speicher zum Beispiel für Halbleiterlaufwerke bzw. SSD mit der allgemeinen Bezeichnung durch das Bezugszeichen 100 gemäß einer Ausführungsform der Erfindung gezeigt. Das System 100 umfasst ein Halbleiterlaufwerk 102 und einen Hostcomputer 104. Das SSD 102 umfasst einen Controller 106, der mit einem Hauptspeicher oder dynamischen Direktzugriffsspeicher bzw. DRAM 108 gekoppelt ist, eine MLC-Speicherverwaltungsinformation und -steuerung 110 und eine Speicherdatencodierungssteuerung 112 mit beweglicher Basislinie bzw. MB.
-
Das SSD 102 umfasst eine Vielzahl von Mehrpegelzellen- bzw. MLC-Speichereinrichtungen 114, die mit dem Speicherdatencodierungs-Steuerblock 112 mit beweglicher Basislinie bzw. MB gekoppelt sind, der mit dem Controller 106 gekoppelt ist, wie etwa NAND-Flash-Chips 114 oder Phasenänderungsspeicher- bzw. PCM-Chips 114 oder eine Kombination von NAND-Flash-Chips und PCM-Chips. Das SSD 102 umfasst eine Hostschnittstelle 116, die zwischen den Hostcomputer 104 und den Controller 106 und den Speicherdatencodierungs-Steuerblock 112 mit beweglicher Basislinie bzw. MB gekoppelt ist.
-
Obwohl die beispielhafte Ausführungsform des Systems 100 im Kontext des Halbleiterlaufwerks 102 beschrieben wird, versteht sich, dass Prinzipien der vorliegenden Erfindung vorteilhafterweise auf andere Arten von Datenspeichereinrichtungen angewandt werden.
-
Das System 100 ist in vereinfachter Form gezeigt, die zum Verständnis der vorliegenden Erfindung ausreicht. Zum Beispiel kann der Controller 106 auf einem oder mehreren integrierten Schaltungschips hergestellt werden und wird geeigneterweise programmiert, um Verfahren gemäß Ausführungsformen der Erfindung zu implementieren.
-
Das SSD 102 implementiert erweitertes Datenschreiben, Datenlesen und Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie für robustes MLC-Speicherdatenschreiben, für robustes MLC-Speicherdatenlesen und für robustes MLC-Speicherdatenteillöschen gemäß Ausführungsformen der Erfindung. Der Controller 106 des SSD 102 umfasst Firmware, der direkter Zugriff auf den Speicherdatencodierungs-Steuerblock 112 mit beweglicher Basislinie bzw. MB gegeben wird. Die Firmware des Controllers 106 des SSD 102 erhält Informationen mit Bezug auf den Speicherdatencodierungs-Steuerblock 112 mit beweglicher Basislinie bzw. MB zum Beispiel von dem MLC-Speicherverwaltungsinformations- und -steuerblock 110.
-
Es versteht sich, dass die Prinzipien der vorliegenden Erfindung nicht auf das dargestellte System 100 und das SSD 102 beschränkt sind. Zum Beispiel könnten der MLC-Speicherverwaltungsinformations- und -steuerblock 110 und der MB-Speicherdatencodierungs-Steuerblock 112 durch den Hostcomputer 104 oder in den MLC-Speichereinrichtungen 114 implementiert werden, statt dass die MB-Speicherdatencodierung durch das SSD 102 durchgeführt wird.
-
Nunmehr mit Bezug auf 2A und 2B, 2C und 2D und 2E sind jeweilige Flussdiagramme beispielhafter Operationen des Systems von 1 zur Implementierung von erweiterter Leistungsfähigkeit gezeigt, umfassend erweitertes Datenschreiben, erweitertes Datenlesen und erweitertes Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie zum Beispiel für Halbleiterlaufwerke (SSD) gemäß Ausführungsformen der Erfindung.
-
Gemäß Merkmalen der Erfindung verwendet die gegenüber Spannungsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie für robustes MLC-Speicherdatenschreiben eine bewegliche Basislinie, die eine Grundlinie oder ein minimaler Spannungspegel für jedes neue Schreiben in eine Speicherzelle ist. Der Mehrpegelzellen-Speicher umfasst optional PCM- und NAND-Flash-Speicher. Es besteht eine Notwendigkeit, die Basislinie vom Vorschreiben vor einem Datenschreiben zu kennen, und diese Informationen können durch Lesen der Zellen vor dem Schreiben bestimmt werden oder durch Halten von Parameterinformationen über Zellen mit dem letzten bekannten Basislinienpegel, wobei eine Gruppe von Speicherzellen dieselbe Basislinie aufweisen kann.
-
Gemäß Merkmalen der Erfindung werden zum Beispiel mindestens zwei oder mehr Schreibzyklen vor vollem Löschen freigegeben, wobei die Hälfte oder weniger des vollen MLC-Bitbereichs benutzt wird. Illegale Datenkombinationen für eine Gruppe von Speicherzellen werden durch Codierung vermieden oder es werden separate Flags verwendet, zum Beispiel sind durchweg 0en nicht gestattet oder durchweg 1en nicht gestattet; oder ein Flag wird gesetzt, um anzuzeigen, ob eine Menge von Zellen mit derselben Schwellenspannung oder demselben Widerstandswert Daten von durchweg 0en oder durchweg 1en repräsentiert.
-
2A und 2B, 2C und 2D und 2E geben jeweilige Flussdiagramme von beispielhaften Operationen des Systems 100 zum Implementieren von erweiterter Leistungsfähigkeit, umfassend erweitertes Datenschreiben, erweitertes Datenlesen und erweitertes Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von Speicherdatencodierung mit beweglicher Basislinie zum Beispiel für Halbleiterlaufwerke bzw. SSD gemäß Ausführungsformen der Erfindung. In 2A und 2B, 2C und 2D und 2E versteht sich, dass die dargestellten beispielhaften Operationen oder Schritte bestimmte sequentielle Operationen oder Schritte umfassen und auch optionale Operationen oder Schritte, alternative Operationen oder Schritte und kombinierte Operationen oder Schritte optionaler Ausführungsformen der Erfindung umfassen.
-
Nunmehr mit Bezug auf 2A und 2B beginnen beispielhafte Operationen für robustes MLC-Speicherdatenschreiben wie in einem Block 200 angegeben. Die bewegliche Basislinie ist eine neue Grundlinie oder ein neuer minimaler Spannungspegel für jedes neue Schreiben in eine Speicherzelle. Die Basislinie für das vorherige Schreiben wird vor dem Schreiben erhalten, indem zum Beispiel Zellen vor dem Schreiben gelesen werden oder indem Parameterinformationen von Zellen mit dem letzten bekannten Basislinienpegel gehalten werden.
-
Das robuste MLC-Speicherdatenschreiben verwendet optional Substitutionscode zur Vermeidung von illegalen Datenkombinationen. Zum Beispiel wird ein lauflängenbegrenzter bzw. RLL-Code als Substitutionscode verwendet, wie in einem Block 202 angegeben. Es werden separate Flags verwendet, um das Auftreten von illegalen Kombinationen anzuzeigen, zum Beispiel wird eine Liste jedes Auftretens von Flags in einem separaten Datenbereich gespeichert, wie in einem Block 204 angegeben. Die separaten Flags im Block 204 werden optional zusammen mit dem Substitutionscode im Block 202 verwendet oder können als Alternative zu dem Substitutionscode verwendet werden. Periodisch werden optional Referenzzellen mit spezifizierten Spannungspegeln beschrieben, um Basislinienspannungs- und Spannungspegel verfügbarer Datenwerte in der Gruppe von Zellen zum Beispiel für Spannungspegel, die einer 1 oder 0 äquivalent sind, im Auge zu behalten, wie in einem Block 206 angegeben.
-
Wie in einem Block 208 angegeben sind bei einem 2-Zustands-MB-Code einer optionalen Ausführungsform verfügbare Datenwerte für jede Zelle entweder eine 1 oder eine 0. Siehe zum Beispiel 5A–5D und 6A–6C. Zellen wirken wie eine Einzelpegelzelle bzw. SLC (Single-Level Cell) mit Basis-2-Binärbitdaten. Wie in einem Block 210 angegeben wären bei einem 3-Zustands-MB-Code bei einer optionalen Ausführungsform verfügbare Datenwerte für jede Zelle zum Beispiel eine 2 oder eine 1 oder eine 0. Siehe zum Beispiel 7A–7C und 8A–8C. Zellendaten sind zur Basis 3 mit separater Datencodierung zum Umwandeln eines Blocks von Zellen in Binärdaten zur Basis 2. Wie in einem Block 212 angegeben wären bei einem 4-Zustands-MB-Code verfügbare Datenwerte für jede Zelle bei einer optionalen Ausführungsform zum Beispiel eine 3 oder eine 2 oder eine 1 oder eine 0. Siehe zum Beispiel 9A–9B. Zellendaten sind wieder binär mit 2 Bit pro Zelle.
-
Wie in einem Block 214 angegeben, wird optional eine einstellbare Bitauflösung verwendet, wie etwa durch Abstufung des Zustandspegels von MB-Code. Man schreibt zum Beispiel Daten in einem 3-Zustands-MB-Code, statt in einem 4-Zustands-MB-Code oder wie in einem Block 216 angegeben Daten in einem 3-Zustands-MB-Code, statt in einem 3-Zustands- oder 4-Zustands-MB-Code.
-
Mit Bezug auf 2B ist im Block 218 die Verwendung optionaler Einstellung der Auflösung zum Auffrischen von Daten zu beachten, und diese Einstellung kann in unterschiedlichem Umfang erfolgen, zum Beispiel an einzelnen Seiten, einzelnen Leitungen, einzelnen Chips oder einzelnen Wörtern. Wie in einem Block 220 angegeben kann die Verwendung optionaler einstellbarer Auflösung über weniger Schreibzyklen vor vollem Löschen bereitgestellt werden.
-
Im Block 222 können Einstellungen der Auflösung bei einer optionalen Ausführungsform durch die Speichereinrichtung selbst als Reaktion auf Fehlerkorrekturinformationen vorgenommen werden. Wie in einem Block 224 angegeben, können Einstellungen der Auflösung durch die Speichereinrichtung selbst als Reaktion auf statistische Spannungsdriftinformationen vorgenommen werden, die durch die Speichereinrichtung während der Verwendung gesammelt werden, die die Verschlechterung der Zellen aufgrund von Zeitalterung, Schreibzyklusalterung und/oder Volllöschzyklusalterung misst, zum Beispiel triggern warnende Anzeichen von bevorstehendem Datenverlust die Speichereinrichtung dazu, die Auflösung herabzustufen. Wie in einem Block 226 angegeben, kann die Einstellung oder Auswahl der Auflösung auch oder als Alternative durch den Benutzer vorgenommen werden, wie etwa auf der Basis der Bedürfnisse des Hostcomputers oder einer anderen zugeordneten Einrichtung oder sich ändernder Gerätekosten oder Datenspeicherbedürfnisse, oder die Einstellung oder Auswahl der Auflösung kann auch durch den Hersteller der Speichereinrichtung während des anfänglichen Prüfens oder Binning vorgenommen werden. Zum Beispiel wird das Binning von Chips oder Subblöcken von Chips durch Einstellung und Auswahl der Auflösung abgeschlossen, wie etwa Abstufung des Zustandspegels von MB-Code oder Verringerung der Anzahl der Schreibzyklen vor vollem Löschen.
-
Wie in einem Block 228 angegeben, kann die Basislinienspannung optional als Parameter gehalten werden, um zum Beispiel zu wissen, welche neue Spannung für jeden Schreibvorgang zu schreiben ist, ohne vor dem Schreiben ein Datenlesen durchführen zu müssen und Basislinienspannungsparameter nach jedem Schreiben in eine Zelle und nach jedem Zellenlöschen aktualisieren zu müssen. Wie in einem Block 230 angegeben, wird andernfalls die Basislinienspannung optional nicht als Parameter gehalten, wobei zum Beispiel bei einer optionalen Ausführungsform vor dem Schreiben ein Datenlesen einer oder mehrerer Probezellen durchgeführt wird, um die neuste Basislinienspannung zu bestimmen.
-
Im Block 232 ist zu beachten, dass automatisches Zellenlöschen bei Verwendung von MB-Speicherdatencodierung gesperrt werden muss; ein Hauptvorteil der MB-Speicherdatencodierung ist die Vermeidung solcher Volllöschzyklen. Optional werden Zellen vor einem neuen Datenschreiben im Voraus auf die neue Basislinie geschrieben.
-
Gemäß Merkmalen der Erfindung ermöglicht gegenüber Schwellenspannungsdrift oder Widerstandsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie für robustes MLC-Speicherdatenlesen ein Rücklesen und Fehlererholungseskalation zum Lesen von im MLC mit beweglicher Basislinie geschriebenen Daten.
-
Nunmehr mit Bezug auf 2C und 2D beginnen Operationen für robustes MLC-Speicherdatenlesen wie in einem Block 234 angegeben. Das anfängliche Datenlesen ist optional blind, wobei zum Beispiel Vergleich von hohen Spannungen mit niedrigeren Spannungen verwendet wird. Siehe 10A und 10B für ein Spannungsdriftbeispiel. Zum Beispiel ist bei 2-Zustands-MB-Code die höhere Spannung eine 1 und die niedrigere Spannung eine 0, und es ist nicht notwendig, die Basislinienspannung als Parameterdaten im Auge zu behalten.
-
Wie in einem Block 236 angegeben verwendet das Datenrücklesen optional separate Daten zur Bestimmung der neuesten Basislinie, zum Beispiel helfen separate Daten dabei, Spannungspegel zu vergleichen; und zum Beispiel müssen separate Daten bei jedem Datenschreiben und vollem Löschen aktualisiert werden. Wie in einem Block 238 angegeben, werden optional separate Daten als Parameterdaten gehalten, zum Beispiel kann für jedes Schreiben in eine Seite ein Zähler gehalten und bei jedem vollen Löschen rückgesetzt werden. Zum Beispiel können Flag-Informationen oder numerische Daten für eine Gruppe von Zellen gehalten werden. Wie in einem Block 240 angegeben, sind als Alternative separate Daten tatsächliche Referenzzellenspannungspegel aus periodischen Referenzzellenschreibvorgängen, wie etwa ein analoger Spannungspegel aus tatsächlichen Schreibvorgängen und Rücklesen. Referenzzellen können ein gewisser kleiner Prozentsatz einer Leitung, einer Seite oder eines Blocks sein.
-
Wie in einem Block 242 angegeben, betrachtet die Fehlererholungssubroutine optional die separaten Daten, die gespeichert sind, um den neuesten Basislinienpegel zu bestimmen. Zum Beispiel versucht das Lesen zuerst ein blindes Rücklesen, und wenn dies versagt, gewährleistet Schauen auf Separates Hilfe beim Bestimmen des Werts geschriebener Daten. Spannungsdrift ähnlicher Referenzzellen und/oder statistische Informationen aus vorherigen Schreibvorgängen und Rücklesevorgängen können zur Hilfe beim Wiederherstellen von Daten verwendet werden.
-
Im Block 244 kann die Fehlererholungsubroutine auch oder als Alternative andere ähnlich beschriebene Datenzellen lesen. Zum Beispiel befinden sich zur Basislinienbestimmung gelesene Zellen in derselben Leitung oder Seite oder in demselben Block wie die Zelle mit Fehlern und weisen denselben Basislinienwert auf. Der Basislinienwert wird aus diesen anderen integren Zellen bestimmt.
-
Mit Bezug auf 2D wird wie in einem Block 246 angegeben optional Lesedatenaktualisierung bereitgestellt, wobei Referenzzellen-Spannungsreferenzinformationen und/oder ähnliche Zellen im Hinblick auf die Anzahl der Schreib-/Lesezyklen und die Anzahl der Löschzyklen verwendet werden, um Spannungsdrift zu bestimmen. Wie in einem Block 248 angegeben, werden zum Beispiel Referenzzellen beschrieben und später zurückgelesen. Zu einem Zeitpunkt des Schreibens in die Referenzzelle werden die Schreibereignisbedingungen, wie etwa Spannungspegel, Zeit/Datum des Schreibens und Gesamt-Schreib- und -Löschzyklen an der Zelle, separat gespeichert. Zum Beispiel werden diese Referenzzellen periodisch rückgelesen und die Spannungspegeldrift bestimmt; und es werden Statistiken bezüglich Spannungsdrift für zukünftige Einstellung/Vorhersage geführt.
-
Im Block 250 erfolgt Schreiben von Datenzellen, Imaugebehalten des Basislinien-Spannungspegels und späteres Rücklesen. Zu einem Zeitpunkt des Schreibens in die Referenzzelle werden die Schreibereignisbedingungen, wie etwa Spannungspegel, Zeit/Datum des Schreibens und Gesamt-Schreib- und -Löschzyklen an der Zelle, separat gespeichert. Zum Zeitpunkt des Datenrücklesens oder der Datenintegritätsprüfung werden diese Datenzellen rückgelesen und die Spannungspegeldrift bestimmt.
-
Gemäß Merkmalen der Erfindung wird gegenüber Schwellenspannungsdrift oder Widerstandsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie für robustes MLC-Speicherdaten-Teillöschen vor dem Neuschreiben der Daten immer dann bereitgestellt, wenn eine Löschung notwendig ist, weil die Basislinie sich nicht weiter bewegen kann, um die zu schreibenden Daten unterzubringen. Zum Beispiel wird Teillöschung verwendet und volle Löschung wird nicht verwendet, weil volle Löschung langsam ist und volle Löschung auch mehr Zellenverschlechterung/-belastung als Teillöschung mit weniger Strom während des Löschens bei NAND-Flash und weniger Erwärmung bei PCM verursacht. Zum Beispiel hat Teillöschung eine ähnliche Auswirkung wie Zellenspannungsdrift, wobei alle Zellen in einer Gruppe im Wesentlichen zusammen ihre Basislinienwerte ändern.
-
Nunmehr mit Bezug auf 2E beginnen Operationen für robustes MLC-Speicherdaten-Teillöschen wie in einem Block 252 angegeben. Das MLC-Speicherdaten-Teillöschen der Erfindung funktioniert, wenn Daten mit MB neu geschrieben werden, wobei die genaue Basislinienspannung nicht unbedingt erforderlich ist, solange alle Zellen dieselbe Basislinie aufweisen; Ungenauigkeit während des Löschens ist annehmbar und kann in bestimmten Fällen bei NAND-Flash etwa um das Zehnfache schneller als normales volles Löschen sein. Siehe 11A, 11B, 11C für ein Beispiel für Teillöschung.
-
Wie in einem Block 254 angegeben, ist optional das Datenneuschreiben nach Teillöschung blind. Zum Beispiel wird angenommen, dass Teillöschung die Zellenspannung auf einen ausreichenden Pegel verringert und alle Zellen auf der neuen Spannung neu geschrieben werden. Wie in einem Block 256 angegeben, ist als Alternative das Datenneuschreiben nach Teillöschung nicht blind. Zum Beispiel wird die Zellenspannung vor dem Neuschreiben der Zellen gelesen. Das Lesen kann für alle Zellen oder eine statistische Stichprobe der Zellen erfolgen.
-
Wie in einem Block 258 angegeben erfolgt Datenneuschreiben sowohl nach Teillöschung als auch Vorschreiben von Zellen auf eine neue Basislinienspannung. Zum Beispiel werden in einer Konzeptbeschreibung vor neuem Datenschreiben Zellen auf eine neue Basislinie vorgeschrieben. Zum Beispiel werden Zellen auf eine nächste gerade Basislinie vorgeschrieben. Bei der tatsächlichen Implementierung wird die Endladung, auf die jede Zelle programmiert wird, in einem einzigen Programmierbefehl erreicht.
-
Wie in einem Block 260 angegeben, ist die Dauer und/oder Spannung für Datenteillöschen auf Alterung/Verschlechterung von Zellen ausgelegt. Zum Beispiel werden statistische Stichproben von Zellen für wahrscheinliche notwendige Teillöschungsdauer verwendet. Zum Beispiel können für eine Anzahl von Löschzyklen, Schreibzyklen und Alterung des Chips gehaltene Daten bei der Bestimmung von Dauer und/oder Spannung der Teillöschung helfen.
-
3A, 3B und 3C zeigen jeweils eine Startoperation, wobei alle Zellen voll gelöscht sind, für 2-Bit-NAND-Zellen, 3-Bit-NAND-Zellen bzw. 4-Bit-NAND-Zellen mit der allgemeinen Bezeichnung durch das Bezugszeichen 300, 310, 320 gemäß Ausführungsformen der Erfindung. In 3A umfasst die jeweilige Startoperation 300, 310, 320, wobei alle Zellen voll gelöscht sind, ein V-read von weniger als dem dargestellten Vth-1 oder V-read < Vth-1 jeweils für 2-Bit-NAND-Zellen, 3-Bit-NAND-Zellen und 4-Bit-NAND-Zellen.
-
4A zeigt jeweils 2-Zustands-Schreibzyklen mit beweglicher Basislinie bzw. MBW für 2-Bit-NAND-Zellen, 3-Bit-NAND-Zellen und 4-Bit-NAND-Zellen jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 400, 410, 420 gemäß Ausführungsformen der Erfindung.
-
5A, 5B, 5C und 5D zeigen jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des Starts, wobei alle Zellen voll gelöscht sind, mit erstem Schreiben, zweitem Schreiben und drittem Schreiben für ein 2-Zustands-2-Bit-MLC-Zellenbeispiel jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 500, 510, 520, 530 gemäß Ausführungsformen der Erfindung. In 5A gilt, wobei im Startzustand 500 alle Zellen voll gelöscht sind, V-read < Vth-1.
-
Gemäß Merkmalen einer bevorzugten Ausführungsformen der Erfindung ermöglicht die Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie für robusten MLC-Speicher 114 dem Rücklese-Decoder, alle Datenzellenbit zu lesen, und der Decoder erwartet, dass sich alle Zellen auf nur zwei verschiedenen Pegeln befinden, und vergibt eine 0 für die Zellen mit der niedrigeren Schwelle und eine 1 an die Zellen mit der höheren Schwelle, gleichgültig, was diese Pegel genau sind. Der Rücklese-Decoder muss nicht a priori wissen, welcher Schwellenpegel für die Entscheidung zu verwenden ist. Der Rücklese-Decoder liest die Datenzellen und bündelt die Rücklesewerte in zwei Gruppen, eine Gruppe der höheren Schwelle und eine Gruppe der niedrigeren Schwelle (threshold), wobei 1en und 0en entsprechend vergeben werden. Wenn alle Zellen dieselbe Schwelle aufweisen, wird entweder durch Vorcodierung oder Setzen eines Flag der Rücklese-Decoder informiert, eine 1 oder eine 0 zu vergeben.
-
Wie in 5B dargestellt, gilt nach der ersten Schreiboperation 510 Vth-1 als THRESHOLD-1 gezeigt, und im Fall V-read ≥ Vth-1 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 5C dargestellt gilt nach einer zweiten Schreiboperation 520 Vth-2 als THRESHOLD-1 gezeigt, und Vth-1 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-2 gilt V-read = 1, andernfalls V-read = 0. Ladungsnivellierung ist nur eine Konzeptbeschreibung, um die Grundarbeit der beweglichen Basislinie klarzustellen. Mit dem Schreibbefehl wird den NAND-Flash-Zellen 114 befohlen, einen Endzielschwellenpegel zu programmieren, den jede Zelle beschaffen muss.
-
Wie in 5D dargestellt, gilt nach einer dritten Schreiboperation 530 Vth-3 als THRESHOLD-1 gezeigt und Vth-2 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-3 gilt V-read = 1, andernfalls V-read = 0.
-
6A, 6B und 6C zeigen jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie eines ersten Schreibens, zweiten Schreibens und siebten Schreibens für ein 2-Zustands-3-Bit-MLC-Zellenbeispiel jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 600, 610, 620 gemäß Ausführungsformen der Erfindung.
-
Wie in 6A dargestellt, gilt nach einer ersten Schreiboperation 600 Vth-1 als THRESHOLD-1 gezeigt und 0 VOLT = BASISLINIE im Fall V-read ≥ Vth-1 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 6B dargestellt, gilt nach einer zweiten Schreiboperation 610 Vth-2 als THRESHOLD-1 gezeigt und Vth-1 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-2 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 6C dargestellt gilt nach einer siebten Schreiboperation 620 Vth-6 als THRESHOLD-1 gezeigt und Vth-6 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-7 gilt V-read = 1, andernfalls V-read = 0.
-
Gemäß Merkmalen anderer Ausführungsformen der Erfindung kann die gegenüber Schwellenspannungsdrift oder Widerstandsdrift tolerante Speicherdatencodierung mit beweglicher Basislinie für robusten MLC-Speicher 114 einen ausgewählten Mehrzustandspegel umfassen, wie etwa andere 3-Zustands- oder 4-Zustands-MB-Speicherdaten als die 2-Zustands-MB-Speicherdaten, die für jede Zelle in einer Gruppe von Zellen verfügbare Datenwerte eine 1 oder eine 0 aufweisen. Zum Beispiel umfassen die 3-Zustands-MB-Speicherdaten, wie zum Beispiel in 7A–7C und 8A–8C dargestellt, verfügbare Datenwerte einer 2, einer 1 oder einer 0 für jede Zelle. Bei einem anderen Beispiel umfassen die 4-Zustands-MB-Speicherdaten, wie etwa in 9A–9B dargestellt, verfügbare Datenwerte einer 3, einer 2, einer 1 oder einer 0 für jede Zelle.
-
7A, 7B und 7C zeigen jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens, zweiten Schreibens und dritten Schreibens jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 700, 710, 720 für ein 3-Zustands-3-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 7A dargestellt, gilt nach einer ersten Schreiboperation 700 Vth-1 als THRESHOLD-1 gezeigt, Vth-2 als THRESHOLD-2 gezeigt, und 0 VOLT = BASISLINIE und im Fall V-read ≥ Vth-2 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-1 dann V-read = 1, andernfalls V-read = 0.
-
Wie in 7B dargestellt gilt nach einer zweiten Schreiboperation 710 Vth-3 als THRESHOLD-1 gezeigt, Vth-4 als THRESHOLD-2 gezeigt und Vth-2 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-4 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-3 dann V-read = 1, andernfalls V-read = 0.
-
Wie in 7C dargestellt gilt nach einer siebten Schreiboperation 720 Vth-5 als THRESHOLD-1 gezeigt, Vth-6 als THRESHOLD-2 gezeigt und Vth-4 = BASISLINIE (LADUNGEN NIVELLIERT) und V-read ≥ Vth-6 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-5 dann V-read = 1, andernfalls V-read = 0.
-
8A, 8B und 8C zeigen jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens, zweiten Schreibens und siebten Schreibens jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 800, 810, 820 für ein 3-Zustands-4-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 8A dargestellt gilt nach einer ersten Schreiboperation 800 Vth-1 als THRESHOLD-1 gezeigt, Vth-2 als THRESHOLD-2 gezeigt und 0 VOLT = BASISLINIE und im Fall V-read ≥ Vth-2 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-1 dann V-read = 1, andernfalls V-read = 0.
-
Wie in 8B dargestellt gilt nach einer zweiten Schreiboperation 810 Vth-3 als THRESHOLD-1 gezeigt, Vth-4 als THRESHOLD-2 gezeigt und Vth-2 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-4 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-3 dann V-read = 1, andernfalls V-read = 0.
-
Wie in 8C dargestellt gilt nach einer siebten Schreiboperation 820 Vth-13 als THRESHOLD-1 gezeigt, Vth-14 als THRESHOLD-2 gezeigt und Vth-12 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-14 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-13 dann V-read = 1, andernfalls V-read = 0.
-
9A und 9B zeigen jeweils beispielhafte Codierungsoperationen mit beweglicher Basislinie des ersten Schreibens und fünften Schreibens jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 900, 910 für ein 4-Zustands-4-Bit-MLC-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 9A dargestellt gilt nach der ersten Schreiboperation 900 Vth-1 als THRESHOLD-1 gezeigt, Vth-2 als THRESHOLD-2 gezeigt, Vth-3 als THRESHOLD-3 gezeigt und 0 VOLT = BASISLINIE und im Fall V-read ≥ Vth-3 gilt V-read = 3, andernfalls gilt im Fall V-read ≥ Vth-2 dann V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-1 dann V-read = 1, andernfalls V-read = 0.
-
Wie in 9B dargestellt gilt nach einer fünften Schreiboperation 910 Vth-12 als THRESHOLD-1 gezeigt, Vth-13 als THRESHOLD-2 gezeigt, Vth-14 als THRESHOLD-3 gezeigt und Vth-11 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-14 gilt V-read = 2, andernfalls gilt im Fall V-read ≥ Vth-13 dann V-read = 1, andernfalls V-read = 0.
-
10A und 10B zeigen jeweils beispielhafte Spannungsdrift mit den Operationen geschriebener Daten bzw. gelesener Daten mit der allgemeinen Bezeichnung durch das Bezugszeichen 1000, 1010 für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 10A dargestellt, gilt nach der Daten-geschrieben-Operation 1000 Vth-4 als THRESHOLD gezeigt und Vth-3 = BASISLINIE und im Fall V-read ≥ Vth-4 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 10B dargestellt gilt nach der Datenleseoperation 1010 einschließlich beispielhafter Spannungsdrift Vth-2 als Vth-2' als THRESHOLD gezeigt und Vth-1' = BASISLINIE und im Fall V-read ≥ Vth-2' gilt V-read = 1, andernfalls V-read = 0. Daten sind wiederherstellbar, wenn die Spannungsdrift im Wesentlichen zwischen den Zellen dieselbe ist, mit der Möglichkeit, Schwellenspannungen für gelesene Daten einzustellen, die je nach Bedarf verwendet werden.
-
11A, 11B und 11C zeigen jeweils beispielhafte Teillöschung mit Operationen des dritten Datenschreibens, schnellen Teillöschens und Datenneuschreibens jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 1100, 1110, 1120 für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 11A dargestellt gilt mit einer dritten Datenschreiboperation 1100, Vth-3 als THRESHOLD gezeigt und Vth-2 = BASISLINIE und im Fall V-read ≥ Vth-3 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 11B dargestellt, ist die Daten-Teillöschoperation 1110 gezeigt, wobei potentiell ungleichmäßige Löschung zwischen Zellen besteht.
-
Wie in 11C dargestellt ist die Datenneuschreiboperation 1120 nach der Teillöschoperation 1110 gezeigt. Für die Datenneuschreiboperation 1120 gilt Vth-3 als THRESHOLD gezeigt und Vth-2 = BASISLINIE (LADUNGEN NIVELLIERT) und im Fall V-read ≥ Vth-3 gilt V-read = 1, andernfalls V-read = 0.
-
12A und 12B zeigen jeweils beispielhafte Änderung der Schwellenauflösung mit unverschlechterter Zelle und verschlechterter Zelle jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 1200, 1210 für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 12A dargestellt gibt es bei dem Beispiel 1200 der unverschlechterten Zelle drei Schwellenpegel Vth-1, Vth-2 und Vth-3 für drei Schreibvorgänge mit beweglicher Basislinie. In 12B gibt es bei dem Beispiel 1210 der verschlechterten Zelle zwei Schwellenpegel Vth-1' und Vth-2' für zwei Schreibvorgänge mit beweglicher Basislinie.
-
13A und 13B, 13C und 13D zeigen jeweils beispielhafte Änderung der Schwellenauflösung mit unverschlechterter Zelle und verschlechterter Zelle jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 1300, 1310, 1320 und 1330 für ein 3-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 13A dargestellt gibt es bei dem Beispiel 1300 der unverschlechterten Zelle fünf Schwellenpegel Vth-1, Vth-2, Vth-3, Vth-4 und Vth-5 für fünf Schreibvorgänge mit beweglicher Basislinie. Wie in 13B dargestellt gibt es bei dem Beispiel 1310 der verschlechterten Zelle vier Schwellenpegel Vth-1', Vth-2', Vth-3' und Vth-4' für vier Schreibvorgänge mit beweglicher Basislinie. Wie in 13C dargestellt gibt es bei dem Beispiel 1320 der verschlechterten Zelle drei Schwellenpegel Vth-1', Vth-2' und Vth-3' für drei Schreibvorgänge mit beweglicher Basislinie. In 13D gibt es bei dem Beispiel 1330 der verschlechterten Zelle zwei Schwellenpegel Vth-1' und Vth-2' für zwei Schreibvorgänge mit beweglicher Basislinie.
-
Mit Bezug auf 14 ist ein Diagramm von beispielhaften Parameterdaten für beispielhafte MLC-Zellenbeispiele mit der allgemeinen Bezeichnung durch das Bezugszeichen 1400 gemäß Ausführungsformen der Erfindung gezeigt. Die beispielhaften Parameterdaten für beispielhafte MLC-Zellenbeispiele 1400 umfassen jeweilige beispielhafte Pegel pro Zelle 1402, eine numerische Basis 1404, eine Anzahl von Schwellenpegeln 1406, bei verfügbaren Schreibvorgängen mit beweglicher Basislinie sind Zellen nach voller Löschung 1408 nicht verschlechtert, und bei einem Bereich verfügbarer Schreibvorgänge mit beweglicher Basislinie sind Zellen nach voller Löschung 1410 verschlechtert.
-
15A und 15B zeigen beispielhafte Spannungsleckangabe mit Operationen geschriebener Daten und rückgelesener Daten jeweils mit der allgemeinen Bezeichnung durch das Bezugszeichen 1500, 1510 für ein 2-Bit-MLC-NAND-Zellenbeispiel gemäß Ausführungsformen der Erfindung.
-
Wie in 15A dargestellt gilt nach der ersten Schreiboperation 1500, Vth-3 als THRESHOLD-1 gezeigt und Vth-2 = BASISLINIE im Fall V-read ≥ Vth-3 gilt V-read = 1, andernfalls V-read = 0.
-
Wie in 15B dargestellt kann mit der Spannungsleckangabe die Datenrückleseoperation 1510, Vth-3 als THRESHOLD-1 gezeigt und Vth-2 = BASISLINIE im Fall V-read < Vth-2 ein Fehler resultieren, der durch ? angegeben wird, wobei Spannungslecken aufgetreten ist. Der Decoder mit beweglicher Basislinie kann das Leck entweder mit einem Flag als einen Fehler kennzeichnen oder an die leckende Zelle eine „0” oder „1” mit verschiedenen Wahrscheinlichkeiten vergeben und dies zur Endentscheidung bezüglich des korrekten Zelleninhalts zu einem Soft-Decoder/Fehlerkorrektursystem leiten. Diese Leckereignisse können auch von einem Verwaltungssystem verwendet werden, um für den Teil gemäß der Häufigkeit, mit der diese leckbehafteten Bit auftreten, ein Alter zuzuweisen, das bei einer vordefinierten Schwelle liegen könnte, die für die Ersetzung des gesamten Speicherteils empfohlen ist.
-
Obwohl die Speicherdatencodierung mit beweglicher Basislinie bzw. MB der Erfindung im Allgemeinen mit Bezug auf beispielhafte MLC-NAND-Flash-Fälle beschrieben wurde, ist für Fachleute erkennbar, dass die MB-Speicherdatencodierung der Erfindung auch vorteilhafterweise mit Mehrpegel-PCM-Speicher verwendet wird, ohne von dem Gedanken oder Schutzumfang der Erfindung abzuweichen.
-
Nunmehr mit Bezug auf 16 ist ein Herstellungsartikel oder Computerprogrammprodukt 1600 der Erfindung dargestellt. Das Computerprogrammprodukt 1600 umfasst ein computerlesbares Aufzeichnungsmedium 1602, wie etwa eine Diskette, einen Nurlesespeicher hoher Kapazität in Form einer optisch gelesenen Kompaktdisk oder CD-ROM, ein Band oder ein anderes ähnliches Computerprogrammprodukt. Das computerlesbare Aufzeichnungsmedium 1602 speichert Programmmittel oder Steuercode 1604, 1606, 1608, 1610 auf dem Medium 1602 zum Ausführen der Verfahren zur Implementierung von erweitertem Datenschreiben, erweitertem Datenlesen und erweitertem Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie der Ausführungsformen der Erfindung in dem System 100 von 1.
-
Eine durch die aufgezeichneten Programmmittel oder den Steuercode 1604, 1606, 1608, 1610 definierte Sequenz von Programmanweisungen oder logische Baugruppe eines oder mehrerer miteinander zusammenhängender Module leitet den SSD-Controller 106 des Systems 100 an, um erweitertes Datenschreiben, erweitertes Datenlesen und erweitertes Datenteillöschen für Mehrpegelzellen- bzw. MLC-Speicher unter Verwendung von gegenüber Schwellenspannungsdrift oder Widerstandsdrift toleranter Speicherdatencodierung mit beweglicher Basislinie der Ausführungsformen der Erfindung zu implementieren.
-
Obwohl die vorliegende Erfindung mit Bezug auf die Details der in der Zeichnung gezeigten Ausführungsformen der Erfindung beschrieben wurde, sollen diese Details den Schutzumfang der Erfindung, der in den angefügten Ansprüchen beansprucht wird, nicht beschränken.