-
Die vorliegende Erfindung betrifft ein Verfahren zum Lesen eines Flashspeichers und ein Speichersystem.
-
Daten, die aufgrund verschiedener Ursachen beschädigt wurden, können durch Techniken zur Fehlerdetektion und -korrektur effizient wiederhergestellt werden. Zum Beispiel können Daten beschädigt werden, während sie in einem Speicher liegen und/oder während sie von einer Quelle zu einem Bestimmungsort durch einen Datenübertragungskanal übertragen werden.
-
Es wurden verschiedene Methoden vorgeschlagen, um beschädigte Daten zu detektieren und zu korrigieren. Bekannte Fehlerdetektionstechniken beinhalten den RS(Read-Solomon)-Code, Hamming-Code, BCH(Bose-Chaudhuri-Hocquenghem)-Code, CRC(Cyclic Redundancy Checksum)-Code und dergleichen. Es ist möglich, beschädigte Daten unter Verwendung dieser Codes zu detektieren und zu korrigieren.
-
In elektronischen Geräten mit nichtflüchtigen Speicherelementen können Daten in dem nichtflüchtigen Speicherelement (z. B. einem Flashspeicherelement) zusammen mit einem Wert gespeichert werden, der als Fehlerkorrekturcode ECC (Error Correcting Code) bezeichnet wird (nachfolgend als ECC-Daten bezeichnet). Wie einschlägig bekannt ist, können ECC-Daten dazu verwendet werden, einen Fehler bei einer Leseoperation aus einem Flashspeicherelement zu korrigieren. Die Fähigkeit zum Korrigieren solcher Fehler kann jedoch durch die Anzahl an fehlerhaften Bits begrenzt sein, die unter Verwendung einer speziellen Art von ECC-Daten gleichzeitig korrigiert werden können. Ein Bitfehler, der bei einer Leseoperation detektiert wird, kann über einen Fehlerdetektions- und -korrekturcode korrigiert werden, ohne dass die Verwendung eines separaten Datenreparaturprozesses, wie eines Blockersetzungsprozesses, notwendig ist.
-
1 ist ein Blockdiagramm, das ein herkömmliches Flashspeicherelement zeigt, und 2 ist ein Zeitablaufdiagramm, das eine Leseoperation des Flashspeicherelements von 1 zeigt.
-
Ein herkömmliches Flashspeicherelement kann eine Speicherzellenmatrix beinhalten, die eine Mehrzahl von Speicherblöcken aufweist. Nur ein Speicherblock BLKO ist in 1 dargestellt. Der Speicherblock BLKO kann Ketten (auch als NAND-String bezeichnet) beinhalten, die jeweils mit Bitleitungen verbunden sind. Jede der Ketten weist einen Kettenauswahltransistor SST, einen Masseauswahltransistor GST und Speicherzellen (oder Speicherzellentransistoren) MC0 bis MCn-1 auf, die in Serie zwischen die Auswahltransistoren SST und GST eingeschleift sind.
-
Gates der Auswahltransistoren SST und GST sind mit Ketten- und Masseauswahlleitungen SSL bzw. GSL verbunden. Steuergates von Speicherzellentransistoren MC0 bis MCn-1 sind jeweils mit zugehörigen Wortleitungen WL0 bis WLn-1 verbunden. Bitleitungen BLO und BL1 sind jeweils mit zugehörigen Seitenpuffern PB verbunden.
-
Für eine Leseoperation wird, wie in 2 dargestellt, eine ausgewählte Wortleitung (z. B. WL0) mit einer Spannung von 0V betrieben, und eine zugehörige nicht ausgewählte Wortleitung (z. B. WL1 bis WLn-1) wird mit einer Lesespannung Vread betrieben. Hierbei wird Ketten- und Masseauswahlleitungen jeweils die Lesespannung Vread zugeführt. Seitenpuffer PB legen einen Lesestrom an zugehörige Bitleitungen BLO und BL1 an.
-
Spannungen auf den Bitleitungen BLO und BL1 können gemäß den Zellzuständen von Speicherzellen bestimmt werden, die mit der ausgewählten Wortleitung verbunden sind. Wenn zum Beispiel ein mit der ausgewählten Wortleitung verbundener Speicher eine AN-Zelle ist, kann eine Spannung auf einer Bitleitung auf eine Massespannung gesenkt werden. Wenn andernfalls ein mit der ausgewählten Bitleitung verbundener Speicher eine AUS-Zelle ist, kann eine Spannung auf einer Bitleitung auf eine Versorgungsspannung erhöht werden. Danach können Spannungen auf Bitleitungen als Zelldaten durch zugehörige Seitenpuffer abgetastet werden.
-
Die
WO 2003/041083 A1 zeigt ein Verfahren zum Lesen eines Flashspeichers mit einem Fehlermanagement für gespeicherte Referenzpegel, die zum Diskriminieren von logischen Pegeln innerhalb von Datenspeichereinheiten verwendet werden.
-
Die
US 2005/0169051 A1 zeigt ein Verfahren, bei dem sogenannte Trekking-Zellen dazu verwendet werden, logische Pegel nachzuverfolgen, die zum Lesen von Zellen verwendet werden.
-
Der Erfindung liegt die technische Aufgabe zugrunde, ein Verfahren zum Lesen eines Flashspeichers und ein Speichersystem zur Verfügung zu stellen, die einen Bitfehler aufgrund einer Lesestörung detektieren und korrigieren können und/oder die einen Bitfehler detektieren können, der in einer Dummyseite aufgetreten ist.
-
Die Erfindung löst diese Aufgabe durch ein Verfahren zum Lesen eines Flashspeichers mit den Merkmalen von Anspruch 1 und ein Speichersystem mit den Merkmalen von Anspruch 11.
-
Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angeführt, deren Wortlaut durch Bezugnahme zum Inhalt dieser Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
-
Vorteilhafte Ausführungsformen der Erfindung, die nachfolgend ausführlicher beschrieben werden, sowie oben diskutierte Ausführungsformen aus dem Stand der Technik, die das Verständnis der Erfindung erleichtern, sind in den Zeichnungen dargestellt. Hierbei zeigt:
- 1 ein Blockdiagramm eines herkömmliches Flashspeicherelements,
- 2 ein Zeitablaufdiagramm einer Leseoperation des in 1 dargestellten Flashspeicherelements,
- 3 eine Querschnittsansicht eines Speichertransistors, der das Auftreten einer Lesestörung zeigt, die zu einem Softprogrammphänomen führen kann,
- 4 ein Schaubild von Verteilungen von Schwellenspannungen für On-Zellen und Off-Zellen,
- 5 ein Schaubild einer Korrelation zwischen der Anzahl an Lesedurchgängen und der Anzahl an Bitfehlern,
- 6 ein Blockdiagramm eines Speichersystems gemäß einiger Ausführungsformen der vorliegenden Erfindung,
- 7 ein Flussdiagramm einer Leseoperation des in 6 dargestellten Speichersystems gemäß einiger Ausführungsformen der vorliegenden Erfindung und
- 8 eine Tabelle einer Anzahl an Lesespannungen, die an eine Wortleitung angelegt werden, wenn Haupt- und Dummyseiten gleichzeitig gelesen werden, gemäß einiger Ausführungsformen der vorliegenden Erfindung.
-
Es versteht sich, dass wenn ein Element, wie ein Film, eine Schicht, ein Bereich oder ein Substrat, als „auf“ einem anderen Element oder sich „auf“ ein anderes Element erstreckend bezeichnet ist, es direkt auf dem anderen Element liegen oder sich direkt darauf erstrecken kann, oder dazwischen liegende Elemente ebenfalls vorhanden sein können. Wenn jedoch ein Element als „direkt auf“ einem anderen Element oder sich „direkt auf“ ein anderes Element erstreckend bezeichnet ist, sind keine dazwischen liegenden Elemente vorhanden. Es versteht sich ebenfalls, dass, wenn ein Element als „verbunden“ oder „gekoppelt“ mit einem anderen Element bezeichnet ist, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann, oder dazwischen liegende Elemente vorhanden sein können. Wenn jedoch ein Element als „direkt verbunden“ oder „direkt gekoppelt“ mit einem anderen Element bezeichnet ist, sind keine dazwischen liegenden Elemente vorhanden.
-
Wie oben angegeben ist, kann zum Lesen von Zelldaten aus einer ausgewählten Speicherzelle eine Lesespannung Vread an die Wortleitungen von nicht ausgewählten Speicherzellen angelegt werden. Die Lesespannung Vread kann eine Spannung sein, die ausreichend hoch ist, um einen Speicherzellentransistor in einem OFF-Zustand anzuschalten.
-
Während einer Leseoperation kann die Lesespannung Vread einem Steuergate eines nicht ausgewählten Speicherzellentransistors zugeführt werden und eine Massespannung kann einem Substrat (oder einem Bulk) des nicht ausgewählten Speicherzellentransistors zugeführt werden. Hierbei kann einer Drain des nicht ausgewählten Speicherzellentransistors eine vorgegebene Spannung zugeführt werden. Dieser Vorspannungszustand kann, mit Ausnahme der Vorspannungspegel, dem einer Programmoperation entsprechen.
-
Bei diesem Vorspannungszustand, wie in 3 dargestellt, ist es möglich, dass während einer Leseoperation Elektronen in ein floating Gate eines nicht ausgewählten Speicherzellentransistors aus dem Substrat eingeführt werden. Das heißt, ein nicht ausgewählter Speicherzellentransistor in einem AN-Zustand (oder Löschzustand) kann unter den Vorspannungsbedingungen einer Leseoperation weichprogrammiert werden. Dies wird als „Lesestörung“ bezeichnet.
-
Diese Lesestörung kann dazu führen, dass eine Schwellenspannung einer Speicherzelle in einem AN-Zustand (oder Löschzustand) allmählich ansteigt. Die Schwellenspannung kann bei einer Wiederholung einer Leseoperation weiter erhöht werden, wie es in 4 durch eine unterbrochene Linie dargestellt ist. Dies kann dazu führen, dass eine Speicherzelle, die in einem AN-Zustand ist, als in einem OFF-Zustand identifiziert wird. Das heißt, ein Anstieg einer Schwellenspannung aufgrund einer Lesestörung kann bewirken, dass das Lesen aufgrund eines fehlerhaft erfassten Zustands scheitert.
-
Wie oben beschrieben, kann ein Bitfehler, der bei einer Leseoperation vorliegt, über eine Fehlerdetektions- und -korrekturtechnik korrigiert werden, ohne dass ein separater Reparaturprozess, wie ein bekannter Blockersetzungsprozess, notwendig ist. Da Leseoperationen wiederholt werden, kann eine erhöhte Wahrscheinlichkeit eines Leseversagens vorliegen, wie es in 5 dargestellt ist. Obwohl einige Datenfehler korrigiert werden können, liegt daher eine höhere Wahrscheinlichkeit dafür vor, dass weitere Fehler in nachfolgenden Leseoperationen auftreten, die die Fehlerkorrekturmöglichkeiten der Fehlerdetektions- und -korrekturtechniken übersteigen können.
-
Wenn die Anzahl an Bitfehlern einen korrigierbaren Schwellenwert übersteigt, kann ein zugehöriger Block im Speicher, der die Bitfehler enthält, als schlechter Block markiert werden. Der schlechte Block in einem Flashspeicherelement kann unter Verwendung eines Reparaturprozes ses, wie eines Blockersetzungsprozesses, der einen Ersatzspeicherblock auf die zuvor als der schlechte Block abgebildete Adresse abbildet, durch einen reservierten Speicherblock ersetzt werden. Es ist anzumerken, dass solche Blöcke, die aufgrund einer Lesestörung als schlecht markiert sind, aufgrund der Wiederholung von Programm- und Löschoperationen nicht erschöpft werden. Dementsprechend ist es möglich, solche schlechten Blöcke in einem Flashspeicherelement durch Ausführen einer Löschoperation dieser Blöcke wiederzuverwenden.
-
Wenn einige Seiten in einem Speicherblock wiederholt gelesen werden, kann es schwierig sein, einen Bitfehler in verbleibenden Seiten zu detektieren. Dementsprechend kann es schwierig sein, zu verhindern, dass Seitendaten beschädigt werden. Wenn zum Beispiel eine in speziellen Speicherseiten gespeicherte Musikdatei wiederholt über ein MP3-Abspielgerät gelesen wird, kann eine Lesespannung kontinuierlich an andere nicht ausgewählte Seiten angelegt werden, so dass eventuell das oben beschriebene Lesestörungsphänomen in diesen nicht ausgewählten Seiten verursacht wird. Weil die ausgewählten Seiten typischerweise nicht unter dem Lesestörungsphänomen leiden, kann es möglich sein, dass ein Bitfehler, der in diesen nicht ausgewählten Seiten erzeugt ist, nicht detektiert und korrigiert wird.
-
6 ist ein Blockdiagramm, das ein Speichersystem gemäß der vorliegenden Erfindung zeigt. Mit Bezug zu 6 kann ein Speichersystem 100 gemäß der vorliegenden Erfindung einen Host 110, eine Speichersteuereinheit 120 und einen Flashspeicher 130 beinhalten.
-
In 6 können die Speichersteuereinheit 120 und der Flashspeicher 130 in einem Speicher, wie USB-Speichern, Speicherkarten (z. B. MMC, SD-Karte, xD-Karte, SIM-Karte usw.) oder dergleichen eingesetzt sein. Ferner können solche Speicher so ausgebildet sein, dass sie mit einem Host 110, wie Desktop- und Laptopcomputern, Digitalkameras, Mobiltelefonen, MP3-Abspielgeräten, PMP, Spielgeräten und dergleichen verbunden sind.
-
Wenn beim Speichersystem 100 der vorliegenden Erfindung der Host 110 wiederholt nur eine oder zwei Seiten des Flashspeichers 130 (nachfolgend als Hauptseiten bezeichnet) liest, ist es möglich, Lesestörungsprobleme zu detektieren und zu korrigieren, die in anderen nicht ausgewählten Seiten (nachfolgend als Dummyseiten bezeichnet) auftreten können. Beispielhafte Anwendungen, die zu solchen Lesestörungen führen können, können ein mehrfach wiederholtes Lesen von in Hauptspeicherseiten gespeicherten Musikdateien durch ein MP3-Abspielgerät und wiederholtes Ausführen von in Hauptspeicherseiten gespeicherten Spielprogrammen durch ein Spielgerät umfassen.
-
Die Speichersteuereinheit 120 kann so ausgebildet sein, dass sie eine Hauptseite PAGE_K des Flashspeichers 130 in Abhängigkeit von einer oder mehreren Anfragen vom Host 110 wiederholt ausliest. Die Speichersteuereinheit 120 kann so ausgebildet sein, dass sie eine Dummyseite PAGE_I zur gleichen Zeit (parallel dazu) ausliest, wenn sie eine Leseoperation an der Hauptseite PAGE_K vornimmt. Hierbei wird die Leseoperation der Hauptseite PAGE_K „Hauptleseoperation“ genannt und die Leseoperation der Dummyseite PAGE_I wird „Dummyleseoperation“ genannt. Obwohl nur eine Hauptseite PAGE_K und eine Dummyseite PAGE_I in 6 dargestellt sind, ist die Erfindung nicht darauf beschränkt, da die Hauptseite und die Dummyseite allein oder beide zwei oder mehr Seiten umfassen können.
-
Weiter mit Bezug zu 6 kann die Speichersteuereinheit 120 eine Hostschnittstelle 121, eine Flashschnittstelle 122, eine Zentraleinheit (CPU) 123, eine ECC-Schaltung 124, ROM 125 und RAM (oder Puffer-RAM genannt) 126 beinhalten. Wenn der Host 110 eine Leseoperation an der Hauptseite PAGE_K anfordert, wählt die Speichersteuereinheit 120 die Hauptseite PAGE_K und wählt ferner die Dummyseite PAGE_I, um die Hauptleseoperation parallel zur (zur gleichen Zeit wie die) Dummyleseoperation auszuführen. Die Speichersteuereinheit 120 kann die Dummyseite PAGE_I nach dem Zufallsprinzip oder gemäß einer vorgegebenen Abfolge aus den Seiten des Flashspeichers 130 auswählen.
-
Die Hostschnittstelle 121 ist so ausgebildet, dass sie eine Schnittstelle mit dem Host 110 bildet, und die Flashschnittstelle ist so ausgebildet, dass sie eine Schnittstelle mit dem Flashspeicher 130 bildet. Die CPU 123 ist so ausgebildet, dass sie Lese- und Schreiboperationen des Flashspeichers 130 in Abhängigkeit von Anfragen des Hosts 110 steuert.
-
Die ECC-Schaltung 124 kann ECC-Daten unter Verwendung von Daten (Hauptdaten), die zum Flashspeicher 130 übertragen wurden, erzeugen. Die erzeugten ECC-Daten können in einem freien Bereich des Flashspeichers 130 gespeichert werden. Die ECC-Schaltung 124 kann einen oder mehrere Fehler in Daten detektieren, die aus dem Flashspeicher 130 gelesen wurden. Wenn ein detektierter Fehler korrigierbar ist (oder ein detektierter Fehler in einem Korrekturbereich der ECC-Schaltung 124 liegt), kann die ECC-Schaltung 124 den detektierten Fehler korrigieren. Obwohl die ECC-Schaltung 124 als Funktionsblock in der Steuereinheit 120 dargestellt ist, kann sie stattdessen in einem anderen Funktionsblock außerhalb der Speichersteuereinheit 120 ausgebildet sein, wie im Flashspeicher 130.
-
Der ROM 125 kann Daten, wie einen Bootcode, speichern und der RAM 126 kann als Pufferspeicher verwendet werden. Der RAM 126 kann aus dem Flashspeicher 130 ausgelesene Daten oder Daten vom Host 110, die in den Flashspeicher 130 einzuschreiben sind, temporär speichern. Ferner kann der RAM 126 eine Flash-Translation-Layer (FTL) speichern, die von der CPU 123 betrieben wird. Der RAM 126 kann DRAM, SRAM und/oder andere Direktzugriffspeicherelemente beinhalten.
-
Der RAM 126 kann Tabelleninformationen speichern, die zum Verwalten von Lesefehlerinformationen verwendet werden. Die Tabelleninformationen beinhalten Metadaten und werden in einem Metabereich des Flashspeichers 130 unter Steuerung der CPU 123 gespeichert. Die Tabelleninformationen können nach Hochfahren des Speichersystems 100 aus dem Metabereich des Flashspeichers 130 in den RAM 125 kopiert werden.
-
Weiter mit Bezug zu 6 kann das Flashspeicherelement 130 eine Zellenmatrix 131 und eine Steuereinheit 132 beinhalten. Die Steuereinheit 132 kann einen Zeilendecoder, einen Spaltendecoder, einen Seitenpuffer, eine Bitleitungsauswahlschaltung, Datenpuffer und verschiedene andere herkömmliche Schaltungen beinhalten.
-
Die Zellenmatrix 131 kann eine Mehrzahl von Speicherblöcken BLKO bis BLKn-1 beinhalten, die jeweils eine Mehrzahl von Seiten aufweisen, zum Beispiel 32 oder 64 Seiten. Jede der Seiten weist eine Mehrzahl von Speicherzellen auf (z. B. 512 B oder 2 KB Speicherzellen), die so verbunden sind, dass sie eine Wortleitung gemeinsam haben. Für einen NAND-Flashspeicher wird eine Löschoperation für eine Speicherblockeinheit ausgeführt und Lese- und Schreiboperationen werden für eine Seiteneinheit ausgeführt. Der Flashspeicher 130 kann Einzelbitdaten oder Mehrbitdaten pro Zelle speichern.
-
Das Speichersystem 100 ist gemäß einiger Ausführungsformen dazu ausgebildet, dass es gleichzeitig bzw. parallel eine Hauptseite PAGE_K und eine Dummyseite PAGE_I liest. Weil eine Hauptleseoperation zur gleichen Zeit wie eine Dummyleseoperation ausgeführt wird, kann die Hauptseite PAGE_K des Flashspeichers 130 ein Lesestörungsphänomen erleiden, wie auch die Dummyseite PAGE_I. Ferner ist es gemäß einiger Ausführungsformen möglich, den ECC-Algorithmus zu verwenden, um einen Bitfehler aufgrund einer Lesestörung auf der Dummyseite PAGE_I zu detektieren.
-
7 ist ein Flussdiagramm, das verschiedene Verfahren zum Lesen des in 6 dargestellten Speichersystems 100 gemäß einiger Ausführungsformen der vorliegenden Erfindung zeigt. Diese Verfahren werden mit Bezug zu den 6 und 7 beschrieben. In 7 kann eine Leseoperation für eine Dummyseite PAGE_I parallel zu einer (zur gleichen Zeit wie eine) Leseoperation für eine Hauptseite PAGE_K durchgeführt werden. Zunächst kann der Host 110 eine Leseoperation an der Hauptseite PAGE_K des Flashspeichers 130 anfordern. Die Speichersteuereinheit 120 kann eine Leseoperation der Hauptseite PAGE_K in Abhängigkeit von der Leseanforderung vom Host 110 durchführen.
-
Schritt S110 zeigt eine Hauptleseoperation an der Hauptseite PAGE_K. Die Speichersteuereinheit 120 liest die Hauptseite PAGE_K in Abhängigkeit von der Leseanforderung vom Host 110. Die Speichersteuerung 120 führt eine Leseoperation aus der Dummyseite PAGE_I parallel zur Leseoperation der Hauptseite PAGE_K aus. Die Leseoperation aus der Dummyseite PAGE_I wird in Schritt S200 beschrieben.
-
In Schritt S120 kann die Speichersteuereinheit 120 unter Verwendung der ECC-Schaltung 124 bestimmen, ob ein Bitfehler an der Hauptseite PAGE_K auftritt. Falls nicht, kann in Schritt S160 die Speichersteuereinheit 120 die aus der Hauptseite PAGE_K gelesenen Daten zum Host 110 senden. Wenn jedoch ein Bitfehler detektiert wurde, geht der Verfahrensablauf zu Schritt S130, in dem eine Bestimmung vorgenommen wird, ob der Bitfehler einen ersten Korrekturbereich Limit_1 übersteigt. Zum Beispiel unter der Annahme, dass der erste Korrekturbereich Limit_1 der ECC-Schaltung 124 so ausgebildet ist, dass er gleichzeitig vier fehlerhafte Bits korrigiert, wird in Schritt 120 eine Bestimmung vorgenommen, ob der Bitfehler fünf oder mehr fehlerhafte Bits beinhaltet. Wenn der Bitfehler den ersten Korrekturbereich Limit_1 nicht übersteigt, kann in Schritt S140 der Bitfehler korrigiert werden. Wenn jedoch der Bitfehler den ersten Korrekturbereich Limit_1 übersteigt, geht der Verfahrensablauf zu Schritt S150, in dem eine Lesereklamationsoperation ausgeführt wird.
-
Hierbei ist die Lesereklamationsoperation dazu ausgebildet, Daten einer Seite zurückzugewinnen, die aufgrund eines Lesestörungsphänomens beschädigt wurden. Während der Lesereklamationsoperation können Daten eines Speicherblocks, der die beschädigte Seite enthält, zu einem anderen Speicherblock zurückkopiert werden. Zum Beispiel unter der Annahme, dass die Hauptseite PAGE_K des Speicherblocks BLKO von 6 beschädigt ist, können Daten des Speicherblocks BLKO zurück zu einem Speicherblock (z. B. BLK1) kopiert werden. Die Lesereklamationsoperation kann ein Verschieben von Seitendaten in den RAM 126 und ein Kopieren der Daten im RAM 126 zu einem neuen Datenblock beinhalten. Ferner kann die Lesereklamationsoperation eine Rückkopierprogrammoperation beinhalten, die allgemein in einem NAND-Flashspeicher angewendet wird.
-
Wie beschrieben, kann die Lesereklamationsoperation während dem Schritt S150 durchgeführt werden und dann zu Schritt S140 übergehen. Alternativ kann in Schritt S150 eine Seite, die einer Lesereklamation bedarf, markiert werden und dann zu Schritt S140 übergehen, und die Lesereklamationsoperation kann zu einem späteren Zeitpunkt ausgeführt werden. Zum Beispiel kann die Lesereklamationsoperation in Abhängigkeit vom Hochfahren des Speichersystems 100 und/oder in Abhängigkeit vom Auftreten einer Leerlaufzeit im Flashspeicher 130 durchgeführt werden.
-
Das Speichersystem 100 liest gemäß einiger Ausführungsformen der vorliegenden Erfindung aus der Dummyseite PAGE_I parallel zur (zur gleichen Zeit wie die) Hauptseite PAGE_K in Schritt S200. Die Dummyseite PAGE_I kann nach dem Zufallsprinzip ausgewählt werden oder kann gemäß einer zuvor definierten Abfolge im Flashspeicher 130 ausgewählt werden.
-
In Schritt S210 wird eine Dummyleseoperation der Dummyseite PAGE_I ausgeführt, wobei die Dummyseite PAGE_I sich an einer anderen Stelle im Flashspeicher 130 befindet als die Hauptseite PAGE_K. In Schritt S220 bestimmt die ECC-Schaltung 124, ob ein Bitfehler in den aus der Dummyseite PAGE_I gelesenen Daten vorliegt. Wenn kein Fehler vorliegt, sendet dann in Schritt S160 die Speichersteuereinheit 120 die aus der Dummyseite PAGE_I gelesenen Daten zum Host 110. Wenn jedoch ein Bitfehler auftritt, geht der Verfahrensablauf zu Schritt S230 über.
-
In Schritt S230 wird eine Bestimmung vorgenommen, ob die Anzahl an Bitfehlern einen zweiten Korrekturbereich Limit_2 übersteigt. Zum Beispiel unter der Annahme, dass der zweite Korrekturbereich Limit_2 der ECC-Schaltung 124 drei fehlerhafte Bits umfasst (gleichzeitig drei Bits korrigieren kann), wird dann in Schritt S230 eine Bestimmung vorgenommen, ob die Anzahl an Bitfehlern vier oder mehr fehlerhafte Bits beinhaltet. Wenn der Bitfehler den zweiten Korrekturbereich Limit_2 nicht übersteigt, dann werden in Schritt S160 die aus der Dummyseite PAGE_I gelesenen und von der ECC-Schaltung 124 korrigierten Daten zum Host 110 gesendet. Wenn hingegen die Anzahl an Bitfehlern den zweiten Korrekturbereich Limit_2 übersteigt, geht der Verfahrensablauf zu Schritt S40, in dem eine Lesereklamationsoperation in der oben beschriebenen Weise ausgeführt wird. Danach geht der Verfahrensablauf zu Schritt S160.
-
Gemäß einigen Ausführungsformen wird in Abhängigkeit von einer Bestimmung, dass die Hauptseite PAGE_K in einer definierten Anzahl von Vorgängen wiederholt gelesen worden ist, eine Leseoperation an der Dummyseite PAGE_I durchgeführt. Zum Beispiel werden in Abhängigkeit von einem N mal wiederholten Lesen der Hauptseite PAGE_K (wobei N eine ganze Zahl ist) die Hauptseite PAGE_K und die Dummyseite PAGE_I gleichzeitig parallel anschließend an die N-te Leseoperation gelesen. Die Haupt- und Dummyleseoperationen können auf die gleiche Weise wie in 7 beschrieben vorgenommen werden.
-
Verschiedene Ausführungsformen der vorliegenden Erfindung können dabei eine Detektion eines Bitfehlers aufgrund von wiederholten Leseoperationen einer Hauptseite ermöglichen, indem eine Leseoperation einer Dummyseite parallel zu einer Leseoperation der Hauptseite durchgeführt wird. Dementsprechend kann die Hauptseite eine gleiche/ähnliche Lesestörung wie verschiedene Seiten erfahren. Da eine Dummyleseoperation einer Dummyseite durchgeführt wird, die sich von der Hauptseite unterscheidet, können verschiedene Ausführungsformen so ausgebildet sein, dass sie einen Bitfehler detektieren, der in der Dummyseite auftritt.
-
8 ist ein Schaubild, das die Anzahl an Lesespannungen zeigt, die an eine Wortleitung angelegt werden, wodurch ein gleichzeitiges Lesen der Haupt- und Dummyseite ausgelöst wird. Wenn nur eine Hauptseite PAGE_K wiederholt gelesen wird, wird nach drei Leseoperationen keine Lesespannung Vread an die Hauptseite PAGE_K angelegt. Andernfalls wird die Lesespannung Vread an die übrigen Seiten außer der Hauptseite PAGE_K dreimal angelegt. Dies kann bewirken, dass die übrigen Seiten eine Lesestörung erfahren wodurch ein Bitfehler in den übrigen Seiten auftritt.
-
Um einen Bitfehler, der aufgrund einer Lesestörung aufgetreten ist, in den übrigen Seiten zu detektieren, lesen verschiedene Ausführungsformen der vorliegenden Erfindung aus der Hauptseite PAGE_K parallel zum Lesen aus den Dummyseiten PAGE_0, PAGE_62 und PAGE_3, wie es in 8 dargestellt ist.
-
In einem ersten Durchgang wird eine Leseoperation der Hauptseite PAGE_K und einer ersten zufälligen Seite PAGE_0 durchgeführt. Wenn eine Hauptleseoperation durchgeführt wird, wird eine Lesespannung Vread an die übrigen Seiten angelegt und nicht an die Hauptseite PAGE_K. Dementsprechend wird mit Bezug zu 8 „0“ an der Hauptseite PAGE_K markiert und „1“ wird an den übrigen Seiten markiert.
-
Wenn eine Dummyleseoperation an einer ersten zufälligen Seite PAGE_0 ausgeführt wird, wird eine Lesespannung Vread an die übrigen Seiten angelegt und nicht an die erste zufällige Seite PAGE_0. Dementsprechend wird mit Bezug zu 8 „1“ an der Hauptseite PAGE_K und der ersten zufälligen Seite PAGE_0 markiert und „2“ wird an den übrigen Seiten markiert.
-
In einem zweiten Durchgang wird eine Leseoperation an der Hauptseite PAGE_K und einer zweiten zufälligen Seite PAGE_62 durchgeführt. Wenn eine Hauptleseoperation ausgeführt wird, wird eine Lesespannung Vread an die übrigen Seiten und nicht an die Hauptseite PAGE_K angelegt. Dementsprechend wird mit Bezug zu 8 „1“ an der Hauptseite PAGE_K markiert, „2“ wird an der ersten zufälligen Seite PAGE_0 markiert und „3“ wird an den übrigen Seiten markiert.
-
Wenn eine Dummyleseoperation an der zweiten zufälligen Seite PAGE_62 ausgeführt wird, wird eine Lesespannung Vread an die übrigen Seiten und nicht an die zweite zufällige Seite PAGE_62 angelegt. Dementsprechend wird mit Bezug zu 8 „2“ an der Hauptseite PAGE_K markiert, „3“ wird an der ersten und zweiten zufälligen Seite PAGE_0 und PAGE_62 markiert und „4“ wird an den übrigen Seiten markiert.
-
In einem dritten Durchgang wird eine Leseoperation an der Hauptseite PAGE_K und einer dritten zufälligen Seite PAGE_3 auf die gleiche Weise wie oben beschrieben ausgeführt. Wenn eine Dummyleseoperation an der dritten zufälligen Seite PAGE_3 durchgeführt wird, wird der Hauptseite PAGE_K die Lesespannung Vread dreimal zugeführt, der ersten, zweiten und dritten zufälligen Seite PAGE_0, PAGE_62 und PAGE_3 wird die Lesespannung Vread fünfmal zugeführt und den übrigen Seiten wird die Lesespannung Vread sechsmal zugeführt.
-
Auf diese Weise wird gemäß einigen Ausführungsformen der vorliegenden Erfindung Dummyseiten auch eine Lesespannung Vread zugeführt, wenn eine Hauptseite wiederholt gelesen wird. Weil die Lesespannung Vread den Dummyseiten ebenfalls zugeführt wird, kann eine Lesestörung in den Dummyseiten bewirkt werden. Dementsprechend kann es möglich sein, einen Bitfehler aufgrund einer Lesestörung zu detektieren und zu korrigieren. Da ferner eine Leseoperation einer Dummyseite parallel zur Hauptseite durchgeführt wird, kann es möglich sein, einen Bitfehler zu detektieren, der in der Dummyseite aufgetreten ist.