-
Die
Erfindung bezieht sich auf einen Speicherbaustein, insbesondere
einen nichtflüchtigen
NAND-Flash-Speicher, mit Verifizierfunktionen für Datenbits, die während den
Betriebsarten Programmieren, Löschen
und Rückkopieren
in Seitenpuffern abgelegt sind.
-
Ein
NAND-Flash-Speicher, der einen Typ eines nichtflüchtigen Speichers darstellt,
umfasst Seitenpuffer, die einer ausgewählten Seite während eines
Lesevorgangs zugeordnete Daten (d. h. Seitendaten) zwischenspeichern.
Dies wird auch als „Abtastvorgang" der Seitenpuffer
bezeichnet. Ein Speichervorgang von während eines Programmiervorgangs
extern zugeführten
Daten (d. h. von Programmierdaten) wird als „Datenladevorgang" der Seitenpuffer
bezeichnet. Zudem sind die Seitenpuffer dafür zuständig, ein ungewolltes Programmieren
von vor Programmieren gesperrten Speicherzellen oder programmierten
Speicherzellen zu verhindern. Während ein
Verifizierungsvorgang abläuft,
um festzustellen, ob eine programmierte oder gelöschte Speicherzelle mit ihrer
Schwellenspannung einen bestimmten oder gewünschten Pegel erreicht hat,
detektieren die Seitenpuffer Datenbits von Speicherzellen einer
ausgewählten
Seite und speichern diese Spannungswerte zwischen. Anschließend werden
die Datenbits der Seitenpuffer an eine Bestanden/Nichtbestanden-Prüfschaltung übergeben,
um zu bestätigen, dass
diese Datenbits "Pass"-Datenbits sind,
die einen erfolgreichen Programmier- oder Löschvorgang anzeigen. Solche
und ähnliche
NAND-Flash-Speicher bzw. Seitenpuffer sind in den Patentschriften
US 5.790.458 ,
US 5.761.132 ,
US 5.712.818 und
US 6.282.121 offenbart.
-
1 zeigt
einen solchen herkömmlichen Seitenpuffer.
Dieser Seitenpuffer ist mit einem Datenleitungspaar BLe und BLo
verbunden und umfasst ein Zwischenspeicherpaar LAT1 und LAT2 (Haupt-Zwischenspeicher,
Cache-Zwischenspeicher). NMOS-Transistoren M1 bis M4 bilden einen Bitleitungsauswahl-
und Vorspannungsschaltkreis, der eine der beiden Bitleitungen mit
einem Abtastknoten SO verbindet und die andere Bitleitung in einen
floatenden, d. h. potential-schwebenden
Zustand versetzt. Zwischen die Bitleitung BLe und den Abtastknoten
SO ist ein NMOS-Transistor M1 eingeschleift, der auf ein Steuersignal
BLSHFe reagiert. Zwischen die Bitleitung BLo und den Abtastknoten
SO ist ein NMOS-Transistor M2 eingeschleift, der auf ein Steuersignal
BLSHFo reagiert. Ein NMOS-Transistor M3 ist zwischen die Bitleitung
BLe und eine Steuersignalleitung VIRPWR eingeschleift und ein NMOS-Transistor
M4 ist zwischen die Bitleitung BLo und die Steuersignalleitung VIRPWR
eingeschleift. Die NMOS-Transistoren M3 und M4 reagieren auf die Steuersignale
VBLe bzw. VBLo.
-
Zwischen
eine Versorgungsspannung VCC und den Abtastknoten SO ist ein PMOS-Transistor M5
eingeschleift, der auf ein Steuersignal PLOAD reagiert. Ein PMOS-Transistor
M6, der von einem Signal PBRST gesteuert wird, ist zwischen die
Versorgungsspannung VCC und einen Hauptzwischenspeicherknoten nB
des Hauptzwischenspeichers LAT1 eingeschleift. Zwischen den Zwischenspeicherknoten
nB und eine Massespannung VSS sind NMOS-Transistoren M7 und M8 in
Reihe eingeschleift, die auf einen Spannungspegel am Abtastknoten
SO bzw. auf ein Steuersignal PBLHCM reagieren. Ein PMOS-Transistor
M9 ist zwischen die Versorgungsspannung VCC und einen Aus gangsanschluss
nWDO eingeschleift und wird abhängig
vom logischen Zustand eines Hauptzwischenspeicherknotens B leitend
oder sperrend geschaltet. Der Ausgangsanschluss nWDO führt zu einer
Bestanden/Nichtbestanden-Prüfschaltung,
die in 2 dargestellt ist. Der logische Zustand des Ausgangsanschlusses
nWDO ist komplementär
zum logischen Zustand des Hauptzwischenspeicherknotens B. So ist
beispielsweise der Ausgangsanschluss nWDO mit der Versorgungsspannung
VCC verbunden, wenn der Hauptzwischenspeicherknoten B auf einem
niedrigen Pegel liegt. Andernfalls ist der Ausgangsanschluss nWDO
von der Versorgungsspannung VCC elektrisch isoliert und in einem
floatenden (potentialschwebenden) Zustand, wenn der Hauptzwischenspeicherknoten
B auf einen hohen Pegel gesetzt ist.
-
Ein
NMOS-Transistor M10 ist zwischen den Abtastknoten SO und den Hauptzwischenspeicherknoten
B des Hauptzwischenspeichers LAT1 eingeschleift und reagiert auf
ein Signal BLSLT. Zwischen einen internen Knoten ND1 und den Hauptzwischenspeicherknoten
B ist ein NMOS-Transistor M11 eingeschleift, der auf ein Signal
PBDO reagiert. Ein PMOS-Transistor M12 ist zwischen die Versorgungsspannung
VCC und einen Cache-Zwischenspeicherknoten A des Cache-Zwischenspeichers
LAT2 eingeschleift und reagiert auf ein Signal PBSET. Ein NMOS-Transistor
M13 ist zwischen den Cache-Zwischenspeicherknoten
A und den Abtastknoten SO eingeschleift und reagiert auf ein Signal
PDUMP. Zwischen den Cache-Zwischenspeicherknoten A und VSS sind
zwei NMOS-Transistoren M14 und M15 in Reihe eingeschleift. Die NMOS-Transistoren
M14 und M15 reagieren auf den logischen Zustand des Abtastknotens
SO bzw. auf ein Signal PBLCHC. Zwischen den internen Knoten ND1
und einen Cache-Zwischenspeicherknoten nA, einem Gegenknoten zum
Cache-Zwischenspeicherknoten A, des Cache-Zwischenspeichers LAT2
ist ein NMOS-Transistor M16 und zwischen den internen Knoten ND1
und den Cache-Zwischenspeicherknoten
A ist ein NMOS-Transistor M17 eingeschleift. Die NMOS-Transistoren
M16 und M17 sind komplementär
zueinander und reagieren auf Datensignale DI bzw. nDI.
-
Wenn
ein Programmierdatenbit mit dem Wert „1" (Binärcode) in die Seitenpufferschaltung
gemäß 1 geladen
werden soll, wird das Datensignal DI logisch auf einen hohen Pegel
gesetzt, während
das Datensignal nDI auf einen niedrigen Pegel eingestellt wird.
Der interne Knoten ND1 ist über NMOS-Transistoren M18
und M19 mit der Datenleitung DLi verbunden, wobei die Transistoren
M18, M19 eine Spalten-Torschaltung bilden und auf Spaltenauswahlsignale
YA bzw. YB reagieren. Zwischen die Datenleitung DLi und die Massespannung
VSS ist ein NMOS-Transistor M20 eingeschleift, der auf ein Signal
DLD reagiert.
-
Der
in
1 dargestellte Seitenpuffer kann in den Betriebsarten
Löschen,
Programmieren, Lesen und Rückkopierprogrammieren,
kurz Rückkopieren,
betrieben werden. Das Rückkopieren
bezieht sich auf einen Vorgang, bei dem Daten, die auf einer Seite
gespeichert sind, auf eine andere Seite verschoben werden, und wurde
in der Patentschrift
US 5.996.041 vorgeschlagen.
-
Beim
Programmieren mit dem Seitenpuffer gemäß 1 wird ein
Programmierdatenbit in den Zwischenspeicher LAT2 geladen. So wird
beispielsweise, wenn das Programmierdatenbit den Wert „1" hat, das Datensignal
DI auf einen hohen Pegel gesetzt, während das Datensignal nDI auf
einen niedrigen Pegel gesetzt wird. Der NMOS-Transistor M16 wird
dadurch leitend geschaltet, während
der NMOS-Transistor M17 sperrend geschaltet wird. Gleichzeitig werden
die NMOS-Transistoren M18 und M19 durch die Spaltenauswahlsignale
YA und YB leitend geschaltet, wodurch der Zwischenspeicherknoten
nA durch die Transistoren M18 und M19 mit der Datenleitung DLi elektrisch
verbunden wird. Zum Laden des Programmierdatenbits ist die Datenleitung
DLi über
einen NMOS-Transistor M20 mit der Massespannung verbunden. Dadurch
wird ein Programmierdatenbit mit dem Wert „1" in den Zwischenspeicherknoten A geladen.
Wenn das Programmierdatenbit den Wert „0" hat, ist das Datensignal DI auf einem
niedrigen Pegel, während
das Datensignal nDI einen hohen Pegel aufweist. Sobald der NMOS-Transistor
M17 den Zwischenspeicherknoten A mit der auf Massenspannungspotential
liegenden Datenleitung DLi verbindet, wird das Programmierdatenbit
mit dem Wert „0" in den Zwischenspeicherknoten
A geladen. Durch die zuvor beschriebene Vorgehensweise werden alle
Programmdatenbits sequentiell in die Seitenpuffer geladen.
-
Nach
Beendigung des Ladevorgangs des Programmierdatenbits in den Cache-Zwischenspeicher
LAT2 wird das Datenbit zum Hauptzwischenspeicher LAT1 übertragen.
Zuerst wird der Hauptzwischenspeicher LAT1 durch ein Durchschalten
des NMOS-Transistors M6 initialisiert und der Abtastknoten SO wird
durch den PMOS-Transistor M5 auf einen hohen Pegel geladen. Dann
wird der NMOS-Transistor M13 leitend geschaltet, um das Programmierdatenbit
vom Zwischenspeicher LAT2 zum Zwischenspeicher LAT1 zu übertragen.
Wenn das Programmierdatenbit mit dem Wert „1" in den Zwischenspeicher LAT2 geladen
wurde, wird es im Knoten B des Zwischenspeichers LAT1 durch das Durchschalten
der NMOS-Transistoren M7 und M8 zwischengespeichert. Im Gegensatz
dazu wird, wenn ein Programmierdatenbit mit dem Wert „0" in den Cache-Zwischenspeicher
LAT2 geladen wurde, der NMOS-Transistor M7 sperrend geschaltet,
wodurch der Knoten B des Zwischenspeichers LAT1 auf seinem Ausgangswert
bleibt, auch wenn der NMOS-Transistor M8 durch das Steuersignal PBLCHM
leitend geschaltet wird.
-
Mit
dem in den Hauptzwischenspeicher LAT1 geladenen Programmierdatenbit
wird eine ausgewählte
Bitleitung programmiert, durch die eine ausgewählte Speicherzelle programmiert
wird, während alle
nicht ausgewählten
Speicherzellen für
eine Programmierung gesperrt sind. Während des Programmiervorgangs
mit dem im Hauptzwischenspeicher LAT1 befindlichen Datenbit wird
der Cache-Zwischenspeicher
LAT2 mit dem nächsten
Programmierdatenbit geladen.
-
Während eines
Lesevorgangs oder eines Programmierverifizierungsvorgangs detektiert
der Hauptzwischenspeicher LAT1 Datenbits, die in Speicherzellen
einer ausgewählten
Seite gespeichert sind. Bei einem Rückkopiervorgang oder einem Löschverifizierungsvorgang übernimmt
diese Aufgabe der Cache-Zwischenspeicher
LAT2.
-
Sobald
während
eines Lesevorgangs oder eines Programmierverifizierungsvorgangs
die Bitleitungen BLe und BLo und der Abtastknoten SO entladen sind,
wird eine ausgewählte
Bitleitung (z. B. BLe) in einen floatenden Zustand versetzt, nachdem
sie auf einen vorbestimmten Spannungswert geladen wurde. Währenddessen
wird die Spannung der Bitleitung verringert oder bleibt auf ihrem
vorherigen Wert. Solange der NMOS-Transistor M1 leitend ist, wird
der Knoten SO durch den PMOS-Transistor M5 mit einem Strom versorgt.
Ist die ausgewählte
Speicherzelle eine „An-Zelle", fließt der Strom
des Knotens SO über
einen Kanal der ausgewählten
Speicherzelle ab, was zu einem Absinken der Spannung am Knoten SO
unter den Schwellwert des NMOS-Transistors M7 führt. Auch wenn der NMOS-Transistor
M8 leitend geschaltet ist, verändert
der Zwischenspeicher LAT1 seinen Spannungszustand nicht. Wenn die ausgewählte Speicherzelle
eine „Aus-Zelle" ist, trägt der Strom
des PMOS-Transistors M5 zu einem allmählichen Ansteigen der Spannung
am Knoten SO bis zu einem über
dem Spannungsschwellwert des NMOS-Transistors M7 liegenden, höheren Spannungspegel
bei. Während
der NMOS-Transistor M8 leitend ist, ist der Zwischenspeicherknoten
nB mit der Massespannung verbunden, um den logischen Zustand des
Hauptzwischenspeichers LAT1 umzukehren oder bestehen zu lassen.
-
Während eines
Rückkopiervorgangs
oder eines Löschverifizierungsvorgangs
detektiert der Cache-Zwischenspeicher LAT2 in Speicherzellen einer ausgewählten Seite
gespeicherte Datenbits und überträgt dann
die abgetasteten Werte in den Hauptzwischenspeicher LAT1. Im Detail
werden die Bitleitungen BLe und BLo und der Abtastknoten SO entladen
und die ausgewählte
Bitleitung (z. B. BLe) wird nach dem Aufladen auf einen vorgegebenen Spannungswert
in einen floatenden Zustand versetzt. Durch ein Leitendschalten
des NMOS-Transistors
M1 wird der Knoten SO über
den PMOS-Transistor M5 mit einem Strom versorgt. Wenn eine ausgewählte Speicherzelle
eine „An-Zelle" ist, fließt der Strom
für den
Knoten SO durch die ausgewählte Speicherzelle
ab, wodurch am Knoten SO die Spannung unter den Spannungsschwellwert
der ausgewähl ten
Speicherzelle absinkt. Der Hauptzwischenspeicher LAT1 behält seinen
aktuellen Zustand, auch wenn der NMOS-Transistor M15 durch einen Übergang
des Steuersignals PBLCHC von einem niedrigen Pegel auf einen hohen
Pegel leitend geschaltet werden kann. Wenn die ausgewählte Speicherzelle eine „Aus-Zelle" ist, lädt der Strom
des PMOS-Transistors M5 den Abtastknoten SO allmählich auf, wodurch die Spannung
am Knoten SO über
den Spannungsschwellwert des NMOS-Transistors M14 ansteigt. Der
NMOS-Transistor M15 wird leitend geschaltet, um den logischen Zustand
des Cache-Zwischenspeichers LAT2 umzukehren. Dadurch detektiert
der Cache-Zwischenspeicher LAT2 den Zustand der ausgewählten Speicherzelle,
welcher in den Hauptzwischenspeicher LAT1 übertragen wird.
-
Ein
Programmiervorgang oder ein Löschvorgang
muss von einem Verifizierungsvorgang begleitet werden, um zu bestätigen, dass
sich in der programmierten oder gelöschten Speicherzelle ein vorbestimmter
Spannungsschwellwert eingestellt hat. Das Ergebnis eines Programmiervorgangs
oder eines Löschvorgangs
für eine
Speicherzelle einer ausgewählten
Seite wird vom logischen Zustand im Hauptzwischenspeicher LAT1 zusammen
mit der in 2 dargestellten Bestanden/Nichtbestanden-Prüfschaltung
bestimmt. Die in 2 dargestellte Bestanden/Nichtbestanden-Prüfschaltung 2 ist
als verdrahtete ODER-Schaltung ausgeführt und umfasst generell eine
Mehrzahl von Schmelzsicherungen F1 bis Fk, einen NMOS-Transistor
M21, einen Inverter INV5 und einen Zwischenspeicher LAT3. Die Sicherungen
sind mit den Ausgangsanschlüssen nWDO
der Seitenpuffer 3 verbunden, wobei jede Sicherung mit
einer Gruppe von Seitenpuffern verbunden ist. Jede der Sicherungen
wird bei zumindest einem Defekt in ihren zugehörigen Bitleitungen durchgeschmolzen.
-
Der
jedem Seitenpuffer zugeordnete Ausgangsanschluss nWDO wird vom Zwischenspeicherknoten
B des Hauptzwischenspeichers LAT1 gesetzt. Wenn beispielsweise der
Zwischenspeicherknoten B einen hohen Pegel hat, ist der PMOS-Transistor
M9 sperrend geschaltet, um den Ausgangsanschluss nWDO auf einen
niedrigen Pegel zu legen, was darüber informiert, dass die ausge wählte Speicherzelle vollständig programmiert
oder gelöscht
ist, wobei ein Knoten ND2 auf einem niedrigen Pegel gehalten wird und
ein Bestanden/Nichtbestanden-Signal PF mit einem niedrigen Pegel
erzeugt. Wenn der Zwischenspeicherknoten B einen niedrigen Pegel
hat, ist der PMOS-Transistor M9 leitend geschaltet, was darüber informiert,
dass die ausgewählte
Speicherzelle noch nicht vollständig
programmiert oder gelöscht
ist, wobei der hohe Pegel am Knoten ND2 ein Bestanden/Nichtbestanden-Signal
PF mit einem hohen Pegel erzeugt.
-
Da
eine einzige Sicherung zu einer Mehrzahl von Seitenpuffern oder
Bitleitungen gehört,
weil die derzeitige Designtechnik es nicht zulässt, dass jeder Seitenpuffer
eine eigene Sicherung hat, ist es unvermeidbar, dass auf eine Mehrzahl
von Seitenpuffern, die mit der durchschmolzenen Sicherung verbunden sind,
verzichtet wird, wenn eine der Sicherung zugeordnete Bitleitung
einen Defekt hat. Zudem benötigt eine
solche Sicherungsarchitektur eine größere topologische Dimension,
verringert die Effektivität
der Anordnung und erhöht
die Größe eines
redundanten Speicherzellenbereichs.
-
Eine
andere Technik für
die Verifizierung der Ergebnisse eines Programmiervorgangs oder
eines Löschvorgangs
ohne die Nachteile, die sich aus der Verwendung der Sicherungen
ergeben, ist das „Spaltenabtasten", welches in der
koreanischen Offenlegungsschrift
2001-029546 offenbart ist. Bei diesem Spaltenabtastverfahren
werden Zustände
von Speicherzellen einer ausgewählten
Seite nach dem Detektieren in Seitenpuffer gespeichert und anschließend werden
die in den Seitenpuffern abgelegten Datenbits nacheinander als Byte-
oder Wort-Einheit in Abhängigkeit
von einem Inkrementieren von Spaltenadressen über eine Spaltendurchgangsschaltung (z.
B. die NMOS-Transistoren M19 und M20 aus
1) zu einer
Bestanden/Nichtbestanden-Prüfschaltung übertragen.
Während
dieses Vorgangs wird auf ein Datenbit von einem Seitenpuffer, der
zu einer defekten Spalte gehört,
nicht zugegriffen, weil die defekte Spalte mittels einer Spaltenadresse durch
eine redundante Spalte, die deren defekte Information enthält, ersetzt
wird.
-
Das
Spaltenabtasten ist jedoch eventuell mit dem Typ von Seitenpuffer 10,
wie er in 1 dargestellt ist, nicht funktionsfähig, weil
der Cache-Zwischenspeicher LAT2 mit einem Programmierdatenbit einer
anderen Seite verbunden ist, während
der Hauptzwischenspeicher LAT1 einen Programmiervorgang durchführt. Wie
bereits ausgeführt,
ist der Cache-Zwischenspeicher LAT2 beim Laden eines Programmierdatenbits
zusammen mit der Datenleitung DLi leitend, wodurch es zu einer Datenüberschneidung
zwischen einem zu ladenden Datenbit und einem Verifizierungsdatenbit
kommen kann.
-
Die
Aufgabe der Erfindung ist es, einen Speicherbaustein, wie einen
Flash-Speicher,
ohne Sicherungen anzugeben, bei dem die programmierten oder gelöschten Speicherzellen
mit hoher Effektivität
verifiziert werden können.
Eine weitere Aufgabe der Erfindung ist es, Verfahren zum Programmieren, Löschen und
Rückkopieren
eines solchen Speicherbausteins anzugeben.
-
Die
Erfindung löst
das Problem durch die Bereitstellung eines Speicherbausteins mit
den Merkmalen des Anspruchs 1 und eines Verfahrens mit den Merkmalen
der Ansprüche
11, 15 oder 18. Erfindungsgemäß werden "Pass"-Daten in Seitenpuffer entsprechend defekten
Spalten geladen, wodurch keine Schmelzsicherungsanordnungen erforderlich sind.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie die zu deren besserem Verständnis oben erläuterten,
herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Schaltbild eines herkömmlichen Seitenpuffers
in einem NAND-Flash-Speicher;
-
2 ein
Schaltbild einer herkömmlichen Bestanden/Nichtbestanden-Prüfschaltung
in einem NAND-Flash-Speicher;
-
3 ein
Blockschaltbild eines erfindungsgemäßen NAND-Flash-Speichers;
-
4 ein
Schaltbild eines Adressenzählers von 3;
-
5 ein
Schaltbild einer ersten Datenladeschaltung von 3;
-
6 ein
Schaltbild einer zweiten Datenladeschaltung von 3;
-
7 ein
Schaltbild einer Bestanden/Nichtbestanden-Prüfschaltung von 3;
-
8 ein
Flussdiagramm eines Programmiervorgangs in dem NAND-Flash-Speicher von 3;
-
9 ein
Flussdiagramm eines Rückkopiervorgangs
in dem NAND-Flash-Speicher
von 3; und
-
10 ein
Flussdiagramm eines Löschvorgangs
in dem NAND-Flash-Speicher
von 3.
-
Nachfolgend
werden praktische Ausführungsbeispiele
der Erfindung anhand der 3 bis 10 beschrieben.
Für die
Darstellung der Erfindung wird zwar der Seitenpuffer nach 1 verwendet,
es ist aber auch möglich,
einen anderen Seitenpufferschaltkreis mit Seitenpuffern zu verwenden,
die jeweils einen Hauptzwischenspeicher und einen Cache-Zwischenspeicher
umfassen. Dabei sind zum einfacheren Verständnis und der Übersichtlichkeit halber
funktionell äquivalente,
nicht zwingend identische Elemente mit gleichen Bezugszeichen versehen.
-
3 zeigt
ein Blockschaltbild eines erfindungsgemäßen NAND-Flash-Speichers. Der NAND-Flash-Speicher
umfasst einen Haupt-Speicherzellenbereich 11, einen Redundanz-Speicherzellenbereich 12,
einen Seitenpufferschaltkreis 13, einen Taktgenerator 14,
einen Adressenzähler 15,
einen Redundanzschaltkreis 16, einen Spaltendekodierer 17,
eine Spaltentorschaltung 18, einen Eingangsdatenpuffer 19,
eine erste Datenladeschaltung 20, eine zweite Datenladeschaltung 21 und
eine Bestanden/Nichtbestanden-Prüfschaltung 22.
Jeder der Speicherzellenbereiche 11, 12 umfasst
eine Mehrzahl von NAND-Ketten, die jeweils mit Hauptbitleitungen
und Redundanzbitleitungen verbunden sind. Jede NAND-Kette umfasst
einen Kettenauswahltransistor, eine gemeinsame Versorgungsleitung,
einen Masseauswahltransistor und eine Mehrzahl von Speicherzellen,
die zwischen dem Kettenauswahltransistor und dem Masseauswahltransistor
angeordnet sind.
-
Der
Seitenpufferschaltkreis 13 umfasst eine Mehrzahl von Seitenpuffern,
die über
die Hauptbitleitungen und die Redundanzbitleitungen mit den Speicherzellenbereichen
verbunden sind. Jeder Seitenpuffer ist so angeordnet, dass er mit
einem Paar von Bitleitungen korrespondiert, wie es beispielsweise
in 1 dargestellt ist. In der nachfolgenden Beschreibung
eines erfindungsgemäßen Ausführungsbeispiels
wird bezüglich
einer möglichen
Ausführungsform
des Seitenpuffers 13 auf den in 1 dargestellten
Seitenpuffer Bezug genommen. Zur Durchführung der Betriebsarten des
NAND-Flash-Speichers erzeugt der Taktgenerator 14 ein Taktsignal CLK.
-
Der
Taktgenerator 14 ist dahingehend aktiv, dass er das Taktsignal
CLK zum Laden von Programmierdaten in den Seitenpufferschaltkreis 13 mit
einer abfallenden Flanke eines externen Schreibfreigabesignals nWEx,
zum seriellen Ausgeben von Daten aus dem Seitenpufferschaltkreis 13 mit
einer abfallenden Flanke eines externen Lesefreigabesignals nREx
und bei einem Rückkopiervorgang
oder bei einem Löschvorgang
zum Laden von Pass-Daten in einen zu einer defekten Spalte gehörenden Seitenpuffer
mit einem internen Oszillations signal synchronisiert. Der Adressenzähler 15 erzeugt
Spaltenadressensignale, die mit dem Taktsignal CLK des Taktgenerators 14 synchronisiert
sind.
-
Wie
aus 4 ersichtlich ist, umfasst der Adressenzähler 15 einen
Inverter INV20, ein NOR-Gatter G1 und eine Mehrzahl von D-Flip-Flops FF0
bis FF9, die alle Anschlüsse
für die
Eingabe eines Datenbits DI und des Taktsignals CLK und zur Ausgabe
der Ausgangssignale DQ und nDQ und für ein Setzsignal SET und ein
Rücksetzsignal
RST haben. Wenn ein Steuersignal FYA, welches anzeigt, dass die
aktuelle Spaltenadresse die letzte Adresse ist, auf einem niedrigen
Pegel ist, dann erzeugt der Adressenzähler 15 sequentiell
die Spaltenadressensignale AY0 bis AY9, die eine Spaltenadresseneinheit
bilden. Wenn das Steuersignal FYA auf einem hohen Pegel ist, werden
die Spaltenadressensignale AY0 bis AY9 nicht mehr erzeugt, d. h.
der Adressenzähler 15 ist
in einem nicht-leitenden Zustand.
-
Der
Redundanzschaltkreis 16 speichert Spaltenadressen, die
unter den Spalten des Hauptspeicherzellenbereichs 11 defekte
Spalten oder defekte Bitleitungen bezeichnen, und vergleicht die
vom Adressenzähler 15 erzeugten
Spaltenadressen mit den gespeicherten defekten Spaltenadressen.
Wenn die aktuelle Spaltenadresse des Zählers 15 einer defekten
Spaltenadresse entspricht, aktiviert der Redundanzschaltkreis 16 eines
der Redundanzauswahlsignale, um die defekte Spalte zu kennzeichnen.
Der Spaltendekodierer 17 und die Spaltentorschaltung 18 selektieren
einen Teil der Seitenpufferspeicher und verbinden ihn mit den zugehörigen Datenleitungen DLi.
-
Der
Dateneingangspuffer 19 empfängt Programmierdatenbits, welche
als Byte- oder Wort-Einheit
in den Seitenpufferschaltkreis 13 geladen werden sollen.
Die erste Datenladeschaltung 20 überträgt die Programmierdatenbits
vom Dateneingangspuffer 19 in die Zwischenspeicher (z.
B. in die Cache-Zwischenspeicher LAT2 gemäß 1) der ausgewählten Seitenpuffer.
Bezugnehmend auf 5 umfasst die erste Datenladeschaltung 20 ein ODER-Gatter
G2, ein NAND-Gatter G3, ein NOR-Gatter G4 und Inverter INV21 und
INV22. Ein Pro grammierdatenbit Di und ein Redundanzauswahlsignal
CRi sind an je einen Eingang des ODER-Gatters G2 angelegt, dessen
Ausgang zusammen mit einem Datenladefreigabesignal DIE an Eingänge des NAND-Gatters
G3 angelegt ist. Der Ausgang des NAND-Gatters G3 wird über den
Inverter INV22 als Datensignal DIi zum Seitenpufferschaltkreis 13 übertragen
(z. B. zum Gate des NMOS-Transistors M16 von 1). Das
NOR-Gatter G4 empfängt über den Inverter
INV21 das Signal DIE, das Programmierdatenbit Di und das Redundanzauswahlsignal
CRi und gibt ein Datensignal nDIi aus, welches zum Seitenpufferschaltkreis 13 übertragen
wird (z. B. zum Gate des NMOS-Transistors M17). Der Datenladeschaltkreis 20 gehört zu einem
Datenbit. Das Datenladefreigabesignal DIE ist aktiv, solange Programmierdatenbits
in den Speicherpufferschaltkreis 13 geladen werden, und
auch wenn Pass-Daten während
eines Rückkopiervorgangs
oder eines Löschvorgangs
geladen werden.
-
Wenn
das Datenladefreigabesignal DIE auf einem hohen Pegel ist, werden
die Datensignale DIi und nDIi durch das Programmierdatenbit Di oder
das Redundanzauswahlsignal CRi logisch gesetzt. Hat das Programmierdatenbit
Di den logischen Wert „1" und ist das Redundanzauswahlsignal
CRi auf einem niedrigen Pegel, dann nimmt das Datensignal DIi einen
hohen Pegel an, während
das Signal nDIi einen niedrigen Pegel annimmt. Hat das Programmierdatenbit
Di bei einem niedrigen Pegel des Redundanzauswahlsignals CRi den
Wert „0", dann nimmt das Datensignal
DIi einen niedrigen Pegel an, während das
Signal nDIi einen hohen Pegel annimmt. Bei einem hohen Pegel des
Redundanzauswahlsignals CRi bleibt das Datensignal DIi auf einem
hohen Pegel unabhängig
davon, ob der augenblickliche binäre Zustand des Programmierdatenbits
Di den Wert „0" oder „1" hat. Dadurch wird
der Zwischenspeicherknoten A des Cache-Zwischenspeichers LAT2 mit einem in
den Hauptzwischenspeicher LAT1 zu übertragenden Datenbit mit dem
Wert „1", d. h. mit einem Pass-Datenbit,
verbunden.
-
Während eines
Ladevorgangs von Programmierdatenbits in zum Haupt-Speicherzellenbereich 11 gehörende Seitenpuffer,
d. h. in Haupt-Seitenpuffer, lädt
die zweite Datenladeschaltung 21 ein Programmierdatenbit
von den aktuellen Programmdatenbits, welches zu einer defekten Spalte
gehört,
in einen zum Redundanz-Speicherzellenbereich 12 gehörenden Seitenpuffer,
d. h. in einen Redundanz-Seitenpuffer. Wie aus 6 ersichtlich
ist, umfasst die zweite Datenladeschaltung 21 UND-Gatter
G5 bis G12, NOR-Gatter G13 bis G16 und G19, NAND-Gatter G17, G18
und G20 und Inverter INV23 und INV24. Zueinander logisch komplementäre Steuersignale RDIen
und nDIen für
den zweiten Datenladeschaltkreis 21 sind während eines
Programmiervorgangs zusammen mit dem Datenladefreigabesignal DIE
aktiv. Das Steuersignal nDIen ist ein Aktiv-Low-Signal. Ein Steuersignal
REDen, d. h. ein Redundanzfreigabesignal, wird jeweils an einen
Eingang der Gatter G18 bis G20 angelegt und wird aktiv, wenn der
Redundanzschaltkreis 16 eine defekte Spaltenadresse detektiert.
Die Redundanzdatensignale RDI und nRDI werden gemeinsam an den Seitenpuffer
(z. B. an die Gates der NMOS-Transistoren M16 und M17 gemäß 1)
angelegt. Während
des aktiven Zustandes des Redundanzfreigabesignals REDen, verbindet
der Spaltentorschaltkreis 18 einen der Seitenpuffer mit
einer zu einer defekten Spalte gehörenden Datenleitung.
-
Während eines
sequentiellen Ladevorgangs der als Byteeinheiten vorliegenden Programmierdaten
sind die Steuersignale RDIen und nDIen auf einen hohen Pegel bzw.
auf einen niedrigen Pegel gesetzt. Wenn die aktuelle Spaltenadresse
eine defekte Spaltenadresse ist, so wird eines der Redundanzauswahlsignale
CR0 bis CR7, beispielsweise CR0, aktiv. Zu diesem Zeitpunkt wechselt
das Redundanzfreigabesignal REDen von einem niedrigen Pegel auf einen
hohen Pegel. Wenn das zu einer defekten Spalte gehörende Programmierdatenbit
(z. B. D1), den Wert „1" hat, dann gibt das
NAND-Gatter G17 ein Signal mit einem hohen Pegel aus, wodurch die
Redundanzdatensignale RDI und nRDI einen hohen Pegel bzw. einen
niedrigen Pegel annehmen. Wenn das zu einer defekten Spalte gehörende Programmierdatenbit
D1 den Wert „0" hat, dann gibt das
NAND-Gatter G17 ein Signal mit einem niedrigen Pegel aus, wodurch
die Redundanzdatensignale RDI und nRDI auf einen niedrigen Pegel
bzw. auf einen hohen Pegel gesetzt werden.
-
Die
Bestanden/Nichtbestanden-Prüfschaltung 22 bestimmt
in Abhängigkeit
von Daten des Hauptzwischenspeichers LAT1 des Seitenpufferschaltkreises 13 ob
die Speicherzellen vollständig programmiert
oder gelöscht
worden sind. Wie aus 7 ersichtlich ist, unterscheidet
sich die Bestanden/Nichtbestanden-Prüfschaltung 22 von
der in 2 dargestellten Bestanden/Nichtbestanden-Prüfschaltung 2 durch
das Fehlen der Sicherungen. Ohne die herkömmlichen Sicherungen, die in Abhängigkeit
von verifizierten Bestanden/Nichtbestanden-Ergebnissen vor Spaltenausfällen schützen, gibt
es keine Beeinflussung des im Seitenpuffer zwischengespeicherten
Datenbits durch den Zustand von verifizierten Bestanden/Nichtbestanden-Ergebnissen.
Dies kommt dadurch, dass ein Pass-Datenbit anstelle des zu einer
defekten Spalte gehörenden Programmierdatenbits
in den Hauptzwischenspeicher LAT1 eingegeben wird, wodurch die topologischen
Nachteile der Sicherungsanordnung beseitigt werden.
-
Indem
bei dem erfindungsgemäßen NAND-Flash-Speicher
während
des Eingebens eines Programmierdatenbits in den Seitenpuffer mittels Spaltenadresseninformation
ein Pass-Datenbit in den zu der defekten Spalte gehörenden Seitenpuffer geladen
wird, beeinflusst das in dem Seitenpuffer der defekten Spalte zwischengespeicherte
Datenbit im Zustand ohne Sicherungen nicht das verifizierte Bestanden/Nichtbestanden-Ergebnis.
-
Der
vorliegende NAND-Flash-Speicher führt während eines Rückkopier-Programmiermodus
und vor einem Löschverifizierungsvorgang
nach einem abgeschlossenen Löschvorgang
einen Abtastvorgang aus und lädt,
bevor ein Programmiervorgang durchgeführt wird, ein Pass-Datenbit
in den zu einer defekten Spalte gehörenden Seitenpuffer. Nachfolgend
werden der Programmiervorgang, der Löschvorgang und der Rückkopiervorgang
ausführlicher beschrieben.
-
Bei
einem Programmiervorgang wird gemäß 8 während eines
Ladevorgangs von externen Programmdatenbits in den Seitenpufferschaltkreis 13 in Abhängigkeit
von einer defekten Spaltenadresse anstelle eines Programmierdatenbits
ein Pass-Datenbit in einen zu einer defekten Spalte gehörenden Seitenpuffer
geladen. Das zu der defekten Spalte gehörende Programmierdatenbit wird
in einem Redundanzseitenpuffer abgelegt.
-
Wird
ein Befehl (Hexadezimalkode 80 h;) für einen Programmiermodus eingetragen,
dann wird in einem Schritt S1 eine Anfangsadresse mit Zeilenangaben
und Spaltenangaben entsprechend einem vorgegebenen Adressenzwischenspeicherfreigabezyklus
im Speicher zur Verfügung
gestellt. Zu diesem Zeitpunkt wird vor dem Laden eines Programmierdatenbits
der Cache-Zwischenspeicher LAT2 des Seitenpufferschaltkreises 13 durch
einen niedrigen Pegel des Steuersignals PBSET aktiviert. In Abhängigkeit
von Übergängen eines
Schreibfreigabesignals nWEx werden in einem Schritt S2 Programmierdatenbits
in Form von Byte- bzw. Wort-Einheiten an den Dateneingangspuffer 19 angelegt.
Die erste Datenladeschaltung 20 überträgt die Programmierdatenbits zum
Seitenpufferschaltkreis 13. Der Redundanzschaltkreis 16 bestimmt
in einem Schritt S3, ob die aktuelle Spaltenadresse eine defekte
Spaltenadresse ist. Wenn die aktuelle Spaltenadresse keine defekte
Spaltenadresse ist, dann werden die am Dateneingangspuffer 19 anliegenden
Programmierdatenbits in einem Schritt S4 durch den ersten Datenladeschaltkreis 20 in
ihre zugeordneten Seitenpuffer geladen. Der Vorgang des Ladens der
Programmierdatenbits in die Seitenpuffer ist der gleiche wie der
bereits beschriebene Ladevorgang.
-
Wenn
die aktuelle Spaltenadresse eine defekte Spaltenadresse ist, dann
aktiviert der Redundanzschaltkreis 16 eines der Redundanzauswahlsignale
CRi. In Abhängigkeit
vom aktiven Redundanzauswahlsignal CRi überträgt die erste Datenladeschaltung 20 in
einem Schritt S6 ein Pass-Datenbit mit dem Wert „1" zum Seitenpufferschaltkreis 13, gleichzeitig
wird die Übertragung
des zu einer defekten Spalte gehörenden
Programmierdatenbits isoliert. Wie oben bereits ausgeführt, wird
durch selektives Aktivieren der Datensignale DIi und nDIi mit dem Verbinden
der Datenleitungen mit der Massespannung VSS das Programmierdatenbit
in den Cache-Zwischenspeicher LAT2 geladen. Wenn die aktuelle Spaltenadresse
eine defekte Spalte bezeichnet, wird das Pass-Datenbit mit dem Wert „1" in den Cache-Zwischenspeicher
LAT2 gebracht, indem die Datensignale DI und nDI mit den Werten „1" bzw. „0" belegt werden. Zeitgleich
wird in einem Schritt S5 das zur defekten Spalte gehörende Programmierdatenbit durch
den zweiten Datenladeschaltkreis 21 in den zugeordneten
Redundanzseitenpuffer geladen.
-
In
einem Schritt S7 wird festgestellt, ob die aktuelle Spaltenadresse
(oder das aktuelle Programmierdatenbit) die letzte Spaltenadresse
ist. Wenn die aktuelle Spaltenadresse nicht die letzte Spaltenadresse
ist, generiert der Adressenzähler 15 in
einem Schritt S8 die nächste
Adresse und das Verfahren springt zum Schritt S2 zur Eingabe eines
neuen Programmierdatenbits zurück.
Die Schritte S2 bis S8 werden solange wiederholt, bis die aktuelle
Spaltenadresse (oder das aktuelle Programmierdatenbit) die letzte
Adresse ist. Wenn die aktuelle Spaltenadresse die letzte Spaltenadresse
ist, wird der Programmierdatenladevorgang beendet. Die in den Cache-Zwischenspeicher
LAT2 geladenen Programmierdatenbits werden auf die bereits beschriebene
Weise in die Hauptzwischenspeicher LAT1 übertragen. Danach wird in Abhängigkeit
von einem zusammen mit der Beendigung des Programmierdatenladevorgangs
im Schritt S9 gegebenen Befehl (Hexadezimalkode 10 h) mit den geladenen
Programmierdatenbits ein bekannter Programmiervorgang für eine ausgewählte Seiten
begonnen.
-
Nach
dem Programmieren der geladenen Datenbits in eine ausgewählte Seite
wird mit einem Programmierverifizierungsvorgang zur Überprüfung fortgefahren,
ob die Programmierdatenbits erfolgreich in die ausgewählten Seiten
geschrieben wurden. Ohne die Abwesenheit von Daten, die von der ausgewählten Seite
detektiert wurden, wird der Programmierverifizierungsvorgang in
gleicher Weise wie der Lesevorgang durch den Hauptzwischenspeicher LAT1
durchgeführt.
Detektierte Datenbits werden zur Bestanden/Nichtbestanden-Prüfschaltung 22 übertragen,
die auf nachfolgend beschriebene Weise fest stellt, ob die Speicherzellen
der ausgewählten
Seite mit normalen Zuständen
geladen wurden.
-
Zuerst
werden die einer ausgewählte
Seite zugeordneten Bitleitungen, nachdem sie auf einen vorbestimmten
Spannungspegel geladen wurden, in einen floatenden Zustand versetzt.
Dadurch steigen oder fallen die Spannungswerte der Bitleitungen
in Abhängigkeit
des Zustandes (programmiert oder gelöscht) einer ausgewählten Speicherzelle.
Unter Bezugnahme auf 1 speist der PMOS-Transistor
M5 mit dem Durchschalten des NMOS-Transistors M1 einen Strom in
den Abtastknoten SO ein. Wenn die ausgewählte Speicherzelle durch das
Löschen
eine An-Zelle ist, wird der Strom in den Abtastknoten SO über die
ausgewählte
Speicherzelle abgeleitet, wodurch der Spannungswert am Knoten SO
bis unter den Spannungsschwellwert des NMOS-Transistors M7 absinkt.
Der Hauptzwischenspeicher LAT1 behält seinen aktuellen Zustand,
auch wenn der NMOS-Transistor M8 leitend geschaltet wird. Wenn die
ausgewählte
Speicherzelle eine Aus-Zelle oder ausreichend programmiert ist,
führt der
durch den PMOS-Transistor M5 eingespeiste Strom zu einem allmählichen
Ansteigen der Spannung am Knoten SO. Die Spannung am Abtastknoten
SO steigt über den
Spannungsschwellwert des NMOS-Transistors M7, so dass der Hauptzwischenspeicher
ein Pass-Datenbit mit dem Wert „1" beibehält, wenn der NMOS-Transistor M8 leitend
geschaltet wird.
-
Das
im Hauptzwischenspeicher LAT1 enthaltene Datenbit wird durch den
PMOS-Transistor M9 an die Bestanden/Nichtbestanden-Prüfschaltung 22 übertragen.
So wird beispielsweise, wenn der Hauptzwischenspeicher LAT1 am Zwischenspeicherknoten
B ein Pass-Datenbit mit dem Wert „1" gespeichert hat, der PMOS-Transistor
M9 sperrend geschaltet, um den Knoten ND2 auf einem niedrigen Pegel
zu halten. Dies resultiert in einem Bestanden/Nichtbestanden-Signal PF mit einem
niedrigen Pegel, was ein erfolgreiches Programmieren des aktuell
geladenen Programmierdatenbits anzeigt. Andererseits wird, wenn
der Hauptzwischenspeicher LAT1 als Nichtbestanden-Datenbit den Wert „0" am Knoten B speichert,
der PMOS-Transistor M9 leitend geschaltet, um den Kno ten ND2 auf
den Wert der Versorgungsspannung zu laden. Dies resultiert in einem
Bestanden/Nichtbestanden-Signal PF mit einem hohen Pegel, was ein
unvollständiges
Programmieren des geladenen Datenbits anzeigt.
-
Im
Falle eines Bestanden/Nichtbestanden-Signals PF mit einem niedrigen
Pegel zur Darstellung eines ausreichenden Programmiervorgangs für das aktuell
geladene Datenbit werden die nächsten
in den Cache-Zwischenspeicher LAT2 geladenen Programmierdatenbits
auf eine neu ausgewählte
Seite geschrieben. Und während
dem Programmieren mit den Programmierdatenbits für eine ausgewählte Seite
werden neue Programmierdatenbits in den Cache-Zwischenspeicher LAT2 geladen. Wenn
das Bestanden/Nichtbestanden-Signal PF auf einem hohen Pegel ist,
wodurch ein unvollständiges
Programmierergebnis für
ein aktuell geladenes Programmierdatenbit angezeigt wird, werden
die Programmierzyklen für
die unvollständig
programmierte Seite solange wiederholt, bis das Bestanden/Nichtbestanden-Signal
PF einen niedrigen Pegel annimmt oder eine vorgegebene Anzahl von
Programmierzyklen durchlaufen wurden.
-
Selbst
ohne die herkömmlichen
Sicherungen zum Ausschließen
von defekten Spalten beeinflusst ein Datenbit eines zu einer defekten
Spalte gehörenden
Seitenpuffers nicht das verifizierte Bestanden/Nichtbestanden-Ergebnis,
weil während
des Ladevorgangs eines Programmierdatenbits durch Information über defekte
Spalten ein Pass-Datenbit im Seitenpuffer der defekten Spalte hinterlegt
wird. Als Ergebnis ist das vorliegende Verfahren frei von den durch
die herkömmliche
Sicherungsanordnung hervorgerufenen topologischen Nachteile und
weist auch keine Verringerung der Redundanzeffektivität auf.
-
9 zeigt
ein Flussdiagramm eines erfindungsgemäßen Rückkopiervorgangs. Beim Rückkopier-Programmiermodus
werden die Daten einer Seite in einer anderen Seite abgespeichert.
Der Rückkopiervorgang
umfasst Abtastvorgänge,
das Laden von Pass-Daten, Datendumping, Programmiervorgänge und
Programmierverifizierungsvorgänge.
Während eines
Abtastvorgangs detektiert der Cache-Zwischenspeicher LAT2 die in
den Speicherzellen einer Seite gespeicherten Daten, wie zuvor beschrieben. Nach
dem Abschluss des Abtastvorgangs durch die Cache-Zwischenspeicher
LAT2 werden die abgetasteten Datenbits in eine andere Seite geschrieben.
Bei der vorliegenden Ausführungsform
wird, wie in 9 dargestellt, ein Pass-Datenbit
in einen zu einer defekten Spalte gehörenden Seitenpuffer geladen,
bevor die detektierten Datenbits auf eine andere Seite geschrieben
werden.
-
Um
den Rückkopiervorgang
zu starten, wird zuerst ein Befehlssignal mit dem Wert 85 h (Hexadezimalkode)
eingetragen. Um eine Veränderung
der zwischengespeicherten Datenbits, die auf eine andere Seite geschrieben
werden sollen, zu verhindern, initialisiert der Befehl 85 h nicht
wie der Befehl 80 h den Cache-Zwischenspeicher LAT2 zum Starten
des Programmiermodus. Um die in den Cache-Zwischenspeichern LAT2
geladenen Daten partiell neu zu schreiben, werden in einem Schritt
S11 erste Adressen- und Programmierdatenbits, wie bereits beschrieben,
durch den Dateneingangspuffer 19 und den ersten Datenladeschaltkreis 20 zum
Seitenpufferschaltkreis 13 übertragen. Während dieses
Vorgangs wird gemäß der Erfindung
das zu einer defekten Spalte gehörende
Programmierdatenbit durch die zweite Datenladeschaltung 21 in
dem Redundanzseitenpuffer abgelegt. Als nächstes wird auf ein in einem
Schritt S12 gegebenes Befehlssignal 10 h (Hexadezimalkode) in einem
Schritt S13 mit dem Erzeugen eines internen Oszillationsfreigabesignals
eine Spaltenadresse im Adressenzähler 15 auf
den Wert „0" gesetzt.
-
In
einem Schritt S14 wird überprüft, ob eine Spaltenadresse
vom Adressenzähler 15 die
Spaltenadresse einer defekten Spalte ist. Wenn die Spaltenadresse
vom Adressenzähler 15 eine
defekte Spalte bezeichnet, aktiviert der Redundanzschaltkreis 16 eines
der Redundanzauswahlsignale CRi. Die erste Datenladeschaltung 20 gibt
als Reaktion auf das aktive Redundanzauswahlsignal CRi jedes der
Datensignale DIi und nDIi mit einem hohen (als Pass-Datenbit mit
dem Wert „1") bzw. einem niedrigen
Pegel aus. Währenddessen
wird die geerdete Datenleitung DIi durch den Spaltentorschaltkreis 18 mit
dem Knoten ND1 elektrisch verbunden. Unter diesen Bedingungen wird
in einem Schritt S15 das Pass-Datenbit mit dem Wert „1" in den Zwischenspeicherknoten
A des Cache-Zwischenspeichers
LAT2 geladen.
-
Wenn
eine Spaltenadresse vom Adressenzähler 15 keine Spaltenadresse
von einer defekten Spalte ist, wird mit einem Schritt S16 fortgefahren, um
festzustellen, ob die aktuelle Spaltenadresse vom Adressenzähler 15 die
letzte Adresse ist. Wenn die aktuelle Spaltenadresse nicht die letzte
Adresse ist, erhöht
der Adressenzähler 15 in
einem Schritt S17 die Spaltenadresse um den Wert „1". Die Schritte S14
bis S17 werden solange wiederholt, bis die Spaltenadresse vom Adressenzähler 15 die
letzte Spaltenadresse erreicht hat. Nach dem iterativen Prozess wird
ein Pass-Datenbit mit dem Wert „1" jeweils in einem zu einer defekten
Spalte gehörenden
Seitenpuffer abgelegt. Mit dem Erkennen der letzten Spaltenadresse
im Schritt S16 ist der Vorgang des Ladens von Pass-Daten beendet
und der Programmiervorgang beginnt.
-
Nach
dem Ablauf gemäß 9 werden
die Programmierdatenbits, die in den Cache-Zwischenspeichern LAT2
gehalten werden, zu den Hauptzwischenspeichern LAT1 übertragen,
um in eine andere Seite (im folgenden als „zweite Seite" bezeichnet) geschrieben
zu werden. Danach erstellt die Bestanden/Nichtbestanden-Prüfschaltung 22 ein
Programmierergebnis – „bestanden" oder „nicht
bestanden" – für die zweite
Seite. Dieser Vorgang ist im Wesentlichen identisch zu dem bereits
beschriebenen Programmierverifizierungsvorgang. Wie beim Programmiervorgang
wird der Rückkopierverifiziervorgang ebenfalls
ohne Sicherungen in der sicherungsfreien Bestanden/Nichtbestanden-Prüfschaltung 22 durchgeführt.
-
Wie
in 9 dargestellt, werden die Datenbits, die partiell
neu geschrieben werden sollen, vor dem Befehlssignal 10 h und nach
dem Befehlssignal 85 h in die Cache-Zwischenspeicher LAT2 geladen. Zu
diesem Zweck enthält
die zuerst von außerhalb eingegebene
Adresse Informationen über
die Reihe und die Spalte, während
die nächsten
Adressen nur noch Informationen über
die Spalte enthalten, was daher kommt, weil das Rückkopierverfahren
nur eine einzige Seite betrifft.
-
10 beschreibt
den erfindungsgemäßen Ablauf
eines Löschvorgangs.
Der Löschmodus
umfasst Löschperioden,
das Laden von Pass-Daten und eine Verifizierung des Löschvorgangs.
Während
des Löschmodus
wird ein Pass-Datenbit
in einem zu einer defekten Spalte gehörenden Seitenpuffer hinterlegt,
bevor ein Löschverifizierungsverfahren
zur Überprüfung, ob
die Speicherzellen im vorangegangenen Löschvorgang ohne Fehler gelöscht worden sind,
gestartet wird.
-
Bezugnehmend
auf 10 wird nach dem Löschen in einem Schritt S21
vom Adressenzähler 15 eine
Spaltenadresse auf den Wert „0" gesetzt. In einem
nächsten
Schritt S22 wird bestimmt, ob die Spaltenadresse vom Adressenzähler 15 einer
Spaltenadresse für
eine defekte Spalte entspricht. Entspricht die Spaltenadresse vom
Adressenzähler 15 derjenigen
einer defekten Spalte, dann aktiviert der Redundanzschaltkreis eines
der Redundanzauswahlsignale CRi. In Reaktion auf das aktivierte
Redundanzauswahlsignal gibt der erste Datenladeschaltkreis 20 die
Datensignale DIi und nDIi jeweils mit einem hohen Pegel (als Pass-Datenbit
mit dem Wert „1") bzw. einem niedrigen
Pegel aus. Währenddessen
wird die geerdete Datenleitung DIi durch den Spaltentorschaltkreis 18 mit
dem Knoten ND1 elektrisch verbunden. Unter diesen Bedingungen wird
in einem Schritt S23 das Pass-Datenbit mit dem Wert „1" in den Zwischenspeicherknoten
A des Cache-Zwischenspeichers LAT2 geladen.
-
Ist
die Spaltenadresse vom Adressenzähler 15 keine
Spaltenadresse einer defekten Spalte, dann wird mit einem Schritt
S24 fortgefahren, um festzustellen, ob die aktuelle Spaltenadresse
vom Adressenzähler 15 die
letzte Adresse ist. Wenn die aktuelle Spaltenadresse nicht die letzte
Adresse ist, erhöht der
Adressenzähler 15 in
einem Schritt S25 die Spaltenadresse um den Wert „1". Die Schritte S22
bis S25 werde solange wiederholt, bis die Spaltenadresse vom Adressenzähler 15 die
letzte Spaltenadresse erreicht hat. Nach dem iterativen Prozess
der Schritte S22 bis S25 ist ein Pass-Datenbit mit dem Wert „1" jeweils in einem
zu einer defekten Spalte gehörenden Seitenpuffer
abgelegt. Mit dem Erkennen der letzten Spaltenadresse im Schritt
S24 ist der Vorgang des Ladens von Pass-Daten beendet und ein Programmierverifizierungsvorgang
beginnt.
-
Die
in den Cache-Zwischenspeichern LAT2 geladenen Datenbits werden beim
oben erwähnten Datenübertragungsprozess
zu den Hauptzwischenspeichern LAT1 übertragen und die Bestanden/Nichtbestanden-Prüfschaltung 22 liefert
für die übertragenen
Datenbits das Bestanden/Nichtbestanden-Signal PF. Diese Vorgänge zur
Datenübertragung
und zur Bestanden/Nichtbestanden-Prüfung sind die gleichen wie
bei den oben beschriebenen Programmierverifizierungsvorgängen. Wie
beim Programmiermodus wird der Löschungsverifizierungsvorgang
ebenfalls ohne Sicherungen in der sicherungsfreien Bestanden/Nichtbestanden-Prüfschaltung 22 durchgeführt. Und
das Laden der Pass-Daten
und die Verifizierungsvorgänge
werden solange wiederholt, bis alle Seiten im Löschmodus ausgewählt wurden.
-
Es
besteht die Möglichkeit,
die Zeit zum Laden der Pass-Datenbits während des Löschmodus oder des Rückkopier-Programmiermodus
durch die Anwendung eines beschleunigten Spaltenabtastverfahrens,
wie in der
koreanischen Patentanmeldung 2001-52057 des
Anmelders beschrieben, zu verkürzen,
wobei die Breite eines internen Datenbuses auf mehr als eine Dateneingabe/Datenausgabe
ausgedehnt wird.
-
Wie
oben beschrieben, verwendet der vorliegende NAND-Flash-Speicher
eine sicherungsfreie Bestanden/Nichtbestanden-Prüfschaltung, indem ein Pass-Datenbit in einen
zu einer defekten Seite gehörenden
Seitenpuffer geladen wird, wodurch die Nachteile einer Anordnung
mit Sicherungen, wie eine größere Schaltkreistopologie
und schlechtere Redundanzeffektivität, vermieden werden. In einem
Programmiermodus wird während
des Ladens von Programmierdaten ein Pass-Datenbit in einem zu einer defekten
Seite gehörenden
Seitenpuffer hinterlegt. In einem Löschmodus oder einem Rückkopier-Programmiermodus
wird ein Pass-Datenbit in einen zu einer defekten Seite gehörenden Seitenpuffer
geladen, bevor ein abgetastetes Datenbit von einem Cache-Zwischenspeicher
in einen Hauptzwischenspeicher übertragen
wird.