-
Die
Erfindung betrifft ein Programmierverfahren für ein Speicherbauelement und
ein Speicherbauelement, 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 maskierte 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 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 und
US 5.999.446 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.
-
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, 2 oder 10 und durch ein Speicherbauelement
mit den Merkmalen des Patentanspruchs 15, 16 oder 32.
-
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,
her kö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
ge mäß 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 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
Speicher block 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
Adressengenera torschaltung 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.