-
QUERVERWEIS AUF ZUGEHÖRIGE
ANMELDUNGEN
-
Diese
Anmeldung beansprucht die Priorität der
koreanischen Patentanmeldung mit der Nummer 2007-7046 ,
angemeldet am 23. Januar 2007, deren Inhalte hierin durch Bezugnahme
in ihrer Gesamtheit aufgenommen sind.
-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft eine Flash-Speichervorrichtung mit
einer Multi-Level-Zelle bzw. Mehrstufen-Zelle. Insbesondere betrifft
die vorliegende Erfindung ein Verfahren zum Durchführen eines
Lesevorgangs bei einer eingestellten Spannungshöhe unabhängig
von einem LSB- oder MSB-Programmiervorgang einer bestimmten Zelle.
-
Im
Allgemeinen wird ein Flash-Speicher in einen NAND- oder NOR-Flash-Speicher
klassifiziert. Hier besitzt der NOR-Flash-Speicher ausgezeichnete
wahlfreie Zugriffszeiteigenschaften, da Speicherzellen an eine Bitleitung
und eine Wortleitung unabhängig angeschlossen sind. Wohingegen
bei dem NAND-Flash-Speicher nur ein Kontakt für einen Zellenstrang
erforderlich ist, da Speicherzellen seriell verbunden sind und somit
der NAND-Flash-Speicher ausgezeichnete Eigenschaften hinsichtlich
des Integrationsgrades aufweist. Dementsprechend wird der NAND-Flash-Speicher
im Allgemeinen bei einem hochintegrierten Flash-Speicher eingesetzt.
-
Kürzlich
ist eine Multi-Bit-Zelle zur Speicherung einer Vielzahl von Daten
in einer Speicherzelle zum Zwecke einer Erhöhung des Integrationsgrades des
Flash-Speichers aktiv untersucht worden.
-
Diese
Speicherzelle wird als Multi-Level-Zelle (MLC = Multi-Level-Cell)
bzw. Mehrstufen-Zelle bezeichnet. Die Speicherzelle zur Speicherung
von einem Bit wird als Single-Level-Zelle (SLC = Single-Level-Cell)
bzw. Einstufen-Zelle bezeichnet.
-
Im
Allgemeinen kann die MLC mehrstufig programmiert werden.
-
1 ist
eine Ansicht, welche eine Schwellenspannungsverteilung in Übereinstimmung
mit einer Programmierung eines MLC-Flash-Speichers illustriert.
-
1 zeigt
die Spannungsverteilung der MLC zur Speicherung von zumindest zwei
Bit, die durch das variable Stufenverfahren programmiert sind.
-
Wie
in 1 gezeigt ist, weisen eine Löschzelle 110 und
eine Programmierzelle 120 Spannungsverteilungen basierend
auf einer Spannung V1 auf, wenn das niedrigstwertige Bit (LSB =
Low Significant Bit) programmiert wird. Eine zusätzliche Flag-Zelle
F ist in jeder Wortleitung des Flash-Speichers vorgesehen, um anzuzeigen,
ob nur das LSB programmiert worden ist (z. B. ein erster Zustand 170)
oder sowohl das LSB als auch das MSB programmiert worden sind (z.
B. ein zweiter Zustand 180).
-
Wenn
die Programmierung des höchstwertigen Bits (MSB = Most
Significant Bit) abgeschlossen ist, wird die Löschzelle 110 in
die Löschzelle 130 und 140 umgewandelt,
und die Programmierzelle 120 wird in Programmierzellen 150 bis 160 umgewandelt. Zusätzlich
wird die Flag-Zelle F auf Grundlage einer Spannung V5 programmiert
(d. h. der zweite Zustand 180), und so wird die Flag-Zelle
F benutzt, um anzuzeigen, dass sowohl das höchstwertige
Bit und das niedrigstwertige Bit programmiert worden sind.
-
2A illustriert
eine Darstellung eines Speicherblocks in einem MLC-Flash-Speicher.
-
Mit
Bezugnahme auf 2A weist ein Speicherzellarray 200 in
dem MLC-Flash-Speicher Speicherzellen 210 und Flag-Zellen 220 auf.
Jede Speicherzelle 212 des Speicherzellenarrays wird zur Speicherung
von Daten von 2 Bit oder mehr konfiguriert. In 2A ist
jede Speicherzelle 212 mit einer Fähigkeit zur
Datenspeicherung von 2 Bit zur Vereinfachung der Darstellung angegeben.
Die Flag-Zellen 200 werden benutzt, um einen Programmierzustand der
Speicherzellen anzuzeigen, welche an der gleichen Wortleitung angeschlossen
sind, d. h. die Speicherzellen auf der gleichen Seite. Jede Wortleitung ist
mit einer Vielzahl von Speicherzellen und einer Flag-Zelle gekoppelt.
-
Die
Flag-Zelle 220 zeigt an, ob ein High-Programmiervorgang
für die korrespondierende Seite ausgeführt worden
ist oder nicht. Wenn sich die Flag-Zelle 220 in dem zweiten
Zustand 180 (siehe 1) befindet,
ist ein High-Programmiervorgang ausgeführt worden, wobei
sowohl die niedrigstwertige Bitseite und höchstwertige
Bitseite programmiert worden sind. Wenn zum Beispiel die Speicherzelle 212 zur
Speicherung von Daten von 2 Bit konfiguriert ist, kann jede der
Wortleitungen WL<0> bis WL<N> einen Vorgang ausführen,
um die niedrigstwertige Bitseite zu programmieren, und einen weiteren
Vorgang ausführen, um die höchstwertige Bitseite
zu programmieren. Wenn die Wortleitung WL<0> sowohl
die niedrigstwertige Bitseite als auch die höchstwertige
Bitseite programmiert hat, wird die Flag-Zelle F auf den zweiten
Zustand 180 programmiert, um anzuzeigen, dass der High-Programmiervorgang durchgeführt
worden ist.
-
In
dem Fall jedoch, in welchem die (k – 1)te Wortleitung WL<k> nur die niedrigstwertige
Bitseite programmiert, behält die Flag-Zelle F<k>, welche in Beziehung
zu der (k – 1)ten Wortleitung WL<k> steht, den
Zustand der nicht programmierten Löschzelle 170 bei,
um anzuzeigen, dass nur die niedrigstwertige Bitseite programmiert
worden ist.
-
2B ist
eine Ansicht, welche eine Programmierungsreihenfolge des Speicherblocks
in 2A illustriert, wobei die Programmierung ein einer
Seiteneinheit erfolgt. Der Speicherblock ist mit den Wortleitungen
WL<0> bis WL<N> verbunden. Jede Wortleitung
ist an eine Vielzahl von Speicherzellen und eine Flag-Zelle, die
zusammen eine physikalische Seite festlegen, angeschlossen.
-
Die
Multi-Level-Zelle 212 ist zur Speicherung von N Bit konfiguriert.
Jede Multi-Level-Zelle 212 durch die korrespondierende
Wortleitung auf N unterschiedliche Zustände programmiert
werden. Demgemäß stellt jede physikalische Seite
N logische Seiten bereit.
-
Der
MLC-Flash-Speicher führt eine Programmierung in einer Einheit
einer logischen Seite in Übereinstimmung mit einer eingestellten
Reihenfolge als Antwort auf eingegebene Daten aus. Hier programmiert
der MLC-Flash-Speicher in der Reihenfolge von einer ersten logischen
Seite zu einer Nten logischen Seite in jeder der Wortleitungen WL<0> bis WL<N>, oder führt
die Programmierung in einer Einheit einer logischen Seite in Übereinstimmung
mit der Reihenfolge aus, die durch Bezugnahme auf eine Interferenz
zwischen umgebenden Speicherzellen usw. eingestellt ist.
-
Ein
gebräuchliches Verfahren weist ein Steuern des Programmierens
dergestalt auf, dass benachbarte Seiten nicht ständig programmiert
werden, wenn das Programmieren in einer Einheit der logischen Seite
ausgeführt wird.
-
Zusätzlich
zählt ein Adressenzähler (nicht gezeigt) eine
Adresse in Übereinstimmung mit der voreingestellten Seitenreihenfolge,
um die Programmierung der eingegebenen Daten durchzuführen.
-
Weiterhin
wird eine Flag-Zelle F in Übereinstimmung mit einem Programmierzustand
der ersten bis Nten logischen Seiten während des Programmiervorgangs
programmiert. Als Resultat zeigt die Flag-Zelle F Informationen über
den Programmierzustand der Wortleitung.
-
Wenn
zum Beispiel die ersten bis Nten logischen Seiten, die zu der ersten
Wortleitung WL<0> in 2B gehören,
alle programmiert worden sind, wird die Flag-Zelle F<0> programmiert, um in
dem zweiten Zustand 180 zu sein. Hier ist die üblicherweise
verwendete Flag-Zelle F als SLC ausgebildet.
-
Wenn,
wie oben erläutert ist, die Speicherzellen Daten von N
Bit speichern, weist die korrespondierende Wortleitung N logische
Seiten auf. Demgemäß ist der Programmierzyklus
N mal durchlaufen worden.
-
Wenn
zum Beispiel die Speicherzelle Daten von vier Bit speichert, wird
die korrespondierende Wortleitung vier logische Seiten aufweisen.
Als Ergebnis muss der Programmiervorgang viermal durchlaufen werden,
um eine Programmierung aller vier logischen Seiten, die mit der
Wortleitung verbunden sind, abzuschließen. In einem solchen
Fall sollte die Flag-Zelle F zwei SLC aufweisen, um vier Programmierzustände
anzuzeigen.
-
Bei
dem Lesevorgang für die obige Flash-Speicherzelle werden
zuerst die Daten der Flag-Zelle F gelesen, um die Programmierzustandsinformation
zu erhalten. Eine geeignete Schwellenspannung wird unter Verwendung
der Programmierzustandsinformation der Flag-Zelle ausgewählt.
Die ausgewählte Schwellenspannung wird dann benutzt, um
die in der Speicherzelle gespeicherten Daten auszulesen.
-
Um
das obige Verfahren durchzuführen, sollte die Anzahl der
in der Flag-Zelle F enthaltenen SLC gemäß der
Anzahl an Bits erhöht werden, für deren Speicherung
die Speicherzelle konfiguriert ist. Dies kann die Anzahl von Speicherzellen
reduzieren, welche zur Speicherung von Daten verwendet werden können.
-
Da
eine Spannungshöhe zum Lesen von in der Speicherzelle gespeicherten
Daten festgelegt wird, nachdem der Programmierzustand durch Auslesen
der Flag-Zelle F verifiziert worden ist, würde es zusätzlich
schwierig sein, die in der Speicherzelle gespeicherten Daten auszulesen,
wenn die Daten in der Flag-Zelle F einen Fehler aufweisen. Außerdem
kann eine für den Lesevorgang erforderliche Zeit vergrößert
sein, wenn die Anzahl der Flag-Zelle F erhöht wird.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft eine nichtflüchtige MLC-Speichervorrichtung,
welche ohne eine Flag-Zelle betrieben werden kann, wo die Flag-Zelle
den Programmierzustand einer Speicherzelle anzeigt. Die nichtflüchtige
Speichervorrichtung kann eine NAND- oder NOR-Flash-Speichervorrichtung
sein.
-
In
einer Ausführung weist eine Flash-Speichervorrichtung ein
Speicherzellenarray auf, welches mit mindestens einem Block ausgebildet
ist, der eine Vielzahl von physikalischen Seiten aufweist, wobei jede
physikalische Seite eine Vielzahl von logischen Seiten festlegt.
Eine Steuereinrichtung ist dazu konfiguriert, einen Dummydaten-Programmiervorgang einzuleiten,
um irgendeine logische Seite des Blocks, der noch nicht programmiert
worden ist, zu programmieren, bevor es einem Lesebefehl gestattet
wird, ausgeführt zu werden. Die Steuereinrichtung weist einen
Speicherabschnitt zur Speicherung von Dummydaten zur Verwendung
bei dem Dummydaten-Programmiervorgang auf. Die Steuereinrichtung ist
dazu eingerichtet, Dummydaten zur Verwendung bei dem Dummydaten-Programmiervorgang
zufällig zu generieren, wobei der Block keine Flag-Zelle
aufweist. Das Speicherzellenarray weist zumindest eine redundante
Seite zur Speicherung von Dummydaten während des Dummydaten-Programmiervorgangs auf.
-
Eine
Ausführung betrifft ein Verfahren zum Ausführen
eines Lesevorgangs bei einer Flash-Speichervorrichtung mit einem
Speicherzellenarray, das zumindest einen Block aufweist, wobei der
Block eine Vielzahl von Seiten aufweist. Das Verfahren umfasst die
folgenden Verfahrensschritte: Empfangen eines Lesebefehls zum Lesen
von Daten von einer ausgewählten Seite in dem Block; Festlegen,
ob der Block irgendeine Seite aufweist, die nicht programmiert worden
ist, oder nicht; Durchführen eines Dummydaten-Programmiervorgangs
auf zumindest einer Seite, welche als nicht programmiert festgelegt
worden ist; und Ausführen des Lesebefehls zum Lesen der
Daten der ausgewählten Seite, nachdem der Dummydaten-Programmiervorgang
vervollständigt worden ist.
-
In
einer Ausführung programmiert der Dummydaten-Programmiervorgang
Dummydaten auf alle Seiten, welche als nicht programmiert festgelegt sind.
Der Block weist eine Vielzahl von physikalischen Seiten auf, wobei
jede physikalische Seite eine Vielzahl von logischen Seiten festlegt,
wobei der Verfahrensschritt Festlegen ein Festlegen aufweist, ob alle
logischen Seiten in dem Block programmiert worden sind oder nicht.
Der Dummydaten-Programmiervorgang programmiert Dummydaten auf eine
redundante Seite.
-
Eine
weitere Ausführung betrifft ein Verfahren zum Programmieren
von Daten in einer Flash-Speichervorrichtung mit einem Speicherzellenarray
mit zumindest einem Block, wobei der Block eine Vielzahl von Seiten
aufweist. Das Verfahren umfasst die folgenden Verfahrensschritte:
Empfangen eines Programmierbefehls zum Programmieren einer Vielzahl
von Seiten in dem Block; Programmieren der Vielzahl von Seiten in
einer vorher festgelegten Reihenfolge; und Speichern einer Adresse,
welche zu einer Seite korrespondiert, die als letzte unter der Vielzahl
von Seiten programmiert worden ist. Die Vielzahl von Seiten wird
in einer aufsteigenden Reihenfolge programmiert.
-
Eine
noch weitere Ausführung betrifft ein Verfahren zum Ausführen
eines Lesevorgangs in einer Flash-Speichervorrichtung mit einem
Speicherzellenarray mit zumindest einem Block, wobei der Block eine
Vielzahl von Seiten aufweist. Das Verfahren umfasst folgende Ver fahrensschritte:
Empfangen eines Lesebefehls zum Lesen einer ausgewählten Seite
in dem Block; Festlegen, ob alle Seiten in dem Block programmiert
worden sind oder nicht; Durchführen eines Dummydaten-Programmiervorgangs auf
irgendeiner Seite in dem Block, welche als nicht programmiert festgelegt
worden ist; und Ausführen des Lesebefehls zum Lesen der
ausgewählten Seite, nachdem der Dummydaten-Programmiervorgang durchgeführt
worden ist. Der Dummydaten-Programmiervorgang programmiert Dummydaten
auf die Seiten, welche als noch nicht programmiert festgelegt worden
sind. Alternativ programmiert der Dummydaten-Programmiervorgang
Dummydaten auf eine redundante Seite in dem Block.
-
In
einer noch weiteren Ausführung weist eine Flash-Speichervorrichtung
ein Speicherzellenarray, eine Steuereinrichtung, Seitenpuffer, einen
X-Dekoder und einen Y-Dekoder auf. Das Speicherzellenarray besitzt
zumindest einen Block mit einer Vielzahl von Seiten. Die Steuereinrichtung
unterscheidet, ob alle Seiten des Blocks in Übereinstimmung
mit einem Lesebefehl programmiert sind oder nicht, führt
eine Dummydaten-Programmierung einer Seite durch, welche in Übereinstimmung
mit dem Unterscheidungsergebnis nicht programmiert ist, und gibt
ein Steuersignal zur Durchführung eines Lesevorgangs in Übereinstimmung
mit dem Lesebefehl aus. Die Seitenpuffer programmieren oder lesen
Daten des Speicherzellenarrays unter Steuerung der Steuereinrichtung.
Der X-Dekoder dekodiert eine Adresse einer Seite als Antwort auf
einen Programmierbefehl oder den Lesebefehl der Steuereinrichtung,
und gibt eine Programmierspannung oder eine Lesespannung durch Aktivierung
einer Seite aus, die in Übereinstimmung mit dem Dekodierresultat
ausgewählt ist. Der Y-Dekoder dekodiert eine Spaltenadresse
als Antwort auf den Programmierbefehl oder den Lesebefehl der Steuereinrichtung
und gibt Seitenpuffersteuersignale und ein Dateneingabe/-ausgabesteuersignal
in Übereinstimmung mit dem Dekodierergebnis aus.
-
Wie
oben beschrieben ist, wird in einer Flash-Speichervorrichtung und
einem Verfahren zum Betreiben derselben der vorliegenden Erfindung
ein Lesevorgang ohne eine Flag-Zelle zum Zeigen eines Programmierzustands
ausgeführt. Demgemäß kann die Größe
eines Chips, der im Zusammenhang mit der Flash-Speichervorrichtung
steht, reduziert werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine Ansicht, welche eine Schwellenspannungsverteilung in Übereinstimmung
mit einer Programmierung eines MLC-Flash-Speichers illustriert;
-
2A illustriert
eine Darstellung eines Speicherblocks in einem MLC-Flash-Speicher;
-
2B ist
eine Ansicht, welche eine Programmierreihenfolge eines Blocks in 2A in Übereinstimmung
mit der Seite illustriert;
-
3A ist
ein Flussdiagramm, welches einen Programmiervorgang eines Flash-Speichers
gemäß einer Ausführung der vorliegenden
Erfindung illustriert; und
-
3B illustriert
einen Speicherblock und eine Steuereinrichtung gemäß einer
Ausführung der vorliegenden Erfindung.
-
BESCHREIBUNG SPEZIFISCHER
AUSFÜHRUNGEN
-
3A ist
ein Flussdiagramm, welches einen Programmiervorgang einer nichtflüchtigen
Speichervorrichtung (z. B. Flash-Speichervorrichtung) gemäß einer
Ausführung der vorliegenden Erfindung illustriert. 3B illustriert
einen Speicherblock und eine Steuereinrichtung gemäß einer
Ausführung.
-
Mit
Bezug auf
3B weist die Flash-Speichervorrichtung
der vorliegenden Ausführung ein Speicherzellenarray (nicht
gezeigt) mit zumindest einem Block
320 und einer Steuereinrichtung
310 auf, welche
umgebende Schaltkreise
370 so steuert, dass ein Programmiervorgang
ausgeführt wird, indem eingegebene Daten als Reaktion auf
eine Adresse einer Seite korrespondierend zu einer vorher eingestellten
Wortleitung zu dem Block
320 übertragen werden.
Eine Konfiguration des Speicherzellenarrays (oder Block
320)
wird ausführlicher in dem
US-Patent
mit der Nummer 7,193,911 beschrieben, welches hierin durch
Bezugnahme aufgenommen ist. Das in dem '911-Patent beschriebene
Speicherzellenarray bezieht sich auf die NAND-Flash-Speichervorrichtung.
Das Speicherzellenarray (oder der Speicherblock) ist nicht auf eine
NAND- Konfiguration in der vorliegenden Ausführung begrenzt
und kann weitere Konfigurationen, z. B. eine NOR-Konfiguration,
aufweisen.
-
Der
Speicherblock 320 mit einer Vielzahl von Wortleitungen
WL<0> bis WL<n> verbunden. Jede Wortleitung
in an eine Vielzahl von Speicherzellen 312 angeschlossen,
welche eine physikalische Seite festlegen. Die Speicherzelle 312 ist
eine Multi-Level-Zelle, welche zur Speicherung von N Bit ausgelegt
ist. Jede Multi-Level-Zelle kann durch die korrespondierende Wortleitung
auf N unterschiedliche Zustände programmiert werden. Dementsprechend kann
jede physikalische Seite bis zu einer Anzahl N logischer Seiten
festlegen, abhängig davon, wie viele Male die physikalische
Seite programmiert worden ist. Die Daten in der Speicherzelle 312 (oder
in dem Block 320) werden in Übereinstimmung mit
einem empfangenen Lesebefehl ausgelesen.
-
Die
Steuereinrichtung 310 steuert den Programmiervorgang in Übereinstimmung
mit Daten, welche von den umgebenden Schaltkreisen 370 übertragen
werden, und einer Reihenfolge, die durch einen Programmierbefehl
eingestellt ist. In einer Ausführung speichert die Steuereinrichtung 310 die Adresse
einer Seite, welche zuletzt programmiert worden ist. Die gespeicherte
Adresse kann Informationen sowohl über die physikalische
Seite als auch die logische Seite enthalten. Der Programmiervorgang
beginnt im Allgemeinen von der ersten Wortleitung WL<0> aus. Der Programmiervorgang
wird in einer Einheit einer logischen Seite so durchgeführt, dass
eine ausgewählte logische Seite jedes Mal programmiert
wird. Die Steuereinrichtung 310 kann zur Programmierung
der logischen Seiten in einer vorher festgelegten Reihenfolge konfiguriert
sein.
-
Zum
Beispiel kann ein Programmiervorgang die logischen Seiten in Folge
von einer ersten logischen Seite an bis zu einer Nten logischen
Seite einer gegebenen Wortleitung (z. B. WL<0>)
programmieren. Sobald alle logischen Seiten der Wortleitung programmiert
worden sind, werden die logischen Seiten der nächsten Wortleitung
in Folge programmiert (z. B. von einer ersten Seite an bis zu einer
Nten Seite der nächsten Wortleitung WL<1>).
Alternativ kann der Programmiervorgang in einer vorher festgelegten Reihenfolge,
die nicht der Reihe nach verläuft, durchgeführt
werden.
-
Im
Allgemeinen wird die Programmierreihenfolge im Voraus eingestellt,
indem ein Algorithmus verwendet wird, welcher den Wirkungsgrad der
Datenspeicherung maximiert. Bei einem derartigen Verfahren werden
die benachbarten logischen Seiten nicht fortwährend programmiert,
um die Interferenz bzw. gegenseitige Störung der benachbarten
logischen Seiten zu reduzieren.
-
Zum
Beispiel wird die erste Seite jeder Wortleitung WL<0> bis WL<N> in Folge programmiert, und
dann wird die zweite Seite jeder Wortleitung WL<0> bis
WL<N> programmiert. Mit
anderen Worten, jedes Mal wird eine unterschiedliche physikalische
Seite so programmiert, dass die benachbarten logischen Seiten nicht
in Folge programmiert werden.
-
Die
Steuereinrichtung 310 steuert, wie ein Programmiervorgang
mit der Unterstützung der umgebenden Schaltkreise 370,
zum Beispiel ein Seitenpuffer, ein X-Dekoder, ein Y-Dekoder und
eine Spannungsversorgungsschaltung, ausgeführt wird. In
einer Ausführung speichert die Steuereinrichtung 310 eine
Adresse der letzten für einen gegebenen Programmiervorgang
programmierten Seite. In einer Implementierung wird nur die physikalische
Seitenadresse (d. h. die Wortleitungsadresse) gespeichert. In einer
weiteren Implementierung werden sowohl die physikalischen als auch
die logischen Seitenadressen gespeichert. Die Steuereinrichtung 310 benutzt
die gespeicherte Seitenadresse zur Festlegung, welche Seite in einem
nachfolgenden Programmiervorgang zu programmieren ist.
-
In
der vorliegenden Ausführung ist die Steuereinrichtung 310 zur
Handhabung eines Lesebefehls wie in 3A gezeigt
konfiguriert. Wenn die umgebenden Schaltkreise 370 einen
Lesebefehl empfangen (Verfahrensschritt S301), greift die Steuereinrichtung 310 auf
die in der Steuereinrichtung gespeicherte Seitenadresse zu, um festzulegen,
welches die nächste Seite in dem nächsten Programmiervorgang
zur Programmierung ist (Verfahrensschritt S303). Demgemäß kann
die gespeicherte Seitenadresse auf die Seite zeigen, welche zuletzt
programmiert worden ist, oder auf die Seite, welche als nächste
gemäß Implementierungen zu programmieren ist.
Auch kann die gespeicherte Seite eine physikalische Seite, eine
logische Seite oder beide gemäß Implementierungen
angeben.
-
Im
Verfahrensschritt S305 wird festgelegt, ob alle logischen Seiten
in dem Block programmiert worden sind oder nicht. Eine Art und Weise
für diese Festlegung besteht darin, die in der Steuereinrichtung
gespeicherte Seitenadresse zu verwenden. Wenn zum Beispiel die Seitenadresse
auf die letzte logische Seite der letzten physikalischen Seite in dem
Block als diejenige Seite zeigt, welche als letzte programmiert
worden ist, dann wird eine Festlegung getroffen, dass alle logischen
Seiten in dem Block programmiert worden sind.
-
Im
Verfahrensschritt S309 steuert die Steuereinrichtung 310 die
umgebenden Schaltkreise 370 zur Ausführung des
Lesebefehls, wenn festgelegt worden ist, dass alle Seiten in dem
Block programmiert sind. Da hier die Speicherzelle zur Speicherung von
N Bit 2N Spannungslevel bzw. -höhen
aufweist, wenn jede Seite des Blocks 320 programmier ist, steuert
die Steuereinrichtung 310 den Lesevorgang so, dass der
Lesevorgang unter Verwendung einer Lesespannung korrespondierend
zu den eingestellten Spannungshöhen durchgeführt
wird.
-
Wenn
festgelegt worden ist, dass alle Seiten in dem Block nicht programmiert
worden sind, führt die Steuereinrichtung 310 im
Verfahrensschritt S307 eine Dummydaten-Programmierung zur „Dummyprogrammierung"
der logischen Seiten durch, die noch nicht programmiert sind. Das
heißt, der Dummydaten-Programmiervorgang programmiert Daten
in eine übrig gebliebene Seite des Blocks 320,
welche noch nicht programmiert worden ist. Der Dummydaten-Programmiervorgang
programmiert Dummydaten in Folge von der Seite korrespondierend
zu der in der Steuereinrichtung 310 gespeicherten Adresse
zu der letzten Seite des Blocks 320. Alle Wortleitungen WL<0> bis WL<N> werden programmiert,
wenn die Dummydatenprogrammierung erfolgt, und so werden die Wortleitungen
WL<0> bis WL<N> auf einen Endspannungslevel
konvertiert, d. h. in einen auslesbaren Zustand.
-
Dieser
Dummy-Programmiervorgang verschiebt die Schwellenspannungen der
Speicherzellen, welche zuvor nicht programmiert waren. Als Ergebnis
kann die Speichereinrichtung den geeigneten Einstellspannungslevel
für den Lesevorgang auswählen, ohne die Programmierzustandsinformationen
der Flag-Zellen zu verwenden.
-
Hiernach
wird der obige Vorgang im Detail mit Bezugnahme auf 3B beschrieben.
Der Programmiervorgang beginnt, wenn die Steuereinrichtung 310 einen
Programmierbefehl empfängt. Der Programmiervorgang wird
bis zu einer Kten logischen Seite der (N + 1)ten Wortleitung in Übereinstimmung
mit dem Programmierbefehl ausgeführt. Die (N + 1)te Wortleitung
ist die letzte Wortleitung WL<N>, da die erste Wortleitung
WL<0> ist. Der Programmiervorgang
endet, nachdem die Kte logische Seite programmiert worden ist.
-
Die
Steuereinrichtung 310 speichert die Information, dass die
nächste zu programmierende Seite bei dem nachfolgenden
Programmiervorgang eine (k + 1)te logische Seite von WL<N> ist. Dies kann erfolgen,
indem die Adresse der (k + 1)ten Seite oder der kten Seite gemäß der
Implementierung gespeichert wird. Wenn die Adresse der kten Seite
gespeichert wird, muss die Steuereinrichtung dementsprechend so
konfiguriert werden, dass zu verstehen ist, dass die gespeicherte
Adresse auf die zuletzt programmierte Seite zeigt und nicht auf
die Seite, welche als nächste zu programmieren ist.
-
In
dem vorliegenden Beispiel wurde die Programmierung bis zu der Kten
logischen Seite 330 von WL<N> ausgeführt.
Das heißt, alle logischen Seiten in dem Block 320 sind
programmiert worden mit Ausnahme einer Gruppe von logischen Seiten 340 (von der
(K + 1)ten bis zu der Nten) in WL<N>. Wenn von den umgebenden
Schaltkreisen 370 ein Lesebefehl zum Auslesen von Daten
in der Kten logischen Seite 350 der ersten Wortleitung
WL<0> im Verfahrensschritt
S301 empfangen wird, greift die Steuereinrichtung 310 auf
die Adresse zu, welche nach dem letzten Programmiervorgang gespeichert
worden ist, um festzulegen, dass die Seite als letzte programmiert wurde.
In Abhängigkeit von der Implementierung kann die gespeicherte
Adresse die Seite sein, welche als nächste zu programmieren
ist. Die Steuereinrichtung kann die gespeicherte Adresse zur Festlegung benutzen,
ob alle logische Seiten in dem Block programmiert worden sind oder
nicht.
-
In
diesem Fall legt die Steuereinrichtung 310 fest, dass die
Gruppe logischer Seiten 340 (d. h. die (K + 1)ten bis Nten
logischen Seiten von WL<N>) nicht programmiert
worden sind. Die Steuereinrichtung 310 steuert die umgebenden
Schaltkreise 370 zur Programmierung der Dummydaten in die
redundanten Seiten, so dass die (K + 1)ten bis Nten logischen Seiten
von WL<N> in Übereinstimmung
mit der Dummydaten-Programmierung versehen werden. Hier werden die
Dummydaten in einen Speicherabschnitt 360, welcher in der
Steuereinrichtung 310 angeordnet ist, im Voraus gespeichert.
In einer anderen Ausführung kann jedes Datum in den Dummydaten „1"
oder „0" sein, d. h. die Dummydaten sind Daten ohne Bedeutung.
-
Nachdem
die Dummydaten-Programmierung eine „Dummy-Programmierung"
der Nten logischen Seite von WL<N> abgeschlossen hat,
ermöglicht die Steuereinrichtung 310 ein Auslesen
der Daten aus der Kten logischen Seite von WL<0>.
Da hier all Seiten programmiert worden sind, benutzt der Lesevorgang
eine Lesespannung, welche zu 2N Spannungshöhen
korrespondiert.
-
Jeder
Bezug in dieser Spezifikation auf „eine einzelne Ausführung", „eine
Ausführung", „Beispielausführung", etc.
bedeutet, dass ein besonderes Merkmal, ein besonderer Aufbau oder
eine besondere Eigenschaft im Zusammenhang mit der Ausführung
in zumindest einer Ausführung der Erfindung eingeschlossen
ist. Das Auftreten derartiger Phrasen an verschiedenen Stellen in
der Spezifikation bedeutet nicht notwendigerweise, dass sich alle
auf die gleiche Ausführung beziehen. Wenn weiterhin ein
besonderes Merkmal, eine besondere Struktur oder Eigenschaft im
Zusammenhang mit irgendeiner Ausführung beschrieben ist,
wird vorgebracht, dass es innerhalb des Bereichs eines Fachmanns
liegt, ein derartiges Merkmal, eine derartige Struktur oder Eigenschaft
im Zusammenhang mit weiteren der Ausführungen zu bewirken.
-
Obwohl
Ausführungen mit Bezug auf eine Anzahl von illustrativen
Ausführungen davon beschrieben worden sind, sollte es selbstverständlich sein,
dass zahlreiche weitere Modifikationen und Ausgestaltungen von einem
Fachmann ausführbar sind, welche im Sinn und Bereich der
Prinzipien dieser Offenbarung liegen. Insbesondere sind verschiedene
Variationen und Modifikationen bei den Baugruppenteilen und/oder
Anordnungen der Gegenstandskombinationsanordnung innerhalb des Rahmens
der Offenbarung, der Zeichnungen und angefügten Ansprüche
möglich. Zusätzlich zu den Variationen und Modifikationen
bei den Baugruppenteilen und/oder Anordnungen sind für
den Fachmann auch alternative Verwendungen offensichtlich.
-
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 2007-7046 [0001]
- - US 7193911 [0041]