-
Die Erfindung betrifft Programmierverfahren für ein Speicherbauelement und Speicherbauelemente, insbesondere ein blockweise löschbares Speicherbauelement.
-
Speicherbauelemente bzw. Halbleiterspeicherbauelemente mit integrierten Schaltungen sind in Verbrauchsapplikationen und kommerziellen Applikationen weit verbreitet. Halbleiterspeicherbauelemente können als flüchtige Speicher mit direktem Zugriff (RAMs) oder als nichtflüchtige Speicherbauelemente charakterisiert werden. In RAMs können die logischen Informationen durch Setzen eines logischen Zustandes eines bistabilen Flip-Flops, wie in einem statischen Speicher mit direktem Zugriff (SRAM), oder durch Laden eines Kondensators gespeichert werden, wie in einem dynamischen Speicher mit direktem Zugriff (DRAM). In beiden Fällen werden die Daten gespeichert und können so lange ausgelesen werden, wie eine Energieversorgung angelegt ist, und die Daten gehen verloren, wenn die Energieversorgung abgeschaltet wird. Deshalb werden diese Speicher flüchtige Speicher genannt.
-
Nichtflüchtige Speicher, wie weit verbreitete maskenprogrammierbare Nur-Lesespeicher (MROM), programmierbare Nur-Lesespeicher (PROM), löschbare programmierbare Nur-Lesespeicher (EPROM) und elektrisch löschbare programmierbare Nur-Lesespeicher (EEPROM), sind in der Lage, Daten zu speichern, auch wenn die Energieversorgung abgeschaltet wird. Der nichtflüchtige Datenspeichermodus kann in Abhängigkeit von der verwendeten Herstellungstechnik permanent oder wiederprogrammierbar sein. Nichtflüchtige Speicher können für Programme und zur Mikrocodespeicherung in einer weiten Vielfalt von Applikationen verwendet werden. Eine Kombination von Speichermodi von flüchtigen und nichtflüchtigen Speichern auf einem Einzelchip sind ebenfalls verfügbar, wie in einem nichtflüchtigen SRAM (nvRAM) zur Verwendung in Systemen, welche schnelle programmierbare nichtflüchtige Speicher erfordern. Zusätzlich sind viele Spezialspeicherarchitekturen entwickelt worden, welche einige zusätzliche logische Schaltungen umfassen, um ihre Leistungsfähigkeit für spezielle Applikationsaufgaben maßschneidern zu können.
-
Nichtflüchtige MROM-, PROM- und EPROM-Speicher können für den Endnutzer nicht löschbar und nicht programmierbar ausgeführt sein. Anderseits können EEPROM-Bauelemente elektrisch gelöscht und beschrieben werden. Entsprechend können EEPROM-Bauelemente in Zusatzspeichern oder zur Systemprogrammierung verwendet werden, in welchen fortlaufende Aktualisierungen erwünscht sind. Insbesondere ein Flash-EEPROM kann eine höhere Integrationsdichte als ein konventionelles EEPROM aufweisen und kann daher für große Zusatzspeicher verwendet werden. Ein Flash-EEPROM vom NAND-Typ, welches nachfolgend auch als NAND-Flashspeicher bezeichnet wird, kann eine höhere Integrationsdichte als ein bekanntes Flash-EEPROM vom NOR-Typ aufweisen.
-
Ein nichtflüchtiges Speicherbauelement, wie ein Flashspeicherbauelement, umfasst ein Speicherzellenfeld als Speicherbereich zum Speichern von Informationen, welches eine Mehrzahl von Speicherblöcken BLK0 bis BLKn aufweist, wie aus
1 ersichtlich ist. Jeder Speicherblock kann in ein Hauptfeld
10 und ein Ersatzfeld
20 aufgeteilt sein. Das Ersatzfeld eines jeden Speicherblocks speichert Informationen, welche sich auf das Hauptfeld
10 und das Flashspeicherbauelement beziehen, wie einen Fehlerkorrekturcode, einen Bauelementcode, andere Codes, Blockinformation, Seiteninformation usw. Jeder Speicherblock umfasst eine Mehrzahl von Zellenketten, welche auch als NAND-Ketten bezeichnet werden und so konfiguriert sind, wie aus
1 ersichtlich ist. Eine Seitenpufferschaltung wird im Flashspeicherbauelement zur Verfügung gestellt, um Daten im Speicherzellenfeld zu speichern und aus dem Speicherzellenfeld auszulesen. Wie allgemein bekannt ist, können Speicherzellen des NAND-Flashspeicherbauelements durch einen Fowler-Nordheim-Tunnelstrom (F-N-Tunnelstrom) programmiert und gelöscht werden. Lösch- und Programmierverfahren eines solchen Speicherbauelements sind z. B. in der Patentschrift
US 5.473.563 A beschrieben, deren Inhalt hiermit durch Bezugnahme vollständig in die vorliegende Anmeldung aufgenommen wird.
-
Wie gesagt, umfasst ein Flashspeicherbauelement ein Speicherzellenfeld, welches in eine Anzahl von Speicherblöcken aufgeteilt ist. Ein Lese-/Lösch-/Programmiervorgang eines entsprechenden Speicherblocks wird individuell durchgeführt. Eine Zeitspanne, welche zum Löschen von Speicherblöcken erforderlich ist, kann ein Begrenzungsfaktor in der Leistungsfähigkeit eines Systems mit einem Flashspeicherbauelement als auch in der Leistungsfähigkeit des Flashspeicherbauelements selbst sein. Um diese potentielle Unzulänglichkeit zu beseitigen, wurden Techniken zum gleichzeitigen Löschen einer Mehrzahl von Speicherblöcken entwickelt, wie sie in den Patentschriften
US 5.841.721 A und
US 5.999.446 A beschrieben werden, deren Inhalt hiermit durch Bezugnahme vollständig in die vorliegende Anmeldung aufgenommen wird.
-
Wird ein Speicherblock gelöscht, dann werden Informationen, welche anzeigen, dass der Speicherblock gelöscht ist, im Ersatzfeld des gelöschten Speicherblocks gespeichert. Eine solche Information wird als „Blockinformation” bezeichnet. In anderen Worten ausgedrückt, die Blockinformation eines Speicherblocks ist an einem bestimmten Ort des Ersatzfeldes gespeichert. Die Blockinformation kann ein 1-Bit-Datum sein. Normalerweise wird diese Blockinformation für alle Speicherblöcke am gleichen Ort des korrespondierenden Ersatzfeldbereichs des jeweiligen Speicherblocks gespeichert. Wie beispielsweise aus 1 ersichtlich ist, ist die Blockinformation jeweils in einer Speicherzelle gespeichert, welche gestrichelt bzw. schraffiert markiert und an einer Kreuzung einer ersten Wortleitung WL0 jedes Speicherblocks mit einer Ersatzbitleitung SBL0 angeordnet ist.
-
Die Patentschrift
US 6.507.885 B2 offenbart ein Speicherbauelement mit einem Speicherzellenfeld, das eine Mehrzahl von Hauptblöcken aus jeweils mehreren kleineren Blöcken derart umfasst, dass das Speicherbauelement eine Festplattenemulation bildet, und ein zugehöriges Programmierverfahren. Außer in einem Einblockmodus ist das Speicherbauelement auch in einem Mehrblockmodus betreibbar, bei dem mehrere Blöcke zum gleichzeitigen Löschen, Schreiben und/oder Lesen einer Mehrzahl von darin gespeicherten Bytes an Daten ausgewählt werden.
-
Es ist Aufgabe der Erfindung, ein Speicherbauelement und ein Programmierverfahren hierfür anzugeben, die insbesondere hinsichtlich Programmiereffizienz gegenüber dem oben erwähnten Stand der Technik verbessert sind.
-
Die Erfindung löst diese Aufgabe durch ein Programmierverfahren für ein Speicherbauelement mit den Merkmalen des Patentanspruchs 1 oder 9 und durch ein Speicherbauelement mit den Merkmalen des Patentanspruchs 14 oder 24.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte, nachfolgend beschriebene Ausführungsformen der Erfindung sowie das zu deren besserem Verständnis oben erläuterte, herkömmliche Ausführungsbeispiel sind in den Zeichnungen dargestellt. Es zeigen:
-
1 eine schematische Darstellung einer Speicherzellenfeldstruktur eines herkömmlichen nichtflüchtigen Speicherbauelements,
-
2 ein Blockdiagramm eines erfindungsgemäßen nichtflüchtigen Speicherbauelements,
-
3 ein Blockdiagramm einer Zeilendecoderschaltung für das Speicherbauelement aus 2,
-
4 ein Logikschaltbild einer Adressengeneratorschaltung für die Zeilendecoderschaltung aus 3,
-
5 ein Logikschaltbild einer Blockdecoderschaltung für die Zeilendecoderschaltung aus 3 und
-
6 ein Zeitablaufdiagramm zur Erläuterung eines erfindungsgemäßen Mehrseitenprogrammierverfahrens.
-
2 zeigt ein schematisch ein Ausführungsbeispiel eines erfindungsgemäßen nichtflüchtigen Speicherbauelements in Form eines NAND-Flashspeicherbauelements. Die Erfindung kann jedoch auch auf andere Halbleiterspeicherbauelemente, wie MROM, PROM, FRAM, NOR-Flashspeicherbauelemente usw., angewendet werden. Wie aus 2 ersichtlich ist, umfasst das nichtflüchtige Speicherbauelement 100 ein Speicherzellenfeld 110 zum Speichern von Dateninformation, welches eine Mehrzahl von Speicherblöcken umfasst. Jeder der Speicherblöcke ist in ein Hauptfeld 110M und ein Ersatzfeld 110S aufgeteilt. Das Hauptfeld 110M und das Ersatzfeld 110S eines jeden Speicherblocks können gemäß der in 1 dargestellten Struktur konfiguriert sein, worauf verwiesen werden kann. Das erfindungsgemäße nichtflüchtige Speicherbauelement 100 umfasst weiter eine Adressenpufferschaltung 120, eine Zeilendecoderschaltung 130, eine Steuerlogik 140, eine Seitenpufferschaltung 150, eine Spaltendecoderschaltung 160, eine Spaltengatterschaltung 170, eine Eingabe-/Ausgabepufferschaltung 180 und eine Bestanden/Nichtbestanden-Überprüfungsschaltung 190.
-
Die Adressenpufferschaltung 120 wird von der Steuerlogik 140 gesteuert und empfängt gemäß einem vorgegebenen Zeitablauf Spalten- und Zeilenadressen über Eingabe-/Ausgabeanschlüsse I/O. Die Zeilendecoderschaltung 130 wird von der Steuerlogik 140 gesteuert und arbeitet in Reaktion auf eine Zeilenadresse von der Adressenpufferschaltung 120. Bei einem Einzelseitenprogrammiervorgang umfasst die Zeilenadresse eine Blockadresseninformation zur Auswahl eines Speicherblocks und eine Seitenadresseninformation zur Auswahl von Seiten bzw. Wortleitungen des ausgewählten Speicherblocks. Andererseits umfasst die Zeilenadresse bei einem Mehrseitenprogrammiervorgang nur die Blockadresseninformation zur Auswahl des Speicherblocks. Dies wird nachfolgend detaillierter beschrieben. Die Zeilendecoderschaltung 130 reagiert auf die empfangene Zeilenadresse und wählt einen der Speicherblöcke aus. Die Zeilendecoderschaltung 130 treibt Wortleitungen oder Seiten des ausgewählten Speicherblocks mit korrespondierenden Wortleitungsspannungen abhängig vom Betriebsmodus.
-
Gemäß einem Ausführungsbeispiel umfasst die Zeilendecoderschaltung 130 ein Register 131, welches ausgeführt ist, um temporär die Blockadressen zur Auswahl von allen oder eines Teils der Speicherblöcke bei dem Mehrseitenprogrammiervorgang zu speichern. Bei dem Mehrseitenprogrammiervorgang werden die Blockadressen im Register 131 benutzt, um Speicherblöcke gleichzeitig zu aktivieren. Die Zeilendecoderschaltung 130 erzeugt beim Mehrseitenprogrammiervorgang intern eine Seitenadresse. Entsprechend wählt die Zeilendecoderschaltung 130 unter Benutzung der Blockadressen im Register 131 gleichzeitig eine Mehrzahl von Speicherblöcken aus und aktiviert gemäß der intern erzeugten Seitenadresse eine bestimmte Wortleitung in jedem der ausgewählten Speicherblöcke. Das bedeutet, dass die korrespondierenden Wortleitungen der ausgewählten Speicherblöcke beim Mehrseitenprogrammiervorgang gleichzeitig aktiviert werden.
-
Entsprechend sind beispielhafte Ausführungsformen der Erfindung konfiguriert, um sequentiell eine korrespondierende Löschstatusanzeige für einen zugehörigen Speicherblock im Register 131 in Reaktion auf sequentiell gelöschte Speicherblöcke zu speichern. Diese Ausführungsformen sind weiter so konfiguriert, dass die korrespondierenden Löschstatusanzeigen, welche sequentiell im Register 131 gespeichert sind, gleichzeitig in den korrespondierenden Speicherblöcken gespeichert werden.
-
Wie weiter aus
2 ersichtlich ist, umfasst die Seitenpufferschaltung
150 eine Mehrzahl von nicht dargestellten Seitenpuffern, welche jeweils mit einer Bitleitung verbunden sind, wobei jede Bitleitung von allen Speicherblöcken gemeinsam genutzt wird. Die Seitenpufferschaltung
150 wirkt abhängig vom Betriebsmodus als Abtastverstärker und Schreibtreiber. Während eines Lesevorgangs tastet die Seitenpufferschaltung
150 über die Bitleitungen beispielsweise Daten vom ausgewählten Speicherblock ab, z. B. aus dem Haupt- und dem Ersatzfeld oder nur aus dem Ersatzfeld. Bei einem Einzelseiten-/Mehrseitenprogrammiervorgang puffert die Seitenpufferschaltung
150 zu programmierende Daten und treibt Bitleitungen basierend auf den zwischengespeicherten Daten mit einer Programmierspannung, z. B. einer Massespannung, oder einer Programmiersperrspannung, z. B. einer Versorgungsspannung. Die Spaltendecoderschaltung
160 decodiert eine Spaltenadresse von der Adressenpufferschaltung
120 und die Spaltengatterschaltung
170 wählt in Reaktion auf die decodierten Adressensignale von der Spaltendecoderschaltung
160 Seitenpuffer der Seitenpufferschaltung
150 in einer Bitorganisationseinheit aus. Während eines Lesevorgangs werden Daten, welche von der Seitenpufferschaltung
150 gelesen werden, über die Spaltengatterschaltung
170 und die Eingabe-/Ausgabepufferschaltung
180 ausgegeben. Während eines Programmiervorgangs werden zu programmierende Daten über die Spaltengatterschaltung
170 und die Eingabe-/Ausgabepufferschaltung
180 zur Seitenpufferschaltung
150 übertragen. Die Überprüfungsschaltung
190 empfängt während eines Programmier-/Löschverifizierungsvorgangs von der Seitenpufferschaltung
150 gelesene Datenbits und beurteilt, ob die empfangenen Datenbits den gleichen Wert aufweisen, d. h. einen Bestanden-Datenwert. Ein Überprüfungsergebnis der Überprüfungsschaltung
190 wird zur Steuerlogik
140 übertragen. Beispielhafte Seitenpuffer und Überprüfungsschaltungen sind in der Patentschrift
US 5.299.162 A beschrieben, deren Inhalt hiermit durch Bezugnahme vollständig in die vorliegende Anmeldung aufgenommen wird.
-
Obwohl in 2 nicht dargestellt, kann die Spaltendecoderschaltung 160 einen Adressenzähler umfassen, welcher sukzessive durch aufeinander folgendes Erhöhen einer Anfangsspaltenadresse Spaltenadressen erzeugt. Dadurch werden zu programmierende bzw. zu lesende Seitendaten nacheinander über die Spaltengatterschaltung 170 in einer Bitorganisationseinheit übertragen.
-
Wie weiter aus 2 ersichtlich, ist die Steuerlogik 140 konfiguriert, um den Mehrseitenprogrammiervorgang zu steuern, in welchem alle oder bestimmte Speicherblöcke im Speicherzellenfeld 110 gleichzeitig ausgewählt und die korrespondierenden Wortleitungen der ausgewählten Speicherblöcke gleichzeitig aktiviert werden. Zudem steuert die Steuerlogik 140 den Einzelseitenprogrammiervorgang, in welchem ein Speicherblock ausgewählt und eine Wortleitung im ausgewählten Speicherblock aktiviert werden. Die Steuerlogik 140 beurteilt Adressen-, Befehls- und Dateneingabezeitabläufe in Reaktion auf herkömmliche Steuersignale, wie die herkömmlichen Signale CLE, ALE, /CE, /RE und /WE. Während des Mehrseitenprogrammiervorgangs steuert die Steuerlogik 140 die Adressenpufferschaltung 120 und die Zeilendecoderschaltung 130 so, dass Blockadressen zum Auswählen aller oder bestimmter Speicherblöcke sequentiell im Register 131 der Zeilendecoderschaltung 130 über die Adressenpufferschaltung 120 gespeichert werden. Die Steuerlogik 140 steuert die Zeilendecoderschaltung 130 so, dass die Speicherblöcke der Blockadressen im Register 131 gleichzeitig ausgewählt und eine bestimmte Wortleitung in jedem der ausgewählten Speicherblöcke mit einer Programmierspannung getrieben oder aktiviert wird. Dies wird nachfolgend detaillierter beschrieben. Die Funktionalität der Steuerlogik 140 kann als Hardware und/oder als Software implementiert werden.
-
3 zeigt ein schematisches Blockdiagramm eines Ausführungsbeispiels der Zeilendecoderschaltung gemäß 2 und 4 zeigt ein Schaltbild eines Ausführungsbeispiels einer Adressengeneratorschaltung gemäß 3.
-
Wie aus 3 ersichtlich ist, umfasst die Zeilendecoderschaltung 130 in diesem Beispiel eine Auswahlschaltung 132, eine Adressengeneratorschaltung 133, eine Vordecoderschaltung 134, eine Seitendecoderschaltung 135 und eine Blockdecoderschaltung 136. Die Auswahlschaltung 132 umfasst Auswahltransistoren P0 bis P4, welche jeweils mit einer Kettenauswahlleitung SSL, Wortleitungen WLm bis WL0 und einer Masseauswahlleitung GSL korrespondieren. Die Kettenauswahlleitung SSL, die Wortleitungen WLm bis WL0 und die Masseauswahlleitung GSL sind jeweils über korrespondierende Auswahltransistoren P0 bis P4 mit Auswahlleitungen SS, Sm bis S0 und GS verbunden. Die Adressengeneratorschaltung 133 erzeugt Seitenadressen in Reaktion auf ein Mehrseitenprogrammiersignal MULTI_PPGM.
-
Wie beispielsweise aus 4 ersichtlich ist, überträgt die Adressengeneratorschaltung 133 eine Seitenadresse PA ohne Modifikation von der Adressenpufferschaltung 120 an die Vordecoderschaltung 134, wenn das Mehrseitenprogrammiersignal MULTI_PPGM einen niedrigen Pegel aufweist, wodurch ein Einzelseitenprogrammiervorgang angezeigt wird. Weist das Mehrseitenprogrammiersignal MULTI_PPGM einen hohen Pegel auf, wodurch ein Mehrseitenprogrammiervorgang angezeigt wird, dann gibt die Adressengeneratorschaltung 133 eine Seitenadresse zum Auswählen einer bestimmten Wortleitung, z. B. WL0, unabhängig von der Seitenadresse PA von der Adressenpufferschaltung 120 aus. Das bedeutet, dass während des Mehrseitenprogrammiervorgangs eine bestimmte Wortleitung der Speicherblöcke, z. B. die Wortleitung WL0 eines jeden Speicherblocks, ohne externe Seitenadresse ausgewählt wird. Das Mehrseitenprogrammiersignal MULTI_PPGM wird von der Steuerlogik 140 aus 2 so erzeugt, dass es bei einer Eingabe eines Mehrseitenauswahlbefehls, welcher in 6 mit CMD1 bezeichnet ist, aktiviert wird und bei Abschluss des Mehrseitenprogrammiervorgangs deaktiviert wird.
-
Wie weiter aus 3 ersichtlich ist, decodiert die Vordecoderschaltung 134 eine Blockadresse BA von der Adressenpufferschaltung 120 und eine Seitenadresse PA von der Adressengeneratorschaltung 133. Die decodierte Adresse umfasst eine Blockauswahlinformation, d. h. eine Blockadresse DRAi, und eine Seitenauswahlinformation, d. h. eine Seitenadresse DRAj. Die Seitenadresse DRAj der decodierten Adresse wird an die Seitendecoderschaltung 135 ausgegeben und die Blockadresse DRAi der decodierten Adresse wird an die Blockdecoderschaltung 136 ausgegeben.
-
Die Seitendecoderschaltung 135 wählt korrespondierend zu den Wortleitungen WL0 bis WLm in Reaktion auf die Seitenadresse DRAj von der Vordecoderschaltung 134 die Auswahlleitungen S0 bis Sm aus. Im Einzelseiten-/Mehrseitenprogrammiermodus legt die Seitendecoderschaltung 135 beispielsweise eine Programmierspannung an eine Auswahlleitung, welche mit einer Seitenadresse korrespondiert, und eine Passierspannung an die verbleibenden Auswahlleitungen an. Während eines Lesevorgangs legt die Seitendecoderschaltung 135 eine Lesespannung an die mit der Seitenadresse korrespondierende Auswahlleitung und eine Passierspannung an die verbleibenden Auswahlleitungen an.
-
Die Blockdecoderschaltung 136 aktiviert/deaktiviert ein Blockauswahlsignal BLK0 in Reaktion auf die Blockadresse DRAi von der Vordecoderschaltung 134. Die Auswahltransistoren P0 bis P4 werden gemeinsam vom Blockauswahlsignal BLK0 gesteuert. Das aktivierte Blockauswahlsignal BLK0 hat eine ausreichend hohe Spannung, so dass höhere Spannungen auf den Auswahlleitungen S0 bis Sm ohne Spannungsabfall an korrespondierende Wortleitungen übertragen werden. Die Blockdecoderschaltung 136 steuert in Reaktion auf die Blockadresse DRAi auch die Aktivierung der Auswahlleitungen SS und GS. Die Blockdecoderschaltung 136 umfasst insbesondere einen Zwischenspeicher LAT zum Speichern einer Blockadresse eines korrespondierenden Speicherblocks während eines Mehrseitenprogrammiervorgangs.
-
Die Seitendecoderschaltung 135 wird von den Speicherblöcken BLK0 bis BLKn gemeinsam genutzt, während die Blockdecoderschaltung 136 einem Speicherblock zugeordnet ist. In anderen Worten ausgedrückt, die Auswahlsignale S0 bis Sm von der Seitendecoderschaltung 135 werden gemeinsam an alle Speicherblöcke angelegt, während das Blockauswahlsignal BLK und die Auswahlsignale GS und SS nur an einen korrespondierenden Speicherblock angelegt werden.
-
5 zeigt ein Schaltbild eines Ausführungsbeispiels einer Blockdecoderschaltung aus 3. Wie aus 5 ersichtlich ist, umfasst die jeweilige Blockdecoderschaltung 136 ein NAND-Gatter G4, PMOS-Transistoren MP1 und MP2, einen NMOS-Transistor MN1, einen Zwischenspeicher LAT, welcher aus Invertern INV1 und INV2 aufgebaut ist, Transmissionsgatter TG1 und TG2 und einen Pegelschieber LS. Die Zwischenspeicher LAT der Blockdecoderschaltungen 136, die mit den Speicherblöcken BLK0 bis BLKn korrespondieren, bilden das Register 131 der Zeilendecoderschaltung gemäß 2. Die decodierte Blockadresse DRAi von der Vordecoderschaltung 134 gemäß 3 ist an das NAND-Gatter G4 angelegt. Die PMOS-Transistoren MP1 und MP2 sind in Reihe zwischen der Versorgungsspannung und einem Eingabeknoten ND1 des Zwischenspeichers eingeschleift. Ein Gate des PMOS-Transistors MP1 ist mit einem Ausgabeanschluss des NAND-Gatters G4 verbunden, und ein Gate des PMOS-Transistors MP2 empfängt ein Steuersignal nBLK_IN. Der NMOS-Transistor MN1 ist zwischen dem Eingabeknoten ND1 des Zwischenspeichers LAT und der Massespannung eingeschleift und wird von einem Steuersignal BLK_RST gesteuert. Das Transmissionsgatter TG1 wird von einem Steuersignal MLT_EN gesteuert und überträgt eine Ausgabe des Zwischenspeichers LAT zum Pegelschieber LS. Das Transmissionsgatter TG2 wird von einem Steuersignal NOR_EN gesteuert und überträgt eine Ausgabe des NAND-Gatters G4 zum Pegelschieber LS. Der Pegelschieber LS aktiviert das Blockauswahlsignal BLK0 in Reaktion auf ein Eingabesignal. Das Blockauswahlsignal BLK0 weist eine ausreichend hohe Spannung auf, um eine höhere Spannung der Auswahlleitungen S0 bis Sm ohne Spannungsabfall an korrespondierende Wortleitungen WL0 bis WLm zu übertragen.
-
Im Ausführungsbeispiel gemäß 5 werden die Steuersignale nBLK_IN, BLK_RST, NOR_EN und MLT_EN von der Steuerlogik 140 aus 2 erzeugt.
-
6 zeigt ein Zeitablaufdiagramm zur nachfolgenden Beschreibung eines erfindungsgemäßen Mehrseitenprogrammierverfahrens für ein nichtflüchtiges Speicherbauelement. Informationen, welche ein Hauptfeld betreffen, wie Blockinformationen, die anzeigen, dass ein Speicherblock gelöscht ist, werden während eines Mehrseitenprogrammiermodus in ein Ersatzfeld programmiert. Im Gegensatz zu herkömmlichen Speicherbauelementen, speichert das vorliegende Speicherbauelement Blockinformationen zu Speicherblöcken in Ersatzfeldern der Speicherblöcke parallel, d. h. gleichzeitig.
-
Wie aus 6 ersichtlich ist, aktiviert dazu die Steuerlogik 140 das Steuersignal BLK_RST, wenn ein erster Befehl CMD1 als Mehrseitenauswahlbefehl empfangen wird. Der NMOS-Transistor NM1 in der Blockdecoderschaltung 136 wird durch Aktivierung des Steuersignals BLK_RST leitend geschaltet, so dass der Zwischenspeicher LAT zurückgesetzt wird. Hierbei sind die Steuersignale MLT_EN und NOR_EN auf einem niedrigen Pegel. Das bedeutet, dass die Transmissionsgatter TG1 und TG2 inaktiv sind. Hierbei aktiviert die Steuerlogik 140 das Mehrseitenprogrammiersignal MULTI_PPGM in Reaktion auf die Eingabe des ersten Befehls CMD1. Dadurch wird die Adressengeneratorschaltung 133 gemäß 3 freigegeben, um die Seitenadresse PA zum Auswählen der bestimmten Wortleitung, z. B. der Wortleitung WL0, in jedem Speicherblock unabhängig von einer externen Adresse, d. h. ohne Eingabe einer externen Adresse, zu erzeugen.
-
Dann wird eine Blockadresse ADD1 zum Auswählen eines Speicherblocks und von Wortleitungen an Eingabe-/Ausgabeanschlüsse I/Oi angelegt. Die empfangene Blockadresse ADD1 wird mit der Seitenadresse der Adressengeneratorschaltung 133 von der Vordecoderschaltung 134 decodiert. Die Blockadresse DRAi der decodierten Adresse wird zum NAND-Gatter G4 der Blockdecoderschaltung 136 übertragen. Hierbei wird die decodierte Seitenadresse DRAj der decodierten Adresse der Seitendecoderschaltung 135 zur Verfügung gestellt.
-
Wie aus 6 ersichtlich ist, aktiviert die Steuerlogik 140 das Steuersignal nBLK_IN, wenn die Blockadresse ADD1 empfangen wird bzw. decodiert ist. Weisen die decodierten Blockadressensignale alle den Wert „1” auf, dann wechselt die Ausgabe des NAND-Gatters G4 auf einen niedrigen Pegel, wodurch der PMOS-Transistor MP1 leitend geschaltet wird. Entsprechend weist der Eingabeknoten ND1 des Zwischenspeichers LAT einen Übergang von einem niedrigen auf einen hohen Pegel auf, wenn das Steuersignal nBLK_IN aktiviert ist. Hierbei wird die Blockauswahlleitung BLK0 nicht durch den Pegelschieber LS getrieben, da die Übertragungsgatter TG1 und TG2 inaktiv sind.
-
Gemäß der obigen Beschreibung wird die Blockadresse im Zwischenspeicher LAT der korrespondierenden Blockdecoderschaltung 136 entsprechend der Steuerung durch die Steuerlogik 140 gespeichert, wenn eine Blockadresse dem ersten Befehl CMD1 als Mehrseitenauswahlbefehl folgt. Dieser Vorgang wird so lange wiederholt, bis alle Blockadressen der auszuwählenden Speicherblöcke jeweils in korrespondierenden Blockdecoderschaltungen gespeichert sind.
-
Wie aus 6 ersichtlich ist, wird zum Speichern einer Blockadresse in der Blockdecoderschaltung 136 nach Eingabe des ersten Befehls CMD1 ein zweiter Befehl CMD2 empfangen. Der zweite Befehl CMD2 ist ein Befehl, welcher darüber informiert, dass Adressen sukzessive empfangen werden. Anstatt des zweiten Befehls CMD2 kann dazu alternativ der erste Befehl CMD1 verwendet werden. Mit einem dritten, über eine Adresseneingabe und einen Datenempfang informierenden Befehl CMD3 werden zu programmierende Daten über die Eingabe-/Ausgabepufferschaltung 180 und die Spaltengatterschaltung 170 in die Seitenpufferschaltung 150 geladen. Eine dem dritten Befehl CMD3 folgende Adresse umfasst eine Blockadresse und eine Spaltenadresse. Die Spaltenadresse wird benutzt, um eine bestimmte Spalte, z. B. SBL0, eines Ersatzfelds auszuwählen. Das bedeutet, dass zu programmierende Daten in einen oder mehrere Seitenpuffer der Seitenpufferschaltung geladen werden, der bzw. die mit dem Ersatzfeld korrespondieren.
-
In diesem Ausführungsbeispiel sind die zu programmierenden Daten eine Blockinformation, welche anzeigt, dass ein Speicherblock gelöscht ist. Entsprechend weisen die im Ersatzfeld von jedem Speicherblock zu programmierenden Daten den gleichen Datenwert auf.
-
Nach dem Speichern von allen Blockadressen der auszuwählenden Speicherblöcke in korrespondierenden Blockdecoderschaltungen aktiviert die Steuerlogik 140 das Steuersignal MLT_EN in Reaktion auf einen vierten Befehl CMD4 als einem Mehrseitenprogrammierbefehl oder Mehrseitenprogrammierbestätigungsbefehl. Mit dem Aktivieren des Steuersignals MLT_EN wird ein im Zwischenspeicher LAT gespeicherter Wert über das Transmissionsgatter TG1 zum Pegelschieber LS übertragen. Der Pegelschieber LS treibt die Blockauswahlleitung BLK0 in Reaktion auf das Eingabesignal mit der Programmierspannung.
-
Es sei beispielsweise angenommen, dass Blockadressen zur Auswahl von drei Speicherblöcken BLK0, BLK1 und BLKn jeweils in korrespondierenden Blockdecoderschaltungen gespeichert sind. Unter dieser Voraussetzung sind die Blockauswahlleitungen BLK0, BLK1, BLKn aktiviert. Mit dem Aktivieren der Blockauswahlleitungen BLK0, BLK1 und BLKn wird die bestimmte Wortleitung WL0 in den entsprechenden Speicherblöcken BLK0, BLK1 und BLKn durch die Seitendecoderschaltung 135 aktiviert. Wie oben ausgeführt, wird die Auswahlleitung S0 basierend auf der von der Adressengeneratorschaltung 133 erzeugten Seitenadresse durch die Seitendecoderschaltung 135 mit der Programmierspannung getrieben, da die Seitendecoderschaltung 135 von allen Speicherblöcken geteilt wird. Entsprechend wird die Programmierspannung der Auswahlleitung S0 gleichzeitig an die Wortleitung WL0 von jedem der ausgewählten Speicherblöcke BLK0, BLK1 und BLKn angelegt. Hierbei wird die Programmierspannung, z. B. die Massespannung, basierend auf einem Datenwert im korrespondierenden Seitenpuffer an eine Ersatzbitleitung SBL0 des Ersatzfeldes angelegt.
-
Danach sind die Speicherzellen, die an den Kreuzungen der Ersatzbitleitung SBL0 und den Wortleitungen WL0, d. h. den aktivierten Wortleitungen der ausgewählten Speicherblöcke, angeordnet sind, mit der Programmierspannung programmiert. Somit werden die Speicherzellen gleichzeitig mit den gleichen Daten programmiert. Ein Signal R/nB wird während eines Programmierintervalls mit einem niedrigen Pegel aktiviert.
-
Nach Beendigung des oben beschriebenen Programmiervorgangs wird ein herkömmlicher Verifizierungsvorgang ausgeführt, um zu bestätigen, ob die ausgewählten bzw. programmierten Speicherzellen normal programmiert sind. Der Verifizierungsvorgang kann identisch zum Lesevorgang ausgeführt werden, außer dass die von der Seitenpufferschaltung ausgelesenen Daten zur Überprüfungsschaltung 190 übertragen werden, so dass hier auf eine wiederholte Beschreibung verzichtet werden kann. Das Überprüfungsergebnis der Überprüfungsschaltung 190 wird in einem nicht dargestellten Statusregister der Steuerlogik 140 gespeichert. Die im Statusregister gespeicherten Informationen können durch einen bekannten Statuslesevorgang ausgegeben werden.
-
Durch die erfindungsgemäße Mehrseitenprogrammierung braucht nur ein Programmiervorgang zum Speichern von Blockinformationen für eine Mehrzahl von zugeordneten Speicherblöcken ausgeführt werden. Entsprechend können erfindungsgemäße Ausführungsformen die Leistungsfähigkeit und/oder die Betriebsgeschwindigkeit des nichtflüchtigen Speicherbauelements verbessern. Erfindungsgemäße Ausführungsbeispiele des nichtflüchtigen Speicherbauelements erlauben, dass Speicherzellen überprogrammiert werden können, so dass Speicherzellen durch nur einen Programmiervorgang programmiert werden können. Für den Fall, dass das Beurteilungsergebnis des Verifizierungsvorgangs einen Programmierfehler anzeigt, kann ein individueller Lesevorgang in Bezug auf die Speicherblöcke BLK0, BLK1 und BLKn durchgeführt werden, um den Speicherblock mit dem Programmierfehler aufzufinden. Wie oben ausgeführt, braucht für den Fall, dass der Überprogrammiervorgang von Speicherzellen erlaubt ist, nur ein Programmiervorgang ausgeführt werden, um gewünschte Schwellwertspannungen zu erhalten.