-
HINTERGRUND DER ERFINDUNG
-
US 5,657,332 A offenbart ein Leseverfahren für eine Speichervorrichtung mit Multi-Level-Zellen. Falls bei einer Leseoperation ein ECC Fehler detektiert wird, kann eine Gate-Steuerspannung angepasst werden und die Daten werden anschließend erneut gelesen. Falls die Daten daraufhin korriert werden können, werden die korrigierten Daten in die Speicherzellen zurückgeschrieben.
-
Die vorliegende Erfindung betrifft Flash-Speichervorrichtungen, und insbesondere ein Leseverfahren, bei welchem Zelleninformation bzw. Taten auch ausgelesen werden können, wenn sich eine Zellschwellenspannung auf Grund einer Zellrückhalteeigenschaft verschoben bzw. verändert hat.
-
Eine NAND-Flash-Speichervorrichtung weist Speicherzellen auf, deren Source- und Drainanschlüsse in Serie zu einer Bitleitung zur Bildung eines Strings verbunden sind. Die Speicherzelle weist im Allgemeinen einen Transistoraufbau auf, in welchem ein Floating-Gate und ein Steuergate gestapelt sind. Ein Speicherzellarray ist direkt innerhalb einer N-Typ-Senke oder P-Typ-Senke gebildet, welche in einem P-Typ-Substrat oder N-Typ-Substrat gebildet sind. Die Drainseite eines NAND-Zellstrings ist mit der Bitleitung über ein Auswahlgate verbunden, und die Sourceseite ist ebenfalls mit einer Sourceleitung über ein Auswahlgate verbunden. Die Steuergates von Speicherzellen in benachbarten Zellstrings sind hintereinander in einer Zeilenrichtung verbunden und werden zu einer Wortleitung.
-
Ein Betrieb der NAND-Flash-Speichervorrichtung wird unten beschrieben. Ein Datenschreibvorgang wird sequenziell durchgeführt, indem von einer Speicherzelle an begonnen wird, welche am weitesten von der Bitleitung entfernt ist. Ein Steuergate einer ausgewählten Speicherzelle wird mit einer hohen Spannung Vpp beaufschlagt, ein Steuergate und ein Auswahlgate einer Speicherzelle auf der Bitleitungsseite der ausgewählten Speicherzelle werden mit einem Zwischenpotenzial beaufschlagt, und auf eine Bitleitung werden 0 V oder ein Zwischenpotenzial in Abhängigkeit von den Daten aufgebracht. Wenn die Bitleitung mit 0 V beaufschlagt ist, wird ein Potenzial zwischen der Drain und dem Gate der ausgewählten Speicherzelle erzeugt, derart, dass Elektronen in das Floating-Gate injiziert werden. Auf Grund dessen wird die Schwellenspannung der ausgewählten Speicherzelle erhöht.
-
In den zurückliegenden Jahren wurde zur weiteren Verbesserung des Integrationsgrades eines Flash-Speichers viel Forschung für eine Multi-Bit-Zelle betrieben, welche dazu geeignet ist, eine Vielzahl von Datenbits in einer Speicherzelle abzuspeichern. Diese Art einer Speicherzelle wird als „Multi-Level-Zelle (MLC)” bezeichnet. Eine Speicherzelle für ein einzelnes Bit korrespondierend zu der MLC wird als „Single-Level-Zelle (SLC)” bezeichnet.
-
Die MLC weist vier oder mehr Schwellenspannungsverteilungen auf, und vier oder mehr Datenspeicherzustände, welche zu den Schwellenspannungsverteilungen korrespondieren. Die MLC, in welcher 2-Bit Datenbits programmierbar sind, besitzt vier Datenspeicherzustände: [11], [10], [00] und [01]. Die Zustände korrespondieren zu den Schwellenspannungsverteilungen der MLC.
-
Angenommen, dass zum Beispiel Schwellenspannungsverteilungen einer Speicherzelle folgender Einteilung entsprechen: –2,7 V oder weniger; 0,3 V bis 0,7 V; 1,3 V bis 1,7 V und 2,3 V bis 2,7 V, dann korrespondieren der Zustand [11] zu –2,7V oder weniger, der Zustand [10] zu 0,3 V bis 0,7 V, der Zustand [00] zu 1,3 V bis 1,7 V und der Zustand [01] zu 2,3 V bis 2,7 V. Mit anderen Worten, wenn die Schwellenspannung der MLC zu einer der vier Schwellenspannungsverteilungen korrespondieren, werden bzw. sind 2-Bit Dateninformationen korrespondierend zu einem der Zustände [11], [10], [00] und [01] in der MLC gespeichert.
-
Wie oben beschrieben weist die MLC Schwellenspannungsverteilungen korrespondierend zu dem Quadrat von 2 in Bezug auf die Anzahl von Bits auf, die gespeichert werden können. Das heißt, eine zur Speicherung von m Bits geeignete MLC besitzt 2m Zellenspannungsverteilungen auf.
-
Die Zellenspannung der Zellenspannungsverteilungen der MLC wird verschoben wie die Speicherperioden zunehmen. Dies wird eine „Datenrückhalteeigenschaft” genannt. Das heißt, während Daten gespeichert und dann über eine lange Zeitperiode ausgelesen werden, wird die Zellenspannung verschoben bzw. verändert, was einen Lesefehler verursachen kann.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Dementsprechend betrifft die vorliegende Erfindung ein Leseverfahren einer Speichervorrichtung mit den Merkmalen des unabhängigen Patentanspruchs 1.
-
Weitere Ausführungsformen sind Gegenstand der Unteransprüche.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1A illustriert das Blockdiagramm der NAND-Flash-Speichervorrichtung.
-
1B illustriert die Verteilungen der Zellenspannung einer MLC;
-
1C illustriert die Verteilungen einer Veränderung in der in 1B gezeigten Zellenspannung;
-
1D illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer ersten Ausführung der vorliegenden Erfindung;
-
1E illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer zweiten Ausführung der vorliegenden Erfindung;
-
1F illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer dritten Ausführung der vorliegenden Erfindung; und
-
2 ist ein Flussdiagramm, welches ein Leseverfahren der MLC gemäß einer Ausführung der vorliegenden Erfindung illustriert.
-
BESCHREIBUNG VON BESTIMMTEN AUSFÜHRUNGEN
-
Mit Bezug auf die begleitenden Zeichnungen werden bestimmte Ausführungen gemäß dem vorliegenden Patent beschrieben.
-
Mit Bezugnahme auf 1a weist eine Flash-Speichervorrichtung 100 ein Speicherzellarray 110, eine Seitenpuffereinheit 120, einen x-Dekoder 140, einen Y-Dekoder 130 und eine Steuereinrichtung 150 auf.
-
Das Speicherzellarray 110 weist eine Vielzahl von Speicherstrings auf, von denen jeder eine Vielzahl von Speicherzellen besitzt und mit den jeweiligen Bitleitungen BL verbunden ist. Jede Speicherzelle in Zeilenrichtung ist an eine Wortleitung WL angeschlossen.
-
Von der Seitenpuffereinheit 120, welche eine Vielzahl von Seitenpuffern aufweist, wird ein Programmier- oder ein Lesevorgang durchgeführt.
-
Jeder Seitenpuffer ist mit zwei Bitleitungen gekoppelt und wird von dem Y-Dekoder 130 ausgewählt. Die Wortleitung wird durch X-Dekoder 140 ausgewählt. Der X-Dekoder 140, der Y-Dekoder 130 und die Seitenpuffereinheit 120 werden von der Steuereinrichtung 150 gesteuert.
-
Mit Bezugnahme auf 1B weist eine MLC, die zur Speicherung einer Vielzahl von Datenbits geeignet ist, N Schwellenspannungsverteilungen 1, 2, 3, ..., N auf.
-
Eine Schwellenspannungsverteilung von 0 V oder weniger gibt an, dass die Zellen in einem Block nicht programmiert sind. Geeignete Lesespannungen muss zur Festlegung gewählt werden, ob bestimmte Zellen programmiert worden sind oder nicht. Eine erste Schwellenspannungsverteilung 1 ist zwischen einer ersten Prüfspannung PV_1 und einer zweiten Prüfspannung PV_2 vorhanden. Wenn eine erste Lesespannung R_1 ausgewählt wird, würden die Zellen mit der ersten Schwellenspannungsverteilung 1 als Zellen erkannt werden, die programmiert worden sind. Wenn jedoch eine zweite Lesespannung R_2 benutzt wird, würden die Zellen als nicht programmiert erkannt werden.
-
Das bedeutet, wenn ein Lesevorgang basierend auf der ersten Lesespannung R_1 durchgeführt wird, dass durch die Bitleitung kein Strom fließt, und die Zellen würden als programmierte erkannt werden. Andererseits, wenn die zweite Lesespannung R_2 aufgebracht wird, fließt Strom durch die Bitleitung, und die Zellen würden als programmierte erkannt werden.
-
Auf diese Art und Weise ist in einer MLC jeder Schwellenspannungsverteilung eine Prüfspannung PV und eine Lesespannung R so zugeordnet, dass eine richtige Festlegung getroffen werden kann, was den korrekten Zustand oder Level bzw. Pegel der Zellen betrifft.
-
1C illustriert eine Änderung oder Verschiebung in der Verteilung der in 1B dargestellten Zellenspannung auf Grund einer Rückhalteeigenschaft.
-
Mit Bezugnahme auf 1C ist zu sehen, dass die Verschiebung der Schwellenspannungsverteilungen von 1B durch gestrichelte Linien angegeben sind. Wenn die Verschiebung der Schwellenspannungsverteilungen signifikant ist, wird ein korrektes Lesen der Zustande oder Pegel der Zellen unter Verwendung der vorher festgelegten Lesespannungen R_1 bis R_N schwierig.
-
In der vorliegenden Ausführung wird der Datenlesevorgang durchgeführt, indem die Spannung des Lesevorgangs verändert wird, um die Verschiebung in der Schwellenspannung zu kompensieren.
-
Mit anderen Worten, ein Lesebefehl wird in einen A-Lesebefehl, einen B-Lesebefehl und einen C-Lesebefehl geteilt, wobei jeder Lesebefehl einen Satz von Lesespannungen (eine A-Lesespannungsgruppe R_1A–R_NA, eine B-Lesespannungsgruppe R_1B–R_NB und eine C-Lesespannungsgruppe R_1C–R_NC) beinhaltet, welcher in einer Steuereinrichtung 150 einer Speichervorrichtung festgelegt und gespeichert ist.
-
Bei Ausführung eines Lesebefehls wird, wenn eine Fehlerkorrektur schwierig ist, ein Algorithmus zur Durchführung des Datenlesevorgangs ausgeführt, indem der Lesebefehl geändert wird.
-
Im Allgemeinen wird in dem Fall der MLC-Flash-Speichervorrichtung gemäß einer Ausführung der vorliegenden Erfindung ein Fehlerkorrekturkode-Verfahren (ECC = Error Correction Code) als ein Verfahren zur Fehlerkorrektur in Bezug auf die gelesenen Daten verwendet. Das ECC-Verfahren ist ein Verfahren zum Durchführen einer Fehlerkorrektur, wenn ein Fehler in einer vorher festgelegten Anzahl oder kleiner auftritt. Wenn ein Fehler in einer vorher festgelegten Anzahl oder größer auftritt, ist es schwierig, die Fehlerkorrektur durchzuführen.
-
Wenn eine Fehlerkorrektur unter Verwendung des ECC-Verfahrens auf Grund von Fehlern, die in einer größeren als in einer vorher festgelegten Anzahl auftreten, schwierig durchzuführen ist, wird in der vorliegenden Ausführung die Lesespannungsgruppe geändert und dann das Lesen ausgeführt, so dass der Datenlesevorgang präzise durchgeführt werden kann. Das heißt, die Lesespannung wird nach Kompensieren der Verschiebung der Spannungsverteilung ausgeführt.
-
1D illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer ersten Ausführung der vorliegenden Erfindung.
-
Die anfänglichen Schwellenspannungsverteilungen von MLC, wie in 1B illustriert ist, haben sich nach einem ersten Zeitabschnitt verschoben, nachdem die Daten programmiert worden sind. Das bedeutet, dass die Schwellenspannungsverteilungen 1 bis N als A-Schwellenspannungsverteilungen 1A ... NA verschoben sind. Die gestrichelten Linien geben die anfänglichen Spannungsverteilungen an.
-
In den A-Schwellenspannungsverteilungen 1A ... NA wird ein Lesevorgang basierend auf A-Lesespannungsgruppe R1A ... RNA durchgeführt. Bei der A-Lesespannungsgruppe wird der Lesevorgang ausgelöst durch den A-Lesebefehl ausgeführt. Der Lesevorgang der MLC-Flash-Speichervorrichtung ist im Stand der Technik wohlbekannt und wird der Einfachheit halber nicht im Detail erläutert. In diesem Fall wird die A-Lesespannungsgruppe R1A ... RNA als ein Lesespannungssatz für den Lesevorgang verwendet.
-
1E illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer zweiten Ausführung der vorliegenden Erfindung.
-
1E illustriert Schwellenspannungsverteilungen nach einem zweiten Zeitabschnitt, nachdem die Daten programmiert worden sind. Aus 1E ist ersichtlich, dass sich die anfänglichen Spannungsverteilungen zur B-Schwellenspannungsverteilungen 1B ... NB verschoben haben. Weiterhin, wie in 1E illustriert ist, treten in den B-Schwellenspannungsverteilungen 1B ... NB in dem Fall, in welchem ein Lesevorgang basierend auf der A-Lesespannungsgruppe R1A ... RNA durchgeführt wird, in Bereichen b der Schwellenspannungsverteilungen Lesefehler auf. In diesem Fall, wenn viele Zellen in den Bereichen b verteilt sind, ist es schwierig, eine Fehlerkorrektur unter Verwendung des ECC-Verfahrens auszuführen. Dementsprechend wird ein Lesevorgang durchgeführt, indem die B-Lesespannungsgruppe R1B ... RNB in 1E benutzt wird. Die B-Lesespannungsgruppe R1B RNB weist Lesespannungen auf, welche niedriger sind als diejenigen der A-Lesespannungsgruppe R1A ... RNA, um die größere Verschiebung in den Spannungsverteilungen zu kompensieren. Der Lesevorgang wird unter Verwendung der B-Lesespannungsgruppe durchgeführt, indem der B-Lesebefehl eingegeben oder initiiert wird.
-
1F illustriert die Verteilungen der Zellenspannung und der Lesespannung einer MLC gemäß einer dritten Ausführung der vorliegenden Erfindung.
-
1F illustriert Schwellenspannungsverteilungen nach einem dritten Zeitabschnitt nach der Programmierung. Der dritte Zeitabschnitt ist länger als der zweite Zeitabschnitt. Die anfänglichen Spannungsverteilungen haben sich um einen größeren Betrag als nach dem zweiten Zeitabschnitt verschoben. Weiterhin, wie in 1F illustriert ist, treten mit den C-Schwellenspannungsverteilungen 1C ... NC in Bereichen c der Schwellenspannungsverteilungen Lesefehler auf, wenn ein Lesevorgang basierend auf der B-Lesespannungsgruppe R1B ... RNB durchgeführt. Wenn viele Zellen in den Bereichen c verteilt sind, ist in diesem Fall eine Fehlerkorrektur unter Verwendung des ECC-Verfahrens schwierig auszuführen. Dementsprechend wird ein Lesevorgang durchgeführt, indem die C-Lesespannungsgruppe R1C ... RNC in verwendet wird. In diesem Fall weist die C-Lesespannungsgruppe R1C ... RNC Lesespannungen auf, welche niedriger sind als diejenigen der B-Lesespannungsgruppe R1B ... RNB. Zusätzlich wird zur Durchführung des Lesevorgangs wird unter Verwendung der C-Lesespannungsgruppe der C-Lesebefehl eingegeben.
-
In dieser Ausführung der vorliegenden Erfindung führt die Steuereinrichtung den Lesevorgang durch, indem der Befehl von dem A-Lesebefehl in den B-Lesebefehl und dann in den C-Lesebefehl geändert wird. Die Steuereinrichtung wählt den geeigneten Lesebefehl basierend auf der Anzahl von Fehlern aus, die unter Verwendung des ECC-Verfahrens erhalten wurden, das heißt, wenn das ECC-Verfahren schwierig auszuführen ist. In einer weiteren Ausführung kann die Steuereinrichtung einen geeigneten Lesebefehl (A, B oder C) unter Verwendung von Verfahren auswählen, die sich von dem ECC-Verfahren unterscheiden.
-
Die Lesespannungsdaten, welche die Lesespannungsgruppen A bis C mit Bezug auf die A- bis C-Lesebefehle betreffen, können gemäß den Eigenschaften einer MLC-Flash-Speichervorrichtung voreingestellt und bezüglich der Durchführung eines Betriebsbefehls der Steuereinrichtung 150 gespeichert werden. Die im Speicher abgelegten Lesebefehlgruppen können durch ein Programm modifiziert werden. Dementsprechend können die Lesebefehlgruppen eingestellt werden, indem eher ein Algorithmus modifiziert wird, als dass die Hardwarekomponenten geändert werden.
-
2 ist ein Flussdiagramm, welches ein Leseverfahren der MLC gemäß einer Ausführung der vorliegenden Erfindung illustriert.
-
Mit Bezug auf 2 wird bei dem Leseverfahren der MLC gemäß einer Ausführung der vorliegenden Erfindung ein A-Lesebefehl in Verfahrensschritt S211 in die Steuereinrichtung 150 eingegeben, und dann wird in Verfahrensschritt S212 eine Leseadresse in die Steuereinrichtung 150 eingegeben.
-
In einer Umsetzung wird ein allgemeiner Lesebefehl eingegeben, und die Steuereinrichtung wird zur Ausführung vorher festgelegter Gruppen von Befehlen konfiguriert, wobei mit dem A-Lesebefehl begonnen wird. Alternativ kann ein bestimmter Befehl, zum Beispiel A-Lesebefehl, der B-Lesebefehl oder der C-Lesebefehl so eingegeben werden, dass die Steuereinrichtung mit dem bestimmten Befehl beginnt.
-
Beim Durchführen des Lesevorgangs mit Beginn von der eingegebenen Adresse an, kann die Steuereinrichtung in Verfahrensschritt S213 den Lesevorgang unter Verwendung der A-Lesespannungsgruppe R1A ... RNA ausführen. In Verfahrensschritt S214 werden gelesene Daten von der Steuereinrichtung ausgegeben. Die ausgegebenen Daten mit einem Fehler werden durch das ECC-Verfahren korrigiert. In der vorliegenden Realisierung kann das ECC-Verfahren zum Korrigieren des Fehlers durchgeführt werden, wenn die Fehlerrate 10% oder weniger beträgt. Wenn die Fehlerrate mehr als 10% der evaluierten Daten ausmacht, ist es schwierig, die Fehlerkorrektur unter Verwendung des ECC-Verfahrens durchzuführen.
-
In Verfahrensschritt S215 legt die Steuereinrichtung fest, ob eine Korrektur in Verfahrensschritt S215 möglich ist. In der vorliegenden Ausführung wird die Fehlerrate festgelegt, indem die Zellen mit einem Fehler gezählt werden. Dies kann durch die Steuereinrichtung erfolgen. Wenn die Zellen mit Fehlern eine vorher festgelegten Anzahl (zum Beispiel 10 Prozent der Zellen, welche ausgewertet werden) übersteigen, legt die Steuereinrichtung fest, dass das Fehlerkorrekturverfahren nicht wirksam durchgeführt werden kann.
-
Wenn festgelegt wird, dass eine wirksame Fehlerkorrektur möglich ist, erfolgt eine Fehlerkorrektur falls nötig, und die Steuereinrichtung legt fest, ob die Adresse der in Betracht kommenden Seite die letzte Adresse eines Blocks ist (Verfahrensschritt 216). Wenn die Adresse nicht die Adresse der letzten Suite ist, erhöht die Steuereinrichtung die Adresse in Verfahrensschritt S217, führt in Verfahrensschritt S213 einen Datenlesevorgang aus und gibt dann in Verfahrensschritt S214 Daten aus.
-
Andererseits wird der Lesevorgang abgeschlossen, wenn die Steuereinrichtung festlegt, dass die bearbeitete Seite die letzte Adresse des Blocks aufweist.
-
Wird in Verfahrensschritt S215 festgelegt, dass eine wirksame Fehlerkorrektur schwierig zu erlangen ist (zum Beispiel bei Auftreten einer Fehlerrate von 10% oder mehr), wird der Lesebefehl von dem A-Lesebefehl in den B-Lesebefehl geändert (Verfahrensschritt 5221). In diesem Fall hat eine Schwellenspannungsverschiebung den Fehlerkorrekturbereich überschritten (siehe 1E). Eine Adresse einer Seite wird ausgelöst durch den B-Lesebefehl (Verfahrensschritt S222) eingegeben. Die Steuereinrichtung führt einen Lesevorgang gemäß der B-Lesespannungsgruppe R1B ... RNB (Verfahrensschritt S223) durch und gibt Daten aus (Verfahrensschritt S224).
-
In der einen Umsetzung (oder erstes Verfahren) ist die Adresseneingabe in Verfahrensschritt S222 die Adresse einer Seite, deren Fehlerkorrektur im Verfahrensschritt S214 schwierig war. Mit anderen Worten, die Steuereinrichtung wird konfiguriert, um Adressen der Seiten zu speichern, für welche eine schwierige Fehlerkorrekturausführung bei Ausführung des A-Lesebefehls bestand. Wenn zum Beispiel von 32 ausgelesenen Seiten die erste und dritte Seite zu hohe Fehlerraten aufgewiesen haben und die Fehlerkorrektur nicht wirksam erfolgen konnte, speichert die Steuereinrichtung die Adressen der ersten und dritten Seite vorübergehend und liest die erste und dritte Seite unter Verwendung des B-Lesebefehls in Verfahrensschritt S223 aus.
-
In einer weiteren Realisierung (oder zweites Verfahren) kann die Steuereinrichtung, wenn eine Fehlerkorrektur in Bezug auf eine bestimmte Seite schwierig ist, während der Lesevorgang auf einer Seitenbasis durchgeführt wird, einen Lesevorgang auf den Seiten des verbleibenden Blöcke sequenziell durchführen, indem die B-Lesespannungsgruppe R1B ... RNB benutzt wird, beginnend bei der Adresse einer korrespondierenden Seite nach Änderung des Lesebefehls in den B-Lesebefehl.
-
Im Allgemeinen wird das zweite Verfahren eher als das erste Verfahren benutzt. So ist die in Verfahrensschritt S222 eingegebene Adresse eine Adresse einer Seite, deren Fehlerkorrektur als Ergebnis des Auslesens gemäß dem A-Lesebefehl als schwierig festgelegt worden ist. Ein anschließender Datenlesevorgang wird gemäß dem B-Lesebefehl ausgeführt.
-
Wenn gelesene Daten gemäß dem B-Lesebefehl ausgegeben werden, legt die Steuereinrichtung fest, ob eine Fehlerkorrektur möglich ist (Verfahrensschritt S225). Wenn eine wirksame Fehlerkorrektur als möglich erachtet wird, erfolgt eine Fehlerkorrektur, falls nötig. Die Steuereinrichtung legt fest, ob die bearbeitete Adresse die Adresse der letzten Seite ist (Verfahrensschritt S226). Wenn das nicht der Fall ist, wird die Adresse erhöht, um die nächste Seite zu lesen (Verfahrensschritt S227).
-
Andererseits, wenn eine wirksame Fehlerkorrektur bei den gemäß dem B-Lesebefehl gelesenen Daten als schwierig auszuführen erachtet wird, wird der Befehl in den C-Lesebefehl geändert (Verfahrensschritt S231). Adressen der unter Verwendung des C-Lesebefehls zu lesenden Seiten werden eingegeben (Verfahrensschritt S232). Diese Adressen korrespondieren zu den in Verfahrensschritt S222 eingegebenen Adressen.
-
Unter Verwendung der C-Lesespannungsgruppe R1C ... RNC werden Daten gelesen (Verfahrensschritt S233). Die gelesenen Daten werden in Verfahrensschritt S234 n ausgegeben. Dann wird festgelegt, ob eine wirksame Fehlerkorrektur in Bezug auf die ausgegebenen Daten möglich ist (Verfahrensschritt S235). Wenn eine wirksame Fehlerkorrektur möglich ist, wird die Fehlerkorrektur ausgeführt, falls nötig. Eine Festlegung wird getroffen, ob die bearbeitete Adresse die Adresse der letzten Seite ist oder nicht (Verfahrensschritt S236). Wenn die Adresse nicht die Adresse der letzten Seite ist, wird die Adresse erhöht und Daten werden unter Verwendung des C-Lesebefehls ausgelesen.
-
Wenn in Verfahrensschritt S236 die Adresse die Adresse der letzten Seite ist, wird eine Kopie des Blocks in Bezug auf einen korrespondierenden Speicherblock erstellt (Verfahrensschritt S238). Danach wird der Lesevorgang abgeschlossen. Die Blockkopie wird ausgeführt, um die Daten zu einem anderen Speicherblock zur Aufbewahrung der Daten zu verschieben, damit die Daten vor Veränderung geschützt sind, da eine Wiederherstellung der Daten unmöglich ist, wenn die Schwellenspannung einer Zelle auf Grund weiterer Rückhaltung verändert ist, nachdem ein Auslesen gemäß dem C-Lesebefehl vorgenommen worden ist.
-
Wenn sogar nach Ausführung des C-Lesebefehls eine wirksame Fehlerkorrektur schwierig ist, wird ein Blockausfallprozess für den Block ausgelöst (Verfahrensschritt S240). Die Blöcke mit einer Blockausfallmarkierung werden im Allgemeinen nicht zum Speichern von Daten benutzt. Derartige Blöcke können jedoch nach einem globalen Löschvorgang verwendet werden.
-
Wenn eine Fehlerrate festgelegt ist, ein gegebenes Niveau, zum Beispiel 10 Prozent, zu überschreiten, kann ein Lesebefehl aus einem Satz von Lesebefehlen ausgewählt werden. Jeder Lesebefehl verwendet einen Satz von Lesespannungen, welcher niedrigere Spannungen als die anfänglichen Lesespannungen aufweist, um die Schwellenspannungsverschiebung über der Zeit zu kompensieren. In der vorliegenden Ausführung benutzen der A-Lesebefehl, der B-Lesebefehl und der C-Lesebefehl die Lesespannungen, welche stufenweise niedrigere Lesespannungen aufweisen.
-
Indem die Lesespannungsgruppen mit Bezug auf die jeweiligen Lesebefehle durch deren Teilung in den ersten Lesebefehl bis zu einem M-ten (M ≥ 2, M ist eine ganze Zahl) Lesebefehl eingestellt werden, kann weiterhin gemäß einer Ausführung der vorliegenden Erfindung der Datenlesevorgang durch den M-fachen Lesevorgang exakt durchgeführt werden. Nachdem der M-te Lesebefehl ausgeführt worden ist, wird eine Blockkopie erstellt, so dass der Fehler, welcher auftreten kann, nachfolgend reduziert werden kann.
-
Weiterhin werden, wie oben erwähnt ist, die Lesespannungsgruppen abhängig von den jeweiligen Lesebefehlen in der Steuereinrichtung gespeichert, und abhängig von der Vorgangssequenz gemäß 2 wird ein Algorithmus für den Lesevorgang in der Steuereinrichtung gespeichert.
-
Wie oben beschrieben ist, werden in Übereinstimmung mit dem Leseverfahren einer Speichervorrichtung gemäß der vorliegenden Erfindung, nachdem sich Zellenschwellenspannungen auf Grund einer Rückhalteeigenschaft geändert haben, Lesespannungen ebenfalls geändert. Es ist deshalb möglich, einen exakten Datenlesevorgang durchzuführen.