DE10301458A1 - Speicherbaustein und zugehöriges Lösch-, Programmier- und Rückkopierverfahren - Google Patents
Speicherbaustein und zugehöriges Lösch-, Programmier- und RückkopierverfahrenInfo
- Publication number
- DE10301458A1 DE10301458A1 DE10301458A DE10301458A DE10301458A1 DE 10301458 A1 DE10301458 A1 DE 10301458A1 DE 10301458 A DE10301458 A DE 10301458A DE 10301458 A DE10301458 A DE 10301458A DE 10301458 A1 DE10301458 A1 DE 10301458A1
- Authority
- DE
- Germany
- Prior art keywords
- column
- column address
- buffer
- data
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/83—Masking faults in memories by using spares or by reconfiguring using programmable devices with reduced power consumption
- G11C29/832—Masking faults in memories by using spares or by reconfiguring using programmable devices with reduced power consumption with disconnection of faulty elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
Landscapes
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Die Erfindung bezieht sich auf einen insbesondere nichtflüchtigen Speicherbaustein mit einem Speicherzellenbereich (11, 12) mit einer Mehrzahl von Speicherzellen, einem Taktgenerator (14), einem Adressenzähler (15), einem Seitenpufferschaltkreis (13) mit einer Mehrzahl von Seitenpuffern, einer Spaltenauswahlschaltung (18) und einer Datenladeschaltung (20) sowie auf ein zugehöriges Lösch-, Programmier- und Rückkopierverfahren. DOLLAR A Erfindungsgemäß sind Mittel zum Steuern der Datenladeschaltung (20) in Abhängigkeit von den Spaltenadressen vorhanden, wobei ein Pass-Datenbit in einen Cache-Zwischenspeicher (LAT2) eines zu einer defekten Spalte gehörenden Seitenpuffers (3) geladen wird, wenn während des Programmiermoduls die Spaltenadresse eine defekte Spalte bezeichnet. DOLLAR A Verwendung z. B. für NAND-Flash-Speicher.
Description
- 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 Seitenpuffer sind in den Patentschriften US 5.790.458, US 5.761.132 und US 5.712.818 offenbart.
- Fig. 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. potentialschwebenden 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 Ausgangsanschluss 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 Fig. 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äß Fig. 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 Fig. 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äß Fig. 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ählten 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 Fig. 2 dargestellten Bestanden/Nichtbestanden-Prüfschaltung bestimmt. Die in Fig. 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 ausgewä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 Fig. 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 Fig. 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:
- Fig. 1 ein Schaltbild eines herkömmlichen Seitenpuffers in einem NAND- Flash-Speicher;
- Fig. 2 ein Schaltbild einer herkömmlichen Bestanden/Nichtbestanden- Prüfschaltung in einem NAND-Flash-Speicher;
- Fig. 3 ein Blockschaltbild eines erfindungsgemäßen NAND-Flash- Speichers;
- Fig. 4 ein Schaltbild eines Adressenzählers von Fig. 3;
- Fig. 5 ein Schaltbild einer ersten Datenladeschaltung von Fig. 3;
- Fig. 6 ein Schaltbild einer zweiten Datenladeschaltung von Fig. 3;
- Fig. 7 ein Schaltbild einer Bestanden/Nichtbestanden-Prüfschaltung von Fig. 3;
- Fig. 8 ein Flussdiagramm eines Programmiervorgangs in dem NAND- Flash-Speicher von Fig. 3;
- Fig. 9 ein Flussdiagramm eines Rückkopiervorgangs in dem NAND- Flash-Speicher von Fig. 3; und
- Fig. 10 ein Flussdiagramm eines Löschvorgangs in dem NAND-Flash- Speicher von Fig. 3.
- Nachfolgend werden praktische Ausführungsbeispiele der Erfindung anhand der Fig. 3 bis 10 beschrieben. Für die Darstellung der Erfindung wird zwar der Seitenpuffer nach Fig. 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.
- Fig. 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 Fig. 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 Fig. 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 Oszillationssignal synchronisiert. Der Adressenzähler 15 erzeugt Spaltenadressensignale, die mit dem Taktsignal CLK des Taktgenerators 14 synchronisiert sind.
- Wie aus Fig. 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äß Fig. 1) der ausgewählten Seitenpuffer. Bezugnehmend auf Fig. 5 umfasst die erste Datenladeschaltung 20 ein ODER-Gatter G2, ein NAND-Gatter G3, ein NOR-Gatter G4 und Inverter INV21 und INV22. Ein Programmierdatenbit Di und ein Redundanzauswahlsignal CRi sind an je einen Eingang des ODER-Gatters G2 angelegt, dessen Ausgang zusammen mit einem Datenladefreigabesignal DLE an Eingänge des NAND-Gatters G3 angelegt ist. Der Ausgang des NAND-Gatters G3 wird über den Inverter INV22 als Datensignal Dli zum Seitenpufferschaltkreis 13 übertragen (z. B. zum Gate des NMOS-Transistors M16 von Fig. 1). Das NOR-Gatter G4 empfängt über den Inverter INV21 das Signal DLE, das Programmierdatenbit Di und das Redundanzauswahlsignal CRi und gibt ein Datensignal nDli 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 DLE 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 DLE auf einem hohen Pegel ist, werden die Datensignale Dli und nDli 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 Dli einen hohen Pegel an, während das Signal nDli einen niedrigen Pegel annimmt. Hat das Programmierdatenbit Di bei einem niedrigen Pegel des Redundanzauswahlsignals CRi den Wert "0", dann nimmt das Datensignal Dli einen niedrigen Pegel an, während das Signal nDli einen hohen Pegel annimmt. Bei einem hohen Pegel des Redundanzauswahlsignals CRi bleibt das Datensignal Dli 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 Fig. 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 DLE 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äß Fig. 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 Fig. 7 ersichtlich ist, unterscheidet sich die Bestanden/Nichtbestanden- Prüfschaltung 22 von der in Fig. 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äß Fig. 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 80h; ) 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 10h) 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 feststellt, 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 Fig. 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 Knoten 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.
- Fig. 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 Fig. 9 dargestellt, ein Pass-Datenbit in einen zu einer defekten Spalte gehörenden Seitenpuffer geladen, bevor die detektierten Datenhits 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 80h 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 10h (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 DLi 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 dar letzten Spaltenadresse im Schritt S16 ist der Vorgang des Ladens von Pass-Daten beendet und der Programmiervorgang beginnt.
- Nach dem Ablauf gemäß Fig. 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 Fig. 9 dargestellt, werden die Datenbits, die partiell neu geschrieben werden sollen, vor dem Befehlssignal 10h und nach dem Befehlssignal 85h 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.
- Fig. 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 Fig. 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 DLi 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 Datenbus 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.
Claims (19)
1. Speicherbaustein, insbesondere nichtflüchtiger Speicherbaustein, mit
einem Speicherzellenbereich (1) mit einer Mehrzahl von Speicherzellen, die als Matrix mit Zeilen und Spalten angeordnet sind, die während eines Programmiermodus, eines Lesemodus, eines Rückkopier-Programmiermodus und eines Löschmodus leitend sind,
einem Taktgenerator (14) zum Erzeugen eines Taktsignals (CLK) für die verschiedenen Betriebsarten,
einem Adressenzähler (15) zum Erzeugen von Spaltenadressen in Abhängigkeit vom Taktsignal (CLK),
einem Seitenpufferschaltkreis (13) mit einer Mehrzahl von Seitenpuffern (3), die den Spalten zugeordnet sind, wobei jeder Seitenpuffer (3) einen Hauptzwischenspeicher (LAT1) und einen Cache-Zwischenspeicher (LAT2) umfasst,
einer Spaltenauswahlschaltung (18) zur Auswahl eines Teils der Seitenpuffer (3) und zum Verbinden der ausgewählten Seitenpuffer (3) mit den ausgewählten Seitenpuffern (3) zugeordneten Datenleitungen und reinem Datenladeschaltkreis (20) zum Übertragen von externen Programmierdatenbits in die Cache-Zwischenspeicher (LAT2) der ausgewählten Seitenpuffer (3),
gekennzeichnet durch Mittel zum Steuern des Datenladeschaltkreises (20) in Abhängigkeit von den Spaltenadressen, wobei ein Pass-Datenbit in einen Cache- Zwischenspeicher (LAT2) eines zu einer defekten Spalte gehörenden, ausgewählten Seitenpufferspeichers (3) anstatt eines Programmierdatenbits der defekten Spalte geladen wird, wenn während der Programmierbetriebsart eine der Spaltenadressen eine defekte Spalte bezeichnet.
einem Speicherzellenbereich (1) mit einer Mehrzahl von Speicherzellen, die als Matrix mit Zeilen und Spalten angeordnet sind, die während eines Programmiermodus, eines Lesemodus, eines Rückkopier-Programmiermodus und eines Löschmodus leitend sind,
einem Taktgenerator (14) zum Erzeugen eines Taktsignals (CLK) für die verschiedenen Betriebsarten,
einem Adressenzähler (15) zum Erzeugen von Spaltenadressen in Abhängigkeit vom Taktsignal (CLK),
einem Seitenpufferschaltkreis (13) mit einer Mehrzahl von Seitenpuffern (3), die den Spalten zugeordnet sind, wobei jeder Seitenpuffer (3) einen Hauptzwischenspeicher (LAT1) und einen Cache-Zwischenspeicher (LAT2) umfasst,
einer Spaltenauswahlschaltung (18) zur Auswahl eines Teils der Seitenpuffer (3) und zum Verbinden der ausgewählten Seitenpuffer (3) mit den ausgewählten Seitenpuffern (3) zugeordneten Datenleitungen und reinem Datenladeschaltkreis (20) zum Übertragen von externen Programmierdatenbits in die Cache-Zwischenspeicher (LAT2) der ausgewählten Seitenpuffer (3),
gekennzeichnet durch Mittel zum Steuern des Datenladeschaltkreises (20) in Abhängigkeit von den Spaltenadressen, wobei ein Pass-Datenbit in einen Cache- Zwischenspeicher (LAT2) eines zu einer defekten Spalte gehörenden, ausgewählten Seitenpufferspeichers (3) anstatt eines Programmierdatenbits der defekten Spalte geladen wird, wenn während der Programmierbetriebsart eine der Spaltenadressen eine defekte Spalte bezeichnet.
2. Speicherbaustein nach Anspruch 1, dadurch gekennzeichnet, dass die
Mittel zum Steuern des Datenladeschaltkreises (20) einen
Redundanzschaltkreis (16) umfassen, der Adresseninformationen, welche die defekten
Spalten betreffen, speichert und eines von Redundanzauswahlsignalen aktiviert,
wenn eine Spaltenadresse eine defekte Spalte bezeichnet.
3. Speicherbaustein nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass
vor dem Beginn eines Verifizierungsvorgangs nach einem Löschen der
Speicherzellen das Taktsignal (CLK) die serielle Erzeugung der
Spaltenadressen reguliert und in Abhängigkeit vom aktivierten der
Redundanzauswahlsignale das Pass-Datenbit in den Cache-Zwischenspeicher (LAT2) des
zu der defekten Spalte gehörenden, ausgewählten Seitenpuffers (3)
geladen wird.
4. Speicherbaustein nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, dass das Taktsignal (CLK) die serielle Erzeugung der
Spaltenadressen reguliert, bevor Datenbits abgetastet und in den Cache-
Zwischenspeichern (LAT2) abgelegt und zu den Hauptzwischenspeichern
(LAT1) des Seitenpuffers (3) übertragen werden, und dass in Abhängigkeit
vom aktivierten der Redundanzauswahlsignale das Pass-Datenbit in den
Cache-Zwischenspeicher (LAT2) des zur defekten Spalte gehörenden
Seitenpuffers (3) geladen wird.
5. Speicherbaustein nach einem der vorherigen Ansprüche, dadurch
gekennzeichnet, dass das Taktsignal (CLK) in Abhängigkeit von einem internen
Oszillationsfreigabesignal erzeugt wird.
6. Speicherbaustein nach einem der Ansprüche 2 bis 5, dadurch
gekennzeichnet, dass die Mittel zum Steuern des Datenladeschaltkreises (20)
folgende Elemente umfassen:
- einen redundanten Speicherzellenbereich (12) mit redundanten
Speicherzellen, die als Matrix mit Zeilen und redundanten Spalten angeordnet sind,
- redundante Seitenpuffer (3), die jeweils einer redundanten Spalte
zugeordnet sind, wobei jeder redundante Seitenpuffer (3) einen redundanten
Hauptzwischenspeicher (LAT1) und einen redundanten Cache-
Zwischenspeicher (LAT2) umfasst, und
- einen redundanten Datenladeschaltkreis (21), der in Abhängigkeit vom
Redundanzauswahlsignal das zur defekten Spalte gehörende
Programmierdatenbit im redundanten Cache-Zwischenspeicher (LAT2) eines der
redundanten Seitenpuffer (3) ablegt.
7. Speicherbaustein nach Anspruch 6, gekennzeichnet durch eine
Bestanden/Nichtbestanden-Prüfschaltung (22), welche während eines
Verifizierungsvorgangs des Programmiermodus, des Löschmodus oder des
Rückkopier-Programmiermodus Datenbits in den Hauptzwischenspeichern
(LAT1) der Seitenpuffer (3) überprüft, ob sie Pass-Datenbits sind.
8. Speicherbaustein nach Anspruch 7, dadurch gekennzeichnet, dass jeder
der Seitenpuffer (3) einen PMOS-Transistor umfasst, welcher in
Abhängigkeit von einem im Hauptzwischenspeicher (LAT1) des zugehörigen
Seitenpuffers (3) gespeicherten Datenbit eine Versorgungsspannung mit der
Bestanden/Nichtbestanden-Prüfschaltung (22) verbindet.
9. Speicherbaustein nach Anspruch 8, dadurch gekennzeichnet, dass die
Bestanden/Nichtbestanden-Prüfschaltung (22) folgende Elemente umfasst:
- einen internen Knoten, der gemeinsam mit den PMOS-Transistoren der
Seitenpuffer (3) verbunden ist,
- einen Entladetransistor, der in Abhängigkeit von einem
Entladesteuersignal den internen Konten mit einer Massespannung verbindet, und
- einen Zwischenspeicher zum Halten des logischen Zustandes des
internen Knotens und zum Ausgeben eines Bestanden/Nichtbestanden-
Prüfsignals.
10. Speicherbaustein nach einem der vorherigen Ansprüche, dadurch
gekennzeichnet, dass das Taktsignal für den Programmiervorgang in Abhängigkeit
eines logischen Übergangs eines Schreibfreigabesignals während der
Programmierbetriebsart erzeugt wird.
11. Verfahren zum Programmieren eines Speicherbausteins mit einem Haupt-
Speicherzellenbereich (11), der als Matrix in Zeilen und ersten Spalten
angeordnet ist, einem redundanten Speicherzellenbereich (12), der als Matrix
in Zeilen und zweiten Spalten angeordnet ist, und Seitenpuffern (3), die den
ersten und zweiten Spalten zugeordnet sind, wobei jeder Seitenpuffer (3)
einen Hauptzwischenspeicher (LAT1) und einen Cache-Zwischenspeicher
(LAT2) umfasst,
mit folgenden Schritten:
- Empfangen eines Programmierdatenbits nach der Eingabe einer
Anfangsadresse;
- Überprüfen, ob eine Spaltenadresse der Anfangsadresse eine Adresse
zum Auswählen einer defekten Spalte aus den ersten Spalten ist;
- Laden eines Pass-Datenbits in den Cache-Zwischenspeicher (LAT2) des
zu der defekten Spalte gehörenden Seitenpuffers (3), wenn die
Spaltenadresse eine defekte Spalte bezeichnet;
- Überprüfen, ob die Spaltenadresse die letzte Spaltenadresse ist;
- Erhöhen der Spaltenadresse um eins, wenn die Spaltenadresse nicht die
letzte Spaltenadresse ist; und
- Wiederholen der vorherigen Schritte, bis die Spaltenadresse gleich der
letzten Spaltenadresse ist.
12. Verfahren nach Anspruch 11, weiter dadurch gekennzeichnet, dass ein zu
der defekten Spalte gehörendes Programmierdatenbit in den Cache-
Zwischenspeicher (LAT2) des zu der zweiten Spalte gehörenden
Seitenpuffers (3) geladen wird, während das Pass-Datenbit in den Cache-
Zwischenspeicher (LAT2) des zu der defekten Spalte gehörenden
Seitenpuffers (3) geladen wird.
13. Verfahren nach Anspruch 11 oder 12, weiter dadurch gekennzeichnet, dass
das Programmierdatenbit in den zu der erste Spalte gehörenden
Seitenpuffer (3) geladen wird, wenn die Spaltenadresse keine defekte Spalte
bezeichnet.
14. Verfahren nach einem der Ansprüche 11 bis 13, weiter dadurch
gekennzeichnet, dass die in den Cache-Zwischenspeichern (LAT2) geladenen
Programmierdatenbits in die Hauptzwischenspeicher (LAT1) übertragen
werden, um den Hauptspeicherzellenbereich (11) und/oder den
redundanten Speicherzellenbereich (12) zu programmieren.
15. Verfahren zum Rückkopierprogrammieren von Daten in einen
Speicherbaustein mit einem Haupt-Speicherzellenbereich (11), der als Matrix in Zeilen
und ersten Spalten aufgebaut ist, einem redundanten
Speicherzellenbereich (12), der als Matrix in Zeilen und zweiten Spalten aufgebaut ist, und
mit Seitenpuffern (3), die den ersten und zweiten Spalten zugeordnet sind,
wobei jeder Seitenpufferspeicher (3) einen Hauptzwischenspeicher (LAT1)
und einen Cache-Zwischenspeicher (LAT2) umfasst,
mit folgenden Schritten:
- Festlegen einer Spaltenadresse auf den Wert "0" nach dem Abtasten und
Ablegen von Seitendaten der ersten Spalte durch die
Cache-Zwischenspeicher;
- Überprüfen, ob die Spaltenadresse eine Adresse zum Auswählen einer
defekten Spalte unter den ersten Spalten ist;
- Laden eines Pass-Datenbits in den Cache-Zwischenspeicher (LAT2) des
zur defekten Spalte gehörenden Seitenpuffers (3), wenn die
Spaltenadresse die defekte Spalte bezeichnet;
- Überprüfen, ob die Spaltenadresse die letzte Spaltenadresse ist;
- Erhöhen der Spaltenadresse um eins, wenn die Spaltenadresse nicht die
letzte Spaltenadresse ist; und
- Wiederholen der vorigen Schritte, bis die Spaltenadresse gleich der
letzten Spaltenadresse ist.
16. Verfahren nach Anspruch 15, weiter dadurch gekennzeichnet, dass
überprüft wird, ob die Spaltenadresse die letzte Spaltenadresse ist,
wenn die Spaltenadresse keine Adresse zum Auswählen der
defekten Spalte ist.
17. Verfahren nach Anspruch 15 oder 16, weiter dadurch gekennzeichnet, dass
die in den Cache-Zwischenspeichern (LAT2) abgelegten
Programmierdatenbits in die Hauptzwischenspeicher (LAT1) übertragen werden, um den
Haupt-Speicherzellenbereich (11) und den redundanten
Speicherzellenbereich (12) zu programmieren, wenn die Spaltenadresse die letzte
Spaltenadresse ist.
18. Verfahren zum Löschen von Daten in einem Speicherbaustein mit einem
Haupt-Speicherzellenbereich (11), der als Matrix in Zeilen und ersten
Spalten angeordnet ist, einem redundanten Speicherzellenbereich (12), der als
Matrix in Zeilen und zweiten Spalten angeordnet ist, und Seitenpuffer (3),
die den ersten und zweiten Spalten zugeordnet sind, wobei jeder
Seitenpuffer (3) einen Hauptzwischenspeicher (LAT1) und einen Cache-
Zwischenspeicher (LAT2) umfasst,
mit folgenden Schritten:
- Abtasten von Seitendaten durch die Cache-Zwischenspeicher (LAT2)
nach dem Löschen des Haupt-Speicherzellenbereichs (11) und des
redundanten Speicherzellenbereichs (12);
- Festlegen einer Speicheradresse auf den Wert "0";
- Überprüfen, ob die Spaltenadresse eine Adresse zum Auswählen einer
defekten Spalte unter den ersten Spalten ist;
- Laden eines Pass-Datenbits in den Cache-Zwischenspeicher (LAT2) des
zu der defekten Spalte gehörenden Seitenpuffers, wenn die
Spaltenadresse die defekte Spalte bezeichnet;
- Überprüfen, ob die Spaltenadresse die letzte Spaltenadresse ist;
- Erhöhen der Spaltenadresse um eins, wenn die Spaltenadresse nicht die
letzte Spaltenadresse ist; und
- Wiederholen der vorigen Schritte, bis die Spaltenadresse gleich der
letzten Spaltenadresse ist.
19. Verfahren nach Anspruch 18, weiter dadurch gekennzeichnet, dass
überprüft wird, ob die Spaltenadresse die letzte Spaltenadresse ist, wenn die
Spaltenadresse keine Adresse zum Auswählen der defekten Spalte ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR2002-0001875 | 2002-01-12 | ||
KR10-2002-0001875A KR100437461B1 (ko) | 2002-01-12 | 2002-01-12 | 낸드 플래시 메모리 장치 및 그것의 소거, 프로그램,그리고 카피백 프로그램 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10301458A1 true DE10301458A1 (de) | 2003-08-14 |
DE10301458B4 DE10301458B4 (de) | 2009-08-27 |
Family
ID=36251088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10301458A Expired - Lifetime DE10301458B4 (de) | 2002-01-12 | 2003-01-10 | Speicherbaustein und zugehöriges Lösch-, Programmier- und Rückkopierverfahren |
Country Status (5)
Country | Link |
---|---|
US (1) | US6813184B2 (de) |
JP (1) | JP4070112B2 (de) |
KR (1) | KR100437461B1 (de) |
DE (1) | DE10301458B4 (de) |
TW (1) | TWI231937B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008002237A1 (de) * | 2008-03-14 | 2009-09-24 | Hynix Semiconductor Inc., Icheon | Verfahren zum Prüfen einer nichtflüchtigen Speichervorrichtung |
Families Citing this family (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985388B2 (en) * | 2001-09-17 | 2006-01-10 | Sandisk Corporation | Dynamic column block selection |
US7170802B2 (en) * | 2003-12-31 | 2007-01-30 | Sandisk Corporation | Flexible and area efficient column redundancy for non-volatile memories |
KR100514415B1 (ko) * | 2003-01-22 | 2005-09-09 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리의 페이지 버퍼 |
JP4550439B2 (ja) * | 2003-02-28 | 2010-09-22 | 東芝メモリシステムズ株式会社 | Ecc制御装置 |
JP4563715B2 (ja) * | 2003-04-29 | 2010-10-13 | 三星電子株式会社 | パーシャルコピーバック動作モードを有するフラッシュメモリ装置 |
KR100512178B1 (ko) * | 2003-05-28 | 2005-09-02 | 삼성전자주식회사 | 플렉서블한 열 리던던시 스킴을 갖는 반도체 메모리 장치 |
US7171526B2 (en) * | 2003-11-07 | 2007-01-30 | Freescale Semiconductor, Inc. | Memory controller useable in a data processing system |
KR100575336B1 (ko) * | 2004-04-20 | 2006-05-02 | 에스티마이크로일렉트로닉스 엔.브이. | 듀얼 레지스터를 갖는 페이지 버퍼, 이를 구비한 반도체메모리 장치 및 그의 프로그램 방법 |
KR100632940B1 (ko) * | 2004-05-06 | 2006-10-12 | 삼성전자주식회사 | 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치 |
KR100624287B1 (ko) * | 2004-05-11 | 2006-09-18 | 에스티마이크로일렉트로닉스 엔.브이. | 낸드 플래시 메모리 소자의 리던던시 회로 |
KR100530930B1 (ko) * | 2004-05-11 | 2005-11-23 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리 장치의 멀티-i/o 리페어 방법 및그의 낸드 플래시 메모리 장치 |
KR100635202B1 (ko) * | 2004-05-14 | 2006-10-16 | 에스티마이크로일렉트로닉스 엔.브이. | 듀얼 레지스터를 갖는 페이지 버퍼의 제어방법 및 그제어회로 |
KR100587080B1 (ko) * | 2004-05-17 | 2006-06-08 | 주식회사 하이닉스반도체 | 메모리 장치의 감지 증폭기를 제어하여 컬럼성 페일을검출하는 방법 및 그 장치 |
KR100567912B1 (ko) * | 2004-05-28 | 2006-04-05 | 주식회사 하이닉스반도체 | 플래시 메모리 장치의 페이지 버퍼 및 이를 이용한 데이터프로그램 방법 |
JP4102338B2 (ja) * | 2004-07-20 | 2008-06-18 | 株式会社東芝 | 半導体記憶装置 |
JP4703148B2 (ja) * | 2004-09-08 | 2011-06-15 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7466597B2 (en) * | 2004-09-09 | 2008-12-16 | Samsung Electronics Co., Ltd. | NAND flash memory device and copyback program method for same |
KR100648277B1 (ko) * | 2004-12-30 | 2006-11-23 | 삼성전자주식회사 | 프로그램 시간을 줄일 수 있는 플래시 메모리 장치 |
KR100666171B1 (ko) | 2005-01-10 | 2007-01-09 | 삼성전자주식회사 | 로드 프리 타입의 와이어드 오어 구조를 가지는 불휘발성반도체 메모리 장치와, 이에 대한 구동방법 |
KR100666170B1 (ko) * | 2005-01-17 | 2007-01-09 | 삼성전자주식회사 | 결함 페이지 버퍼로부터의 데이터 전송이 차단되는와이어드 오어 구조의 불휘발성 반도체 메모리 장치 |
JP4944763B2 (ja) * | 2005-01-27 | 2012-06-06 | スパンション エルエルシー | 半導体装置、アドレス割り付け方法及びベリファイ方法 |
KR100672148B1 (ko) * | 2005-02-17 | 2007-01-19 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그것의 페이지 버퍼 동작 방법 |
KR100672149B1 (ko) * | 2005-02-17 | 2007-01-19 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 페이지 버퍼 동작 방법 |
KR100672150B1 (ko) * | 2005-02-23 | 2007-01-19 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그것의 페이지 버퍼 동작 방법 |
KR100666174B1 (ko) | 2005-04-27 | 2007-01-09 | 삼성전자주식회사 | 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법 |
US7289363B2 (en) * | 2005-05-19 | 2007-10-30 | Micron Technology, Inc. | Memory cell repair using fuse programming method in a flash memory device |
US7958430B1 (en) | 2005-06-20 | 2011-06-07 | Cypress Semiconductor Corporation | Flash memory device and method |
KR100694967B1 (ko) * | 2005-06-29 | 2007-03-14 | 주식회사 하이닉스반도체 | 프로그램 동작시 에러 발생 비율을 감소시키는 플래시메모리 장치 및 그 프로그램 동작 제어 방법 |
KR100634458B1 (ko) * | 2005-07-04 | 2006-10-16 | 삼성전자주식회사 | 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치 |
EP1772873B1 (de) * | 2005-10-10 | 2008-12-10 | STMicroelectronics S.r.l. | Verfahren zur Programmierung und Verifizierung von Zellen eines nicht-flüchtigen Speicher und ein entsprechender NAND Flash Speicher |
US7379330B2 (en) * | 2005-11-08 | 2008-05-27 | Sandisk Corporation | Retargetable memory cell redundancy methods |
JP4734110B2 (ja) * | 2005-12-14 | 2011-07-27 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR100693250B1 (ko) * | 2005-12-28 | 2007-03-13 | 삼성전자주식회사 | 페이지 버퍼 및 그것의 읽기 방법 |
KR100684909B1 (ko) * | 2006-01-24 | 2007-02-22 | 삼성전자주식회사 | 읽기 에러를 방지할 수 있는 플래시 메모리 장치 |
JP5142478B2 (ja) * | 2006-04-13 | 2013-02-13 | 株式会社東芝 | 半導体記憶装置 |
KR100778082B1 (ko) * | 2006-05-18 | 2007-11-21 | 삼성전자주식회사 | 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드 |
US7876613B2 (en) | 2006-05-18 | 2011-01-25 | Samsung Electronics Co., Ltd. | Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards |
KR100919156B1 (ko) * | 2006-08-24 | 2009-09-28 | 삼성전자주식회사 | 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 |
KR100837274B1 (ko) | 2006-08-28 | 2008-06-11 | 삼성전자주식회사 | 오토 멀티-페이지 카피백 기능을 갖는 플래시 메모리 장치및 그것의 블록 대체 방법 |
KR100816162B1 (ko) * | 2007-01-23 | 2008-03-21 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리 장치 및 셀 특성 개선 방법 |
KR100823175B1 (ko) * | 2007-02-27 | 2008-04-18 | 삼성전자주식회사 | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것을 포함한 메모리 시스템 |
US7535764B2 (en) * | 2007-03-21 | 2009-05-19 | Sandisk Corporation | Adjusting resistance of non-volatile memory using dummy memory cells |
KR100898039B1 (ko) | 2007-05-21 | 2009-05-19 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법 |
KR101391881B1 (ko) * | 2007-10-23 | 2014-05-07 | 삼성전자주식회사 | 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 및 읽기방법 |
KR20090084531A (ko) | 2008-02-01 | 2009-08-05 | 삼성전자주식회사 | 퓨즈 회로 및 이를 포함하는 반도체 메모리 장치 |
US8027195B2 (en) | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US8102705B2 (en) | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
US7974124B2 (en) | 2009-06-24 | 2011-07-05 | Sandisk Corporation | Pointer based column selection techniques in non-volatile memories |
KR101044533B1 (ko) * | 2009-06-29 | 2011-06-27 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 이것의 카피백 프로그램 방법 |
KR20110001058A (ko) * | 2009-06-29 | 2011-01-06 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 동작 방법 |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
JP2011123965A (ja) | 2009-12-11 | 2011-06-23 | Toshiba Corp | 半導体記憶装置 |
US8468294B2 (en) | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8238178B2 (en) * | 2010-02-12 | 2012-08-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Redundancy circuits and operating methods thereof |
KR101626080B1 (ko) * | 2010-02-17 | 2016-06-01 | 삼성전자주식회사 | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 |
KR20110121897A (ko) * | 2010-05-03 | 2011-11-09 | 삼성전자주식회사 | 사용자 장치 및 그것의 프로그램 페일 처리 방법 |
US8634261B2 (en) | 2010-09-06 | 2014-01-21 | SK Hynix Inc. | Semiconductor memory device and method of operating the same |
US8526238B2 (en) * | 2010-10-01 | 2013-09-03 | Micron Technology, Inc. | Memory arrays and methods of operating memory |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
KR101736457B1 (ko) * | 2011-07-12 | 2017-05-17 | 삼성전자주식회사 | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 소거 방법, 불휘발성 메모리 장치의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 시스템, 메모리 시스템의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 카드 및 솔리드 스테이트 드라이브 |
TWI452574B (zh) * | 2011-10-04 | 2014-09-11 | Eon Silicon Solution Inc | 可加速抹除驗證程序的nand快閃記憶體裝置及方法 |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US8923083B2 (en) * | 2012-08-23 | 2014-12-30 | Eon Silicon Solution Inc. | Method of identifying damaged bitline address in non-volatile |
KR20140031554A (ko) * | 2012-09-04 | 2014-03-13 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
US9348694B1 (en) * | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9773571B2 (en) * | 2014-12-16 | 2017-09-26 | Macronix International Co., Ltd. | Memory repair redundancy with array cache redundancy |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
KR102417976B1 (ko) * | 2015-10-21 | 2022-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US10496289B2 (en) * | 2016-06-16 | 2019-12-03 | Nuvoton Technology Corporation | System and methods for increasing useful lifetime of a flash memory device |
KR102686445B1 (ko) | 2016-11-29 | 2024-07-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US10353769B2 (en) | 2017-07-25 | 2019-07-16 | Apple Inc. | Recovering from addressing fault in a non-volatile memory |
CN109426616B (zh) * | 2017-08-31 | 2023-08-04 | 华邦电子股份有限公司 | 字节编程方法以及页面编程方法 |
US10832763B2 (en) * | 2018-12-18 | 2020-11-10 | International Business Machines Corporation | Global bit line latch performance and power optimization |
KR20210028886A (ko) * | 2019-09-05 | 2021-03-15 | 에스케이하이닉스 주식회사 | 캐시 래치 회로를 구비하는 반도체 메모리 장치 |
KR20220043763A (ko) | 2020-09-29 | 2022-04-05 | 삼성전자주식회사 | 컬럼 리페어를 위한 메모리 장치 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970005645B1 (ko) | 1994-10-01 | 1997-04-18 | 삼성전자 주식회사 | 불휘발성 반도체 메모리의 부분 프로그램을 위한 데이터 로딩회로 |
KR0142367B1 (ko) * | 1995-02-04 | 1998-07-15 | 김광호 | 열 리던던씨를 가지는 불휘발성 반도체 메모리의 소거 검증회로 |
KR0164803B1 (ko) | 1995-07-15 | 1999-02-01 | 김광호 | 불휘발성 반도체메모리의 센스앰프 |
KR0169420B1 (ko) | 1995-10-17 | 1999-02-01 | 김광호 | 불 휘발성 반도체 메모리의 데이타 리드 방법 및 그에 따른 회로 |
KR0172366B1 (ko) | 1995-11-10 | 1999-03-30 | 김광호 | 불휘발성 반도체 메모리 장치의 독출 및 프로그램 방법과 그 회로 |
US5991196A (en) * | 1997-12-16 | 1999-11-23 | Microchip Technology Incorporated | Reprogrammable memory device with variable page size |
KR100338553B1 (ko) * | 1999-09-06 | 2002-05-27 | 윤종용 | 프로그램 상태 검출 회로를 갖는 플래시 메모리 장치 및그것의 프로그램 방법 |
DE10043397B4 (de) * | 1999-09-06 | 2007-02-08 | Samsung Electronics Co., Ltd., Suwon | Flash-Speicherbauelement mit Programmierungszustandsfeststellungsschaltung und das Verfahren dafür |
EP1130517B1 (de) * | 2000-03-02 | 2004-05-26 | STMicroelectronics S.r.l. | Redundanzarchitektur bei einem verschachtelten Speicher |
JP4250325B2 (ja) * | 2000-11-01 | 2009-04-08 | 株式会社東芝 | 半導体記憶装置 |
KR100463195B1 (ko) * | 2001-08-28 | 2004-12-23 | 삼성전자주식회사 | 가속 열 스캔닝 스킴을 갖는 불 휘발성 반도체 메모리 장치 |
-
2002
- 2002-01-12 KR KR10-2002-0001875A patent/KR100437461B1/ko active IP Right Grant
-
2003
- 2003-01-08 JP JP2003002229A patent/JP4070112B2/ja not_active Expired - Lifetime
- 2003-01-10 TW TW092100504A patent/TWI231937B/zh not_active IP Right Cessation
- 2003-01-10 DE DE10301458A patent/DE10301458B4/de not_active Expired - Lifetime
- 2003-01-10 US US10/340,532 patent/US6813184B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008002237A1 (de) * | 2008-03-14 | 2009-09-24 | Hynix Semiconductor Inc., Icheon | Verfahren zum Prüfen einer nichtflüchtigen Speichervorrichtung |
DE102008002237B4 (de) * | 2008-03-14 | 2012-04-05 | Hynix Semiconductor Inc. | Verfahren zum Prüfen einer nichtflüchtigen Speichervorrichtung |
Also Published As
Publication number | Publication date |
---|---|
KR20030061877A (ko) | 2003-07-23 |
JP4070112B2 (ja) | 2008-04-02 |
US20030133340A1 (en) | 2003-07-17 |
US6813184B2 (en) | 2004-11-02 |
TWI231937B (en) | 2005-05-01 |
KR100437461B1 (ko) | 2004-06-23 |
JP2003233995A (ja) | 2003-08-22 |
DE10301458B4 (de) | 2009-08-27 |
TW200301903A (en) | 2003-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10301458B4 (de) | Speicherbaustein und zugehöriges Lösch-, Programmier- und Rückkopierverfahren | |
DE60132830T2 (de) | Neuartiges verfahren und struktur zur effizienten datenverifizierungsoperation für nichtflüchtige speicher | |
DE102005063166B4 (de) | Nicht-flüchtiges Speicherelement und Verfahren zur Programmierüberprüfung in einem nicht-flüchtigen Speicherelement | |
DE60125932T2 (de) | Nichtflüchtige Halbleiterspeicher | |
DE19860871B4 (de) | Leistungsunabhängiger Halbleiterspeicherbaustein und Verfahren zur Ansteuerung von dessen Wortleitungen | |
DE69417712T2 (de) | Nichtflüchtige Halbleiter-Speichereinrichtung | |
DE19983565B4 (de) | Interner Auffrisch-Modus für eine Flash-Speicherzellenmatrix | |
DE4446998C2 (de) | Halbleiterspeichereinrichtung | |
DE69333549T2 (de) | Halbleiterspeicheranordnung | |
DE602004003275T2 (de) | Nichtflüchtiger Speicher mit Seiten-Kopierfunktion und entsprechendes Verfahren | |
DE10043397B4 (de) | Flash-Speicherbauelement mit Programmierungszustandsfeststellungsschaltung und das Verfahren dafür | |
DE60130437T2 (de) | Simultane mehrbankoperation für flash-speicher | |
DE69502169T2 (de) | Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher | |
DE69615568T2 (de) | Verfahren und vorrichtung zur verifikation einer speicherzelle von einer nichtflüssigen speicherschaltung | |
DE10052326B4 (de) | Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür | |
DE102005057112B4 (de) | Nichtflüchtiges Speicherbauelement und Programmierverfahren | |
DE4207934A1 (de) | Elektrisch loesch- und programmierbares, nichtfluechtiges speichersystem mit schreib-pruef-einsteller unter verwendung zweier bezugspegel | |
DE19513789A1 (de) | Verfahren und Schaltkreis zum Reparieren von Defekten in Halbleitervorrichtung | |
DE60222891T2 (de) | Nichtflüchtige Speichervorrichtung und Selbstreparatur-Verfahren | |
DE69324694T2 (de) | Doppelreihige Adressendekodierung- und Auswahlschaltung für eine elektrisch löschbare und programmierbare nichtflüchtige Speicheranordnung mit Redundanz, insbesondere für Flash-EEPROM Anordnungen | |
DE4226847C2 (de) | Flash-EEPROM und Verfahren zum Löschen der Speicherzellen von Flash-EEPROMS | |
DE60016104T2 (de) | Nichtflüchtige Halbleiterspeicheranordnung | |
DE69321245T2 (de) | Integrierte Programmierschaltung für eine elektrisch programmierbare Halbleiterspeicheranordnung mit Redundanz | |
DE102005032484A1 (de) | Nichtflüchtiges Speicherelement und zugehöriges Programmierverfahren | |
DE69628963T2 (de) | Verfahren zum Löschen eines nichtflüchtigen Halbleiterspeichers mit redundanten Zellen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |