-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der
koreanischen Patentanmeldung Nr. 10-2009-0094047 , die am 1. Oktober 2009 bei dem Koreanischen Amt für geistiges Eigentum eingereicht wurde und deren Offenbarung in ihrer Gesamtheit durch Inbezugnahme hierdurch mit aufgenommen wird.
-
HINTERGRUND
-
Die Erfindung betrifft Speichersysteme und zugehörige Verfahren zur Erfassung der Verteilung von instabilen Speicherzellen in Speichersystemen.
-
Einige Computer verwendeten Festplattenlaufwerke als Massenspeichermedium. Festplattenlaufwerke können eine große Kapazität zur Datenspeicherung bereitstellen. Wenn ein Festplattenlaufwerk eine äußere Erschütterung erfährt, können jedoch Daten, die in der Platte gespeichert sind verloren gehen. Ein Festplattenlaufwerk schreibt und liest Daten durch einen Kopf, der von einem Aktor bewegt wird, wobei sich die Lesegeschwindigkeit bei inneren Bereichen der Platte von der Lesegeschwindigkeit bei äußeren Bereichen der Festplatte unterscheidet. Festkörperplatten (SSDs), die Flash-Speicher verwenden, ersetzen bei gewissen Anwendungen für Massendatenspeicherung zunehmend Festplattenlaufwerke. Eine Datenzugriffsgeschwindigkeit ist schneller als im Falle eines Festplattenlaufwerks und insbesondere dann, wenn mehrere Dateien zeitgleich ausgelesen werden.
-
Gewöhnliche Speichersysteme umfassen einen Speicher, der Daten speichert und eine Speichersteuerung, die den Betrieb des Speichers steuert. Ein Flash-Speicher ist ein Typ eines Halbleiterspeichers, der Transistorspeicherzellen, d. h. Floating-Gate-Transistoren, die Daten speichern, umfasst. Durch das Ansammeln einer vorbestimmten Menge an Ladungen in dem Floating-Gate wird ein Programmablauf durchgeführt. In jeder Speicherzelle werden Single-Bit-Daten oder Multi-Bit-Daten gespeichert. Die Speicherzelle, in der die Single-Bit-Daten gespeichert sind, weist zwei Spannungspegel auf, die durch die Verteilung von Schwellwertspannungen bestimmt werden und die Speicherzelle, in der die Multi-Bit-Daten gespeichert sind, weist vier oder mehr Spannungspegel auf.
-
Single-Bits, d. h. logisch 1 und logisch 0, können durch eine vorbestimmte Ladungsmenge abgebildet werden, die sich in einem Floating-Gate eines Transistors ansammelt. Mit anderen Worten wird eine Schwellwertspannung des Transistors durch die Ladungen bestimmt, die in dem Floating-Gate gespeichert sind. Folglich können ein eingeschalteter Transistor und ein ausgeschalteter Transistor voneinander unterschieden werden, wenn ein Signal bei einem vorbestimmten Spannungspegel an einen Gate-Anschluss eines Transistors angelegt wird. Um ein Single-Bit auszulesen, kann an dem Gate-Anschluss des Transistors ein Single-Typ eines Auslese-Spannungspegels angelegt werden.
-
Wenn Multi-Bits, wie zum Beispiel logisch 00, 01, 10, und 11 gebildet werden, sollte die Ladungsmenge, die an dem Floating-Gate angesammelt wird, in drei Typen unterteilt werden, und daher werden drei Typen von Auslese-Spannungspegeln benötigt. Die Ladungen, die in dem Floating-Gate eines Flash-Speichers gespeichert werden, sollten einheitlich innerhalb eines zulässigen Bereichs variieren, da sich ihre Beweglichkeit mit einer Abweichung der Temperatur verändert, gespeicherte Ladungen sich mit der Zeit reduzieren, während eines Programmablaufs Störungen in benachbarten Zellen auftreten, sowie weitere Effekte. Demzufolge wird die Ladungsmenge, die in dem Floating-Gate angesammelt werden soll, unter Berücksichtigung einer vorbestimmten Toleranz zwischen Spannungspegeln von Programmabläufen und Auslese-Spannungspegeln angepasst.
-
Eine Grundeinheit zum Schreiben von Daten in einer Flash-Speicherzelle ist eine Seite. Um eine Speicherzelle des Flash-Speichers zu programmieren, sollte eine vorbestimmte Spannung an die Source-, Drain-, Gate- und Bulk-Abschnitte angelegt werden. Wenn jedoch der Strom plötzlich ausgeschaltet wird während ein Programmablauf durchgeführt wird, können Daten, die geschrieben werden, nicht ordnungsgemäß gespeichert werden. Die Daten, die in dieser Seite in diesem Zustand gespeichert sind können nicht benutzt werden und können unkorrigierbar sein.
-
Während des Ausleseablaufs einer Seite verwendet die Speichersteuerung einen Fehlerberichtigungscode(ECC)-Algorithmus, um zu bestimmen, ob ein ECC-Fehler oder ein korrigierbarer ECC-Fehler in der Seite erzeugt worden ist. Wenn die Speichersteuerung bestimmt, dass die Seite nicht normal programmiert ist, erzeugt die Speichersteuerung ein Unkorrigierbarer-ECC-Fehler-Signal, so dass die Seitendaten als ungültige Daten verarbeitet werden können. Mit anderen Worten wird, wenn bestimmt wird, dass die Seite programmiert wird bevor die Stromzufuhr unterbrochen wird und aufgrund der plötzlichen Unterbrechung der Stromzufuhr ein Fehler erzeugt wird, die Seite als ungültige Daten verarbeitet und Daten von logischen Blockadressen (LBA) einer letzten Schreibanforderung werden nicht beachtet.
-
Allerdings können Daten, die in der Seite gespeichert sind korrigiert werden, wenn der Programmablauf fast abgeschlossen ist. In diesem Fall erzeugt die Speichersteuerung ein Korrigierbarer-ECC-Fehler-Signal, so dass die Seite später verwendet werden kann. Wenn der Programmierablauf fast abgeschlossen ist, wird schließlich eine Grenzwertmenge einer Ladung an dem Floating-Gate angesammelt. Wenn jedoch die Seite korrigierbar ist und die in der Seite gespeicherten Daten verwendet werden können ohne abgeschlossen zu sein, kann ein Lesefehler erzeugt werden, wenn die Daten ausgelesen werden. In diesem Fall wird auf der Seite später kein Programmierablauf ausgeführt werden, da durch die Speichersteuerung ein Korrigierbarer-Fehler-Signal erzeugt worden ist. Die Ladungen, die an dem Floating-Gate angesammelt sind, sind somit nicht ausreichend.
-
Die Ladungsmenge, die an dem Floating-Gate angesammelt ist, kann durch eine Funktion des Lesens der gespeicherten Daten und aufgrund eines natürlichen Verlusts reduziert werden. Wenn die Ladungsmenge, die an dem Floating-Gate angesammelt ist nicht ausreicht, weisen die in den Zellen gespeicherten Daten einen Wert auf, der sich von dem zugedachten Wert während des Programmierungsablaufs unterscheidet.
-
Demzufolge wird ein Verfahren zum Blockieren von Lesefehlern benötigt, die auftreten können, wenn Daten ausgelesen werden, die in einer Seite gespeichert sind, für die ein Programmierablauf fast abgeschlossen ist.
-
ZUSAMMENFASSUNG
-
Gemäß einigen Ausführungsformen der Erfindung, umfasst ein Speichersystem eine Festkörperplatte (SSD) und eine Speichersteuerung. Die SSD umfasst eine Vielzahl an Speicherzellen. Die Speichersteuerung schreibt Daten in die SSD oder liest Daten aus der SSD aus. Die Speichersteuerung legt eine Standard-Schreibspannung und eine Korrektur-Schreibspannung, die eine vorbestimmte Pegeldifferenz zu der Standard-Lesespannung aufweist, an die SSD an, und analysiert unter Verwendung der Standard-Lesespannung und der Korrektur-Lesespannung die Verteilung von Daten, die in der SSD gespeichert sind, und bestimmt ob die in der SSD gespeicherten Daten gültig sind, und korrigiert die in der SSD gespeicherten Daten.
-
Gemäß einiger anderer Ausführungsformen der Erfindung weist ein Speichersystem einen Speicher und eine Speichersteuerung zum Steuern des Speichers auf, wobei die Speichersteuerung unter Verwendung eines Standard-Lesespannungspegels und eines Korrektur-Lesespannungspegels Daten, die in einer Speicherzelle gespeichert sind, die in dem Speicher enthalten ist, oder Daten, die in einer Speicherseite einer Speicherzelle, die in dem Speicher enthalten ist, ausliest, einen Lesefehler, der in der Speicherzelle auftritt erfasst, Daten, die in einer Speicherzelle gespeichert sind, ausliest nachdem ein Lesespannungspegel angepasst ist, um eine Funktion zum Bestimmen, ob die Speicherzelle in Übereinstimmung mit einem Erfassungssignal verwendet wird oder ob Daten erneut in der Speicherzelle gespeichert werden müssen, durchzuführen, und einen Lesefehler, der in der Speicherzelle auftritt erfasst.
-
Gemäß einiger weiterer Ausführungsformen der Erfindung wird ein Verfahren zum Erfassen einer Verteilung von instabilen Speicherzellen unter einer Vielzahl von Speicherzellen, in der Seiten einer einzelnen Speicherzelle oder der Vielzahl von Speicherzellen enthalten sind, vorgeschlagen. Das Verfahren umfasst einen Speicherzellen-Ausgangszustands-Prüfablauf und einen Speicherzellen-Korrektur-Bestimmungsablauf. Bei dem Speicherzellen-Ausgangszustands-Prüfablauf wird ein Ausgangszustand von den in einer Speicherzelle gespeicherten Daten geprüft und es wird in Übereinstimmung mit dem Prüfergebnis bestimmt, ob kein Lesefehler auftritt, wenn in der Speicherzelle gespeicherte Daten bei einem Standard-Lesespannungspegel ausgelesen werden, ob ein Lesefehler auftritt und der Lesefehler korrigierbar ist, oder ein Lesefehler auftritt und der Lesefehler unkorrigierbar ist. Bei dem Speicherzellen-Korrektur-Bestimmungsablauf wird dann, wenn bestimmt worden ist, dass der Lesefehler korrigierbar ist, durch Auslesen der in der Speicherzelle gespeicherten Daten bei einem Korrektur-Lesespannungspegel, der eine Pegeldifferenz zu dem Standard-Lesespannungspegel aufweist, bestimmt, ob die Speicherzelle korrigierbar ist, und es wird bestimmt, ob ein Lesefehler, der dann auftritt, wenn die in der Speicherzelle gespeicherten Daten bei dem Korrektur-Lesespannungspegel ausgelesen werden, korrigierbar oder unkorrigierbar ist.
-
Gemäß einiger weiterer Ausführungsformen der Erfindung wird ein Verfahren zum Bestimmen einer Verteilung von instabilen Speicherzellen unter einer Vielzahl von Speicherzellen, in der Seiten einer einzelnen Speicherzelle oder der Vielzahl an Speicherzellen enthalten sind, vorgeschlagen. Das Verfahren umfasst einen Speicherzellen-Ausgangszustands-Prüfablauf und einen Speicherzellen-Korrektur-Bestimmungsablauf. Bei dem Speicherzellen-Ausgangszustands-Prüfablauf wird ein Ausgangszustand von in der Speicherzelle gespeicherten Daten geprüft, und es wird in Übereinstimmung mit einem Prüfergebnis bestimmt, ob kein Lesefehler auftritt, wenn in der Speicherzelle gespeicherte Daten bei einem Standard-Lesespannungspegel ausgelesen werden, ob ein Lesefehler auftritt und der Lesefehler korrigierbar ist, oder ob ein Lesefehler auftritt und der Lesefehler unkorrigierbar ist. Bei dem Speicherzellen-Korrektur-Bestimmungsablauf wird dann, wenn bestimmt ist, dass der Lesefehler korrigierbar ist, durch Auslesen der in der Speicherzelle gespeicherten Daten bei einem Korrektur-Lesespannungs-Pegel, der eine Pegeldifferenz zu dem Standard-Lesespannungspegel aufweist, geprüft, ob die Speicherzelle korrigierbar ist, und es wird bestimmt, ob der Lesefehler, der dann auftritt, wenn die in der Speicherzelle gespeicherten Daten bei dem Korrektur-Lesespannungspegel ausgelesen werden, korrigierbar oder unkorrigierbar ist. Der Speicherzellen-Korrektur-Bestimmungsablauf wird wiederholt durchgeführt, durch Anpassen des Korrektur-Lesespannungspegels als mindestens zwei Spannungspegel, oder der Speicherzellen-Ausgangszustands-Prüfablauf und der Speicherzellen-Korrektur-Bestimmungsablauf werden wiederholt an mindestens zwei Seiten durchgeführt. Wahlweise werden diese beiden Möglichkeiten wiederholt durchgeführt.
-
Einige weitere Ausführungsformen betreffen ein Verfahren zum Betreiben einer Schaltung zum Erfassen von instabilen Speicherzellen unter einer Vielzahl von Speicherzellen in mindestens einer Seite eines Speichers. Das Verfahren umfasst ein Bestimmen aus einem Ausgangszustand von in einer Speicherzelle gespeicherten Daten, ob ein Lesefehler auftritt, wenn die Daten bei einem Standard-Lesespannungspegel ausgelesen werden, ob ein Lesefehler auftritt und der Lesefehler korrigierbar ist, und ob ein Lesefehler auftritt und der Lesefehler unkorrigierbar ist. In Reaktion auf ein Bestimmen, dass ein Lesefehler auftritt, der korrigierbar ist, wird eine weitere Bestimmung darüber, ob die Speicherzelle korrigierbar ist, vorgenommen, durch Auslesen der in der Speicherzelle gespeicherten Daten bei einem Korrektur-Lesespannungspegel, der einen Spannungspegel aufweist, der sich von dem Standard-Lesespannungspegel unterscheidet, und durch Bestimmen, ob ein Lesefehler, der in den Daten auftritt, die bei dem Korrektur-Lesespannungspegel ausgelesen werden, korrigierbar oder unkorrigierbar ist.
-
In einigen weiteren Ausführungsformen wird auf die Bestimmung, dass kein Lesefehler auftritt, eine Reaktion vorgenommen, durch Bestimmen, dass in der Speicherzelle oder in einer Seite der Speicherzelle gespeicherte Daten stabil sind, und in Reaktion auf eine Bestimmung, dass der Lesefehler unkorrigierbar ist, durch Bestimmen, dass die in der Speicherzelle oder in der Seite der Speicherzelle gespeicherten Daten nicht für einen Datenzugriff durch eine Host-Vorrichtung zu verwenden sind. Das Bestimmen aus einem Ausgangszustand von in einer Speicherzelle gespeicherten Daten kann ein Bestimmen aus dem Ausgangszustand von den in einer Speicherzelle gespeicherten Daten, ob ein unkorrigierbarer Lesefehler aufgetreten ist, und in Reaktion auf ein Bestimmen, dass kein unkorrigierbarer Lesefehler aufgetreten ist, ein Bestimmen, ob es keinen Lesefehler gibt, umfassen.
-
Das Bestimmen aus einem Ausgangszustand von in einer Speicherzelle gespeicherten Daten kann ein erstes Bestimmen einer Anzahl von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn in den Speicherzellen gespeicherte Daten bei dem Standard-Lesespannungspegel ausgelesen werden, umfassen. Das weitere Bestimmen, ob die Speicherzelle korrigierbar ist, kann ein Bestimmen, ob ein Lesefehler, der auftritt, wenn in den Speicherzellen gespeicherte Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, korrigierbar oder unkorrigierbar ist, umfassen.
-
Das Bestimmen, ob ein Lesefehler, der auftritt, wenn in den Speicherzellen gespeicherte Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, korrigierbar oder unkorrigierbar ist, kann ein Bestimmen, ob der Lesefehler unkorrigierbar ist, in Reaktion auf ein Bestimmen, dass ein Lesefehler korrigierbar ist, ein zweites Bestimmen einer Anzahl von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn die in den Speicherzellen gespeicherten bei dem Korrektur-Lesespannungspegels ausgelesen werden, und ein Bestimmen, ob die Anzahl der Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Korrektur-Lesespannungspegel ausgelesen werden, größer ist als eine Anzahl von Speicherzellen ist, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Standard-Lesespannungspegel ausgelesen werden, umfassen.
-
In Reaktion auf eine Bestimmung, dass der Lesefehler unkorrigierbar ist, wird eine weitere Bestimmung, dass Daten in einer Speicherzelle oder in einer Seite des Speichers nicht für einen Datenzugriff durch einen Host zu verwenden sind, und ein Beschränken eines Zugriffs durch den Host auf diese (welche durch eine Speichersteuerung ausgeführt werden kann) vorgenommen. In Reaktion auf eine Bestimmung, dass die Anzahl von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Korrektur-Lesespannungspegel ausgelesen werden, größer als eine Anzahl von Speicherzellen ist, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Standard-Lesespannungspegel ausgelesen werden, wird eine weitere Bestimmung, dass die in der Speicherzelle oder in der Seite der Speicherzelle gespeicherten Daten nicht für einen Datenzugriff durch den Host zu verwenden sind, und ein Beschränkung eines Zugriffs durch den Host auf diese, vorgenommen. In Reaktion darauf, dass die Anzahl von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Korrektur-Lesespannungspegel ausgelesen werden, kleiner ist als die Anzahl von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn diese bei dem Standard-Lesespannungspegel ausgelesen werden, wird eine weitere Bestimmung vorgenommen, dass die in der Speicherzelle oder in der Seite der Speicherzelle gespeicherten Daten stabil sind und für einen Zugriff durch den Host zulässig sind.
-
Das Bestimmen aus einem Ausgangszustand von in einer Speicherzelle gespeicherten Daten und das Bestimmen, ob die Speicherzelle korrigierbar ist, kann an einer Vielzahl von Seiten wiederholend durchgeführt werden. Das Bestimmen, ob die Speicherzelle korrigierbar ist, kann ein wiederholendes Auslesen der Speicherzelle bei einer Vielzahl von verschiedenen Spannungspegeln umfassen.
-
Einige weitere Ausführungsformen betreffen ein Verfahren zum Betreiben einer Schaltung, um instabile Speicherzellen unter einer Vielzahl von Speicherzellen in mindestens einer Seite zu erfassen. Das Verfahren kann ein Bestimmen aus einem Ausgangszustand von in einer Speicherzelle gespeicherten Daten, ob kein Lesefehler auftritt, wenn die Daten bei einem Standard-Lesespannungspegel ausgelesen werden, ob ein Lesefehler auftritt und der Lesefehler korrigierbar ist, und ob ein Lesefehler auftritt und der Lesefehler unkorrigierbar ist, umfassen. In Reaktion auf ein Bestimmen, dass ein Lesefehler auftritt, der korrigierbar ist, wird eine weitere Bestimmung vorgenommen, ob die Speicherzelle korrigierbar ist, durch Auslesen der in der Speicherzelle gespeicherten Daten bei einem Korrektur-Lesespannungspegel, der einen Spannungspegel aufweist, der sich von dem Standard-Lesespannungspegel unterscheidet, und es wird eine Bestimmung vorgenommen, ob ein Lesefehler, der in Daten auftritt, die bei dem Korrektur-Lesespannungspegel ausgelesen werden, korrigierbar oder unkorrigierbar ist. Das Bestimmen, ob die Speicherzelle korrigierbar ist, durch Auslesen der in der Speicherzelle gespeicherten Daten, wird bei einer Vielzahl von verschiedenen Korrektur-Lesespannungen wiederholend durchgeführt.
-
Einige andere Ausführungsformen betreffen ein Speichersystem, das einen Speicher und eine Speichersteuerung umfasst. Die Speichersteuerung ist dazu ausgestaltet, den Speicher zu steuern, wobei die Speichersteuerung Daten, die in einer Speicherzelle des Speichers oder in einer Speicherseite der Speicherzelle des Speichers gespeichert sind, unter Verwendung eines Standard-Lesespannungspegels ausliest und die Daten, die in der Speicherzelle des Speichers oder in einer Speicherseite der Speicherzelle des Speichers gespeichert sind, unter Verwendung eines Korrektur-Lesespannungspegels, der sich von dem Standard-Lesespannungspegel unterscheidet, ausliest, und dazu ausgestaltet ist, zu bestimmen, ob ein Datenzugriff auf die Speicherzelle durch einen Host zulässig ist, in Reaktion auf ein Erfassen, ob ein Lesefehler in der Speicherzelle auftrat, wenn diese bei dem Korrektur-Lesespannungspegel ausgelesen wurde und wenn bei dem Standard-Lesespannungspegel ausgelesen wurde.
-
Einige weitere Ausführungsformen betreffen ein Speichersystem, das eine Festkörperplatte (SSD) und eine Speichersteuerung umfasst. Die SSD umfasst eine Vielzahl von Speicherzellen. Die Speichersteuerung ist dazu ausgestaltet, Daten in die SSD zu schreiben und Daten aus der SSD auszulesen. Die Speichersteuerung verwendet sequenziell eine Standard-Lesespannung, um Daten aus den Speicherzellen auszulesen und verwendet eine Korrektur-Lesespannung, die sich von der Standard-Lesespannung unterscheidet, um Daten von den Speicherzellen auszulesen, und bestimmt eine Verteilung von Lesefehlern in den Daten, die bei der Standard-Lesespannung und bei der Korrektur-Lesespannung von den Speicherzellen ausgelesen wurden, und bestimmt in Reaktion auf die bestimmte Verteilung von Lesefehlern, ob Daten, die in der Vielzahl von Speicherzellen gespeichert sind, gültig sind.
-
Die Speichersteuerung kann eine zentrale Verarbeitungseinheit (CPU) und eine Fehlerkorrekturcode (ECC)-Einheit umfassen. Die CPU führt die Standard-Lesespannung an der SSD zu und bestimmt die Verteilung von Fehlern, wenn die Daten unter Verwendung der Standard-Lesespannung ausgelesen werden. Die ECC-Einheit bestimmt, ob in den in der SSD gespeicherten Daten ein Fehler aus der bestimmten Verteilung auftritt. In Reaktion auf ein Bestimmen, dass ein Fehler in den in der SSD gespeicherten Daten auftrat, bestimmt die CPU, ob der Fehler korrigierbar oder unkorrigierbar ist. In Reaktion auf ein Bestimmen, dass der Fehler unkorrigierbar ist, weist die CPU einen Host an, die in der Speicherzelle gespeicherten Daten nicht zu verwenden. In Reaktion auf eine Bestimmung, dass der Fehler korrigierbar ist, führt die CPU die Korrektur-Lesespannung an der SSD zu und bestimmt die Verteilung von Fehlern in den Daten, die unter Verwendung der Korrektur-Lesespannung ausgelesen werden, und die ECC-Einheit bestimmt in Übereinstimmung mit der bestimmten Verteilung von Fehlern in den Daten, die unter Verwendung der Korrektur-Lesespannung ausgelesen werden, ob der Fehler korrigierbar oder unkorrigierbar ist, und die CPU korrigiert die in der SSD gespeicherten Daten in Übereinstimmung mit der bestimmten Verteilung von Fehlern.
-
Die Speichersteuerung kann weiterhin einen Arbeitsspeicher (RAM) umfassen. Wenn die in der SSD gespeicherten Daten korrigiert werden, speichert die CPU die in der Speicherzelle gespeicherten Daten in dem RAM und schreibt danach die in dem RAM gespeicherten Daten wieder in die Speicherzelle der SSD.
-
Die SSD kann einen Flash-Speicher umfassen. Eine Gültigkeit der in der SSD gespeicherten Daten kann basierend auf Daten bestimmt werden, die von einer Sektion der SSD umfasst werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Beispielhafte Ausführungsformen der Erfindung werden besser verständlich aus der nachfolgenden näheren Beschreibung in Verbindung mit den begleitenden Zeichnungen:
-
1 stellt die Programmierungsverteilung von einer Seite eines niedrigstwertigen Bits (LSB) dar;
-
2 stellt die Programmierverteilung von einer LSB-Seite und einer Seite eines höchstwertigen Bits (MSB) dar;
-
3 ist ein Flussdiagramm, das Verfahren zum Erfassen von der Verteilung von instabilen Speicherzellen in Übereinstimmung mit einigen Ausführungsformen der Erfindung darstellt;
-
4 ist ein Flussdiagramm, das Verfahren zum Erfassen der Verteilung von instabilen Speicherzellen, die einen Vorgang zum Anpassen eines Korrektur-Lesespannungspegels in Übereinstimmung mit einigen Ausführungsformen der Erfindung umfassen, darstellt;
-
5 ist ein Flussdiagramm, das Verfahren zum Erfassen der Verteilung von instabilen Speicherzellen, die einen Ablauf eines wiederholt durchgeführten Programmierungsablaufs an einer Vielzahl von Seiten in Übereinstimmung mit einigen anderen Ausführungsformen der Erfindung umfassen, darstellt;
-
6 ist ein Blockdiagramm von einem Speichersystem, das eine Speichersteuerung umfasst, die derart ausgestaltet ist, dass sie die Verteilung von instabilen Speicherzellen erfasst, in Übereinstimmung mit einigen Ausführungsformen der Erfindung;
-
7 bis 9 stellen Beispiele für das Verarbeiten von Seiten, die instabile Speicherzellen umfassen, dar; und
-
10 ist ein Speichersystem in Übereinstimmung mit einigen anderen Ausführungsformen der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Ausführungsformen der Erfindung werden nachstehend unter Bezugnahme auf die begleitenden Zeichnungen, in denen Ausführungsformen der Erfindung gezeigt werden, näher beschrieben. Die Erfindung kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht auf die vorgestellten Ausführungsformen begrenzt ausgelegt werden. Diese Ausführungsformen werden vielmehr bereitgestellt, damit diese Offenbarung klar und vollständig ist, und sie werden dem Fachmann den Umfang der Erfindung vollständig vermitteln. Gleiche Ziffern beziehen sich durchgehend auf gleiche Elemente.
-
Es wird verstanden werden, dass obwohl die Ausdrücke erste, zweite, usw. hierin zum Beschreiben verschiedener Elemente verwendet werden können, wobei diese Elemente nicht auf diese Ausdrücke beschränkt sind. Diese Ausdrücke werden nur zum Unterscheiden eines Elements von einem anderen verwendet. Zum Beispiel könnte ein erstes Element als ein zweites Element bezeichnet werden, und genauso könnte ein zweites Element als ein erstes Element bezeichnet werden, ohne von dem Umfang der beispielhaften Ausführungsformen abzuweichen. Wie hier verwendet, umfasst der Ausdruck „und/oder” jeden und alle Kombinationen von einem oder mehreren dazugehörigen aufgeführten Gegenständen.
-
Die hier verwendete Terminologie ist nur zum Zwecke der Beschreibung bestimmter Ausführungsformen und nicht dazu gedacht, beispielhafte Ausführungsformen zu beschränken. Wie hierin verwendet sind die Singularformen „einer/eine/eines” und „der/die/das” so gedacht, dass sie die Pluralformen auch mit umfassen, solange der Kontext nicht eindeutig anderes anzeigt. Es wird außerdem verstanden werden, dass die Begriffe „umfasst”, „umfassend”, „enthält”, und „enthaltend”, wenn sie hier verwendet werden, das Vorhandensein der angegebenen Merkmale, Zahlen, Schritte, Abläufe, Elemente und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Merkmale, Zahlen, Schritte, Abläufe, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Solange nicht anders definiert, besitzen hier alle Begriffe (einschließlich technischer und wissenschaftlicher Begriffe) die gleiche Bedeutung, wie sie allgemein von einem gewöhnlichen Durchschnittsfachmann auf dem Gebiet verstanden werden, zu dem die beispielhaften Ausführungsformen gehören. Es wird weiter verstanden werden, dass Begriffe, wie zum Beispiel diejenigen, die in üblicher Weise verwendeten Wörterbüchern definiert sind, so ausgelegt werden sollen, dass sie eine Bedeutung besitzen, die konsistent ist mit der Bedeutung in dem Kontext der verwandten Technik und nicht in einer idealisierten oder übermäßig formalen Art und Weise ausgelegt werden sollen, außer es ist hier ausdrücklich so definiert.
-
Es wird verstanden werden, dass wenn ein Element als „verbunden” oder „gekoppelt” mit einem anderen Element bezeichnet wird, es mit dem anderen Element direkt verbunden oder gekoppelt sein kann oder Zwischenelemente vorhanden sein können. Demgegenüber gibt es keine Zwischenelemente, wenn ein Element als „direkt verbunden” oder „direkt verbunden mit einem anderen Element” bezeichnet wird.
-
Gemäß einiger Ausführungsformen wird die Verteilung von Schwellwertspannungen der Speicherzellen unter Verwendung eines Korrektur-Lesespannungspegels erfasst, der sich von einem Standard-Lesespannungspegel, der in einem normalen Betriebszustand verwendet wird, unterscheidet, und die Gültigkeit eines Programmierungsablaufs einer entsprechenden Speicherzelle wird basierend auf dem Erfassungsergebnis bestimmt. Ebenso werden Fehler, die aufgrund von Veränderungen in der Umgebung einer Speichervorrichtung nach dem Auftreten von einem Problem während eines Programmierungsablaufs oder nachdem ein normaler Programmierungsablauf durchgeführt wurde, auftreten können, geprüft und im Voraus gemessen.
-
1 stellt die Programmierungsverteilung einer Seite eines niedrigstwertigen Bits (LSB) dar. Die LSB-Seite wird als logisch hoch oder logisch niedrig in einer Single-Level-Zelle (SLC) oder einer Multi-Level-Zelle (MLC) abgebildet. Eine Normalverteilung P1, die durch eine durchgezogene Linie angezeigt ist, stellt den Fall dar, in der die LSB-Seite normal programmiert ist, und eine anormale Verteilung P1', die durch eine gepunktete Linie angezeigt ist, stellt den Fall dar, in dem ein Programmierungsablauf anormal durchgeführt wurde oder der Programmierablauf normal durchgeführt wurde, aber die Verteilung aufgrund von Umgebungsfaktoren einer Speichervorrichtung abweicht. Die horizontale Achse stellt Spannungspegel dar und die vertikale Achse stellt die Anzahl von Speicherzellen dar, die dem Spannungspegel entsprechen. Die Spannungspegel der Spannungszellen sind Spannungen, die zum Einschalten der Speicherzellen verwendet werden, d. h. Schwellwertspannungen. Der Begriff der Verteilung wird verwendet, weil die Basiseinheit zum Schreiben von in einer Speicherzelle gespeicherten Daten eine Seite ist und eine Vielzahl von Speicherzellen in einer Seite enthalten sind.
-
Wenn die in der Speicherzelle gespeicherten Daten der normalen Verteilung P1 entsprechen tritt kein Lesefehler auf, wenn die in der Speicherzelle gespeicherten Daten unter Verwendung eines Standard-Lesespannungspegels lesen 1 ausgelesen werden. Mit anderen Worten werden die Speicherzellen, die jeweils eine Schwellwertspannung aufweisen, die dem Standard-Lesespannungspegel lesen 1 entspricht, nicht gefunden. In der normalen Verteilung P1 gibt es keine Speicherzellen, die jeweils eine Schwellwertspannung aufweisen, die einem Korrektur-Lesespannungspegel lesen 1', die sich durch eine vorbestimmte Differenz von dem Standard-Lesespannungslevel lesen 1 unterscheidet, aufweisen. Wenn die Schwellwertspannungen der Speicherzellen nicht aufgrund von Umgebungsfaktoren der Speicherzellen angepasst werden, nachdem der Programmierungsablauf normal durchgeführt wurde oder angesammelte Ladungen an dem Floating-Gate nicht verloren gingen, tritt kein Lesefehler auf, selbst wenn der Standard-Lesespannungspegel lesen 1 und der Korrektur-Lesespannungspegel lesen 1' innerhalb eines vorbestimmten Bereichs, wie obenstehend beschrieben, korrigiert werden.
-
Allerdings kann es in der anormalen Verteilung P1', in welcher der Programmierungsablauf anormal programmiert ist, sein, dass keine Fehler auftreten, wenn die in der Speicherzelle gespeicherten Daten unter Verwendung des Standard-Lesespannungspegels lesen 1 ausgelesen werden. Wenn jedoch die in der Speicherzelle gespeicherten Daten unter Verwendung des Korrektur-Lesespannungspegels lesen 1' ausgelesen werden, tritt ein Lesefehler auf. Mit anderen Worten gibt es eine Vielzahl von Speicherzellen, die jeweils eine Schwellwertspannung aufweisen, die dem Korrektur-Lesespannungslevel lesen 1' entspricht.
-
Wie obenstehend beschrieben, tritt in normalen Speicherzellen selbst dann ein Lesefehler auf, wenn der Standard-Lesespannungspegel lesen 1 und der Korrektur-Lesespannungspegel lesen 1' innerhalb eines vorbestimmten Bereichs angepasst werden.
-
Andererseits nimmt in anormalen Speicherzellen selbst dann, wenn der Standard-Lesespannungspegel lesen 1 und der Korrektur-Lesespannungspegel lesen 1' geringfügig angepasst werden, die Wahrscheinlichkeit zu, dass ein Lesefehler auftreten kann. Eine Differenz zwischen dem Korrektur-Lesespannungspegel lesen 1' und dem Standard-Lesespannungspegel lesen 1 kann in Übereinstimmung mit einem Transistor, der in Speicherzellen verwendet wird, verwendet werden. Die Differenz kann in Schritten von 0,05 V vergrößert oder verkleinert werden.
-
2 bildet die Programmierungsverteilung von einer LSB-Seite und einer Seite eines höchstwertigen Bits (MSB) ab. Die in 2 abgebildete Verteilung betrifft eine MSB- oder eine LSB-Seite in einer MLC. Die normalen Verteilungen P1, P2 und P3, die durch eine durchgezogene Linie angezeigt sind, stellen den Fall dar, in dem die MSB- oder LSB-Seite normal programmiert ist und anormale Verteilungen P1', P2', und P3', die durch eine gepunktete Linie angezeigt sind, stellen den Fall dar, in dem ein Programmierungsablauf normal durchgeführt ist, aber die Verteilung aufgrund von Umgebungseinflüssen einer Speichervorrichtung abweicht. Die Verteilung von 2 betrifft Multi-Bits und demzufolge stellt die Verteilung von jedem der Multi-Bits logisch 00, 01, 10 oder 11 dar.
-
Bezug nehmend auf 2 gibt es in den normalen Verteilungen P1, P2 und P3 der Speicherzellen, die normal programmiert sind, keine Speicherzellen, die Schwellwertspannungen aufweisen, die den Standard-Lesespannungspegeln lesen 1, lesen 2 und lesen 3 und Korrektur-Lesespannungspegeln lesen 1', lesen 2' und lesen 3' entsprechen. Bei den anormalen Verteilungen P1', P2' und P3' der Speicherzellen, die anormal programmiert sind, gibt es keine Speicherzellen, die Schwellwertspannungen aufweisen, die den Standard-Lesespannungspegeln lesen 1, lesen 2 und lesen 3 entsprechen, aber es gibt Speicherzellen, die Schwellwertspannungen aufweisen, die den Korrektur-Lesespannungspegeln lesen 1', lesen 2' und lesen 3' entsprechen.
-
Wenn Umgebungsfaktoren von normal programmierten Speicherzellen oder einem Speichersystem, das normal programmierte Speicherzellen umfasst, variieren, tritt mit Bezugnahme auf die 1 und 2 dann, wenn Schwellwertspannungspegel der Speicherzellen kaum angepasst werden, sowohl in dem Fall, in dem Daten bei den Standard-Lesespannungspegeln lesen 1, lesen 2 und lesen 3 ausgelesen werden, als auch in dem Fall, in dem Daten bei den Korrektur-Lesespannungspegeln lesen 1', lesen 2' und lesen 3' ausgelesen werden, kein Lesefehler auf. Wenn jedoch die Schwellwertspannungspegel der Speicherzellen in Reaktion auf eine Änderung der Umgebungsfaktoren von anormal programmierten Speicherzellen oder einem Speichersystem, das anormal programmierte Speicherzellen umfasst, schnell angepasst werden, tritt ein Lesefehler auf. Nachstehend werden verschiedene Ausführungsformen basierend auf der obenstehenden Beschreibung beschrieben.
-
3 ist ein Flussdiagramm, das Verfahren zum Erfassen der Verteilung von instabilen Speicherzellen (300) in Übereinstimmung mit einigen Ausführungsformen der Erfindung abbildet. In Bezug auf 3 umfassen die Verfahren ein Auslesen von in den Speicherzellen gespeicherten Daten (Ablauf 310), ein Prüfen eines Ausgangszustands der Daten (Ablauf 320), ein Bestimmen, ob ein Lesefehler korrigierbar ist (Ablauf 350), ein Bestimmen von nicht verwendeten Speicherzellen (Ablauf 380), ein Neuprogrammieren von Speicherzellen, die als nicht verwendete Speicherzellen bestimmt wurden (Ablauf 380-1), und ein Bestimmen von stabilen Speicherzellen (Ablauf 390).
-
In Ablauf 310 werden in Speicherzellen gespeicherte Daten bei Standard-Lesespannungspegeln ausgelesen.
-
In Ablauf 320 werden in Speicherzellen gespeicherte Daten bei den Standard-Lesespannungspegeln ausgelesen und eine Bestimmung vorgenommen, ob ein Fehler auftritt. Wenn ein Lesefehler auftritt, wird eine weitere Bestimmung, ob der Lesefehler korrigierbar oder unkorrigierbar ist, vorgenommen. Demzufolge umfasst ein Ablauf 320 eine erste Bestimmung, ob der Lesefehler unkorrigierbar ist (Ablauf 321) und eine zweite Bestimmung, ob es keinen Lesefehler gibt (Ablauf 322).
-
Wenn in Ablauf 321 bestimmt wird, dass der Lesefehler unkorrigierbar ist, wird bestimmt, dass in einer Speicherzelle gespeicherte Daten oder eine Seite, in welcher der Lesefehler auftritt, nicht verwendet werden (Ablauf 380). In diesem Fall wird schließlich ein Neuprogrammieren der Speicherzellen, die als nicht verwendete Speicherzellen bestimmt sind (Ablauf 380-1) durchgeführt. Wenn in Ablauf 321 bestimmt wird, dass der Lesefehler korrigierbar ist, gibt es entweder keinen Lesefehler oder es verbleibt lediglich ein korrigierbarer Lesefehler. Wenn in Ablauf 322 bestimmt wird, dass es keinen Lesefehler gibt, besteht kein Problem in den in einer Speicherzelle oder einer Seite gespeicherten Daten, und dementsprechend kann die Speicherzelle oder Seite als stabil bestimmt werden (Ablauf 390).
-
Anschließend wird Ablauf 350 durchgeführt, wenn in Ablauf 320 bestimmt wird, dass der Lesefehler korrigierbar ist. In Ablauf 350 werden in Speicherzellen gespeicherte Daten bei einem Korrektur-Lesespannungspegel, der einen unterschiedlichen Pegel zu dem Standard-Lesespannungspegel aufweist, ausgelesen, und eine Bestimmung, ob der Lesefehler korrigierbar oder unkorrigierbar ist, wenn die in den Speicherzellen gespeicherten Daten bei dem Korrektur-Lesespannungspegel ausgelesen werden, vorgenommen.
-
Ablauf 350 umfasst ein erstes Bestimmen (Ablauf 360) und ein Bestimmen eines Korrektur-Lesefehlers (Ablauf 370).
-
Ablauf 360 umfasst ein Bestimmen einer Anzahl N von Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn die in den Speicherzellen gespeicherten Daten bei dem Standard-Lesespannungspegel ausgelesen werden (Ablauf 361), und ein Bestimmen des Korrektur-Lesespannungspegels (Ablauf 362).
-
Ablauf 370 umfasst ein drittes Bestimmen (Ablauf 371), ein zweites Bestimmen (Ablauf 372) und ein viertes Bestimmen (Ablauf 373). Es wird eine Bestimmung vorgenommen, ob ein Lesefehler, der auftritt, wenn die in den Speicherzellen gespeicherten Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, korrigierbar oder unkorrigierbar ist.
-
In Ablauf 371 werden die in der Speicherzelle oder der Seite gespeicherten Daten als nicht zu verwenden bestimmt (Ablauf 380) und ein entsprechend bezeichnendes Signal kann erzeugt und verwendet werden, um eine Programmierung der Speicherzellen zu steuern, wenn bestimmt wird, dass der Lesefehler, der in den in der Speicherzelle gespeicherten Daten auftritt, unkorrigierbar ist.
-
In Ablauf 372 wird die Anzahl N' der Speicherzellen, in denen ein korrigierbarer Lesefehler auftritt, wenn die in den Speicherzellen gespeicherten Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, bestimmt, wenn bestimmt wird, dass des Lesefehler nicht unkorrigierbar ist.
-
In Ablauf 373 wird bestimmt, ob die Anzahl N' der korrigierbaren Speicherzellen, die in Ablauf 372 bestimmt wird, größer als die Anzahl N der korrigierbaren. Speicherzellen ist, die in Ablauf 360 bestimmt wird (N' < N). In Reaktion auf die Bestimmung in Ablauf 373 werden die in der Speicherzelle oder der Seite gespeicherten Daten als nicht zu verwenden bestimmt (Ablauf 380) und ein entsprechendes bezeichnendes Signal kann erzeugt und verwendet werden, um eine Programmierung der Speicherzellen zu steuern, wenn die Anzahl N' der korrigierbaren Speicherzellen, die in Ablauf 372 bestimmt wird, größer als die Anzahl N der korrigierbaren Speicherzellen ist, die in Ablauf 360 bestimmt wird.
-
Wie obenstehend beschrieben, kann das Bestimmen von instabilen Speicherzellen (300) effizienter sein, wenn bestimmt wird, dass der Lesefehler, der auftritt, wenn die in den Speicherzellen gespeicherten Daten unter Verwendung des Standard-Lesespannungspegels ausgelesen werden, korrigierbar ist. In diesem Fall werden die in den Speicherzellen gespeicherten Daten erneut unter Verwendung des Korrektur-Lesespannungspegels, der durch Anpassen eines Lesespannungspegels erhalten wird, ausgelesen. Der Fall, in dem die in den Speicherzellen gespeicherten Daten unter Verwendung des Standard-Lesespannungspegels ausgelesen werden und der Fall, in dem die in den Speicherzellen gespeicherten Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, werden miteinander verglichen, und es wird bestimmt, ob die Speicherzelle oder die Seite nicht zu verwenden ist oder neu zu programmieren ist. Mit anderen Worten werden die Anzahl von korrigierbaren Lesefehlern, die auftreten, wenn in Speicherzellen gespeicherte Daten unter Verwendung des Standard-Lesespannungspegels ausgelesen werden und die Anzahl von korrigierbaren Lesefehlern, die auftreten, wenn in Speicherzellen gespeicherte Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, miteinander verglichen, und wenn die Anzahl der korrigierbaren Lesefehler, die auftreten, wenn in Speicherzellen gespeicherte Daten unter Verwendung des Korrektur-Lesespannungspegels ausgelesen werden, nicht kleiner als die Anzahl der korrigierbaren Lesefehler, die auftreten, wenn in Speicherzellen gespeicherte Daten unter Verwendung des Standard-Lesespannungspegels ausgelesen werden, ist, wird bestimmt, dass die Wahrscheinlichkeit, dass unkorrigierbare Lesefehler in der Speicherzelle oder der Seite auftreten können, beträchtlich hoch ist, und es werden angemessene Maßnahmen vorgenommen.
-
Die obenstehende Beschreibung bezieht sich auf eine Speicherzelle oder eine Seite. Der Korrektur-Lesespannungspegel kann ebenso auf einen beliebigen Spannungspegel eingestellt werden. Allerdings ist die Erfindung nicht darauf beschränkt, wie nachstehend beschrieben werden wird.
-
4 ist ein Flussdiagramm, das Verfahren zum Erfassen der Verteilung von instabilen Speicherzellen (400) abbildet, die einen Ablauf zum Anpassen eines Korrektur-Lesespannungspegels in Übereinstimmung mit einigen anderen Ausführungsformen der Erfindung umfasst. In Bezug auf 4 kann ein Erfassen der Verteilung von instabilen Speicherzellen (400) unter Verwendung einer Vielzahl von Korrektur-Lesespannungspegeln, die verschiedene Spannungspegel aufweisen, durchgeführt werden. Andere Abläufe entsprechen den verschiedenen Abläufen, die in 3 abgebildet sind, und demzufolge wird nun lediglich ein Auslesen von in einer Speicherzelle gespeicherten Daten durch Anpassen eines Korrektur-Lesespannungspegels (Ablauf 430) beschrieben.
-
In Ablauf 430 werden in Speicherzellen gespeicherte Daten ausgelesen, während ein vorbestimmter Spannungspegel Inc sequenziell zu einem Standard-Lesespannungspegel Ini addiert wird oder von diesem abgezogen wird, bis der Korrektur-Lesespannungspegel einen letzten Lesespannungspegel LAST annimmt. Hierbei ist i eine Variable und L ist eine ganze Zahl. U. C. E. bedeutet ein unkorrigierbarer Fehler und C/E bedeutet ein korrigierbarer Fehler.
-
5 ist ein Flussdiagramm, das Verfahren zum Erfassen der Verteilung von instabilen Speicherzellen (500) abbildet, die einen Ablauf zum wiederholten Durchführen eines Programmierungsablaufs an einer Vielzahl von Seiten in Übereinstimmung mit einigen anderen Ausführungsformen der Erfindung umfassen. In Bezug auf 5 kann ein Erfassen der Verteilung von instabilen Speicherzellen (500) leicht an einer Vielzahl von Seiten L durchgeführt werden.
-
Die Flussdiagramme, die in den 4 und 5 dargestellt sind, sind im Hinblick auf die Offenbarung der vorliegenden Anmeldung für den Fachmann verständlich, und demzufolge sind weitere ausführliche Beschreibungen hierzu an dieser Stelle nicht vorgesehen. Ein Fachmann kann im Hinblick auf die Offenbarung der vorliegenden Anmeldung auch die 4 und 5 in einem Flussdiagramm kombinieren, und demzufolge sind ausführliche Beschreibungen einer solchen Kombination an dieser Stelle nicht vorgesehen.
-
6 ist ein Blockdiagramm eines Speichersystems 600, das eine Speichersteuerungsschaltung umfasst, die dazu ausgelegt ist, die Verteilung von instabilen Speicherzellen in Übereinstimmung mit einigen Ausführungsformen der Erfindung zu erfassen und die dazu ausgestaltet werden kann, die hier offenbarten Abläufe einschließlich der Abläufe der 3, 4 und/oder 5, jedoch nicht auf diese begrenzt, auszuführen. In Bezug auf 6 umfasst das Speichersystem eine Speichersteuerung 610 und einen Speicher 620.
-
Die Speichersteuerung 610 liest unter Verwendung eines Standard-Lesespannungspegels und eines Korrektur-Lesespannungspegels Daten aus, die in eine in dem Speicher 620 enthaltenen Speicherzelle gespeichert sind, oder Daten, die in einer Speicherseite der in dem Speicher 620 enthaltenen Speicherzelle gespeichert sind, erfasst einen Lesefehler, der in Speicherzellen auftritt, liest in Speicherzellen gespeicherte Daten aus nachdem ein Lesespannungspegel angepasst ist, um eine Funktion zum Erfassen eines Falls durchzuführen, in dem die Speicherzelle in Übereinstimmung mit dem Ergebnis der Erfassung verwendet wird und dem Fall, in dem Daten erneut in der Speicherzelle gespeichert werden müssen, und erfasst einen Lesefehler, der in der Speicherzelle auftritt. In Übereinstimmung mit dem Ergebnis der Erfassung wird bestimmt, ob die Speicherzelle zu verwenden ist oder ein Programmierungsablauf an der Speicherzelle erneut durchzuführen ist.
-
Dieses Verfahren wird in verschiedenen Abläufen zum Erfassen der Verteilung von instabilen Speicherzellen, die in 3, 4 und 5 dargestellt sind, beschrieben.
-
Wie obenstehend beschrieben werden die folgenden drei Abläufe zum Verarbeiten von Seiten, welche die Verteilung von instabilen Speicherzellen umfassen, durchgeführt, wenn bestimmt wird, dass der Programmierungsablauf an der Speicherzelle erneut durchgeführt werden muss.
-
7 bis 9 bilden Beispiele zum Verarbeiten von Seiten ab, die instabile Speicherzellen umfassen. In Bezug auf 7, die einen ersten Typ zum Verarbeiten von Seiten abbildet, die eine Verteilung von instabilen Speicherzellen umfassen, werden Daten, die bei einer Seite programmiert sind, die einen Block umfasst, in dem ein korrigierbarer ECC-Fehler auftritt als nicht zu verwenden bestimmt (2), wenn eine Stromzufuhr plötzlich unterbrochen wird während ein Programmierungsablauf in einer Seiteneinheit durchgeführt wird. In diesem Fall wird der Programmierungsablauf entsprechend einer letzten Schreibanforderung zu einem Zeitpunkt, bei dem eine Stromzufuhr unterbrochen wird, erneut an Lokalblockadressen(LBA)-Daten durchgeführt.
-
In Bezug auf 8, die einen zweiten Typ zum Verarbeiten von Seiten abbildet, der die Verteilung von instabilen Speicherzellen umfasst, werden Informationen über die physikalische Position entsprechend der LBA aktualisiert (2) nachdem Daten, die in einer Seite gespeichert sind, die einen Block umfasst, in dem ein korrigierbarer ECC-Fehler auftritt, in interne überschüssige Blöcke, d. h. intakten Blöcke, kopiert worden sind (1). In diesem Fall wird kein Programmierungsablauf erneut durchgeführt und demzufolge wird eine LBA bei einer Schreibanforderung zu dem Zeitpunkt, bei dem eine Stromzufuhr unterbrochen ist als normal zu verarbeiten bestimmt.
-
In Bezug auf 9, die einen dritten Typ zum Verarbeiten von Seiten abbildet, der die Verteilung von instabilen Speicherzellen umfasst, werden Daten, die in Seiten gespeichert sind, die einen Block umfassen, in dem ein korrigierbarer ECC-Fehler auftritt, in einen temporären Puffer auf einem intakten Block kopiert (1) und danach zu den originalen Seiten (d. h. instabile Blöcke) zurückkopiert (3). Bevor das Zurückkopieren (3) durchgeführt wird können die Daten, die in der Seite gespeichert sind, an der ein unvollständiger Programmierungsablauf durchgeführt ist, gelöscht werden (2). In diesem Fall müssen Informationen über die physikalische Position entsprechend der LBA nicht aktualisiert werden.
-
10 ist ein Speichersystem 1000 in Übereinstimmung mit einigen anderen Ausführungsformen der Erfindung. In Bezug auf 10 umfasst das Speichersystem 1000 eine Speichersteuerung 1020 und eine Festkörperplatte (SSD) 1010. Die SSD 1010 kann als eine Vielzahl von Flash-Speicherzellen realisiert werden.
-
Die Speichersteuerung 1020 ist dazu ausgestaltet, Daten in die SSD 1010 zu schreiben und Daten, die in die SSD 1010 geschrieben sind, auszulesen. Insbesondere legt die Speichersteuerung 1020 eine Standard-Lesespannung und eine Korrektur-Lesespannung, die eine vorbestimmte Pegeldifferenz zu der Standard-Lesespannung aufweist, an der SSD 1010 an, und analysiert die Verteilung von in der SSD 1010 gespeicherten Daten durch Verwendung der Standard-Lesespannung und der Korrektur-Lesespannung, bestimmt, ob in der SSD 1010 gespeicherte Daten gültig sind, und korrigiert die in der SSD 1010 gespeicherten Daten.
-
Um die oben beschriebenen Funktionen durchzuführen umfasst die Speichersteuerung 1020 ein Host-Interface (I/F) 1021, einen Arbeitsspeicher (RAM) 1022, eine zentrale Verarbeitungseinheit (CPU) 1023, eine ECC-Einheit 1024 und einen Speicher I/F 1025. Der Host I/F 1021 bildet eine Verknüpfung zwischen der Speichersteuerung 1020 und einem Host (nicht dargestellt), und der Speicher I/F 1025 bildet eine Verknüpfung zwischen der Speichersteuerung 1020 und der SSD 1010.
-
Die CPU 1023 überträgt die Standard-Lesespannung zu der SSD 1010 und analysiert die Verteilung von Daten in Übereinstimmung mit der Standard-Lesespannung. Die ECC-Einheit 1024 bestimmt aus der Verteilung der Daten, ob es einen Fehler in den in der SSD gespeicherten Daten gibt, und wenn bestimmt wird, dass es einen Fehler in den in der SSD gespeicherten Daten gibt, bestimmt die ECC-Einheit 1024 weiterhin, ob der Fehler korrigierbar oder unkorrigierbar ist.
-
Wenn bestimmt wird, dass der Fehler unkorrigierbar ist, ordnet die CPU 1023 einem Host (nicht dargestellt) an, dass die in der Speicherzelle gespeicherten Daten nicht zu verwenden sind. Wenn bestimmt wird, dass der Fehler korrigierbar ist, überträgt die CPU 1023 die Korrektur-Lesespannung zu der SSD 1010 und analysiert die Verteilung der Daten in Übereinstimmung mit der Korrektur-Lesespannung. Die ECC-Einheit 1024 bestimmt in Übereinstimmung mit dem Ergebnis der Analyse, ob der Fehler korrigierbar oder unkorrigierbar ist. Die CPU 1023 korrigiert die in der SSD 1010 gespeicherten Daten in Übereinstimmung mit dem Ergebnis der Bestimmung.
-
Die Verteilung der Daten bedeutet die Verteilung der Speicherzellen, die basierend auf einem Standard-Lesespannungspegel oder einem Korrektur-Lesespannungspegel bestimmt werden. Beispielhafte Verteilungen sind in 1 und 2 abgebildet.
-
Die in der SSD 1010 gespeicherten Daten können unter Verwendung der CPU 1023 auf verschiedene Weisen korrigiert werden. Als Beispiel hierzu werden in dem RAM 1022 gespeicherte Daten noch einmal in die Speicherzelle der SSD 1010 geschrieben nachdem die in der Speicherzelle der SSD 1010 gespeicherten Daten in dem RAM 1022 gespeichert sind.
-
Eine Vielzahl von Speicherzellen, die in der SSD 1010 enthalten sind, werden in einer Seiteneinheit von einander unterschieden. Daten werden gewöhnlich in die Vielzahl von Speicherzellen in der Seiteneinheit geschrieben. In einigen Ausführungsformen kann die Gültigkeit von geschriebenen Daten in der Seiteneinheit bestimmt werden.
-
In 10 werden funktionale Blöcke abgebildet, die in der Speichersteuerung 1020 enthalten sein können, und die das Host-Interface 1021, das RAM 1022, die CPU 1023, die ECC 1024 und das Speicherinterface 1025 umfassen. Es ist zu verstehen, dass diese beispielhafte Ausführungsform lediglich zum Nutzen der Erklärung vorgesehen ist und nicht den Umfang der Erfindung beschränkt.
-
Während die Erfindung insbesondere mit Bezug auf die beispielhaften Ausführungsformen zu dieser gezeigt und beschrieben worden ist, wird es verstanden werden, dass verschiedene Änderungen in Form und Detail an dieser vorgenommen werden können, ohne von dem Kern und dem Umfang der folgenden Ansprüche abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- KR 10-2009-0094047 [0001]