-
Die
vorliegende Erfindung betrifft eine Halbleiterspeichervorrichtung
und, genauer gesagt, eine Halbleiterspeichervorrichtung, die Daten
mit mehreren Werten speichert.
-
WO-A-95
34 073 offenbart Bitabbildungs-Adressierschemen für einen
Flash-Speicher mit Lese- bzw. Erfassungspfad- und Schreibpfad-Architekturen
für Lese-
und Schreibzugriffe einer Speichervorrichtung mit Speicherzellen,
die eine Vielzahl von Bits speichern. Spezifischer speichert jede
Zelle einen von vier möglichen
Zuständen
und wird ein Bit hoher Ordnung ausgelesen, bevor ein Bit niedriger Ordnung
ausgelesen wird.
-
GB-A-2
157 489 offenbart eine integrierte Halbleiterschaltungs-Speichervorrichtung,
die mit einer Vielzahl von nichtflüchtigen Speicherzellen versehen
ist, die jeweils aus einem Feldeffekttransistor mit isoliertem Gate
ausgebildet sind, wobei jeweils zwei Bits nahe einem Source und
einem Drain einer jeweiligen Speicherzelle gespeichert sein können und
sequentiell ausgelesen werden können.
-
Als
ein Typ eines elektrisch löschbaren
und programmierbaren Nurlesespeichers (EEPROM), der eine große Menge
an Daten speichern kann, ist ein Mehrfachwertdatenspeicher-EEPROM
bekannt. Im Mehrfachwertdatenspeicher-EEPROM speichert jede Speicherzelle
ein Datenelement mit einem von n Werten (n ≥ 3).
-
In
letzter Zeit ist die Nachfrage nach EEPROMs ansteigend gewesen,
weil EEPROMs Daten sogar halten, nachdem sie ausgeschaltet sind.
Ein Flash-Speicher ist ein nichtflüchtiger Halbleiterspeicher,
aus welchem Daten auf einmal gelöscht
werden können.
Es genügt,
dass jede Speicherzelle des Flash-Speichers nur einen Transistor
hat, was ungleich einem nichtflüchtigen
Halbleiterspeicher vom Byte-Typ ist, bei welchem jede Speicherzelle
zwei Transistoren hat. Die Zellen des Flash-Speichers können daher
klein sein. Es folgt daraus, dass ein Flash-Speicher eine Speicherkapazität haben
kann und daher anstelle einer Magnetplatte verwendet werden kann,
die eine große
Speicherkapazität
hat.
-
Von
verschiedenen Typen von Flash-Speichern wird der EEPROM vom NAND-Typ
in Bezug auf eine Integrationsdichte als der vorteilhafteste angesehen.
Ein EEPROM vom NAND-Typ weist eine Vielzahl von Speicherzellen auf,
die beispielsweise in Spalten angeordnet sind. Jede Speicherzelle
ist von einer n-Kanal-FETMOS-Struktur
mit einem schwebenden Gate (d.h. einer Lade-Speicher-Schicht) und einem
Steuergate. Die Speicherzellen, die eine Spalte bilden, sind verbunden,
wobei jede mit ihrem Source mit dem Drain der nächsten Speicherzelle verbunden
ist. Die so in Reihe geschalteten Speicherzellen bilden eine Einheiten-Zellengruppe
oder eine NAND-Zelle. Somit hat der EEPROM vom NAND-Typ eine Vielzahl
von NAND-Zellen. Die NAND-Zellen sind mit Bitleitungen verbunden.
-
1A ist eine Draufsicht auf eine NAND-Zelle und 1B ist ein Schaltungsdiagramm davon. Die 2A und 2B sind
eine Schnittansicht der in den 1A und 1B gezeigten NAND-Zelle. 2A ist eine Schnittansicht entlang der Linie 2A-2A in 1A. 2B ist eine Schnittansicht
entlang der Linie 2B-2B in 1A.
-
Ein
Elementbereich ist in einem p-Typ-Substrat 11 (oder einer
p-Typ-Wanne, die in einem n-Typ-Substrat ausgebildet ist) vorgesehen.
Ein Element-Isolationsoxidfilm 12 umgibt den Elementbereich.
Im Elementbereich ist eine NAND-Zelle vorgesehen, die durch acht
Speicherzellen M1 bis M8 gebildet ist, die in Reihe geschaltet sind.
Die Zellen M1 bis M8 haben eine n-Kanal-FETMOS-Struktur. Wie es
am besten in 2B gezeigt ist, weist jede
Zelle einen ersten Gate-Isolierfilm 13, schwebende Gate 14 (14-1, 14-2,
..., 14-8), einen zweiten Gate-Isolierfilm 15 und
Steuergates (16-1, 16-2, ..., 16-8) auf.
Der erste Gate-Isolierfilm 13 ist auf dem p-Typ-Siliziumsubstrat 11 vorgesehen.
Das schwebende Gate 14 ist auf dem Isolierfilm 13 angebracht.
Der zweite Gate-Isolierfilm 15 ist
im schwebenden Gate 14 vorgesehen. Das Steuergate 16 ist
auf dem Isolierfilm 15 vorgesehen. Jede von n-Typ-Diffusionsschichten 19 in
einer n-Kanal-FETMOS-Struktur dient als der Source von einer Speicherzelle
und auch als der Drain von der benachbarten Speicherzelle. Die Speicherzellen
M1 bis M8 sind dadurch in Reihe geschaltet, was die NAND-Zelle bildet.
-
Das
so gebildete NAND-Gatter hat Auswahlgates 14-9 und 16-9 auf
der Drainseite und Auswahlgates 14-10 und 16-10 auf
der Sourceseite. Die Auswahlgates 14-9, 16-9, 14-10 und 16-10 sind
durch denselben Prozess wie die schwebenden Gates 14-1 bis 14-8 und
die Steuergates 16-1 bis 16-8 der Speicherzellen
M1 bis M8 ausgebildet worden. Die Auswahlgates 14-9 und 16-9 sind
bei erwünschten
Teilen elektrisch verbunden. Gleichermaßen sind die Auswahlgates 14-10 und 16-10 an
erwünschten
Teilen elektrisch verbunden. Ein Zwischenschicht-Isolierfilm 17 bedeckt den
obersten Teil des p-Typ-Siliziumsubstrats 11,
in welchem die NAND-Zelle vorgesehen ist. Auf dem Zwischenschicht-Isolierfilm 17 ist
eine Bitleitung 18 ausgebildet. Die Bitleitung 18 kontaktiert
die n-Typ-Diffusionsschicht 19, die auf der Drainseite
der NAND-Zelle angeordnet
ist. Somit hat die NAND-Zelle ihren Drain mit der Bitleitung 18 durch
die Auswahlgates 14-10 und 16-10 verbunden.
-
Ein
EEPROM vom NAND-Typ weist viele identische NAND-Zellen von dem in
den 1A und 1B gezeigten
Typ Seite an Seite angeordnet auf. Diejenigen Speicherzellen der
NAND-Zellen, die eine Zeile bilden, haben ihre Steuergates 14 unter
Ausbildung von Steuergateleitungen gemeinsam angeschlossen. Die
Steuergateleitungen CG1 bis CG8 sind sogenannte "Wortleitungen", die sich in der Zeilenrichtung erstrecken.
Das bedeutet, dass das Steuergate 14 jeder Speicherzelle
mit einer Wortleitung verbunden ist. In jeder NAND-Zelle bilden
die Auswahlgates 14-9 und 16-9 eine Auswahlgateleitung SG1
und Bilden die Auswahlgates 14-10 und 16-10 eine
Auswahlgateleitung SG2. Die Auswahlgateleitungen SG1 und SG2 erstrecken
sich in der Zeilenrichtung.
-
3 ist
ein Schaltungsdiagramm, das eine NAND-Zellenanordnung darstellt. Wie es die 3 zeigt,
erstrecken sich die Steuergateleitungen CG1 bis CG8 und die Auswahlgateleitungen
SG1 und SG2 in der Zeilenrichtung. Wie bei den meisten EEPROMs von
NAND-Typ bilden die Speicherzellen M, die durch eine Steuergateleitung
(d.h. eine Wortleitung) verbunden sind, eine Seite und bilden die
Seiten, die zwischen einer Auswahlgateleitung auf der Drainseite
(d.h. Auswahlgates 14-9 und 16-9) und einem Auswahlgate
auf der Sourceseite (d.h. Auswahlgates 14-10 und 16-10)
das, was allgemein als "NAND-Block" oder "Block" bekannt ist. Eine
Seite enthält
beispielsweise 256 Bytes mit (256 × 8) Speicherzellen. Die Speicherzellen
jeder Seite werden nahezu gleichzeitig programmiert. Ein Block enthält beispielsweise
2048 Bytes mit (2048 × 8)
Speicherzellen. Daten werden aus den Speicherzellen jedes Blocks
nahezu gleichzeitig gelöscht.
-
Ein
Betrieb eines EEPROM vom NAND-Typ mit der in 3 gezeigten
NAND-Zellenanordnung wird erklärt
werden. In jeder NAND-Zelle werden Daten zuerst in die Speicherzelle geschrieben,
die die weiteste von einer Bitleitung ist, dann in die Speicherzelle,
die davon die zweitweiteste ist, und so weiter. Genauer gesagt wird
eine Schreibspannung Vpp (= etwa 20 V) an das Steuergate von irgendeiner
ausgewählten
Speicherzelle angelegt, während
ein Zwischenpotential (= etwa 10 V) an die Steuergates der nicht
ausgewählten
Speicherzellen und auch an das erste Auswahlgate angelegt wird.
0 V (d.h. eine Programmierspannung von "0")
oder das Zwischenpotential (d.h. eine Programmierspannung von "1") wird an die Bitleitung angelegt. Das
Potential der Bitleitung wird dadurch an die ausgewählte Speicherzelle angelegt.
Somit wird dann, wenn Schreibdaten "0" sind,
eine hohe Spannung zwischen dem p-Typ-Substrat und dem schwebenden
Gate der ausgewählten Speicherzelle
angelegt. In diesem Fall werden Elektronen vom p-Typ-Substrat in
das schwebende Gate mittels eines Tunneleffekts injiziert und erhöht sich die
Schwellenspannung des Transistors der Zelle. Die Schwellenspannung
des Transistors ändert
sich überhaupt
nicht, wenn die Schreibdaten "1" sind.
-
Wie
es oben angezeigt ist, werden Daten aus den Speicherzellen jedes
Blocks nahezu gleichzeitig gelöscht.
Alle Steuergates und alle Auswahlgates, die im Block vorgesehen
sind, aus welchem Daten zu löschen
sind, werden auf 0 V eingestellt, und eine Spannung VppE (= etwa
20 V) wird an das p-Typ-Substrat und die p-Typ-Wanne, die in einem n-Typ-Substrat
vorgesehen ist, angelegt. Gleichzeitig wird die Spannung VppE auch
an die Steuergates und die Auswahlgates angelegt, die in den Blöcken vorgesehen
sind, aus welchen keine Daten zu löschen sind. In jeder Speicherzelle,
die in dem Block enthalten ist, aus welchem Daten zu löschen sind, werden
Elektronen von dem schwebenden Gate freigegeben. Diese Elektroden
werden in das p-Typ-Substrat
oder die in dem n-Typ-Substrat vorgesehene p-Typ-Wanne injiziert. Die Schwellenspannung
des Transistors der Speicherzellen wird daher kleiner.
-
Bei
einer Datenleseoperation aus einer Speicherzelle wird die Bitleitung
vorgeladen, wonach die Bitleitung in einem schwebenden Zustand ist.
Dann wird das Steuergate der Speicherzelle auf 0 V programmiert,
werden das Steuergate und das Auswahlgate von irgendeiner anderen
Speicherzelle auf die Energieversorgungsspannung Vcc (z.B. 3 V)
eingestellt und wird die Sourceleitung auf 0 V programmiert. Die
Daten in der Speicherzelle werden durch Erfassen des Potentials
der Bitleitung mittels eines Leseverstärkers (nicht gezeigt) gelesen,
um zu bestimmen, ob ein Strom in der Speicherzelle fließt. Spezifischer
wird dann, wenn die Zelle Daten von "0" speichert
(das heißt
dann, wenn der Speicherzellen-Transistor eine Schwellenspannung
Vth von kleiner als 0 V hat), der Transistor ausgeschaltet und hält die Bitleitung
das Vorladepotential. Wenn die Zelle Daten von "1" speichert
(das heißt
dann, wenn der Speicherzellen-Transistor eine Schwellenspannung Vth
von größer als
0 V hat), wird der Transistor eingeschaltet und fällt das
Bitleitungspotential um einen Wert von ΔV von dem Vorladepotential ab.
Somit kann der Leseverstärker
erfassen, welches Potential die Bitleitung auch immer hat, um dadurch
die Daten aus der Speicherzelle zu lesen.
-
Der
oben beschriebene EEPROM von NAND-Typ ist gegenüber einer Magnetplatte angesichts
einer Kosteneffektivität
noch unterlegen. Es ist sehr erwünscht,
dass der EEPROM vom NAND-Typ eine
große
Speicherkapazität
erlangt, um seine Kosten pro Bit reduziert zu haben. In letzter
Zeit ist eine Technologie zum Speichern von Mehrfachwertdaten vorgeschlagen
worden, die auf einen elektrisch löschbaren und programmierbaren,
nichtflüchtigen Speicher,
wie beispielsweise den EEPROM vom NAND-Typ angewendet werden kann.
Verschiedene Mehrfachwert-Speicherzellen
sind bekannt, die jeweils ein Datenelement mit einem von n-Werten
(n ≥ 3) speichern
können.
-
Es
wird erklärt
werden, wie beispielsweise eine Vierwertzelle arbeitet, die ein
Datenelement mit einem von vier unterschiedlichen Werten speichern kann. 4 ist
ein Diagramm, das die Beziehung zwischen der Schwellenspannung des
Transistors der Vierwertzelle und den vier Datenelementen von unterschiedlichen
Werten, die die Zelle speichern kann, darstellt. Wie es aus 4 verstanden
werden kann, hat der Speicherzellen-Transistor beispielsweise eine
negative Schwellenspannung, während
die Zelle Daten von "1" speichert, wie in
dem Fall, in welchem Daten aus der Zelle ausgelesen worden sind. Der
Speicherzellen-Transistor hat eine Schwellenspannung von beispielsweise
0,5 bis 0,8 V, während die
Zelle Daten von "2" speichert, eine
Schwellenspannung von beispielsweise 1,5 bis 1,8 V, während die
Zelle Daten von "3" speichert, und eine
Schwellenspannung von beispielsweise 2,5 bis 2,8 V, während die
Zelle Daten von "4" speichert.
-
Wenn
eine Lesespannung VCG3R an das Steuergate der Vierwertzelle angelegt
wird, wird der Transistor der Zelle ein- oder ausgeschaltet. Wenn der
Transistor eingeschaltet wird, werden Daten "1" oder
Daten "2" erfasst. Wenn der
Transistor ausgeschaltet wird, werden Daten "3" oder "4" erfasst. Dann werden Lesespannungen
VCG4R und VCG2R an das Steuergate angelegt, wodurch Daten "1", "2", "3" oder "4" erfasst
werden. Die Lesespannungen VCG2R, VCG3R und VCG4R sind jeweils 0
V, 1 V und 2 V.
-
In 4 stellen
VGC2V, VGC3V und VGC4V Verifizierungsspannungen dar, die an das
Steuergate jeder Speicherzelle angelegt werden, um zu bestimmen,
ob die Speicherzelle ausreichend programmiert worden ist oder nicht.
Die Verifizierungsspannungen VGC2V, VGC3V und VGC4V sind jeweils
0,5 V, 1,5 V und 2,5 V.
-
5 ist
ein Diagramm, das erklärt,
wie eine Vierwertzelle programmiert wird. 6 ist
ein Diagramm, das zeigt, welche Datenelemente in welche Speicherzellen
geschrieben werden, die eine Seite bilden. Wie es in 6 gezeigt
ist, ist eine Zwei-Bit-Adresse jeder Speicherzelle MC zugeordnet.
Genauer gesagt sind Adressenbits A0 und A1 der Speicherzelle MC1
zugeordnet, Adressenbits A2 und A3 der ersten Speicherzelle MC2,
Adressenbits A4 und A5 der zweiten Speicherzelle MC3 und so weiter.
Gemäß zwei Adressen
werden von außen
zugeführte
Schreibdaten in jede Speicherzelle MC geschrieben.
-
Um
Daten beispielsweise in die erste Speicherzelle MC1 zu schreiben,
werden die Adressenbits A0 und A1 temporär in der zu der Speicherzelle MC1
gehörenden
Datenschaltung gespeichert. Gemäß diesen
Bits A0 und A1 werden Daten "1", "2", "3" oder "4" in die Speicherzelle MC1 geschrieben,
wie es in 5 dargestellt ist. Auf gleiche
Weise werden Daten "1", "2", "3" oder "4" in irgendeine andere Speicherzelle
MC2, MC3, ..., MC128 gemäß zwei Adressenbits
A2 und A3, A4 und A5, ..., oder A254 und A255 geschrieben. Ein Schreiben
von Daten "1" in eine Speicherzelle
bedeutet ein Halten der Speicherzelle in einem gelöschten (ungeschriebenen)
Zustand.
-
Bei
der oben beschriebenen Datenprogrammierung dauert es länger, "3" in eine Vierwertzelle zu schreiben,
als "2" dort hinein zu schreiben.
(Ein Schreiben von "2" in eine Vierwertzelle
ist äquivalent zu
einem Schreiben von "0" in eine Binärzelle.)
Es dauert noch länger, "4" in eine Vierwertzelle zu schreiben,
als "3" dort hinein zu schreiben.
Ob eine Vierwertzelle ausreichend zu einem jeweiligen Datenelement "2", "3" oder "4" programmiert worden ist, muss in einem
Verifizierungsmode geprüft
werden. Viel Zeit ist dazu erforderlich, zu bestimmen, ob die Speicherzelle
ausreichend programmiert worden ist. Somit wird zum Programmieren
der Speicherzellen einer Seite nahezu zur gleichen Zeit eine beachtlich lange
Zeit erforderlich sein, um die Daten in ihrer Gesamtzeit in alle
Speicherzellen zu schreiben. Kurz gesagt ist die Programmierzeit
des EEPROM vom NAND-Typ, die als die Zeit definiert ist, die zum Schreiben
von Daten in die Zellen einer Seite erforderlich ist, unvermeidbar
lang.
-
Unter
Bezugnahme auf die 7A und 7B wird
erklärt
werden, wie Daten aus einer Vierwertzelle zu lesen sind.
-
7A ist ein Diagramm, das die Verteilung von Schwellenspannungen
einer Vierwertzelle darstellt. 7B ist
ein Ablaufdiagramm zum Erklären des
herkömmlichen
Verfahrens zum Lesen von Daten aus einer Vierwertzelle.
-
Zuerst
wird eine Spannung Vt1 in der Mitte zwischen zwei Spannungen entsprechend
den Datenwerten "1" und "2" an die Wortleitung angelegt, mit welcher
die Speicherzelle verbunden ist (Schritt A1). Wenn die Speicherzelle
eingeschaltet wird, ist es bekannt, dass die Zelle einen Wert "0" oder "1" speichert.
Wenn die Speicherzelle ausgeschaltet wird, wird bestimmt, dass die
Zelle einen Wert "2" oder "3" speichert. Als nächstes wird eine Spannung Vt2
an die Wortleitung angelegt, um dadurch zu erfassen, dass die Speicherzelle "3" oder irgendeinen anderen Wert "0", "1" oder "2" speichert (Schritt A2). Dann wird eine
Spannung Vt3 an die Wortleitung angelegt, was bestimmt, dass die
Speicherzelle "0" oder irgendeinen
anderen Wert "1", "2" oder "3" speichert (Schritt
A3). Als Ergebnis werden die 2-Bit-Daten (Vierwertdaten) aus der
Speicherzelle gelesen (Schritt A4), und letztlich von dem EEPROM-Chip vom
NAND-Typ.
-
Ein
weiteres herkömmliches
Verfahren zum Lesen von Daten aus einer Vierwertzelle wird unter Bezugnahme
auf die 8A und 8B erklärt werden. 8A ist ein Diagramm, das die Verteilung von Schwellenspannungen
einer Vierwertzelle darstellt. 8B ist
ein Ablaufdiagramm zum Erklären
dieses herkömmlichen
Datenleseverfahrens.
-
Zuerst
wird eine Spannung Vts1 in der Mitte zwischen zwei Spannungen entsprechend
den Datenwerten "0" und "1" an die Wortleitung angelegt, mit welcher
die Speicherzelle verbunden ist (Schritt B1). Wenn die Speicherzelle
eingeschaltet wird, ist es bekannt, dass die Zelle den Wert "0" speichert. Wenn die Speicherzelle ausgeschaltet
wird, wird bestimmt, dass die Zelle einen Wert "1", "2" oder "3" speichert. Als
nächstes
wird eine Spannung Vts2 an die Wortleitung angelegt, um dadurch
zu erfassen, dass die Speicherzelle "0" oder "1", oder "2" oder "3" speichert (Schritt B2). Dann wird eine
Spannung Vts3 an die Wortleitung angelegt, was bestimmt, dass die
Speicherzelle "3" oder irgendeinen
anderen Wert "0", "1" oder "2" speichert
(Schritt B3). Als Ergebnis werden die Zwei-Bit-Daten (Vierwertdaten)
aus der Speicherzelle gelesen (Schritt B4) und werden letztlich
zu einer externen Vorrichtung von dem EEPROM-Chip vom NAND-Typ ausgegeben.
-
Wie
es oben beschrieben ist, müssen
mehr Schritte zum Bestimmen der Schwellenspannung jeder Speicherzelle
in einem Mehrfachwertdaten-Speicherungsspeicher als in einem binären Speicherungsspeicher
durchgeführt
werden. Dies bedeutet, dass der Mehrfachwertdaten-Speicherungsspeicher eine
niedrigere Lesegeschwindigkeit als ein Binärdaten-Speicherungsspeicher
hat.
-
In
einem Vierwertdaten-Speicherungsspeicher muss beispielsweise die
Spannung einer Wortleitung dreimal geändert werden, um die Schwellenspannung
von irgendeiner Speicherzelle zu erfassen, die mit der Wortleitung
verbunden ist. Die Lesezeit des Vierwertdaten-Speicherungsspeichers
ist etwa dreimal so lang wie diejenige eines Binärdaten-Speicherungsspeichers.
-
In
einem elektrisch löschbaren
und programmierbaren, nichtflüchtigen
Speicher, wie beispielsweise dem EEPROM vom NAND-Typ können Daten verloren
werden, wenn Elektronen aus dem schwebenden Gate (d.h. einer Lade-Speicher-Schicht)
einer jeweiligen Speicherzelle austreten. Es ist wahrscheinlich,
dass ein Verlust an Daten auftritt, und zwar insbesondere bei Mehrfachwertdaten-Speicherungs-Halbleiterspeichern.
Wenn Daten entsprechend einem hohen Schwellenpegel in eine Speicherzelle
geschrieben werden, tritt die Ladung im schwebenden Gate der Zelle
am wahrscheinlichsten in einem anwachsenden Ausmaß in das
Substrat aus, weil ein starkes elektrisches Feld zwischen dem Substrat
und dem schwebenden Gate erzeugt wird. Die somit von dem schwebenden
Gate leitende Ladung ändert
die Schwellenspannung der Speicherzelle. Die Daten werden in der
Speicherzelle verloren, gleichgültig
wie gering die Änderung
bezüglich der
Schwellenspannung ist.
-
Daher
können
Mehrfachwertdatenspeicherungs-Halbleiterspeicher nicht in der Praxis
verwendet werden, solange sie nicht eine Zuverlässigkeit gegenüber einer
Datenzerstörung
erlangen.
-
Wie
es oben angegeben ist, sind die herkömmlichen Mehrfachwertdatenspeicherungs-Halbleiterspeicher
den Binärdaten-Speicherungsspeichern
in Bezug auf nicht nur eine Lesezeit, sondern auch auf eine Programmierzeit
unterlegen. Weiterhin können
die Speicher nicht ausreichend oder zuverlässig programmiert werden. Folglich
sind die herkömmlichen
Mehrfachwertdatenspeicherungs-Halbleiterspeicher
noch niemals in der Praxis eingesetzt worden.
-
Eine
Aufgabe der vorliegenden Erfindung besteht im Schaffen einer Mehrfachwertdatenspeicherungs-Halbleiterspeichervorrichtung,
die zuverlässig
arbeitet und die eine kurze Lesezeit und eine kurze Programmierzeit
hat.
-
Eine
weitere Aufgabe der Erfindung besteht im Schaffen eines Speichersystems,
das diese Halbleiterspeichervorrichtung enthält.
-
Gemäß der Erfindung
wird eine Halbleiterspeichervorrichtung zur Verfügung gestellt, wie sie durch
den Anspruch 1 definiert ist.
-
Jede
Halbleiterspeichervorrichtung gemäß der Erfindung kann eine kurze
Lesezeit haben, obwohl sie Mehrfachwertdatenspeicherungs-Speicherzellen
hat.
-
Die
Erfindung kann vollständiger
aus der folgenden detaillierten Beschreibung verstanden werden,
wenn sie in Verbindung mit den beigefügten Zeichnungen genommen wird,
wobei.
-
1A eine Draufsicht auf eine NAND-Zelle ist, und 1B ein Schaltungsdiagramm davon ist;
-
2A eine Schnittansicht entlang der Linie 2A-2A
in 1A ist und 2B eine
Schnittansicht entlang der Linie 2B-2B in 1A ist;
-
3 ein
Schaltungsdiagramm ist, das eine NAND-Zellenanordnung darstellt;
-
4 ein
Diagramm ist, das die Beziehung zwischen der Schwellenspannung des
Transistors einer herkömmlichen
Vierwertzelle und den vier Datenelementen von unterschiedlichen
Werten, die die Zelle speichern kann, darstellt;
-
5 ein
Diagramm ist, das erklärt,
wie Daten in eine herkömmliche
Vierwertzelle geschrieben werden;
-
6 ein
Diagramm ist, das die Beziehung zwischen herkömmlichen Speicherzellen und
deren Adressen darstellt;
-
7A ein Diagramm ist, das eine Verteilung von Schwellenspannungen
einer herkömmlichen
Vierwertzelle darstellt, und 7B ein
Ablaufdiagramm zum Erklären
eines herkömmlichen
Verfahrens zum Lesen von Daten aus der Vierwertzelle ist;
-
8A ein Diagramm ist, das eine weitere Verteilung
von Schwellenspannungen der Vierwertzelle zeigt, und 8B ein Ablaufdiagramm zum Erklären eines weiteren herkömmlichen
Datenleseverfahrens ist;
-
9 ein
Blockdiagramm ist, das einen Mehrfachwertdatenspeicherungs-Flash-Speicher vom
NAND-Typ gemäß einem
ersten Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
10 ein Schaltungsdiagramm ist, das die Speicherzellenanordnungen
und Spaltenreihenschaltung zeigt, die in dem in 9 gezeigten Flash-Speicher
enthalten sind;
-
11 ein Diagramm ist, das eine Verteilung der Schwellenspannungen
einer jeweiligen Vierwertzelle MC darstellt, die im Flash-Speicher
der 9 vorgesehen ist;
-
12 ein Blockdiagramm ist, das die Datenschaltungen
detailliert darstellt, die in den Flash-Speicher der 9 enthalten
sind;
-
13A ein Diagramm ist, das eine weitere Verteilung
der Schwellenspannungen jeder Vierwertzelle MC zeigt, die im Flash-Speicher
der 9 vorgesehen ist, und 13B ein
Ablaufdiagramm zum Erklären
eines Verfahrens zum Lesen von Daten aus jeder der Speicherzellen
MC ist, die im Flash-Speicher der 9 vorgesehen
sind;
-
14A ein Diagramm ist, das noch eine weitere Verteilung
von Schwellenspannungen einer jeweiligen Vierwertzelle MC zeigt,
die im Flash-Speicher
der 9 vorgesehen ist, und 14B ein
Ablaufdiagramm zum Erklären
eines weiteren Verfahrens zum Lesen von Daten aus einer jeweiligen
der Speicherzellen MC ist, die im Flash-Speicher der 9 vorgesehen
sind;
-
15 ein Schaltungsdiagramm von einer der identischen
Datenschaltungen ist, die in einem Flash-Speicher vom NAND-Typ gemäß einem
zweiten Ausführungsbeispiel
der vorliegenden Erfindung enthalten sind;
-
16 ein Zeitdiagramm ist, das erklärt, wie Daten
aus dem Flash-Speicher vom NAND-Typ gelesen werden, der das zweite
Ausführungsbeispiel
ist;
-
17 eine Tabelle ist, die die Datenelemente zeigt,
die Flip-Flops, die im Flash-Speicher vom NAND-Typ vorgesehen sind, zu einer spezifischen
Zeit erfassen und zwischenspeichern können;
-
18 eine Tabelle ist, die die aus dem Speicher
zu lesenden Datenelemente präsentiert, welche
die Flip-Flops beim zweiten Ausführungsbeispiel
erfassen und zwischenspeichern können;
-
19 eine Tabelle ist, die die in den Speicher zu
schreibenden Datenelemente präsentiert, welche
die Flip-Flops beim zweiten Ausführungsbeispiel
erfassen und zwischenspeichern können;
-
20 ein Zeitdiagramm ist, das erklärt, wie Daten
in den Flash-Speicher vom NAND-Typ geschrieben werden, welcher das
zweite Ausführungsbeispiel
ist;
-
21 und 22 ein
Zeitdiagramm sind, das erklärt,
wie ein Verifizierungslesen beim zweiten Ausführungsbeispiel durchgeführt wird;
-
23 ein Zeitdiagramm ist, das erklärt, wie eine
Verifizierungsleseoperation bei einem weiteren Verfahren beim zweiten
Ausführungsbeispiel
durchgeführt
wird;
-
24 ein Schaltungsdiagramm eines weiteren Typs
einer Datenschaltung ist, die anstelle der in 15 gezeigten Datenschaltung verwendet werden kann;
-
25 ein Schaltungsdiagramm eines weiteren Typs
einer Datenschaltung ist, die anstelle der in 15 gezeigten Datenschaltung verwendet werden kann;
-
26 ein Zeitdiagramm ist, das erklärt, wie Daten
aus einem Flash-Speicher vom NAND-Typ gemäß einem dritten Ausführungsbeispiel
der Erfindung gelesen werden;
-
27A bis 27C Diagramme
sind, die die Verteilung von Schwellenspannungen einer jeweiligen
Speicherzelle zeigen, die in einem Mehrfachwertdatenspeicher-EEPROM
vorgesehen ist, der ein viertes Ausführungsbeispiel der Erfindung
ist, und die erklären,
wie Daten aus den EEPROM ausgegeben werden;
-
28A bis 28C Diagramme
sind, die die Verteilung von Schwellenspannungen einer jeweiligen
Speicherzelle zeigen, die in einem Mehrfachwertdatenspeicher-EEPROM
vorgesehen ist, der ein fünftes
Ausführungsbeispiel
dieser Erfindung ist;
-
29 ein Diagramm zum Erklären ist, wie Daten in einen
Mehrfachwertdatenspeicher-EEPROM gemäß einem sechsten Ausführungsbeispiel der
vorliegenden Erfindung geschrieben und aus diesem gelesen werden;
-
30 ein Diagramm zum Erklären ist, wie Daten in einen
Mehrfachwertdatenspeicher-EEPROM gemäß einem siebten Ausführungsbeispiel dieser
Erfindung geschrieben und aus diesem gelesen werden;
-
31 ein Diagramm zum Erklären ist, wie Daten in einen
Mehrfachwertdatenspeicher-EEPROM gemäß einem achten Ausführungsbeispiel dieser
Erfindung geschrieben und aus diesem gelesen werden;
-
32 ein Diagramm zum Erklären ist, wie Daten in einen
Mehrfachwertdatenspeicher-EEPROM gemäß einem neunten Ausführungsbeispiel dieser
Erfindung geschrieben und aus diesem gelesen werden;
-
33 ein Schaltungsdiagramm ist, das einen EEPROM
zeigt, der eine modifizierte Spaltenanordnung hat;
-
34 ein Schaltungsdiagramm ist, das eine Speicherzellenanordnung
mit Zellen MC vom NOR-Typ darstellt;
-
35 ein Schaltungsdiagramm ist, das eine Speicherzellenanordnung
mit Zellen MC vom NOR-Typ von einem weiteren Typ zeigt;
-
36 ein Diagramm ist, das eine Speicherzellenanordnung
mit Erdungsanordnungszellen MC zeigt;
-
37 ein Schaltungsdiagramm ist, das eine Speicherzellenanordnung
mit Erdungsanordnungszellen MC von einem weiteren Typ zeigt;
-
38 ein Diagramm ist, das eine Speicherzellenanordnung
mit abwechselnden Erdungsanordnungszellen MC darstellt;
-
39 ein Schaltungsdiagramm ist, das eine Speicherzellenanordnung
mit abwechselnden Erdungsanordnungszellen MC eines weiteren Typs zeigt;
-
40 ein Diagramm ist, das eine Speicherzellenanordnung
mit Zellen vom DINOR-(DIvided NOR)-Typ
darstellt;
-
41 ein Schaltungsdiagramm ist, das ein Speicherzellenfeld
mit Zellen vom UND-Typ zeigt;
-
42 ein Diagramm ist, das die Beziehung darstellt,
die die Speicherzellen mit Adressen in einem EEPROM gemäß einem
zehnten Ausführungsbeispiel
der vorliegenden Erfindung haben;
-
43A und 43B Diagramme
zum Erklären
sind, wie eine obere Seite beim zehnten Ausführungsbeispiel programmiert
wird;
-
44A bis 44C Diagramme
zum Erklären
sind, wie die Speicherzellen beim zehnten Ausführungsbeispiel programmiert
werden;
-
45A und 45B Diagramme
zum Erklären
sind, wie eine untere Seite beim zehnten Ausführungsbeispiel programmiert
wird;
-
46A bis 46C Diagramme
zum Erklären
sind, wie Daten aus den Speicherzellen des zehnten Ausführungsbeispiels
gelesen werden;
-
47A bis 47C Diagramme
sind, die ein weiteres Verfahren zum Lesen von Daten aus den Speicherzellen
des zehnten Ausführungsbeispiels erklären;
-
48 ein Blockdiagramm des zehnten Ausführungsbeispiels
ist;
-
49 ein Diagramm zum Erklären ist, wie die Speicherzellen
beim zehnten Ausführungsbeispiel
programmiert werden;
-
50 ein Diagramm ist, das erklärt, wie Datenelemente aus den
Speicherzellen des zehnten Ausführungsbeispiels
gelesen werden;
-
51A bis 51D Schaltungsdiagramme sind,
die verschiedene Typen von Speicherzelleneinheiten zur Verwendung
beim zehnten Ausführungsbeispiel
zeigen;
-
52A bis 52G Schaltungsdiagramme
sind, die andere Typen von Speicherzelleneinheiten zur Verwendung
beim zehnten Ausführungsbeispiel
darstellen;
-
53 ein Diagramm ist, das die Speicherzellenanordnung
und Datenschaltungen zeigt, die in einem Flash-Speicher vom NAND-Typ gemäß einem elften
Ausführungsbeispiel
der vorliegenden Erfindung enthalten sind;
-
54 ein Diagramm ist, das die Verteilung von Schwellenspannungen
zeigt, die jede Speicherzelle beim elften Ausführungsbeispiel hat;
-
55 ein Blockdiagramm ist, das die Datenschaltungen
im Detail darstellt, die beim elften Ausführungsbeispiel enthalten sind;
-
56A und 56B Diagramme
zum Erklären
sind, wie Daten aus dem elften Ausführungsbeispiel gelesen werden;
-
57 ein Schaltungsdiagramm ist, das eine der identischen
Datenschaltungen zeigt, die beim elften Ausführungsbeispiel vorgesehen sind;
-
58A und 58B ein
Diagramm und eine Tabelle zum Erklären sind, wie eine obere Seite beim
elften Ausführungsbeispiel
programmiert wird;
-
59 ein Zeitdiagramm ist, das erklärt, wie die
obere Seite beim elften Ausführungsbeispiel
programmiert wird;
-
60 ein Zeitdiagramm ist, das erklärt, wie die
obere Seite aus dem elften Ausführungsbeispiel im
Verifizierungslesemode gelesen wird;
-
61A ein Diagramm ist und 61B und 61C Tabellen sind, um zu erklären, wie die obere Seite gelesen
und invertiert wird, bevor eine untere Seite programmiert wird,
und zwar beim elften Ausführungsbeispiel;
-
62 ein Zeitdiagramm ist, das erklärt, wie die
obere Seite zu lesen und zu invertieren ist, bevor die untere Seite
programmiert wird, und zwar beim elften Ausführungsbeispiel;
-
63A und 63B ein
Diagramm und eine Tabelle zum Erklären sind, wie die untere Seite beim
elften Ausführungsbeispiel
programmiert wird;
-
64A und 64B ein
Diagramm und eine Tabelle sind, die die Potentiale zeigen, welche verschiedene
Knoten haben, wenn die untere Seite beim elften Ausführungsbeispiel
programmiert wird;
-
65 ein Zeitdiagramm ist, das erklärt, wie die
untere Seite beim elften Ausführungsbeispiel
programmiert wird;
-
66 ein Schaltungsdiagramm ist, das einen weiteren
Typ einer Datenschaltung zur Verwendung beim elften Ausführungsbeispiel
zeigt;
-
67 ein Zeitdiagramm ist, das ein weiteres Verfahren
zum Programmieren der unteren Seite beim elften Ausführungsbeispiel
erklärt;
-
68 ein Zeitdiagramm zum Erklären ist, wie die untere Seite
zum Verifizieren aus dem elften Ausführungsbeispiel gelesen wird;
-
69A und 69B ein
Zeitdiagramm sind, das erklärt,
wie Daten aus dem elften Ausführungsbeispiel
gelesen werden;
-
70 eine Tabelle ist, die verschiedene Potentiale
darstellt, welche die Knoten in einem Flip-Flop zum Lesen von Daten
aus dem elften Ausführungsbeispiel
haben;
-
71 eine Tabelle ist, die verschiedene Potentiale
zeigt, welche die Knoten in einer jeweiligen Datenschaltung zum
Lesen von Daten aus dem elften Ausführungsbeispiel haben;
-
72 eine Tabelle ist, die verschiedene Potentiale
zeigt, welche die Knoten zum Lesen von Daten aus dem elften Ausführungsbeispiel
haben;
-
73A und 73B ein
Diagramm und eine Tabelle sind, die verschiedene Potentiale zeigen,
welche die Knoten in einer Datenschaltung zum Programmieren einer
unteren Seite in einer Speichervorrichtung gemäß einem zwölften Ausführungsbeispiel der vorliegenden
Erfindung haben;
-
74 ein Zeitdiagramm ist, das erklärt, wie die
untere Seite beim zwölften
Ausführungsbeispiel programmiert
wird;
-
75 ein Zeitdiagramm zum Erklären ist, wie die untere Seite
für eine
Verifizierung aus dem zwölften
Ausführungsbeispiel
gelesen wird;
-
76A und 76B ein
Diagramm und eine Tabelle sind, die die zu programmierenden Daten
in einer Speichervorrichtung gemäß einem
dreizehnten Ausführungsbeispiel
der vorliegenden Erfindung zeigen;
-
77 ein Zeitdiagramm zum Erklären ist, wie eine obere Seite
beim dreizehnten Ausführungsbeispiel
programmiert wird;
-
78A und 78B ein
Diagramm und eine Tabelle sind, die eine in einer Speichervorrichtung
gemäß einem
dreizehnten Ausführungsbeispiel der
vorliegenden Erfindung zu programmierende untere Seite zeigen;
-
79A und 79B ein
Diagramm und eine Tabelle sind, die verschiedene Potentiale zeigen,
welche die Knoten in einer Datenschaltung zum Programmieren der
unteren Seite beim dreizehnten Ausführungsbeispiel der vorliegenden
Erfindung haben;
-
80 ein Zeitdiagramm ist, das erklärt, wie die
untere Seite beim dreizehnten Ausführungsbeispiel programmiert
wird;
-
81 ein Zeitdiagramm zum Erklären ist, wie die untere Seite
zur Verifizierung aus dem zwölften
Ausführungsbeispiel
gelesen wird;
-
82 ein Zeitdiagramm ist, das ein weiteres Verfahren
zum Programmieren der unteren Seite beim dreizehnten Ausführungsbeispiel
erklärt;
-
83 ein Zeitdiagramm ist, das ein weiteres Verfahren
einer Verifizierungsleseoperation der unteren Seite aus dem dreizehnten
Ausführungsbeispiel
erklärt;
-
84A und 84B Diagramme
zum Erklären
eines Verfahrens zum Programmieren der Vierwertzellen sind, die
in einer Speichervorrichtung gemäß einem
vierzehnten Ausführungsbeispiel
der Erfindung vorgesehen sind;
-
85 ein Blockdiagramm ist, das eine der identischen
Datenschaltungen zeigt, die beim vierzehnten Ausführungsbeispiel
verwendet werden und die entwickelt sind, um in Vierwertzellen zu
schreibende Datenelemente oder aus diesen zu lesende zu halten;
-
86A bis 86C Diagramme
zum Erklären
sind, wie jede Achtwertzelle beim vierzehnten Ausführungsbeispiel
programmiert wird;
-
87 ein Blockdiagramm ist, das eine der identischen
Datenschaltungen zeigt, die beim vierzehnten Ausführungsbeispiel
verwendet werden und entwickelt sind, um Datenelemente zu halten,
die in Achtwertzellen zu schreiben oder aus diesen zu lesen sind;
-
88A bis 88D Diagramme
zum Erklären
sind, wie jede 16-Wertzelle
beim vierzehnten Ausführungsbeispiel
programmiert wird;
-
89 ein Blockdiagramm ist, das eine der identischen
Datenschaltungen zeigt, die beim vierzehnten Ausführungsbeispiel
verwendet werden und entwickelt sind, um Datenelemente zu halten,
die in 16-Wertzellen zu schreiben oder aus diesen zu lesen sind;
-
90A bis 90E Diagramme
zum Erklären
sind, wie eine jeweilige 2m-Wertzelle beim vierzehnten Ausführungsbeispiel
programmiert wird;
-
91 ein Blockdiagramm ist, das eine der identischen
Datenschaltungen zeigt, die beim vierzehnten Ausführungsbeispiel
verwendet werden und entwickelt sind, um Datenelemente zu halten,
die in 2m-Wertzellen zu schreiben oder aus diesen zu lesen sind;
-
92A und 92B Ablaufdiagramme sind,
die erklären,
wie eine obere Seite und eine untere Seite in einer Speichervorrichtung
gemäß einem fünfzehnten
Ausführungsbeispiel
der Erfindung programmiert werden;
-
93 ein Diagramm ist, das die Verteilung von Schwellenspannungen
zeigt, welche jede Speicherzelle beim fünfzehnten Ausführungsbeispiel
hat;
-
94 ein Diagramm ist, das die Wellenform eines
Pulssignals darstellt, das zu jeder Speicherzelle zugeführt wird,
die beim fünfzehnten
Ausführungsbeispiel
vorgesehen ist;
-
95A bis 95E Diagramme
sind, die die verschiedenen Verteilungen von Schwellenspannungen
darstellen, welche jede Speicherzelle beim vierzehnten Ausführungsbeispiel
hat;
-
96A bis 96D Diagramme
sind, die die Wellenformen von verschiedenen Pulssignalen zeigen,
die zu einer jeweiligen Speicherzelle zugeführt werden, die beim fünfzehnten
Ausführungsbeispiel
vorgesehen ist;
-
97A und 97B Diagramme
sind, die die Wellenformen von zwei unterschiedlichen Pulssignalen
zeigen, die zu jeder Speicherzelle zugeführt werden, die beim fünfzehnten
Ausführungsbeispiel vorgesehen
ist;
-
98A bis 98E Diagramme
sind, die andere Verteilungen von Schwellenspannungen darstellen,
welche jede Speicherzelle beim fünfzehnten Ausführungsbeispiel
haben kann;
-
99A und 99B Diagramme
sind, die noch andere Verteilungen von Schwellenspannungen zeigen,
welche jede Speicherzelle beim fünfzehnten
Ausführungsbeispiel
haben kann;
-
100A und 100B Diagramme
sind, die andere Verteilungen von Schwellenspannungen zeigen, welche
jede Speicherzelle beim fünfzehnten Ausführungsbeispiel
haben kann;
-
101 ein Diagramm ist, das die Verteilung von Schwellenspannungen
darstellt, welche jede Speicherzelle in einer Speichervorrichtung
gemäß sechzehnten
Ausführungsbeispiel
der Erfindung hat;
-
102 ein Zeitdiagramm zum Erklären eines Verfahrens einer
Verifizierungsleseoperation einer unteren Seite aus dem sechzehnten
Ausführungsbeispiel
ist;
-
103A und 103B ein
Zeitdiagramm sind, das erklärt,
wie Daten aus dem sechzehnten Ausführungsbeispiel gelesen werden;
-
104 ein Diagramm ist, das die Speicherzellenanordnung
darstellt, die in einer Speichervorrichtung gemäß einem siebzehnten Ausführungsbeispiel
der Erfindung enthalten ist;
-
105 ein Diagramm ist, das eine Speicherzellenanordnung
mit herkömmlichen
Vierwertzellen zeigt;
-
106A und 106B Diagramme
sind, die eine Speicherzellenanordnung zeigen, in welcher "2" und "4" jeweils
in jeder Speicherzelle programmiert sind;
-
107A und 107B Diagramme
sind, die zwei Speicherzellenanordnungen zeigen, die jeweils zu
70 % der Speicherkapazität
programmiert haben;
-
108 ein Diagramm ist, das ein Speichersystem gemäß einem
achtzehnten Ausführungsbeispiel
der Erfindung darstellt;
-
109 ein Diagramm ist, das das Speichersystem zeigt,
das zu 50 % der Speicherkapazität programmiert
ist; und
-
110 ein Diagramm ist, das das Speichersystem zeigt,
das zu 70 % der Speicherkapazität
programmiert ist.
-
Ausführungsbeispiele
der vorliegenden Erfindung werden unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben werden.
-
Das
erste Ausführungsbeispiel
der Erfindung ist ein Mehrfachwertdatenspeicherungs-Flash-Speicher
vom NAND-Typ. Der Flash-Speicher wird unter Bezugnahme auf 9 beschrieben
werden.
-
Wie
es 9 zeigt, hat das erste Ausführungsbeispiel eine sogenannte
Struktur mit offenem Bit. Der Mehrfachwertdatenspeicherungs-Flash-Speicher
vom NAND-Typ weist zwei Speicherzellenanordnungen 1A und 1B,
zwei zeilenserielle Schaltungen 2A und 2B und
eine spaltenserielle Schaltung 3** auf. Die Anordnungen 1A und 1b haben
jeweils eine Vielzahl von Speicherzellen, die in Zeilen und Spalten
angeordnet sind, was eine Matrix bildet. Die zeilenseriellen Schaltungen 2A und 2B sind
jeweils für
die Speicherzellenanordnungen 1A und 1B vorgesehen.
Die spaltenserielle Schaltung 3** ist für beide Speicherzellenanordnungen 1A und 1B vorgesehen.
-
Jede
zeilenserielle Schaltung enthält
einen Zeilendecodierer und eine Wortleitungs-Treiberschaltung. Der
Zeilendecodierer empfängt
ein Adressensignal von einer Adresseneingabeschaltung (d.h. einem
Adressenpuffer) 4 und wählt
eine Speicherzellenzeile, die in der zugehörigen Speicherzellenanordnung
vorgesehen ist, gemäß dem Adressensignal aus.
Die Wortleitungs-Treiberschaltung treibt eine Wortleitung gemäß der Ausgabe
des Zeilendecodierers an. Wenn der Flash-Speicher vom NAND-Typ ein
EEPROM vom NAND-Typ ist, ist die Wortleitungs-Treiberschaltung eine
Steuergate/Auswahlgate-Treiberschaltung. Dies ist so, weil die Wortleitungen
das Auswahlgate SG (SGA oder SGB) und das Steuergate CG (CGA oder
CGB) sind.
-
Die
spaltenserielle Schaltung 3**, die für beide Speicherzellenanordnungen 1A und 1B vorgesehen
ist, enthält
einen Spaltendecodierer und eine Spaltenauswahlleitungs-Treiberschaltung.
Der Spaltendecodierer empfängt
ein Adressensignal vom Adressenpuffer 4 und wählt eine
Speicherzellenspalte aus, die in jeder Speicherzellenanordnung vorgesehen
ist. Die Spaltenauswahlleitungs-Treiberschaltung treibt eine Spaltenauswahlleitung
zum Auswählen
von einer Speicherzellenspalte an, die in jeder Speicherzellenanordnung
vorgesehen ist.
-
Die
spaltenserielle Schaltung 3 weist. weiterhin eine Bitleitungs-Steuerschaltung
(d.h. eine Datenschaltung) auf. Die Bitleitungs-Steuerschaltung
ist entwickelt, um die Daten temporär zu halten, die in Speicherzellen
zu schreiben sind, oder die Daten, die daraus gelesen worden sind.
Die Bitleitungs-Steuerschaltung ist mit einem Daten-Eingabe/Ausgabe-Puffer
(d.h. einer Daten-Eingabe/Ausgabe-Schaltung) 5 durch eine Daten-Eingabe/Ausgabe-Leitung
IO verbunden. Sie ist auch mit den Speicherzellen der Anordnung 1A durch
Bitleitungen BLa und den Speicherzellen der Anordnung 1B durch
Bitleitungen BLb verbunden.
-
Die
Bitleitungs-Steuerschaltung empfängt Daten
vom Daten-Eingabe/Ausgabe-Puffer 5 und führt die
Daten zu den Speicherzellen zu, um dadurch die Daten in die Speicherzellen
zu schreiben. Sie empfängt
Daten von den Speicherzellen und führt die Daten zu dem Daten-Eingabe/Ausgabe-Puffer 5 zu,
um die Daten zu lesen.
-
Der
Daten-Eingabe/Ausgabe-Puffer 5 ist vorgesehen, um den Datentransfer
zu und von dem Speicherkern zu steuern, der durch die Speicherzellenanordnungen 1A und 1B,
die zeilenseriellen Schaltungen 2A und 2B und
die spaltenserielle Schaltung 3** gebildet ist. Anders
ausgedrückt
führt der Puffer 5 von
einer externen Vorrichtung ausgegebene Daten zu dem Speicherkern
zu und führt
aus dem Speicherkern gelesene Daten zur externen Vorrichtung zu.
-
Wie
der Daten-Eingabe/Ausgabe-Puffer 5 ist eine Schreibbeendigungs-Erfassungsschaltung 18 außerhalb
des Speicherkerns vorgesehen. Die Schaltung 18 empfängt die
Ausgabe der Bitleitungs-Steuerschaltung und erfasst, ob die Speicherzellen
ausreichend programmiert worden sind, von der Ausgabe der Bitleitungs-Steuerschaltung.
-
Die
Speicherzellenanordnungen 1A und 1B und die spaltenserielle
Schaltung 3** werden unter Bezugnahme auf 10 detailliert beschrieben werden.
-
Wie
es in 10 gezeigt ist, haben die Speicherzellenanordnungen 1A und 1B eine
Vielzahl von angeordneten Speicherzellen MC, die eine Matrix bilden.
Die spaltenserielle Schaltung 3** hat m Datenschaltungen
(d.h. Bitleitungs-Steuerschaltungen) 6**. Jede Datenschaltung 6 ist
mit einer Bitleitung BLa und einer Bitleitung BLb verbunden.
-
11 ist ein Diagramm, das vier Schwellenwerte zeigt.
-
Der
Transistor jeder Speicherzelle, die in den Zellenanordnungen 1A und 1B vorgesehen
ist, muss so sein, dass die Speicherzelle Vierwertdaten speichern
kann. Wenn der Flash-Speicher vom NAND-Typ ein EEPROM ist, der Vierwertdatenelemente
speichert, muss jeder Speicherzellen-Transistor M einen von vier unterschiedlichen
Schreibzuständen
annehmen. Diese Schreibzustände
werden durch vier Schwellenspannungen definiert, welche der Transistor
M haben kann.
-
Es
soll angenommen sein, dass die Energieversorgungsspannung VCC des
EEPROM 3 V ist. Wie es in 11 gezeigt
ist, hat der Speicherzellen-Transistor M beispielsweise eine negative Schwellenspannung,
während
die Zelle Daten "0" speichert, wie in
dem Fall, in welchem Daten aus der Zelle gelesen worden sind. Der
Speicherzellen-Transistor hat eine Schwellenspannung von beispielsweise
0,5 bis 0,8 V, während
die Zelle Daten "1" speichert, eine
Schwellenspannung von beispielsweise 1,5 bis 1,8 V, während die
Zelle Daten "2" speichert, und eine
Schwellenspannung von beispielsweise 2,5 bis 2,8 V, während die
Zelle Daten "3" speichert.
-
Um
Daten aus dem Speicherzellen-Transistor M zu lesen, werden Lesespannungen
VCG2R, VCG3R und VCG1R an das Steuergate CG des Transistors M einzeln
nacheinander angelegt.
-
Zuerst
wird die Lesespannung VCG2R an das Steuergate CG des Speicherzellen-Transistors M
angelegt. Wenn der Transistor M eingeschaltet wird, wird bestimmt,
dass die Speicherzelle entweder "0" oder "1" speichert. Wenn der Transistor M ausgeschaltet
wird, wird bestimmt, dass die Zelle entweder "2" oder "3" speichert. Als nächstes wird die Lesespannung
VCG3R an das Steuergate CG des Speicherzellen-Transistors M angelegt.
Wenn der Transistor M eingeschaltet wird, wird bestimmt, dass die Speicherzelle "2" speichert; wenn der Transistor M ausgeschaltet
wird, wird bestimmt, dass die Zelle "3" speichert.
Schließlich
wird die Lesespannung VCG1R an das Steuergate CG des Speicherzellen-Transistors
M angelegt. Wenn der Transistor M eingeschaltet wird, wird bestimmt,
dass die Speicherzelle "0" speichert, wenn
der Transistor M ausgeschaltet wird, wird bestimmt, dass die Zelle "1" speichert. Diese Lesespannungen VCG2R,
VCG3R und VCG4R sind beispielsweise jeweils 0 V, 1 V und 2 V.
-
In 11 sind Verifizierungslesespannungen VGC1V, VGC2V
und VGC3V gezeigt, die zum Prüfen
verwendet werden, um zu sehen, ob die Vierwertzellen ausreichend
programmiert worden sind. Die Verifizierungsspannungen VGC1V, VGC2V
und VGC3V werden an das Steuergate jeder Speicherzelle angelegt,
nachdem eine Programmieroperation an der Speicherzelle durchgeführt worden
ist, um eine Verifizierung zu bewirken, oder um zu bestimmen, ob
die Speicherzelle ausreichend programmiert ist oder nicht. Wenn
der Speicherzellen-Transistor M eingeschaltet wird, wenn eine Verifizierungsspannung
an die Speicherzelle MC angelegt ist, wird erfasst, dass der Transistor
M seine Schwellenspannung zu dem Wert entsprechend den Daten geändert hat,
die gerade in die Speicherzelle MC geschrieben sind. Wenn der Transistor
M ausgeschaltet wird, wenn die Verifizierungsspannung an die Speicherzelle
MC angelegt ist, wird erfasst, dass der Transistor M seine Schwellenspannung
nicht zu dem Wert entsprechend den Daten geändert hat, die in die Zelle MC
zu schreiben sind. Die Verifizierungsspannungen VGC1V, VGC2V und
VGC3V sind jeweils 0,5 V, 1,5 V und 2,5 V.
-
12 ist ein Blockdiagramm, das die Datenschaltungen 6 (10) in größerem Detail
darstellt.
-
Wie
es aus 12 zu sehen ist, enthält jede der
Datenschaltungen 6** zwei Latch- bzw. Zwischenspeicherungsschaltungen.
Zwei 2-Bit-Datenelemente werden jeweils in der ersten und der zweiten Latch-Schaltung
gehalten, bevor sie in eine Speicherzelle MC geschrieben werden.
Aus der Speicherzelle MC gelesene Vierwertdaten werden in den Latch-Schaltungen
gespeichert, bevor sie von dem Speicherchip über Daten-Eingabe/Ausgabe-Leitungen
IO1 und IO2 ausgegeben werden.
-
Es
wird erklärt
werden, wie 512-Bit-Daten (bei Spaltenadressen A0, A1, A2, ...,
A510 und A511) in den Flash-Speicher
vom NAND-Typ (d.h. das erste Ausführungsbeispiel) geschrieben
und daraus gelesen werden.
-
<Programmierung>
-
Zuerst
wird das bei der Startadresse A0 zu schreibende Datenelement zu
der ersten Latch-Schaltung RT1-0 der Datenschaltung 6-1 eingegeben
und in der Schaltung RT1-0 gehalten. Dann werden die bei den Adressen
A1, A2, ..., A254 und A255 zu schreibende Datenelemente zu den Latch-Schaltungen RT1-1,
RT1-2, ..., RT1-254 und RT1-255 der jeweiligen Datenschaltungen 6-1, 6-2, ..., 6-254 und 6-255 eingegeben
und darin gehalten. Weiterhin werden die bei den Adressen A256,
A257, ..., A510 und A511 zu schreibenden Datenelemente zu den Latch-Schaltungen
RT2-1 bis RT2-255 der jeweiligen Datenschaltungen 6-1 bis 6-255 eingegeben und
darin gehalten. Darauf folgend werden Daten in die Speicherzellen
MC gemäß den in
den Datenschaltungen 6-1 bis 6-255 gespeicherten Zwei-Bit-Datenelementen
geschrieben.
-
Wenn
die Daten weniger als 512 Bits enthalten, werden die Schreibdaten
zu der ersten Latch-Schaltung jeder Datenschaltung eingegeben, aber
keine Daten werden zu der zweiten Latch-Schaltung davon eingegeben.
In diesem Fall genügt
es, solche Daten in der zweiten Latch-Schaltung zu speichern, als
würde die
Speicherzelle MC entweder Daten "0" oder Daten "1" speichern, was einer niedrigen Schwellenspannung
des Speicherzellen-Transistors entspricht.
-
<Lesen von Daten>
-
Ein
Verfahren zum Lesen von 512-Bit-Daten aus dem Flash-Speicher vom NAND-Typ
wird unter Bezugnahme auf die 13A und 13B erklärt werden. 13A zeigt eine Verteilung von Schwellenspannungen
jeder Vierwertzelle MC. 13B ist ein
Ablaufdiagramm zum Erklären,
wie Daten aus jeder Speicherzelle MC gelesen werden.
-
Zuerst
wird eine Spannung Vp1 in der Mitte zwischen zwei Spannungen entsprechend
Datenwerten "1" und "2" an die Wortleitung angelegt, mit welcher
die Speicherzelle MC verbunden ist (Schritt Cl). Wenn die Speicherzelle
eingeschaltet wird, ist es bekannt, dass die Zelle einen Wert "0" und "1" speichert.
Wenn die Speicherzelle ausgeschaltet wird, wird bestimmt, dass die
Zelle einen Wert "2" oder "3" speichert.
-
Als
nächstes
wird eine Spannung Vp2 an die Wortleitung angelegt, um dadurch zu
erfassen, dass die Speicherzelle MC "3" oder "0" oder "1" oder "2" speichert. Die aus der Zelle MC gelesenen
Daten werden in der zweiten Latch-Schaltung gehalten (Schritt C2).
In der Zwischenzeit werden die in der ersten Latch-Schaltung (entsprechend
der Spaltenadresse A0, A1, A2, ..., A254 oder A255) gehaltenen Daten
von dem Speicherchip über
die Daten-Eingabe/Ausgabe-Leitung IO1 ausgegeben (Schritt C3).
-
Dann
wird eine Spannung Vp3 an die Wortleitung angelegt, was bestimmt,
dass die Speicherzelle MC "0" oder irgendeinen
anderen Wert "1" und "2" oder "3" speichert.
Die in der Speicherzelle MC gehaltenen Zwei-Bit-Daten werden dadurch
ausgelesen. Die Daten, die ausgelesen sind und der Spaltenadresse
A256, A257, ..., A510, A511 entsprechen, werden in der zweiten Latch-Schaltung
gehalten (Schritt C4). Nachdem die Daten, die in der ersten Latch-Schaltung
gehalten werden und der Spaltenadresse A0, A1, A2, ..., A254, A255
entsprechen, von dem Speicherchip ausgegeben sind, werden die Daten,
die in der zweiten Latch-Schaltung gehalten werden und der Spaltenadresse
A256, A257, ..., A510 oder A511 entsprechen, von dem Speicherchip über die
Daten-Eingabe/Ausgabe-Leitung
IO2 ausgegeben (Schritt C5).
-
Bei
diesem Datenleseverfahren werden die von irgendeiner Speicherzelle
gelesenen Daten zuerst in der ersten Latch- Schaltung gehalten und dann sofort von
dem Speicherchip ausgegeben. Die Lesezeit ist daher viel kürzer als
bei dem herkömmlichen Mehrfachwertdatenspeicherungs-Speicher,
und nahezu so kurz wie die Lesezeit des Binärdaten-Speicherungsspeichers. Dies ist deshalb
so, weil die Daten von dem Speicherchip ausgegeben werden, nachdem
sie von der Speicherzelle gelesen sind, indem eine vorgeschriebene
Lesespannung an die Wortleitung angelegt wird, wohingegen bei dem
herkömmlichen
Mehrfachwertdaten-Speicherungsspeicher die Wortleitungsspannung
dreimal geändert werden
muss, bevor die in der Speicherzelle gespeicherten Daten von dem
Speicherchip gelesen werden.
-
Ein
weiteres Verfahren zum Lesen von 512-Bit-Daten aus dem Flash-Speicher
vom NAND-Typ wird unter Bezugnahme auf die 14A und 14B erklärt
werden. Die 14A stellt eine Verteilung
der Schwellenspannungen jeder Vierwertzelle MC dar. 14B ist ein Ablaufdiagramm, das erklärt, wie
Daten aus jeder Speicherzelle MC bei diesem Verfahren gelesen werden.
-
Zuerst
wird eine Spannung Vps1 welche mitten zwischen zwei Spannungen entsprechend
Datenwerten "0" und "1" ist, an die Wortleitung angelegt, mit
welcher die Speicherzelle MC verbunden ist. Wenn die Speicherzelle
eingeschaltet wird, ist es bekannt, dass die Zelle einen Wert "0" speichert. Wenn die Speicherzelle ausgeschaltet
wird, wird bestimmt, dass die Zelle einen Wert "1", "2" oder "3" speichert. Die
aus der Speicherzelle MC gelesenen Daten werden in der zweiten Latch-Schaltung gehalten
(Schritt D1).
-
Als
nächstes
wird eine Spannung Vps2 an die Wortleitung angelegt, um dadurch
zu erfassen, dass die Speicherzelle MC "0" oder "1", oder "2" oder "3" speichert. Die aus der Zelle MC gelesenen
Daten, die der Spaltenadresse A0, A1, A2, entsprechen (Schritt D2).
Darauf folgend werden die in der ersten Latch-Schaltung gehaltenen
Daten (d.h. die Daten entsprechend der Spaltenadresse A0, A1, A2,
..., A254 oder A255) von dem Speicherchip über die Daten-Eingabe/Ausgabe-Leitung IO1 ausgegeben (Schritt
D4).
-
Schließlich wird
eine Spannung Vps3 an die Wortleitung angelegt, um dadurch zu erfassen,
dass die Speicherzelle MC "3" oder einen der anderen
drei Werte "0", "1" und "2" speichert.
Die in der Speicherzelle MC gespeicherten Zwei-Bit-Daten werden dadurch ausgelesen.
Diese Daten, die der Spaltenadresse A256, A257, ..., A510 oder A511
entsprechen, werden in der zweiten Latch-Schaltung gehalten (Schritt
D3). Die in der zweiten Latch-Schaltung gehaltenen Daten (d.h. die
Daten entsprechend der Spaltenadresse A256, A257, ..., A510, oder
A11) werden von dem Speicherchip über die Eingabe/Ausgabe-Leitung
IO2 ausgegeben (Schritt D5).
-
Mit
dem ersten Ausführungsbeispiel
ist es möglich,
die in der ersten Latch-Schaltung gehaltenen Daten gleichzeitig
mit einem Lesen von Daten aus jeder Speicherzelle in die zweite
Latch-Schaltung auszugeben, nachdem einmal die aus der Speicherzelle
in die erste Latch-Schaltung gelesenen Daten bestimmt worden sind.
Das bedeutet, dass der Flash-Speicher vom NAND-Typ gemäß dem ersten Ausführungsbeispiel
eine hohe Lesegeschwindigkeit hat.
-
Das
zweite Ausführungsbeispiel
der Erfindung ist auch ein Mehrfachwertdatenspeicherungs-Flash-Speicher
vom NAND-Typ. Das zweite Ausführungsbeispiel
ist bezüglich
der Struktur gleich dem ersten Ausführungsbeispiel (9).
Der Transistor jeder Speicherzelle, die beim zweiten Ausführungsbeispiel
enthalten ist, hat vier Schwellenspannungen, die in 11 spezifiziert sind, so dass die Speicherzelle
Vierwertdaten speichern kann.
-
Der
Flash-Speicher vom NAND-Typ gemäß dem zweiten
Ausführungsbeispiel
hat eine Vielzahl von Datenschaltungen von derselben Struktur, welche
in 15 dargestellt ist. Die Datenschaltungen sind
entwickelt, um Vierwertdatenelemente zu verarbeiten.
-
Wie
es in 15 gezeigt ist, weist jede
Datenschaltung 6** zwei Flip-Flops FF1 und FF2 auf. Das Flip-Flop
FF1 ist durch n-Kanal-MOS-Transistoren Qn21, Qn22 und Qn23 und p-Kanal-MOS-Transistoren Qp9,
Qp10 und Qp11 gebildet. Die Flip-Flop-Schaltung FF2 besteht aus n-Kanal-MOS-Transistoren
Qn29, Qn30 und Qn31 und p-Kanal-MOS-Transistoren Qp16, Qp17 und
Qp18. Die Flip-Flops FF1 und FF2 sind vorgesehen, um aus einer Speicherzelle
gelesene Datenelemente zwischenzuspeichern. Sie fungieren auch als
Leseverstärker.
-
Die
Flip-Flops FF1 und FF2 kooperieren zum Zwischenspeichern von Daten "0", "1", "2" oder "3", bevor
die Daten in eine Speicherzelle geschrieben werden, und zum Erfassen
und Zwischenspeichern von Daten "0", "1", "2" oder "3", bevor die Daten von dem Speicherchip
ausgegeben werden.
-
Das
Flip-Flop FF1 ist mit Daten-Eingabe/Ausgabe-Leitungen IOA und IOB
durch jeweils einen n-Kanal-MOS-Transistor Qn28 und Qn27 verbunden.
Gleichermaßen
ist das Flip-Flop FF2 mit Daten-Eingabe/Ausgabe-Leitungen IOC und
IOD jeweils durch einen n-Kanal-MOS-Transistor Qn35 und Qn36 verbunden.
Die Daten-Eingabe/Ausgabe-Leitungen IOA, IOB, IOC und IOD sind mit
dem Eingabe/Ausgabe-Puffer 5 (9) verbunden.
Die Gates der n-Kanal-Transistoren Qn27 und Qn28 sind mit dem Ausgang
eines Spaltenadressendecodierers verbunden, der eine NAND-Logikschaltung
G3 und einen Inverter I3 aufweist. Die im Flip-Flop FF1 gehaltenen
Daten werden zu den Daten-Eingabe/Ausgabe-Leitungen
IOA und IOB ausgegeben, wenn ein Spalten-Freigabesignal CENB1 aktiviert
wird. Die Gates der n-Kanal-MOS-Transistoren
Qn35 und Qn36 mit einem Spaltenadressendecodierer verbunden, der
eine NAND-Logikschaltung
und einen Inverter I4 aufweist. Die im Flip-Flop FF2 gehaltenen Daten werden zu
den Daten-Eingabe/Ausgabe-Leitungen
IOC und IOD ausgegeben, wenn ein Spaltenfreigabesignal CENB2 aktiviert
wird.
-
Signale
ECH1 und ECH2 werden jeweils zu den n-Kanal-MOS-Transistoren Qn26 und Qn34 zugeführt. Diese
Transistoren Qn26 und Qn34 entzerren die Flip-Flops FF1 und FF2,
wenn die Signale ECH1 und ECH2 auf einen "H"-Pegel
ansteigen. n-Kanal-MOS-Transistoren
Qn24, Qn25, Qn32 und Qn33 sind vorgesehen. Der Transistor Qn24 verbindet
das Flip-Flop FF1 mit oder trennt dasselbe von einem MOS-Kondensator
Qd1. Der Transistor Qn32 verbindet das Flip-Flop FF2 mit oder trennt
das Flip-Flop FF2
von dem MOS-Kondensator Qd1. Der Transistor Qn25 verbindet das Flip-Flop
FF1 mit oder trennt das Flip-Flop FF1 von einem MOS-Kondensator
Qd2. Der Transistor Qn33 verbindet das Flip-Flop FF2 mit oder trennt
dasselbe von dem MOS-Kondensator
Qd1.
-
P-Kanal-MOS-Transistoren
Qp12C und Q13C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den im Flip-Flop
FF1 gehaltenen Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBAC sind. P-Kanal-MOS-Transistoren
Qp14C und Q15C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß den im
Flip-Flop FF2 gehaltenen
Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBBC sind. Der p-Kanal-MOS-Transistor
Qp12C und p-Kanal-MOS-Transistoren Qp19C und Qp20C bilden eine Schaltung,
die die Gatespannung des MOS-Kondensators Qd1 gemäß den in
den Flip-Flops FF1 und FF2 gehaltenen Datenelementen ändert, wobei
die Eingangsdaten ein Aktivierungssignal VRFYBA2C sind. Der p-Kanal-MOS-Transistor Qp14C
und p-Kanal-MOS-Transistoren Qp21C und Qp22C bilden eine Schaltung,
die die Gatespannung des MOS-Kondensators Qd2 gemäß den in
den Flip-Flops FF1 und FF2 gehaltenen Datenelementen ändert, wobei
die Eingangsdaten ein Aktivierungssignal VRFYBB2C sind. N-Kanal-MOS-Transistoren Qn1C
und Qn2C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den in
dem Flip-Flop FF2 gehaltenen Daten ändert, wobei die Eingangsdaten
ein Aktivierungssignal VRFYBA1C sind. N-Kanal-MOS-Transistoren Qn3C und
Qn4C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß den im Flip-Flop
FF2 gehaltenen Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBB1C sind.
-
Die
MOS-Kondensatoren Qd1 und Qd2 sind jeweils durch einen Verarmungs-
bzw. Abreicherungs-n-Kanal-MOS-Transistor gebildet. Sie haben eine
Kapazität,
die viel kleiner als die Bitleitungs-Kapazität ist. Ein n-Kanal-MOS-Transistor
Qn37 lädt den
MOS-Kondensator Qd1 auf eine Spannung VA, wenn er ein Signal PREA
empfängt.
Ein n-Kanal-MOS-Transistor Pn38 lädt den MOS-Kondensator Qd2
auf eine Spannung VB, wenn er ein Signal PREB empfängt. N-Kanal-MOS-Transistoren
Qn39 und Qn40 verbinden die Datenschaltung 6 mit oder trennen
dieselbe von Bitleitungen BLa und BLb, wobei die Eingangsdaten jeweils
Signale BLCA und BLCB sind. Die n-Kanal-MOS-Transistoren Qn37 und
Qn38 bilden eine Schaltung, die die Spannungen der Bitleitungen
BLa und BLb steuert.
-
Es
wird erklärt
werden, wie der Flash-Speicher vom NAND-Typ (das zweite Ausführungsbeispiel),
der oben beschrieben ist, dann arbeitet, wenn das Steuergate CG2A
ausgewählt
ist.
-
<Lesen von Daten>
-
Zuerst
wird unter Bezugnahme auf das Zeitdiagramm der 16 beschrieben werden, wie Daten aus dem Flash-Speicher
gelesen werden.
-
Zu
einer Zeit t1RC werden die Spannungen VA und VB auf 1,8 V und 1,5
V eingestellt, wodurch die Bitleitungen BLa und BLb jeweils auf
1,8 V und 1,5 V eingestellt werden. Als Ergebnis fallen die Signale
BLCA und BLCB auf einen "L"-Pegel ab. Die Bitleitungen
BLa und BLb werden dadurch jeweils von den MOS-Kondensatoren Qd1 und Qd2 getrennt und nehmen
einen schwebenden Zustand an. Die Signale PREA und PREB fallen auf
einen "L"-Pegel ab, was die
Knoten N1 und N2 oder die Gates der MOS-Kondensatoren Qd1 und Qd2
in einen schwebenden Zustand einstellt. Dann wird zu einer Zeit t2RC
das Steuergate CG2A in den durch eine Steuergate/Auswahlgate-Treiberschaltung
ausgewählten Block
auf 0 V programmiert, während
die Steuergates CG1A, CG3A und CG4A, die jeweils nicht ausgewählt sind,
und die Steuergates SG1A und SG2A, die beide ausgewählt sind,
auf VCC eingestellt werden. Wenn die ausgewählte Speicherzelle eine Schwellenspannung
von 0 V oder darunter hat, wird die Bitleitungs-Spannung niedriger
als 1,5 V sein. Wenn die ausgewählte
Speicherzelle 0 V oder darüber
ist, wird die Bitleitungs-Spannung auf 1,8 V bleiben. Darauf folgend
steigen zu einer Zeit t3RC die Signale BLCA und BLCB auf einen "H"-Pegel an. Die Datenelemente auf den
Bitleitungen BLa und BLb werden dadurch zu den MOS-Kondensatoren Qd1 und
Qd2 transferiert. Die Signale BLCA und BLCB fallen dann auf einen "L"-Pegel ab, wodurch die Bitleitungen
BLa und BLb von den MOS-Kondensatoren Qd1 und Qd2 getrennt werden.
Signale SAN1 und SAP1 ändern
sich jeweils auf einen "L"-Pegel und einen "H"-Pegel. Das Flip-Flop FF1 wird dadurch deaktiviert. Das
Signal ECH1 steigt auf einen "H"-Pegel an, was das
Flip-Flop FF1 entzerrt. Darauf folgend steigen Signale RV1A und
RV1B auf einen "H"-Pegel an. Zu einer
Zeit t4RC ändern
sich die Signale SAN1 und SAP1 jeweils auf einen "H"-Pegel und einen "L"-Pegel.
Die Spannung am Knoten N1 wird erfasst bzw. gelesen und zwischengespeichert.
Das Flip-Flop FF1 erfasst, dass die Speicherzelle "0" oder einen der anderen drei Werte "1", "2" oder "3" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert.
-
Als
nächstes
wird das Steuergate CG2A (d.h. das ausgewählte Steuergate) auf 1 V programmiert.
Wenn die ausgewählte
Speicherzelle eine Schwellenspannung von 1 V oder darunter hat,
wird die Bitleitungs-Spannung kleiner als 1,5 V sein. Wenn die Speicherzelle
eine Schwellenspannung von 1 V oder darüber hat, wird die Bitleitungs-Spannung
auf 1,8 V bleiben. Zu einer Zeit t5RC steigen die Signale PREA und
PREB auf einen "H"-Pegel an, was die
Knoten N1 und N2 oder die Gate-Elektroden der
MOS-Kondensatoren Qd1 und Qd2 jeweils auf 1,8 V und 1,5 V einstellt.
Dann fallen die Signale PREA und PREB auf einen "L"-Pegel
ab, wodurch die Knoten N1 und N2 einen schwebenden Zustand annehmen.
Zu einer Zeit t6RC steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und fallen dann auf einen "L"-Pegel ab. Die Bitleitungen BLa und
BLb werden von den MOS-Kondensatoren Qd1 und Qd2 getrennt. Signale
SAN2 und SAP2 ändern sich
jeweils zu einem "L"-Pegel und einen "H"-Pegel, was das Flip-Flop FF2 deaktiviert.
Das Signal ECH2 steigt auf einen "H"-Pegel
an, was das Flip-Flop FF2 entzerrt. Weiterhin steigen Signale RV2A
und RV2B auf einen "H"-Pegel an. Zu einer
Zeit t7RC ändern sich
die Signale SAN2 und SAP2 wieder zu einem "L"-Pegel
und einem "H"-Pegel, wodurch die
Spannung am Knoten N1 gelesen und zwischengespeichert wird. Somit
erfasst das Flip-Flop FF2, dass die in der Speicherzelle gespeicherten
Daten "0" oder "1", oder "2" oder "3" sind. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert.
-
17 ist eine Tabelle, die die aus den Flash-Speicher
vom NAND-Typ zu lesenden Datenelemente zeigt, welche die Flip-Flops FF1 und FF2
zur Zeit t7RC erfassen bzw. lesen und zwischenspeichern können. Zur
Zeit t7RC können
die Knoten N3C und N5C in den Flip-Flops FF1 und FF2 die in 17 gezeigten Potentiale annehmen.
-
Die
im Flip-Flop FF2 gehaltenen Daten werden von dem Speicherchip zur
Zeit tCB1 ausgegeben, wenn das Spalten-Freigabesignal CENB2 aktiviert ist.
-
Schließlich wird
erfasst, dass die in die ausgewählte
Speicherzelle geschriebenen Daten "2" oder "3" sind. Das Steuergate CG2A, d.h. das
ausgewählte
Gate, wird dann auf 2 V eingestellt. Wenn die ausgewählte Speicherzelle
eine Schwellenspannung von 2 V oder darunter hat, wird die Bitleitungs-Spannung
niedriger als 1,5 V sein. Wenn die Speicherzelle eine Schwellenspannung
von 2 V oder darüber
hat, wird die Bitleitungs-Spannung auf 1,8 V bleiben. Zu einer Zeit
t8RC steigen die Signale PREA und PREB auf einen "H"-Pegel an. Die Knoten N1 und N2, d.h. die
Gate-Elektroden der MOS-Kondensatoren Qd1 und Qd2, werden jeweils
auf 1,8 V und 1,5 V eingestellt. Dann fallen die Signale PREA und
PREB auf einen "L"-Pegel ab, was die
Knoten N1 und N2 in einen schwebenden Zustand einstellt bzw. versetzt.
Zu einer Zeit t10RC steigen die Signale BRCA und BRCB auf einen "H"-Pegel an. Darauf folgend fallen die
Signale BLCA und BLCB wieder auf einen "L"-Pegel
ab, wodurch die Bitleitungen BLa und BLb von den MOS-Kondensatoren
Qd1 und Qd2 getrennt werden. Zu einer Zeit t11RC wird das Signal VRFYPA2C
auf 0 V programmiert, bevor die Daten in einem MOS-Kondensator erfasst
werden. Wie es aus 17 verstanden werden kann,
erfolgt es erst dann, wenn die Daten "1" sind,
dass die Knoten N5C und N3C jeweils auf einem "L"-Pegel
und einem "H"-Pegel sind. Somit werden die p-Kanal-MOS-Transistoren
Qp12C, Qp19C und Qp20C eingeschaltet und wird der Knoten N1 auf
VCC programmiert, und zwar erst dann, wenn die ausgewählte Speicherzelle "1" speichert.
-
Darauf
folgend ändern
sich die Signale SAN1 und SAP1 auf einen "L"-Pegel
und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Zu einer Zeit t12RC ändern sich
die Signale SAN1 und SAP1 zu einem "H"-Pegel
und einem "L"-Pegel, was veranlasst,
dass das Flip-Flop FF1 die Spannung am Knoten N1 zwischenspeichert.
Das bedeutet, dass Flip-Flop FF1 erfasst, dass die in der Speicherzelle gespeicherten
Daten entweder "2" oder "3" sind. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert.
-
Nachdem
die im Flip-Flop FF2 gehaltnen Daten von dem Speicherchip ausgegeben
sind, werden die im Flip-Flop FF1 gehaltenen Daten vom Chip zu einer
Zeit tCP2 ausgegeben, wenn das Spalten-Freigabesignal CENB1 aktiviert
ist.
-
18 zeigt die auszulesenden Datenelemente, welche
die Flip-Flops FF1 und FF2 lesen und zwischenspeichern können.
-
Die
Flip-Flops FF1 und FF2 speichern ein Vierwertdatenelement auf die
oben beschriebene Weise zwischen. Der Schwellenwert des Vierwertdatenelements
ist wie folgt:
Schwellenwert für Daten "0":
0 V oder darunter
Schwellenwert für Daten "1":
0,5 V – 0,8
V
Schwellenwert für
Daten "2": 1,5 V – 1,8 V
Schwellenwert
für Daten "3": 2,5 V – 2,8 V
-
Während ein
Vierwertdatenelement aus der ausgewählten Speicherzelle gelesen
wird, bleiben die Signale VRFYBAC und VRFYBBC auf einem "H"-Pegel, bleiben die Signale VRFYBA1C
und VRFYBB1C auf einem "L"-Pegel und bleibt
die Spannung Vs auf 0 V.
-
Die
in der Speicherzelle gespeicherten Daten, die Schwellenspannung
des Speicherzellen-Transistors und die zu den Daten-Eingabe/Ausgabe-Leitungen
IOA, IOB, IOC und IOD ausgegebenen Spannungspegel, nachdem die Daten
aus der Zelle gelesen sind, haben die in 18 spezifizierte Beziehung.
-
<Programmierung>
-
Zuerst
werden Daten in die Flip-Flops FF1 und FF2 geladen. Dann werden
Datenelemente "1", "2" und "3" nahezu
gleichzeitig in die Speicherzellen geschrieben. Eine Verifizierungsleseoperation
wird ausgeführt,
welche bestimmt, ob die Speicherzellen zu Datenelementen "1", "2" und "3" programmiert worden sind. Wenn es irgendeine
Speicherzelle gibt, die unzureichend programmiert worden ist, werden die
Datenelemente noch einmal in die Speicherzelle geschrieben. Wenn
die Schreibbeendigungs-Erfassungsschaltung 18 (9)
erfasst, dass alle Speicherzellen ausreichend programmiert sind,
wird die Programmierung beendet.
-
Es
wird beschrieben werden, wie der Flash-Speicher vom NAND-Typ programmiert
wird und wie die Verifizierungsleseoperation durchgeführt wird.
-
(1) Programmierung
-
Die
Dateneingabe wird durch den Daten-Eingabe/Ausgabe-Puffer 5 umgewandelt
und zu der Datenschaltung 6** eingegeben, bevor sie in
die Speicherzellen geschrieben wird.
-
19 zeigt die zu schreibenden Datenelemente, welche
die Flip-Flops FF1 und FF2 erfassen bzw. lesen und zwischenspeichern
können. 19 stellt auch die Beziehung dar, die ein in eine
Speicherzelle zu schreibendes Vierwertdatenelement zu den Spannungspegeln
der Daten-Eingabe/Ausgabe-Leitungen
IOA, IOB und IOC und IOD hat.
-
Es
soll angenommen sein, dass der Flash-Speicher vom NAND-Typ 256 Datenschaltungen 6** hat,
wie der Flash-Speicher vom NAND-Typ gemäß dem ersten Ausführungsbeispiel
(das heißt, eine
Seite enthält
256-Byte-Speicherzellen, und hat somit eine Speicherkapazität von 256
Bytes (= 256 × 8
Bits)). Die ersten 256 Bits, die von außen zugeführt werden, werden zu den Flip-Flops
FF1 über
die Daten-Eingabe/Ausgabe-Leitungen IOA und IOB eingegeben, während das
Spalten-Freigabesignal CENB1 auf einem "H"-Pegel
bleibt. Dann werden die nächsten
von außen
zugeführten
256 Bits zu den Flip-Flops FF2 über
die Daten-Eingabe/Ausgabe-Leitungen IOC und IOD eingegeben, während das
Spalten-Freigabesignal CENB2 auf einem "H"-Pegel
bleibt.
-
Wie
es aus den 18 und 19 zu
sehen ist, werden die zu einem jeweiligen Flip-Flop FF1 über die
Daten-Eingabe/Ausgabe-Leitungen
IOA und IOB eingegebenen und somit geschriebenen Daten dann, wenn
es nötig
ist, in ein Flip-Flop FF2 gelesen und von dem Speicherchip über die
Daten-Eingabe/Ausgabe-Leitungen
IOC und IOD ausgegeben. Anders ausgedrückt wird der Daten-Eingabe/Ausgabe-Puffer 5 so
gesteuert, dass die über
IOA einmal geschriebenen Daten über
IOD ausgelesen werden, und dass die über die Leitung IOB einmal
geschriebenen Daten über
die Leitung IOC ausgelesen werden.
-
Andererseits
werden die zu jedem Flip-Flop FF2 über die Daten-Eingabe/Ausgabe-Leitungen IOC
und IOD eingegebenen und somit geschriebenen Daten dann, wenn es
nötig ist,
in ein Flip-Flop FF1 gelesen und von dem Speicherchip über die
Daten-Eingabe/Ausgabe-Leitungen IOC und IOD ausgegeben. Anders ausgedrückt wird
der Daten-Eingabe/Ausgabe-Puffer 5 so gesteuert, dass die über IOC einmal
geschriebenen Daten über
IOB ausgelesen werden und dass die über die Leitung IOD einmal
geschriebenen über
die Leitung IOA ausgelesen werden.
-
Unter
Bezugnahme auf das Zeitdiagramm der 20 wird
erklärt
werden, wie Daten geschrieben werden.
-
Wie
es in 20 gezeigt ist, steigt die
Bitleitungs-Schreibsteuerspannung
VA zu einer Zeit t1s auf 1 V an, was die Bitleitung BLa auf 1 V
einstellt. Wenn ein Spannungsabfall äquivalent zu der Schwellenspannung
des n-Kanal-MOS-Transistors
Qn39 ein Problem macht, genügt
es, den Pegel des Signals BLCA zu erhöhen. Dann fällt das Signal PREA auf einen "L"-Pegel ab, was die Bitleitung BLa in
einen schwebenden Zustand versetzt. Zu einer Zeit t2s wird das Signal
RV2A auf 1,5 V programmiert, und die Datenschaltung, die "1" oder "3" speichert,
legt eine Bitleitungs-Steuerspannung
von 0 V an die Bitleitung BLa an. Es soll angenommen sein, dass
der n-Kanal-MOS-Transistor Qn32 eine Schwellenspannung von 1 V hat,
während
Daten geschrieben werden. Dann wird der n-Kanal-MOS-Transistor Qn32
ausgeschaltet, wenn die Daten, die geschrieben werden, "0" oder "1" sind,
oder wird ausgeschaltet, wenn die Daten, die geschrieben werden, "1" oder "3" sind. Darauf
folgend ändert
sich zu einer Zeit t3s das Signal VRFYBAC auf 0 V, wodurch die Datenschaltung, die "0" oder "1" speichert,
eine Bitleitungs-Steuerspannung VCC an die Bitleitung BLa anlegt.
Zu einer Zeit t4s fällt
das Signal VRFYBA2C auf 0 V ab, wodurch die Datenschaltung, die "1" hält,
eine Schreibspannung von 2 V an die Bitleitung BLa anlegt, um Daten "1" zu schreiben.
-
Somit
wird die Bitleitung BLa auf VCC programmiert, um "0" zu schreiben, auf 2 V, um "1" zu schreiben, auf 1 V, um "2" zu schreiben und auf 0 V, um "3" zu schreiben.
-
Zu
einer Zeit t1s werden das Auswahlgate SG1A und Steuergates CG1A
bis CG4A des ausgewählten
Blocks durch die Steuergate/Auswahlgate-Treiberschaltung auf VCC
eingestellt. Das Auswahlgate SG2A des Blocks wird auf 2 V programmiert.
Dann wird das ausgewählte
Steuergate CG2A auf eine hohe Spannung VPP (z.B. 20 V) programmiert,
während
die Steuergates CG1A, CG3A und CG4A, die alle nicht ausgewählt sind,
auf eine Spannung VM (z.B. 10 V) eingestellt werden. In der Speicherzelle,
die mit der Datenschaltung verbunden ist, die "3" hält, werden
Elektronen in das schwebende Gate injiziert, was die Schwellenspannung
des Speicherzellen-Transistors
aufgrund der Differenz zwischen dem Potential (0 V) des Kanals und
dem Potential (VPP) des Steuergates erhöht. In der Speicherzelle, die
mit der Datenschaltung verbunden ist, die "2" hält, werden
Elektronen in das schwebende Gate injiziert, was die Schwellenspannung
des Speicherzellen-Transistors
aufgrund der Differenz zwischen dem Potential (1 V) des Kanals und
dem Potential (VPP) des Steuergates erhöht. In der Speicherzelle, die
mit der Datenschaltung verbunden ist, die "1" hält, werden
Elektronen in das schwebende Gate injiziert, was die Schwellenspannung
des Speicherzellen-Transistors
aufgrund der Differenz zwischen dem Potential (2 V) des Kanals und
dem Potential (VPP) des Steuergates erhöht. Das Kanalpotential ist
1 V, um "2" in der Speicherzelle
zu schreiben, und ist 2 V, um "1" im Speicher zu schreiben. Das
bedeutet, dass das Kanalpotential des Speicherzellen-Transistors umso
niedriger ist, je größer der Wert
zum Schreiben in die Zelle ist. In der Speicherzelle, die mit der
Datenschaltung verbunden ist, die "0" hält, ist
die Potentialdifferenz zwischen dem Kanal und dem Steuergate so
gering, dass Elektronen nicht in das schwebende Gate in einer Menge
injiziert werden, die groß genug
ist, um die Schwellenspannung des Speicherzellen-Transistors zu ändern.
-
Während des
Programmierbetriebs bleiben die Signale SAN1, SAN2, PREB und BLCB
auf einem "H"-Pegel, bleiben die
Signale SAP1, SAP2, VREFYBA1C, RV1A, RV1B, RV2B, ECH1 und ECH2 auf
einem "L"-Pegel und bleibt
die Spannung VB auf 0 V.
-
(2) Verifizierungsleseoperation
-
Nach
der Programmieroperation wird bestimmt, ob Daten vollständig geschrieben
worden sind. (Das bedeutet, dass eine Schreibverifizierungsoperation
ausgeführt
wird.) Wenn die Schwellenspannung der Speicherzelle einen erwünschten
Wert erreicht hat, werden die in der Datenschaltung gehaltenen Daten
auf "0" geändert. Sonst
werden die in der Datenschaltung gehaltenen Daten unverändert gelassen
und werden die Daten wieder in die Speicherzelle geschrieben. Eine
Datenschreib- und Schreibverifizierungsoperation werden wiederholt, bis
alle Speicherzellen, in welche "1" geschrieben werden
muss, dahin gelangen, eine erwünschte Schwellenspannung
zu haben, bis alle Speicherzellen, in welche "2" geschrieben
werden muss, dahin gelangen, eine andere erwünschte Schwellenspannung zu
haben, und bis alle Speicherzellen, in welche "3" geschrieben
werden muss, dahin gelangen, eine noch weitere erwünschte Schwellenspannung
zu haben.
-
Die
Verifizierungsleseoperation wird unter Bezugnahme auf das Zeitdiagramm
der 21 und 22 beschrieben
werden.
-
Zuerst
wird auf die folgende Weise bestimmt, ob die Schwellenspannung einer
Speicherzelle, in welche "1" geschrieben werden
muss, einen vorbestimmten Wert erreicht hat.
-
Zu
einer Zeit t1yc werden die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch
auf 1,8 V und 1,5 eingestellt. Die Signale BLCA und BLCB fallen
auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von
dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb nehmen
daher einen schwebenden Zustand an. Die Signale PREB fallen auf
einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Zu einer Zeit
t2yc wird das ausgewählte
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
ausgewählten
Blocks auf 0,5 V programmiert, während
die Steuergates CG1A, CG3A und CG4A, die nicht ausgewählt sind,
und die Auswahlgate SG1A und SG2A auf VCC eingestellt werden. Wenn die
Schwellenspannung der ausgewählten
Speicherzelle 0,5 V oder darunter ist, ist die Bitleitungs-Spannung
kleiner als 1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist,
wird die Bitleitungs-Spannung auf 1,8 V bleiben. Zu einer Zeit t3yc
steigen die Signale BLCA und BLCB auf einen "H"-Pegel
an und werden die Potentiale der Bitleitungen an die Knoten N1 und
N2 angelegt. Dann fallen die Signale BLCA und BLCB auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Darauf folgend wird zu einer Zeit t4yc das Signal RV1A
auf 1,5 V programmiert. Der Knoten N1 wird auf 0 V entladen, wenn
die Speicherzelle "2" oder "3" speichern soll. Zu einer Zeit t5yc
steigt das Signal VRFYBA1C auf einen "H"-Pegel an, wird der
n-Kanal-MOS-Transistor Qn2 eingeschaltet und wird der Knoten N1
auf VCC in der Datenschaltung programmiert, die "0" oder "2" hält.
Somit wird der Knoten N1 auf VCC programmiert, um "0" oder "2" in
die Speicherzelle zu schreiben, oder auf 0 V, um "3" in die Speicherzelle zu schreiben.
-
Die
Signale SAN2 und SAP2 ändern
sich jeweils auf einen "L"-Pegel und einen "H"-Pegel,
was das Flip-Flop FF2 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF2 entzerrt.
Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Zu einer Zeit t6yc wird die
Spannung am Knoten 1 erfasst und zwischengespeichert. Es
wird bestimmt, ob die Speicherzelle, die mit der Datenschaltung
verbunden ist, die "1" hält, ausreichend
auf Daten "1" programmiert worden
ist oder nicht. Wenn die Speicherzelle "1" speichert, erfasst das
Flip-Flop FF2 die Spannung am Knoten N1 und speichert sie zwischen,
wodurch die in die Speicherzelle zu schreibenden Daten auf "0" geändert
werden. Wenn die Speicherzelle "1" nicht speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N2 und speichert
sie zwischen, wodurch die Daten "1" in der Speicherzelle
gehalten werden. Irgendwelche anderen Daten, wie "0", "2" oder "3", bleiben in jedweder Datenschaltung
unverändert,
die sie hält.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 1,5 V programmiert. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 1,5 V oder darunter ist, wird die Bitleitungs-Spannung kleiner
als 1,5 V sein. Wenn die Schwellenspannung 1,5 V oder darüber ist,
wird die Bitleitungs-Spannung auf 1,8 V bleiben. Zu einer Zeit t7yc
werden die Signale PREA und PREB auf VCC eingestellt. Die Knoten
N1 und N2 werden dadurch jeweils auf 1,8 V und 1,5 V eingestellt
und nehmen einen schwebenden Zustand an. Zu einer Zeit t8yc steigen
die Signale BLCA und BLCB auf einen "H"-Pegel
an, wodurch das Bitleitungs-Potential an die Knoten N1 und N2 angelegt wird.
Dann fallen die Signale BLCA und BLCB auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung
BLb von dem MOS-Kondensator Qd2 trennt. Darauf folgend wird zu einer
Zeit t9yc das Signal RV2A auf eine Spannung programmiert, die niedriger
als VCC ist, wie beispielsweise auf 1,5 V. Wenn die Schwellenspannung
des n-Kanal-MOS-Transistors
Qn32 1 V ist, wird der Transistor Qn32 eingeschaltet und wird der
Knoten N1 in irgendeiner Datenschaltung auf 0 V programmiert, die "3" hält.
In jeder Datenschaltung, die "2" hält, wird
der n-Kanal-MOS-Transistor Qn32 ausgeschaltet und wird der Knoten
N1 auf 1,5 V oder darüber
gehalten, wenn die Speicherzelle, die mit der Datenschaltung verbunden
ist, ausreichend auf Daten "2" programmiert ist.
Wenn die Speicherzelle unzureichend auf Daten "2" programmiert
ist, wird der Knoten N1 auf 1,5 V oder darunter gehalten. Zu einer Zeit
t10yc wird dann, wenn das Signal VRFYBAC auf einen "L"-Pegel abfällt, der pö abfällt, der p-Kanal-MOS-Transistor
Qp13 eingeschaltet, wodurch der Knoten N1 bei einem Schreiben von
Daten "0" oder "2" auf VCC eingestellt wird, und bei einem Schreiben
von Daten "3" auf 0 V eingestellt
wird.
-
Die
Signale SAN1 und SAP1 ändern
sich jeweils zu einem "L"-Pegel und einem "H"-Pegel.
Das Flip-Flop FF1 wird dadurch deaktiviert. Das Signal ECH1 steigt
auf einen "H"-Pegel an, was das Flip-Flop
FF1 entzerrt. Darauf folgend steigen die Signale RV1A und RV1B auf
einen "H"-Pegel an. Zu einer
Zeit t11yc ändern
sich die Signale SAN1 und SAP1 jeweils auf einen "H"-Pegel und einen "L"-Pegel
und wird die Spannung am Knoten N1 erfasst und zwischengespeichert.
Somit wird erfasst, ob die Speicherzelle ausreichend auf "2" programmiert worden ist oder nicht.
Wenn die in der Speicherzelle gespeicherten Daten "2" sind, erfasst das Flip-Flop FF1 die
Spannung am Knoten N1 und speichert sie zwischen. Die in die Speicherzelle
zu schreibenden Daten werden dadurch auf "0" geändert. Wenn
die in der Speicherzelle gespeicherten Daten nicht "2" sind, erfasst das Flip-Flop FF1 die
Spannung am Knoten N1 und speichert sie zwischen. In diesem Fall
werden die zu schreibenden Daten auf "2" gehalten.
Die in jeder Datenschaltung, die "0", "2" oder "3" speichert, gehaltenen
Daten werden überhaupt
nicht geändert.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 2,5 V eingestellt. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 2,5 V oder darunter ist, wird die Bitleitungs-Spannung kleiner
als 1,5 V, und dann, wenn die Schwellenspannung der ausgewählten Speicherzelle
2,5 V oder darüber
ist, bleibt die Bitleitungs-Spannung auf 1,8 V. Darauf folgend werden
zu einer Zeit t12yc die Signale BLCA und BLCB auf einen "H"-Pegel eingestellt, wodurch das Bitleitungs-Potential
an die Knoten N1 und N2 angelegt wird. Dann fallen die Signale BLCA
und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Zu einer Zeit t13yc fällt das
Signal VRFYBAC auf einen "L"-Pegel ab. In jeder
Datenschaltung, die "0" oder "1" hält,
und in jeder Datenschaltung, die "2" vollständig hält, wird
der p-Kanal-MOS-Transistor
Qp13 eingeschaltet und wird der Knoten N1 auf VCC programmiert.
Die Signale SAN1 und SAP1 ändern
sich auf einen "L"-Pegel und einen "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das
Flip-Flop FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Zu einer Zeit t14yc steigt
das Signal SAN1 auf einen "H"-Pegel an und fällt das
Signal SAP1 auf einen "L"-Pegel ab. Die Spannung
am Knoten N1 wird dadurch erfasst und zwischengespeichert.
-
Darauf
folgend werden, wie es in 22 gezeigt
ist, die zu schreibenden Daten geändert. Genauer gesagt stellen
sich die Signale BLCA und BLCB zu einer Zeit t15yc auf einen "H"-Pegel ein. Das Bitleitungs-Potential
wird dadurch an die Knoten N1 und N2 angelegt. Dann fallen die Signale
BLCA und BLCB wieder auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Zu einer Zeit
t16yc steigt das Signal VRFYBA1C auf einen "H"-Pegel
an. In jeder Datenschaltung, die "0" oder "2" hält,
und in jeder Datenschaltung, die "1" vollständig hält, wird
der n-Kanal-MOS-Transistor Qn2C eingeschaltet und wird der Knoten
N1 auf VCC programmiert. Die Signale SAN1 und SAP1 ändern sich
jeweils auf einen "L"-Pegel und einen "H"-Pegel.
Das Flip-Flop FF2 wird dadurch deaktiviert. Das Signal ECH2 steigt
auf einen "H"-Pegel an, was das
Flip-Flop FF2 entzerrt. Dann steigen die Signale RV2A und RV2B auf
einen "H"-Pegel an. Zu einer
Zeit t17yc steigt das Signal SAN2 auf einen "H"-Pegel
an und fällt
das Signal SAP2 auf einen "L"-Pegel ab. Die Spannung
am Knoten N1 wird dadurch erfasst und zwischengespeichert.
-
Beim
zweiten Ausführungsbeispiel
wird das Signal VRFYBA1C zu einer Zeit t16yc auf VCC programmiert.
Daher kann der MOS-Kondensator
Qd1 so geladen werden, dass der Knoten N1 auf ein Potential programmiert
wird, das höher
als der Knoten 2 (der auf 1,5 V eingestellt ist) ist, wenn "0", "2" oder "1" vollständig geschrieben ist. Das Signal
RV2B kann auf beispielsweise 1,5 V eingestellt werden. In diesem
Fall wird der n-Kanal-MOS-Transistor Qn33 eingeschaltet und wird
die Spannung am Knoten N2 0 V. Das bedeutet, dass deshalb, weil
der Knoten N6C auf 0 V ist, wenn "0" und "2" oder "1",
oder "1" nicht sorgfältig gewesen
ist, der Knoten N6C auf 0 V liegt. Somit wird der n-Kanal-MOS-Transistor
Qn33 eingeschaltet und wird der Knoten N2 auf 0 V programmiert.
-
Wenn "1" nicht vollständig beschrieben ist oder wenn "3" geschrieben ist, werden die Knoten N6C
und N2 jeweils auf VCC und 1,5 V eingestellt. In diesem Fall wird
der n-Kanal-MOS-Transistor
Qn33 ausgeschaltet und bleibt der Knoten N2 auf 1,5 V. Zu einer
Zeit t16yc wird das Signal VRFYBA1C auf VCC programmiert, um den
Knoten N2 zu laden, wenn "0" oder "2" geschrieben ist oder wenn "1" nicht vollständig geschrieben ist. Da der
Knoten N2 zur Zeit t16yc auf 0 V ist, genügt es, den Knoten N2 auf eine
relativ niedrige Spannung von beispielsweise etwa 0,5 V zu laden.
-
Wie
es oben beschrieben ist, wird bestimmt, ob die Speicherzelle, die
mit irgendeiner Datenschaltung verbunden ist, die "3" hält,
auf Daten "3" programmiert worden
ist oder nicht. Wenn die Speicherzelle ausreichend auf "3" programmiert worden ist, erfassen die
Flip-Flops FF1 und FF2 die Spannung am Knoten N1 und speichern sie
zwischen, um dadurch die in die Speicherzelle zu schreibenden Daten auf "0" zu ändern.
Sonst erfassen die Flip-Flops FF1 und FF2 die Spannung am Knoten
N1 und speichern sie zwischen, um dadurch die Daten "3" in der Datenschaltung zu halten. Irgendwelche
anderen zu schreibenden Daten, wie "0", "1" oder "2",
bleiben in welcher Datenschaltung auch immer, die sie hält, unverändert.
-
Während des
Verifizierungslesens bleibt das Signal VRFYBBC auf einem "H"-Pegel, bleibt das Signal VRFYBB1C auf
einem "L"-Pegel und bleibt
die Spannung Vs auf 0 V.
-
Wenn
die Schwellenspannungen aller ausgewählten Speicherzellen erwünschte Werte
erreichten, werden die in den Datenschaltungen gehaltenen Datenelemente
auf "0" geändert. Das
bedeutet, dass dann, wenn die ausgewählten Speicherzellen ausreichend
programmiert sind, die Knoten N4C und N6C auf einen "L"-Pegel eingestellt werden. Aus dieser Tatsache
wird bestimmt, dass alle ausgewählten Speicherzellen
nun erwünschte
Schwellenspannungen haben. Um zu erfassen, dass die Speicherzellen ausreichend
programmiert worden sind, genügt
es, die Schreibbeendigungs-Erfassungstransistoren Qn5C und Qn6C
zu verwenden, die beide in 15 gezeigt
sind. Nach der Verifizierungsleseoperation wird das Signal VRCC
auf VCC vorgeladen. Selbst wenn eine Speicherzelle ausreichend programmiert ist,
ist der Knoten N4C oder der Knoten N6C, oder beide, der Datenschaltung,
mit welcher die Speicherzelle verbunden ist, auf einem "H"-Pegel. Somit werden der n-Kanal-MOS-Transistor Qn5C
oder n-Kanal-MOS-Transistor Qn6C, oder beide, eingeschaltet, wodurch
das Signal VRTC von der Vorladespannung abfällt. Wenn alle ausgewählten Speicherzellen ausreichend
programmiert sind, fallen die Knoten N4C und N6C in den Datenschaltungen 6**-0, 6**-1, ..., 6**-m-1 und 6**-m auf
einen "L"-Pegel ab. Als Ergebnis
werden die n-Kanal-MOS-Transistoren Qn5C und Qn6C in jeder Datenschaltung
ausgeschaltet, wodurch das Signal VRTC auf der Vorladespannung bleibt.
-
Das
Verifizierungslesen, das Programmieren und das Datenlesen können auf
andere Weisen in dem Mehrfachwertspeicherungs- Flash-Speicher vom NAND-Typ gemäß dem zweiten
Ausführungsbeispiel
der Erfindung durchgeführt
werden.
-
Das
Verifizierungslesen kann durch das in 23 dargestellte
Verfahren bewirkt werden. Bei diesem Verfahren werden bis zu der
Zeit t12yc dieselben Schritte durchgeführt. Ab der Zeit t12yc werden
bei diesem Verfahren unterschiedliche Schritte durchgeführt.
-
Zur
Zeit t12yc steigen die Signale BLCA und BLCB auf einen "H"-Pegel an, wodurch die Bitleitung an
die Knoten N1 und N2 angelegt wird. Wenn die Schwellenspannung einer
ausgewählten
Speicherzelle 2,5 V oder darüber
ist, wird die Bitleitung BLa auf 1,5 V oder darüber eingestellt. Wenn die Schwellenspannung
2,5 V oder darunter ist, wird die Bitleitung BLb auf 1,5 V oder
darunter eingestellt. Darauf folgend fallen die Signale BLCA und
BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Zu der Zeit t13zc wird dann,
wenn das Signal VRFYBA1C auf einen "H"-Pegel ansteigt, der
n-Kanal-MOS-Transistor Qn2 eingeschaltet und wird der Knoten N1
auf 1,5 V programmiert, und zwar in jeder Datenschaltung, die "0" oder "2" hält, oder
in jeder Datenschaltung, die ausreichend auf Daten "1" programmiert ist. Die Signale SAN1
und SAP1 ändern
sich jeweils auf einen "L"-Pegel und einen "H"-Pegel. Das Flip-Flop FF2 wird dadurch
deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel
an, was das Flip-Flop FF2 entzerrt. Darauf folgend steigen die Signale
RV2A und RV2B auf einen "H"-Pegel an. Zur Zeit
t14zc steigt das Signal SAN2 auf einen "H"-Pegel
an und fällt
das Signal SAP2 auf einen "L"-Pegel ab. Die Spannung
am Knoten N1 wird erfasst und zwischengespeichert.
-
Darauf
folgend werden die geschriebenen Daten umgewandelt, wie es in 23 dargestellt ist. Zu einer Zeit t15zc steigen
die Signale BLCA und BLCB auf einen "H"-Pegel
an und wird das Bitleitungs-Potential an die Knoten N1 und N2 angelegt. Die
Signale BLCA und BLCB fallen wieder auf einen "L"-Pegel
ab, was die Bitleitungen BLa und BLb jeweils von den MOS-Kondensatoren
Qd1 und Qd2 trennt. Zu einer Zeit t16zc wird dann, wenn das Signal
VRFYBAC auf einen "L"-Pegel abfällt, der
p-Kanal-MOS-Transistor Qp13 eingeschaltet und wird der Knoten N1
auf VCC in jeder Datenschaltung programmiert, die "0" oder "1" hält, und
in jeder Datenschaltung, die ausreichend auf Daten "2" programmiert worden ist. Die Signale
SAN1 und SAP1 ändern sich
jeweils auf einen "L"-Pegel und einen "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop
FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Zu einer Zeit t17zc ändern sich
die Signale SAN1 und SAB1 jeweils auf einen "H"-Pegel
und einen "L"-Pegel. Die Spannung
am Knoten N1 wird dadurch erfasst und zwischengespeichert.
-
Die
Datenschaltungen sind nicht auf den in 15 gezeigten
Typ beschränkt.
Vielmehr können sie
von anderen Strukturen sein. Die 24 und 25 zeigen
andere zwei Typen von Datenschaltungen.
-
Bei
der Datenschaltung der 24 ist
VCC 0 V, wenn die Signale VRFYBA1C und VRFYBB1C dieselben Wellenformen
wie bei der in 15 gezeigten Datenschaltung
haben, oder wie es in den 16, 20, 21, 22 und 23 dargestellt
ist. Die Signale VRFYBAC, VRFYBBC, VRFYBA2C und VRFYBB2 haben dieselben
Wellenformen wie bei der in 15 gezeigten
Datenschaltung.
-
Bei
der Datenschaltung der 25 ist
VCC 0,5 V, wenn die Signale VRFYBAC, VRFYBBC, VRFYBA2C und VRFYBB2C
dieselben Wellenformen wie bei der in 15 gezeigten
Datenschaltung haben, oder wie es in den 15, 20, 21, 22 und 23 dargestellt
ist. Die Signale VRFYBA1C und VRFYBB1C haben dieselben Wellenformen
wie bei der in 15 dargestellten Datenschaltung.
-
Ein
Flash-Speicher vom NAND-Typ gemäß dem dritten
Ausführungsbeispiel
der Erfindung wird beschrieben werden.
-
Bei
dem dritten Ausführungsbeispiel
weist jede der Datenschaltung 2 Latch-Schaltungen auf. Aus
der zweiten Latch-Schaltung gelesene Daten werden von dem Speicherchip
ausgegeben, während
Daten von der ersten Latch-Schaltung gelesen werden. Ein Bit des
in jeder ausgewählten
Vierwertzelle gespeicherten 2-Bit-Datenelements wird von dem Speicherchip
ausgegeben, sobald sein Wert bestimmt ist, selbst wenn das andere
Bit von der Vierwertzelle gelesen wird. Aufgrund dieses Verfahrens eines
Lesens von Daten hat der Flash-Speicher vom NAND-Typ eine höhere Lesegeschwindigkeit
als der Flash-Speicher vom NAND-Typ gemäß dem zweiten Ausführungsbeispiel.
-
Wie
es in dem Zeitdiagramm der 26 gezeigt
ist, werden Spannungen VA und VB zur Zeit tw1 auf 1,8 V und 1,5
V eingestellt. Die Bitleitungen BLa und BLb werden dadurch jeweils
auf 1,8 V und 1,5 V eingestellt. Dann fallen Signale PREA und RPREB auf
einen "L"-Pegel ab, und beide
Bitleitungen BLa und BLb nehmen einen schwebenden Zustand an. Zu
einer Zeit tw2 wird das ausgewählte
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
ausgewählten
Blocks auf 1 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf VCC eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 1 V oder darüber ist, wird die Bitleitungs-Spannung auf 1,8
V bleiben. Darauf folgend ändern
sich die Signale SAN2 und SAP2 jeweils auf einen "L"-Pegel und einen "H"-Pegel,
was das Flip-Flop FF2 deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2
entzerrt wird. Zu einer Zeit t3w steigen Signale RVA2A und RV2B
auf einen "H"-Pegel an. Zu einer
Zeit t4w ändern
sich die Signale SAN2 und SAP2 jeweils auf einen "H"-Pegel und einen "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF2 bestimmt daher, dass die ausgewählte Speicherzelle "0" oder "1",
oder "2" oder "3" speichert.
-
Zu
einer Zeit tw5 wird ein Signal CENB2 aktiviert. Die im Flip-Flop
FF2 gehaltenen Daten werden dadurch vom Speicherchip ausgegeben.
-
Es
wird bestimmt, ob die Schwellenspannung der ausgewählten Speicherzelle
0V oder darüber
ist, oder 0 V oder darunter. Zur Zeit tw5 werden die Bitleitung
BLa und die Dummy-Bitleitung
BLb jeweils auf 1,8 V und 1,5 V vorgeladen. Dann werden die Bitleitungen
BLa und BLb in einen schwebenden Zustand versetzt. Zu einer Zeit
tw6 wird das ausgewählte
Steuergate auf 0 V programmiert. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 0V oder darunter ist, wird die Bitleitungs-Spannung kleiner
als 1,5 V werden. Wenn die Schwellenspannung 0V oder darüber ist,
wird die Bitleitungs-Spannung
auf 1,8 V bleiben. Die Signale SAN1 und SAP1 ändern sich jeweils auf einen "L"-Pegel und einen "H"-Pegel,
wodurch das Flip-Flop FF1 deaktiviert wird. Das Signal ECH1 steigt
auf einen "H"-Pegel an, was das
Flip-Flop FF1 entzerrt. Zu einer Zeit td7 steigen Signale RV1A und
RV1B auf einen "H"-Pegel an. Zu einer Zeit tw8 ändern sich
die Signale SAN1 und SAP1 zu einem "H"-Pegel
und einem "L"-Pegel. Die Spannung
am Knoten N1 wird dadurch erfasst und zwischengespeichert. Somit
erfasst das Flip-Flop FF1, das die Speicherzelle "0" oder irgendeinen anderen Wert "1", "2" oder "3" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert. Zu dieser Zeit werden die Knoten
N3C im Flip-Flop FF1 und der Knoten N5C im Flip-Flop FF2 auf die
in 17 spezifizierten Potentiale eingestellt.
-
Es
wird dann bestimmt, ob die Speicherzelle "3" oder
irgendeinen anderen Wert "0", "1" oder "2" speichert.
Zu einer Zeit tw9 werden die Bitleitung BLa und die Dummy-Bitleitung BLb jeweils
auf 1,8 V und 1,5 V vorgeladen. Die Bitleitungen BLa und BLb werden
dann in einen schwebenden Zustand versetzt. Zu einer Zeit tw10 wird
das ausgewählte
Steuergate auf 2 V programmiert. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 2 V oder darunter ist, wird die Bitleitungs-Spannung
kleiner als 1,5 V werden. Wenn die Schwellenspannung 2 V oder darüber ist,
wird die Bitleitungs-Spannung
auf 8 V bleiben. Zu einer Zeit tw11 wird das Signal VRFYBA2C auf
0 V eingestellt. Wie es aus 17 zu
ersehen ist, erfolgt es nur dann, wenn die Daten "1" sind, dass die Knoten N4C und N3C auf
einen "hohen Pegel" eingestellt werden
(das heißt
der Knoten N4C wird auf einen "niedrigen
Pegel" programmiert).
Somit werden die p-Kanal-MOS-Transistoren Qp12C, Qp19C und Qp20C
eingeschaltet und wird der Knoten N1 auf VCC programmiert. Darauf
folgend ändern
sich die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Zu einer Zeit tw12 steigen die Signale RF1A und RF1B auf einen "H"-Pegel an. Zu einer Zeit tw13 ändern sich
die Signale SAN1 und SAP1 zu einem "H"-Pegel
und einem "L"-Pegel, wodurch die Spannung am Knoten
N1 erfasst und zwischengespeichert wird. Das Flip-Flop FF1 bestimmt,
ob die Speicherzelle "3" oder irgendwelche
anderen Daten "0", "1" oder "2" speichert.
Die Daten, die diese Tatsache zeigen, werden zwischengespeichert.
-
Zu
einer Zeit tw14 werden dann, wenn das Signal CENB1 aktiviert ist,
die im Flip-Flop FF1 gehaltenen Daten vom Speicherchip ausgegeben.
Ein Vierwertdatenelement wird dadurch aus der ausgewählten Speicherzelle
gelesen und die Flip-Flops FF1 und FF2 speichern dieses Datenelement
zwischen.
-
Ein
Programmieren von Daten und ein Verifizierungslesen können bei
dem dritten Ausführungsbeispiel
auf nahezu dieselbe Weise wie beim zweiten Ausführungsbeispiel ausgeführt werden.
-
Beim
dritten Ausführungsbeispiel
werden die Bitleitung und die Dummy-Bitleitung vorgeladen, bevor
die Lesespannung an die Wortleitung angelegt wird, und zwar jedes
Mal dann, wenn die Daten von der ausgewählten Speicherzelle zu lesen
sind.
-
Beim
zweiten Ausführungsbeispiel
werden das Lesen von Daten und das Verifizierungslesen zuerst durch
Vorladen der Bitleitung und der Dummy-Bitleitung und dann durch Ändern der
Lesespannung der Wortleitung (beispielsweise von 0 V zu 1 V oder
2 V) bewirkt, ohne die Bitleitung oder die Dummy-Bitleitung erneut zu laden. Alternativ
dazu können
die Bitleitung und die Dummy-Bitleitung jedes Mal vorgeladen werden,
wenn die Lesespannung (z.B. 0 V, 1 V oder 2 V) an die Wortleitung
angelegt wird.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem vierten Ausführungsbeispiel
der vorliegenden Erfindung wird unter Bezugnahme auf die 27A bis 27C beschrieben
werden. Die 27A bis 27C zeigen
die Verteilung von Schwellenspannungen jeder Speicherzelle, die
im EEPROM vorgesehen ist, und erklären, wie Daten aus dem EEPROM
ausgegeben werden.
-
Der
Mehrfachwertdatenspeicher-EEPROM weist eine Speicherzellenanordnung
und eine Vielzahl von Datenschaltungen auf. Die Speicherzellenanordnung
hat Speicherzellen, die in Zeilen und Spalten angeordnet sind.
-
Jede
Speicherzelle kann ein n-Wert-Datenelement speichern, wobei n eine
natürliche
Zahl ist, die größer als
3 ist. Jede Datenschaltung weist m Latch-Schaltungen zum Halten
des aus einer ausgewählten
Speicherzelle gelesenen n-Wert-Datenelements
auf.
-
Wie
es in den 27A bis 27C gezeigt ist,
wird das aus der Speicherzelle gelesene Datenelement zu einer k-Nummer
von Latch-Schaltungen eingegeben, die in der Datenschaltung vorgesehen sind.
Das in diesen Latch-Schaltungen gehaltene Datenelement wird vom
Speicherchip ausgegeben, bevor dasselbe Datenelement zu den übrigen (m – k) Latch-Schaltungen
der Datenschaltung eingegeben wird. Die Nummer bzw. Anzahl k kann
2 sein, wie es in 27A gezeigt ist, 1, wie es
in 27B gezeigt ist, oder 3, wie
es in 27C gezeigt ist.
-
Die
m Latch-Schaltungen jeder Datenschaltung können das n-Wert-Datenelement halten, das von einer
externen Vorrichtung zugeführt
wird und das in die ausgewählte
Speicherzelle zu schreiben ist. Das von außen zugeführte Datenelement wird zu einer
Anzahl k von Latch-Schaltungen eingegeben, die in der Datenschaltung
vorgesehen sind. Das in diesen Latch-Schaltungen gehaltene Datenelement wird
in die Speicherzelle geschrieben, bevor dasselbe von außen zugeführte Datenelement
zu den übrigen
(m – k)
Latch-Schaltungen der Datenschaltung eingegeben wird.
-
In
diesem Fall kann die Anzahl k auch 2 sein, wie es in 27A gezeigt ist, 1, wie es in 27B gezeigt ist, oder 3, wie es in 27C gezeigt ist.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem fünften Ausführungsbeispiel der Erfindung
wird unter Bezugnahme auf die 28A bis 28C beschrieben werden.
-
Die 28A bis 28C stellen
die Verteilung von Schwellenspannungen dar, welche jede Speicherzelle,
die in dem EEPROM vorgesehen ist, zum Speichern eines Mehrfachwertdatenelements hat.
-
Dieser
Mehrfachwertdatenspeicher-EEPROM gemäß dem fünften Ausführungsbeispiel weist eine Speicherzellenanordnung
und eine Vielzahl von Datenschaltungen auf. Die Speicherzellenanordnung
hat Speicherzellen, die in Zeilen und Spalten angeordnet sind. Jede
Speicherzelle kann ein n-Wert-Datenelement
speichern, das elektrisch erneut geschrieben werden kann, wobei
n eine natürliche
Zahl ist, die gleich oder größer als
3 ist. Jede Datenschaltung weist m Latch-Schaltungen zum Halten des aus einer
ausgewählten
Speicherzelle gelesenen n-Wert-Datenelements auf.
-
Jede
Speicherzelle kann ein 2n-Wert-Datenelement speichern, das elektrisch
neu geschrieben werden kann, wobei n eine natürliche Zahl ist, die gleich
oder größer als
1 ist. Die Speicherzelle speichert "1",
wenn ihre Schwellenspannung im ersten Spannungsbereich ist; sie
speichert "2", wenn ihre Schwellenspannung
im zweiten Spannungsbereich ist; und so weiter. Somit speichert
die Zelle "2n", wenn ihre Schwellenspannung
im 2n-ten Spannungsbereich ist, oder höher als der (2n-1)-te Spannungsbereich.
-
Um
Daten aus der ausgewählten
Speicherzelle zu lesen, wird bestimmt, ob die Speicherzelle eine
Schwellenspannung hat, die gleich dem Wert oder kleiner als dieser
ist, der dem Datenwert "n" entspricht, oder
gleich dem Wert oder größer als
dieser ist, der dem Datendaten "n+1" entspricht. Das
in den k Latch-Schaltungen gehaltene Datenelement wird ausgegeben,
bevor dasselbe Datenelement zu den übrigen (n – k) Latch-Schaltungen der
Datenschaltung eingegeben wird.
-
Es
soll angenommen werden, dass die Speicherzellen dieses EEPROM Vierwertzellen
sind, wie es in 28A dargestellt ist. Dann genügt es, um das
Datenelement aus irgendeiner Speicherzelle zu lesen, eine Spannung
Vgl in der Mitte zwischen zwei Spannungen entsprechend Datenwerten "3" und "2" anzulegen,
die an die Wortleitung (das Steuergate) angelegt sind, mit welchem
die Speicherzelle verbunden ist. Es wird dadurch bestimmt, ob die
Speicherzelle "1" oder "2", oder "3" oder "4" speichert.
-
Die
Speicherzellen des EEPROM können Achtwertzellen
sein, wie es in 28B gezeigt ist. In diesem
Fall wird zum Lesen von Daten aus einer ausgewählten Speicherzelle eine Spannung
VG2 in der Mitte zwischen zwei Spannungen entsprechend Datenwerten "4" und "5" an
die Wortleitung (das Steuergate) angelegt, mit welcher die Speicherzelle
verbunden ist. Es wird dadurch bestimmt, ob die Speicherzelle einen
der Datenwerte "1" bis "4" oder einen der Datenwerte "5" bis "8" speichert.
-
Alternativ
dazu können
die Speicherzellen des EEPROM (2n+1)-Wertzellen sein. In diesem Fall wird,
wie es in 28C gezeigt ist, um Daten aus
einer Speicherzelle zum ersten Mal zu lesen, eine Spannung Vg3 oder
Vg4 an die Wortleitung (das Steuergate) angelegt, mit welcher die
Speicherzelle verbunden ist. Es wird dadurch bestimmt, ob die Speicherzelle
ein n-Wert-Datenelement
oder ein (m+1)-Wert-Datenelement speichert.
-
Beim
fünften
Ausführungsbeispiel
halten die m Latch-Schaltungen
jeder Datenschaltung ein aus der Speicherzelle gelesenes Datenelement,
bevor das Datenelement von dem Speicherchip ausgegeben wird, und
halten ein von einer externen Vorrichtung zugeführtes Datenelement, bevor das
Datenelement in die Speicherzelle geschrieben wird.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem sechsten Ausführungsbeispiel
dieser Erfindung wird unter Bezugnahme auf 29 beschrieben.
-
Der
EEPROM gemäß dem sechsten
Ausführungsbeispiel
weist eine Speicherzellenanordnung und eine Anzahl t von Datenschaltungen
auf. Die Speicherzellenanordnung hat Speicherzellen, die in Zeilen
und Spalten angeordnet sind. Jede Speicherzelle kann ein n-Wert-Datenelement
speichern, wobei n eine natürliche
Zahl ist, die größer als
3 ist. Jede der Datenschaltungen weist m Latch-Schaltungen auf,
wobei m eine natürliche
Zahl ist, die größer als
2 ist. Die Latch-Schaltungen
sind vorgesehen, um das aus einer ausgewählten Speicherzelle gelesene m-Wert-Datenelement
zu halten.
-
Die
ersten t Datenelemente bei der Startadresse werden jeweils in die
ersten Latch-Schaltungen der Datenschaltungen geladen; die nächsten t
Datenelemente bei der nächsten
Adresse werden jeweils in die zweiten Latch-Schaltungen der Datenschaltungen
geladen; und so weiter. Schließlich
werden die t Datenelemente bei der (1xt+1)-ten Adresse jeweils in
die (i+1)-ten Latch-Schaltungen der Datenschaltungen geladen. Hier
gilt 1 ≤ i ≤ m – 1 und
ist i eine natürliche
Zahl.
-
In
jeder Datenschaltung halten die m Latch-Schaltungen die von einer
externen Vorrichtung zugeführten
Daten, bevor die Daten in die Speicherzelle geschrieben werden,
und halten auch die aus der Speicherzelle gelesenen Daten, bevor
die Daten von dem Speicherchip ausgegeben werden. Das sechste Ausführungsbeispiel
kann mit dem vierten Ausführungsbeispiel
kombiniert werden.
-
Das
bedeutet, dass zum Schreiben von Daten in die Speicherzellen die
ersten t Datenelemente bei der Startadresse in die ersten Latch-Schaltungen der
Datenschaltungen geladen werden, die nächsten t Datenelemente bei
der nächsten
Adresse in die zweiten Latch-Schaltungen der Datenschaltungen geladen
werden, und so weiter. Schließlich
werden die t Datenelemente bei der (iXt+1)-ten Adresse in die (i+1)-ten
Latch-Schaltungen der Datenschaltungen geladen. Um Daten aus dem
EEPROM zu lesen, wird bei jeder Datenschaltung das aus der Speicherzelle
gelesene Datenelement zu der Anzahl k von Latch-Schaltungen eingegeben,
wie es in den 27A bis 27C dargestellt
ist. Das in diesen Latch-Schaltungen gehaltene Datenelement wird
von dem Speicherchip ausgegeben, bevor dasselbe Datenelement, das
von der Speicherzelle gelesen ist, in den übrigen (m – k) Latch-Schaltungen gehalten
wird.
-
Die
Daten können
aus dem EEPROM auf andere Weise gelesen werden.
-
Bei
jeder Datenschaltung wird nämlich
das Datenelement, das aus der Speicherzelle gelesen ist und in der
Anzahl k von Latch-Schaltungen gehalten ist, von dem Speicherchip
ausgegeben, bevor dasselbe Datenelement zu den übrigen m – k Latch-Schaltungen eingegeben
wird, und das Datenelement, das in den d Latch-Schaltungen unter
den (m – k)
Latch-Schaltungen
gehalten ist, wird dann von dem Speicherchip ausgegeben, bevor dasselbe Datenelement
zu den noch übrigen
(m-k-d) Latch-Schaltungen eingegeben wird.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem siebten Ausführungsbeispiel
dieser Erfindung wird unter Bezugnahme auf 30 beschrieben
werden. Der EEPROM gemäß dem siebten
Ausführungsbeispiel
ist bezüglich
der Struktur identisch zu dem sechsten Ausführungsbeispiel.
-
Wie
es aus 30 zu ersehen ist, werden zum
Schreiben von Daten in die Speicherzellen die ersten t Datenelemente
bei der Startadresse jeweils in die ersten Latch-Schaltungen der
Datenschaltungen geladen; die nächsten
t Datenelemente bei der nächsten
Adresse werden jeweils in die zweiten Latch-Schaltungen der Datenschaltungen geladen; und
so weiter. Schließlich
werden die t Datenelemente bei der (iXt+1)-ten Adresse jeweils in
die (i+1)-ten Latch-Schaltungen der Datenschaltungen geladen. Hier
gilt 1 ≤ i ≤ m-1 und ist
i eine natürliche
Zahl.
-
Daten
werden aus dem EEPROM auf die folgende Weise gelesen. In jeder Datenschaltung
wird das in der ersten Latch-Schaltung
gehaltene Datenelement von dem Speicherchip ausgegeben, bevor dasselbe
Datenelement in den anderen m-1 Latch-Schaltungen gehalten wird.
Dann wird das in der zweiten Latch-Schaltung gehaltene Datenelement
von dem Speicherchip ausgegeben, bevor dasselbe Datenelement in
den übrigen
m-2 Latch-Schaltungen gehalten wird. Weiterhin wird das in der j-ten Latch-Schaltung
(1 ≤ j ≤ m, wobei
j eine natürliche Zahl
ist) gehaltene Datenelement von dem Speicherchip ausgegeben, bevor
dasselbe Datenelement in den übrigen
m-j Latch-Schaltungen
gehalten wird.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem achten Ausführungsbeispiel
der Erfindung wird unter Bezugnahme auf 31 beschrieben
werden. Der EEPROM gemäß dem achten
Ausführungsbeispiel
ist bezüglich
der Struktur identisch zu dem sechsten Ausführungsbeispiel.
-
Wie
es aus 31 zu ersehen ist, werden zum
Schreiben von Daten in die Speicherzellen die ersten t Datenelemente
bei der Startadresse jeweils in die ersten Latch-Schaltungen der
Datenschaltungen geladen; werden die nächsten t Datenelemente bei
der nächsten
Adresse jeweils in die zweiten Latch-Schaltungen der Datenschaltungen geladen; und
so weiter. Schließlich
werden die t-Datenelemente bei der (iXt+1)-ten Adresse jeweils in
die (i+1)-ten Latch-Schaltungen der Datenschaltungen geladen. Hier
gilt 1 ≤ i ≤ m-1 und ist
i eine natürliche
Zahl.
-
Daten
werden aus dem EEPROM gemäß dem achten
Ausführungsbeispiel
auf die folgende Weise gelesen. Bei jeder Datenschaltung wird das
in der m-ten (letzten) Latch-Schaltung
gehaltene Datenelement von dem Speicherchip ausgegeben, bevor dasselbe
Datenelement in den übrigen
m-1 Latch-Schaltungen gehalten wird. Dann wird das in der (m-1)-ten Latch-Schaltung
gehaltene Datenelement von dem Speicherchip ausgegeben, bevor dasselbe
Datenelement in den übrigen
(m-2) Latch-Schaltungen gehalten wird. Weiterhin wird das in der
p-ten Latch-Schaltung (1 ≤ p ≤ m, wobei
p eine natürliche
Zahl ist) gehaltene Datenelement von dem Speicherchip ausgegeben,
bevor dasselbe Datenelement in den übrigen (m-p) Latch-Schaltungen
gehalten wird.
-
Ein
Mehrfachwertdatenspeicher-EEPROM gemäß dem neunten Ausführungsbeispiel
der Erfindung wird unter Bezugnahme auf 32 beschrieben
werden. Der EEPROM gemäß dem achten
Ausführungsbeispiel
ist bezüglich
der Struktur identisch zum sechsten Ausführungsbeispiel.
-
Wie
es in 32 dargestellt ist, werden
zum Schreiben von Daten in die Speicherzellen die ersten t Datenelemente
bei der Startadresse jeweils in die ersten Latch-Schaltungen der
Datenschaltungen geladen; werden die nächsten t Datenelemente bei
der nächsten
Adresse jeweils in die zweiten Latch-Schaltungen der Datenschaltungen geladen;
und so weiter. Schließlich
werden die t Datenelemente bei der (iXt+1)-ten Adresse jeweils in
die (i+1)-ten Latch-Schaltungen der Datenschaltungen geladen. Hier
gilt 1 ≤ i ≤ m-1 und ist
i eine natürliche
Zahl.
-
Die
in den EEPROM zu schreibenden Daten können weniger Bits als die Anzahl
von allen Latch-Schaltungen enthalten, die im EEPROM vorgesehen
sind. Wenn dies der Fall ist, halten von den Latch-Schaltungen jeder
Datenschaltung f Latch- Schaltungen
keine Datenelemente, wie es in 32 gezeigt
ist. Die f Latch-Schaltungen bilden einen Abschnitt ohne Zwischenspeicherung.
Die zu dem EEPROM von einer externen Vorrichtung eingegebenen Daten
können
aus weniger Bits als die Anzahl von allen Latch-Schaltungen bestehen,
die in dem EEPROM vorgesehen sind. Wenn dies der Fall ist, halten
f Latch-Schaltungen unter demjenigen, die in jeder Datenschaltung
vorgesehen sind, keine von der externen Vorrichtung zugeführten Datenelemente.
Die f Latch-Schaltungen
bilden einen Abschnitt ohne Zwischenspeicherung, wie es in 32 gezeigt ist. Da der Abschnitt ohne Zwischenspeicherung
vorgesehen ist, können
Daten in dem EEPROM innerhalb einer kürzeren Zeit als sonst programmiert
werden. Um genauer zu sein, halten einige der Latch-Schaltungen, die
in den Datenschaltungen verwendet werden, keine Datenelemente, wenn
die zu dem EEPROM eingegebenen Daten weniger sind, als in den Datenschaltungen
gehalten werden können,
und wenn die Speicherzellen jeweils "0", "1", "3" und "4" speichern können. Somit können die
anderen Latch-Schaltungen
entweder "0" oder "1" zwischenspeichern oder können "0", "1" oder "2" zwischenspeichern.
-
Die
EEPROMs gemäß den vierten
bis neunten Ausführungsbeispielen
können
eine hohe Lesegeschwindigkeit haben, und zwar aus demselben Grund,
der in Zusammenhang mit den ersten bis dritten Ausführungsbeispielen
beschrieben ist.
-
Die
oben beschriebenen ersten bis neunten Ausführungsbeispiele können in
verschiedenen Kombinationen verwendet werden.
-
Die
ersten bis neunten Ausführungsbeispiele können auf
verschiedene Arten modifiziert werden, wie es nachfolgend erklärt werden
wird.
-
33 stellt einen EEPROM dar, der eine modifizierte
Spaltenanordnung hat. Dieser EEPROM ist dadurch charakterisiert,
dass jede Datenschaltung für
zwei Bitleitungsgruppen vorgesehen ist, die jeweils eine Vielzahl
von Bitleitungen enthalten, wohingegen jede Datenschaltung für zwei Bitleitungen
bei den ersten bis vierten Ausführungsbeispielen
vorgesehen ist.
-
Genauer
gesagt ist, wie es in 33 gezeigt ist, jede der Datenschaltungen 6**-0 bis 6**-m für vier Bitleitungen
BLai-1 bis BLai-4 und vier weitere Bitleitungen BLbi-1 bis BLbi-4
vorgesehen.
-
Von
den zwei Speicherzellenanordnungen 1A und 1B,
die der EEPROM hat, wird die erste Speicherzellenanordnung 1A beschrieben
werden.
-
Wie
es in 33 gezeigt ist, ist eine Transfer-
bzw. Übertragungsgatterschaltung 7*A nahe
den Datenschaltungen 6**-0 bis 6**-m vorgesehen
und ist eine Übertragungsgatterschaltung 7**A nahe
nicht ausgewählter
Bitleitungs-Steuerschaltungen 20-0A bis 20-mA angeordnet.
-
Um
eine der vier Bitleitungen BLai-1 bis BLai-4 auszuwählen, wie
beispielsweise die Bitleitung BLai-1, wird ein Signal BLC1, welches
eines der Signale BLC1 bis BLC4 zum Antreiben der Übertragungsgatterschaltung 7*A ist,
auf einen "H"-Pegel programmiert,
während
die Signale BLC2 bis BLC4 auf einen "L"-Pegel
eingestellt sind.
-
Gleichzeitig
wird zum Auswählen
der Bitleitung BLai-1 ein Signal BLC1D, welches eine der Signale
BLC1D bis BLC4D zum Antreiben der Übertragungsgatterschaltung 7*B ist,
auf einen "H"-Pegel programmiert,
während
die Signale BLC2D bis BLC4D auf einen "L"-Pegel
eingestellt sind. Die Bitleitung BLai-1 wird dadurch ausgewählt und
mit den Datenschaltungen 6**-0 bis 6**-m verbunden.
-
Die
nicht ausgewählten
Bitleitungen BLai-2 bis BLai-4 werden mit den nicht ausgewählten Bitleitungs-Steuerschaltungen 20-0A bis 20-mA verbunden.
Die Schaltung 20-0A ist entwickelt, um die Potentiale der
Bitleitungen BLai-2 bis BLai-4 zu steuern.
-
Die
Speicherzellen der Speicherzellenanordnungen 1A und 1B sind
nicht auf NAND-Zellen beschränkt.
Vielmehr können
sie NOR-Zellen, Erdungsanordnungszellen, andere Erdungsanordnungszellen,
DINOR-Zellen oder UND-Zellen sein, was nachfolgend beschrieben werden
wird.
-
34 zeigt eine Speicherzellenanordnung 1 mit
NOR-Zellen MC. Jede NOR-Zelle MC ist durch ein Auswahlgatter mit
einer Bitleitung BL verbunden.
-
35 stellt eine Speicherzellenanordnung 1 mit
NOR-Zellen MC von einem anderen Typ dar. Jede NOR-Zelle MC ist direkt
mit einer Bitleitung BL verbunden.
-
36 zeigt eine Speicherzellenanordnung 1 mit
Erdungsanordnungszellen MC. Jede Erdungsanordnungszelle MC ist zwischen
einer Bitleitung BL und einer Sourceleitung VS angeordnet, die sich
parallel zueinander erstrecken.
-
37 zeigt eine Speicherzellenanordnung 1 mit
Erdungsanordnungszellen MC von einem anderen Typ. Jede Erdungsanordnungszelle
MC hat ein Löschgatter
EG, das zum Löschen
von Daten in der Erdungsanordnungszelle MC verwendet wird. Die Zelle
MC ist von einem sogenannten "geteilten
Kanaltyp", wobei
ein Teil des Steuergates SG den Kanal des Speicherzellen-Transistors überlagert.
-
38 zeigt eine Speicherzellenanordnung 1 mit
anderen Erdungsanordnungszellen MC. Jede Zelle MC ist zwischen einer
Bitleitung BL und einer Sourceleitung VS angeordnet, die sich parallel
zueinander erstrecken, wie die in 36 gezeigte
Erdungsanordnungszelle. Sie ist diesbezüglich unterschiedlich, dass
sie abwechselnd mit der Bitleitung und der Sourceleitung VS verbunden
werden kann.
-
39 zeigt eine Speicherzellenanordnung 1 mit
abwechselnden Erdungsanordnungszellen MC von einem anderen Typ.
Jede Zelle MC ist bezüglich der
Struktur gleich den in 37 gezeigten
Erdungsanordnungszellen.
-
40 zeigt eine Speicherzellenanordnung 1 mit
DINOR-(DIvider NOR)-Zellen.
Jede DINOR-Zelle MC enthält
beispielsweise vier Speicherzellen-Transistoren, die parallel geschaltet
sind. Die Zelle MC ist mit einer Bitleitung BL durch einen Auswahltransistor
verbunden. Von den vier Speicherzellen-Transistoren sind zwei mit
einer Sourceleitung VS verbunden und sind die übrigen zwei mit einer anderen
Sourceleitung VS verbunden.
-
41 zeigt eine Speicherzellenanordnung 1 mit
UND-Zellen. Jede UND-Zelle enthält
beispielsweise vier Speicherzellen-Transistoren, die parallel geschaltet
sind. Die UND-Zelle ist mit einer Bitleitung durch einen Auswahltransistor
verbunden und mit einer Sourceleitung VS durch einen anderen Auswahltransistor.
-
Bei
den ersten bis neunten Ausführungsbeispielen
kann das aus einer Speicherzelle gelesene und in irgendeiner Latch-Schaltung einer jeweiligen Datenschaltung
gehaltene Datenelement von dem Speicherchip ausgegeben werden, wenn
sein Wert einmal bestimmt ist, selbst wenn die aus der Speicherzelle
gelesenen und in den anderen Latch-Schaltungen gehaltenen Datenelemente
noch zu bestimmen sind. Zusätzlich können, während das Datenelement
von dem Speicherchip ausgegeben wird, die in den anderen Latch-Schaltungen
gehaltene Datenelemente auf ihre jeweiligen Werte geprüft werden.
Sobald der Wert von einem dieser Datenelemente bestimmt ist, wird
das Datenelement von dem Speicherchip ausgegeben. Es muss nicht
gesagt werden, dass, während
dieses Datenelement ausgegeben wird, die noch in den anderen Latch-Schaltungen gehaltenen
Datenelemente auf ihre Werte geprüft werden können.
-
Somit
kann das in irgendeiner Latch-Schaltung gehaltene Datenelement von
dem Speicherchip ausgegeben werden, selbst wenn die Werte der in den
anderen Latch-Schaltungen gehaltenen Datenelemente noch nicht bestimmt
worden sind. Die ersten bis neunten Ausführungsbeispiele können daher nichtflüchtige Halbleiterspeicher
sein, die eine hohe Lesegeschwindigkeit haben, selbst wenn sie Mehrfachwertdaten
speichern.
-
Ein
EEPROM gemäß dem zehnten
Ausführungsbeispiel
der Erfindung wird unter Bezugnahme auf 42 beschrieben
werden. 42 zeigt die Speicherzellen,
die mit einer Wortleitung verbunden sind. Von den Daten, die von
außen
zum EEPROM eingegeben sind, wird das Datenelement bei der Startadresse
A0 in die Speicherzelle MC1 geschrieben, wird das Datenelement bei
der zweiten Adresse A1 in die Speicherzelle MC2 geschrieben, das
Datenelement bei der dritten Adresse A2 in die Speicherzelle MC3,
und so weiter. Somit wird das Datenelement bei der Adresse A127
in die Speicherzelle MC128 geschrieben.
-
<Programmieren einer oberen Seite>
-
Die
Adressen A0 bis A127 bilden eine erste Seite (obere Seite). Wie
die obere Seite programmiert wird, wird unter Bezugnahme auf die 43A und 43B und
die 44A bis 44C erklärt werden.
Solange die Adresse A0 auf einem niedrigen Pegel ist, bleibt die
Speicherzelle MC1 (42) in einem gelöschten Zustand,
während
sie "1" speichert. Wenn
die Adresse A0 auf einen hohen Pegel ansteigt, speichert die Speicherzelle
MC1 "2", wie es in 44B gezeigt ist. Datenelemente werden in die anderen
Speicherzellen der oberen Seite (Adresse A0 bis A127) so schnell
wie in binäre
Speicherzellen geschrieben.
-
<Programmieren einer unteren Seite>
-
Die
Adressen A128 bis A255 bilden eine zweite Seite (untere Seite).
Wie die obere Seite programmiert wird, wird unter Bezugnahme auf
die 44B und die 45A und 45B erklärt werden.
Das Datenelement bei der Adresse A128 wird in die Speicherzelle
MC1 geschrieben, das Datenelement bei der Adresse A129 in die Speicherzelle
MC2, das Datenelement bei der Adresse A130 in die Speicherzelle
MC3, und so weiter. Somit wird das Datenelement bei der letzten
Adresse 255 in die letzte Speicherzelle MC128 geschrieben. Bevor
die untere Seite in den Speicherzellen MC1 bis MC128 programmiert
wird, bleibt die obere Seite in den Speicherzellen MC1 bis MC128
programmiert, und jede Speicherzelle speichert entweder "1" oder "2",
wie es in 44B dargestellt ist. Solange
die Adresse A128 auf einem niedrigen Pegel bleibt, kann die untere
Seite nicht in die Speicherzellen MC1 bis MC128 geschrieben werden,
und jede Speicherzelle hält
ein Speichern von entweder "1" oder "2" bei.
-
Wenn
die Adresse A128 auf einen hohen Pegel ansteigt, wird die untere
Seite programmiert, wie es in 44C und
in den 45A und 45B gezeigt
ist. Das bedeutet, dass "3" in irgendeine Speicherzelle
geschrieben wird, die zuvor "1" speicherte, und "4" in irgendeine Speicherzelle geschrieben
wird, die zuvor "2" speicherte. Daten
können
bei diesem Verfahren mit hoher Geschwindigkeit in die Speicherzellen geschrieben
werden, weil die Schwellenspannung jeder Speicherzelle sich geringer
als bei dem herkömmlichen
Verfahren ändert,
wie es aus den 45A und 45B gesehen
wird.
-
Wie
Seiten aus dem EEPROM gemäß dem zehnten
Ausführungsbeispiel
gelesen werden, wird unter Bezugnahme auf die 46A bis 46C erklärt werden.
-
<Lesen einer oberen Seite>
-
Um
die erste Seite (obere Seite) aus dem EEPROM zu lesen, wird eine
Spannung (V1, die in 46B gezeigt
ist) in der Mitte zwischen zwei Werten entsprechend "3" und "2" an
das Steuergate jeder Speicherzelle angelegt. Es wird dadurch bestimmt, ob
jede Speicherzelle "1" oder "3", oder "2" oder "4" speichert. Wenn der Speicherzellen-Transistor
eingeschaltet wird, wird erfasst, dass die Speicherzelle entweder "1" oder "3" speichert.
In diesem Fall wird ein Datenelement niedrigen Pegels zu einer externen Vorrichtung
ausgegeben. Andererseits wird, wenn der Speicherzellen-Transistor ausbleibt,
erfasst, dass die Speicherzelle entweder "2" oder "4" speichert. Als Ergebnis wird beispielsweise
ein Datenelement hohen Pegels zu der externen Vorrichtung ausgegeben.
-
<Lesen einer unteren Seite>
-
Um
die zweite Seite (untere Seite) aus dem EEPROM zu lesen, wird eine
Spannung (V1, die in 46B gezeigt
ist) in der Mitte zwischen zwei Werten entsprechend "3" und "2" an
das Steuergate jeder Speicherzelle angelegt. Es wird dadurch bestimmt, ob
jede Speicherzelle "1" oder "2", oder "3" oder "4" speichert. Wenn der Speicherzellen-Transistor
eingeschaltet wird, wird erfasst, dass die Speicherzelle entweder "1" oder "3" speichert.
Dann wird eine Spannung (V2, die in 46C gezeigt
ist) in der Mitte zwischen zwei Werten entsprechend "1" und "3" an das
Steuergate der Speicherzelle angelegt. Es wird dadurch bestimmt,
ob die Speicherzelle "1" speichert oder nicht.
-
Weiterhin
wird eine Spannung (V3, die in 46C gezeigt
ist) in der Mitte zwischen zwei Werten entsprechend "2" und "4" an
das Steuergate der Speicherzelle angelegt. Es wird dadurch bestimmt, ob
die Speicherzelle "4" speichert oder nicht.
Als Ergebnis ist es bekannt, dass die Speicherzelle entweder "1" oder "2",
oder entweder "3" oder "4" speichert. Wenn die Speicherzelle "1" oder "2" speichert,
wird beispielsweise ein Datenelement niedrigen Pegels zu der externen
Vorrichtung ausgegeben. Wenn die Speicherzelle "3" oder "4" speichert, wird beispielsweise ein
Datenelement hohen Pegels zu der externen Vorrichtung ausgegeben.
Beim zehnten Ausführungsbeispiel
ist die Schwellenspannung entsprechend Daten "3",
die bei der zweiten Programmieroperation geschrieben sind, niedriger
als die Schwellenspannung entsprechend Daten "2",
die bei der ersten Programmieroperation geschrieben sind. Dies dient
zum Erhöhen
der Programmiergeschwindigkeit, weil die zweite Programmieroperation
auf dieselbe Weise wie zum Schreiben von Daten in eine Dreiwertzelle
bewirkt wird, wohingegen die erste Programmieroperation auf dieselbe
Weise wie zum Schreiben von Daten in binäre Speicherzellen ausgeführt wird.
Die Schwellenspannungen entsprechen Datenelementen, die zu schreiben
sind, können
auf irgendeine andere Weise eingestellt werden. Beispielsweise können sie
eingestellt werden, wie es in den 27A bis 27C dargestellt ist.
-
In
dem in den 27A bis 27C gezeigten
Fall haben die Schwellenspannungen entsprechend "1", "2", "3" und "4" dieselbe Beziehung wie bei der herkömmlichen
NAND-Zelle, die in den 1A und 1B gezeigt
ist. Das bedeutet, dass die Schwellenspannung entsprechend Daten "3", die bei der zweiten Programmieroperation
zu schreiben sind, höher
als die Schwellenspannung entsprechend Daten "2" ist,
die bei der ersten Programmieroperation zu schreiben sind. In diesem
Fall gehört
jedoch die obere Seite zu Datenelementen "1" und "2" wie in dem Fall, der in den 44A bis 44C gezeigt
ist. Somit wird das von der externen Vorrichtung eingegebene Datenelement
in die Speicherzelle auf dieselbe Weise geschrieben, wie es in den 44A bis 44C gezeigt
ist. Genauer gesagt speichert die Speicherzelle MC1 "1", wenn die Adresse A0 auf einem niedrigen
Pegel ist, und speichert "2", wenn die Adresse
A0 auf einem hohen Pegel ist. Bevor die untere Seite programmiert
wird, speichert die Speicherzelle MC1 "1" oder "2", wenn die Adresse A128 auf einem niedrigen
Pegel ist, und speichert "3" oder "4", wenn die Adresse A128 auf einem hohen
Pegel ist.
-
Wie
es oben angezeigt ist, werden die in eine Speicherzelle zu schreibenden
Mehrfachwertdaten in zwei oder mehrere Seiten aufgeteilt. Genauer
gesagt werden Vierwertdaten zum Speichern in die Zelle in zwei Seiten
aufgeteilt, wobei jede ein Binärdatenelement
ist; Achtwertdaten zum Speichern in die Zelle werden in drei Seiten
aufgeteilt, wobei jede ein Binärdatenelement
ist; und 16-Wertdaten zum Speichern in die Zelle werden in vier
Seiten aufgeteilt, wobei jede ein Binärdatenelement ist. Um es allgemein
anzugeben, werden 2n-Wertdaten
(wobei n eine natürliche
Zahl ist), um in eine Speicherzelle geschrieben zu werden, in die
erste Seite, die zweite Seite, ..., die n-te Seite aufgeteilt.
-
Der
Halbleiterspeicher gemäß dem zehnten Ausführungsbeispiel
ist entworfen, um Datenelemente, die drei oder mehrere unterschiedliche
Werte haben können,
zu speichern. Um jede Speicherzelle zu programmieren, erfolgt eine
Aufteilung eines Mehrfachwertdatenelements in eine Vielzahl von
Seiten, und diese Seiten werden sequentiell in die Speicherzelle geschrieben.
Somit werden die Speicherzellen mit hoher Geschwindigkeit programmiert.
-
Das
oben beschriebene zehnte Ausführungsbeispiel
ist ein EEPROM. Nichts desto weniger ist die vorliegende Erfindung
auch vorteilhaft, wenn sie auf einen SRAM, einen DRAM, einen Masken-ROM
und ähnliches
angewendet wird.
-
Das
zehnte Ausführungsbeispiel
wird detaillierter beschrieben werden.
-
48 ist ein Blockdiagramm des Mehrfachwertdatenspeicher-EEPROM gemäß dem zehnten Ausführungsbeispiel.
Wie es in 48 gezeigt ist, weist der EEPROM
eine Speicherzellenanordnung 1, einen Adressenpuffer 4,
einen Daten-Eingabe/Ausgabe-Puffer 5, Datenschaltungen 6 und
eine Steuergate/Auswahlgate-Treiberschaltung 21 auf.
Die Schaltung 21 ist entwickelt, um irgendeine Speicherzelle
der Anordnung 1 auszuwählen
und um eine Schreibspannung oder eine Lesespannung an das Steuergate
von irgendeiner ausgewählten
Speicherzelle anzulegen. Die Schaltung 21 ist mit dem Adressenpuffer 4 verbunden
und empfängt
Adressensignale von dem Adressenpuffer 4. Die Datenschaltungen 6 sind
zum Halten von in ausgewählte
Speicherzellen zu schreibenden Datenelementen und von daraus ausgelesenen
Datenelementen vorgesehen. Die Datenschaltungen 6 sind
mit dem Eingabe/Ausgabe-Puffer 5 verbunden und empfangen
Adressensignale vom Adressenpuffer 4. Der Daten-Eingabe/Ausgabe-Puffer 5 hält Daten,
die in die Speicherzellenanordnung 1 zu schreiben sind,
und Daten, die von dem Speicherchip zu einer externen Vorrichtung auszugeben
sind.
-
Wie
Daten in die Speicherzelle geschrieben und daraus gelesen werden,
wird unter Bezugnahme auf die 49 und 50 erklärt werden.
-
Wie
es in den 49 und 50 gezeigt
ist, weist die Speicherzellenanordnung 1 Speicherzelleneinheiten
auf, die jeweils wenigstens eine Speicherzelle haben. Die Speicherzelleneinheiten
sind mit den Datenschaltungen 6 jeweils durch Bitleitungen verbunden.
Die Speicherzellen MC1, MC2, MC3, ..., MC127 und MC128, die in den 49 und 50 gezeigt
sind, sind diejenigen, deren Gate-Elektroden mit derselben Wortleitung
WL1 verbunden sind.
-
<Programmierung>
-
Wie
Daten in die Speicherzellen geschrieben werden, wird unter Bezugnahme
auf die 49 erklärt werden.
-
Zuerst
wird die erste Seite (obere Seite) entsprechend den Adressen A0 bis A127 programmiert. Genauer
gesagt speichert die erste Datenschaltung das Datenelement bei der
Adresse A0 zwischen, speichert die zweite
Datenschaltung das Datenelement bei der Adresse A1 zwischen,
speichert die dritte Datenschaltung das Datenelement bei der Adresse
A2 zwischen, und so weiter. Somit speichert
die 128-te Datenschaltung das Datenelement bei der Adresse A127 zwischen. Die obere Seite wird dann in den
Speicherzellen MC1 bis MC128, die mit der Wortleitung WL1 verbunden
sind, gemäß den in
den Datenschaltungen 6 zwischengespeicherten Datenelementen
programmiert.
-
Als
nächstes
wird die zweite Seite (untere Seite) entsprechend den Adressen B0 bis B127 programmiert.
Das heißt,
dass die erste Datenschaltung das Datenelement bei der Adresse B0 zwischenspeichert, die zweite Datenschaltung
das Datenelement bei der Adresse B1 zwischenspeichert,
die dritte Datenschaltung das Datenelement bei der Adresse B2 zwischenspeichert, und so weiter. Somit
speichert die 128-te Datenschaltung das Datenelement bei der Adresse
B127 zwischen. Während die Datenelemente bei
den Adressen B0 bis B127 jeweils in
die erste bis 127-te Datenschaltung 6 zwischengespeichert
werden, werden die Datenelemente aus den Speicherzellen MC1 bis
MC128 gelesen und in den ersten bis 127-ten Datenschaltungen 6 gehalten.
Dann wird die untere Seite in den Speicherzellen MC1 bis MC128, die
mit der Wortleitung WL1 verbunden sind, gemäß den Datenelementen programmiert,
die die obere Seite definieren und die in den Datenschaltungen 6 zwischengespeichert
sind, und den Datenelementen, die die untere Seite definieren.
-
<Lesen von Daten>
-
Wie
Daten aus den Speicherzellen gelesen werden, wird unter Bezugnahme
auf 50 erklärt werden.
-
Zuerst
wird die erste Seite (obere Seite) entsprechend den Adressen A0 bis A127 aus den
Speicherzellen gelesen. Genauer gesagt wird das Datenelement bei
der Adresse A0 aus der Speicherzelle MC1
gelesen und in der ersten Datenschaltung zwischengespeichert, wird
das Datenelement bei der Adresse A1 aus
der Speicherzelle MC2 gelesen und in der zweiten Datenschaltung
zwischengespeichert und wird das Datenelement bei der Adresse A2 aus der Speicherzelle MC3 gelesen und in
der dritten Datenschaltung zwischengespeichert, und so weiter. Das
Datenelement bei der Adresse A127 wird aus
der Speicherzelle MC128 gelesen und in der 128-ten Datenschaltung
zwischengespeichert. Somit wird die obere Seite aus den Speicherzellen
MC1 bis MC128, die mit derselben Wortleitung WL1 verbunden sind,
in die ersten bis 128-ten Datenschaltungen 6 gelesen.
-
Als
nächstes
wird die zweite Seite (untere Seite) entsprechend den Adressen B0 bis B127 aus den
Speicherzellen gelesen. Genauer gesagt wird das Datenelement bei
der Adresse B0 aus der Speicherzelle MC1
gelesen und in der ersten Datenschaltung zwischengespeichert, wird
das Datenelement bei der Adresse B1 aus
der Speicherzelle MC2 gelesen und in der zweiten Datenschaltung
zwischengespeichert und wird das Datenelement bei der Adresse B2 aus der Speicherzelle MC3 gelesen und in
der dritten Datenschaltung zwischengespeichert, und so weiter. Das
Datenelement bei der Adresse B127 wird aus
der Speicherzelle MC128 gelesen und in der 128-ten Datenschaltung
zwischengespeichert. Somit wird die untere Seite aus den Speicherzellen
MC1 bis MC128, die mit derselben Wortleitung WL1 verbunden sind,
in die ersten bis 128-ten Datenschaltungen 6 gelesen.
-
Wie
es oben beschrieben ist, hat jede Speicherzelleneinheit wenigstens
eine Speicherzelle. Sie weist weiterhin keinen Auswahl-MOS-Transistor
oder wenigstens einen Auswahl-MOS-Transistor auf. Verschiedene Typen von
Speicherzelleneinheiten werden unter Bezugnahme auf die 51A bis 51D beschrieben
werden.
-
51A zeigt eine Speicherzelleneinheit zur Verwendung
bei einem EEPROM vom NAND-Typ oder einem Masken-ROM vom NAND-Typ. 51B stellt eine Speicherzelleneinheit dar, die
sich von der Speicherzelleneinheit der 51A in
Bezug auf die Schwellenspannungen der Auswahl-MOS-Transistoren unterscheidet
(d.h. E-Typ- und I-Typ-Transistoren). 51C zeigt
eine Speicherzelleneinheit zur Verwendung bei einem nichtflüchtigen
Speicher vom NAND-Typ, der drei Auswahl-MOS-Transistoren hat. 51D zeigt eine Speicherzelleneinheit zur Verwendung
bei einem nichtflüchtigen
Speicher vom NAND-Typ,
der vier Auswahl-MOS-Transistoren hat. (Bei der Speicherzelleneinheit
der 51D haben die E-Typ-Auswahl-MOS-Transistoren
eine positive Schwellenspannung und haben die D-Typ-Auswahl-MOS-Transistoren
eine negative Schwellenspannung.) Die in den 51A bis 51D gezeigten NAND-Zellen sind bezüglich der
Struktur identisch zu der in den 1A, 1B und 2 dargestellten NAND-Zelle. Speicherzelleneinheiten
sind auf dieselbe Weise angeordnet, wie es in 3 gezeigt ist,
gleichgültig,
welcher Typ sie auch immer sind.
-
Die 52A bis 52G zeigen
andere verschiedene Typen von Speicherzelleneinheiten. Die Speicherzelleneinheit
der 52A dient zur Verwendung bei
einem EEPROM vom NOR-Typ oder einem Masken-ROM vom NOR-Typ. Die
in 52B gezeigte Speicherzelleneinheit
ist identisch zu der in 52A gezeigten
Einheit, außer
dass sie zwei Auswahl-MOS-Transistoren
hat. Die in 52C gezeigte Speicherzelleneinheit
ist identisch zu der in 52A gezeigten
Einheit, außer
dass sie einen Auswahl-MOS-Transistor
hat. Die Speicherzelleneinheit der 52D weist
mehrere Speicherzellen auf, die parallel geschaltet sind und die
einen gemeinsamen Source und einen gemeinsamen Drain haben. Die Speicherzelleneinheit
der 52E ist identisch zu der Einheit
der 52D, außer dass sie einen Auswahl-MOS-Transistor hat.
Die Speicherzelleneinheit der 52F ist
identisch zu der Einheit der 52D, außer dass
sie zwei Auswahl-MOS-Transistoren hat. Die in 52G gezeigte Speicherzelleneinheit weist viele
Speicherzellen auf, die parallel geschaltet sind und die in zwei
Spalten angeordnet sind.
-
Ein
Vierwertdatenspeicherungs-Flash-Speicher vom NAND-Typ, der das elfte
Ausführungsbeispiel
der Erfindung ist, wird unter Bezugnahme auf die 53 bis 72 beschrieben
werden. Der Flash-Speicher, der ein Mehrfachwertdatenspeicher-EEPROM
ist, hat dieselbe Struktur wie das in 48 gezeigte
zehnte Ausführungsbeispiel.
-
53 zeigt die Speicherzellenanordnung 1 und
die Datenschaltungen 6-0 bis 6-m des elften Ausführungsbeispiels.
Die Anordnung 1 hat NAND-Zellen. Jede NAND-Zelle weist
vier Speicherzellen M1 bis M4 auf, die in Reihe geschaltet sind. Jede
NAND-Zelle hat ein Ende an eine Bitleitung BL durch einen Auswahltransistor
S1 angeschlossen und das andere Ende an eine Sourceleitung Vs durch einen
Auswahltransistor S2 angeschlossen. Die Speicherzellen, die mit
vier Steuergates CG1 bis CG4 verbunden sind, bilden einen Block
oder eine Seite. Der Block wird durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählt. Die
Datenschaltungen 6-0 bis 6-m sind jeweils mit
Bitleitungen BL0A bis BLmA verbunden, um Datenelemente temporär zu speichern,
die in die Speicherzellen zu schreiben sind. Die Struktur der 53 ist eine Anordnung mit offenem Bit, wobei Bitleitungen
BL0B bis BLmB auch mit den Datenschaltungen 6-0 bis 6-m verbunden
sind.
-
Die
Speicherzellen M1 bis M4 können
Vierwertzellen sein. Wenn es so ist, kann jede Speicherzelle M vier
Schwellenspannungen haben, die in 54 gezeigt
sind. Die vier Schwellenspannungen entsprechen jeweils vier Datenelementen "1", "2", "3" und "4".
Jede Speicherzelle speichert ein Datenelement "1" oder
nimmt einen gelöschten
Zustand an, wenn sie eine negative Schwellenspannung hat. Sie speichert
ein Datenelement "2", wenn sie eine Schwellenspannung
von beispielsweise 0,5 V bis 0,8 V hat, speichert ein Datenelement "3", wenn sie eine Schwellenspannung von
beispielsweise 1,5 V bis 1,8 V hat, und ein Datenelement "4", wenn sie eine Schwellenspannung von
beispielsweise 2,5 V bis 2,8 V hat.
-
Eine
Lesespannung VCG3R von 1 V wird an das Steuergate CG der Speicherzelle
M angelegt. Wenn die Zelle M eingeschaltet wird, wird erfasst, dass
die Speicherzelle M entweder "1" oder "2" speichert. Wenn die Zelle M ausgeschaltet
wird, wird erfasst, dass die Zelle M entweder "3" oder "4" speichert. Dann werden die anderen
Lesespannungen VCG2R und VCG4R, die 0 V und 2 V sind, sequentiell
an das Steuergate SG angelegt. Es wird dadurch bestimmt, welches
Datenelement die Zelle M speichert, nämlich "1", "2", "3" oder "4". Die Spannungen VCG2V, VCG3V und VCG4V
werden sequentiell an das Steuergate CG angelegt, um zu bestimmen,
ob die Speicherzelle M ausreichend programmiert worden ist oder
nicht. Diese Spannungen VCG2V, VCG3V und VCG4V sind allgemein als "Verifizierungsspannungen" bekannt. Sie sind
beispielsweise jeweils 0,5 V, 1,5 V und 2,5 V.
-
Die
Datenschaltungen 6-0 bis 6-m sind bezüglich der
Struktur identisch. Wie es in 55 gezeigt
ist, weist jede Datenschaltung zwei Latch-Schaltungen auf. Ein 2-Bit-Schreibdatenelement
wird in den zwei Latch-Schaltungen gespeichert, bevor es in die
Speicherzelle geschrieben wird. Ebenso wird das aus der Speicherzelle
gelesene Vierwertdatenelement in den zwei Latch-Schaltungen gespeichert,
bevor es von dem Speicherchip über
eine Daten-Eingabe/Ausgabe-Leitung
IO1 ausgegeben wird.
-
Bei
dem elften Ausführungsbeispiel
ist eine Seite durch 256 Speicherzellen gebildet. Anders ausgedrückt werden
256 Speicherzellen durch Verwenden von einem Steuergate und einem
Auswahlgate gleichzeitig ausgewählt.
Wie zweiseitige Daten, d.h. 512 Bits, beim elften Ausführungsbeispiel
programmiert werden und wie sie daraus gelesen werden, wird erklärt werden.
Die 512-Bit-Daten enthalten eine obere Seite und eine untere Seite.
Die obere Seite entspricht einer Spaltenadresse A0,
A1, A2, ..., A254 und A255, wohingegen
die untere Seite einer Spaltenadresse B0,
B1, B2, ..., B254, B255 entspricht.
-
<Programmierung einer oberen Seite (A0–A255)>
-
Zuerst
wird das Schreibdatenelement bei der Startadresse A0 zu
der ersten Latch-Schaltung RT1-0 der Datenschaltung 6-0 eingegeben
und in der Schaltung RT1-0 gehalten. Dann werden die Schreibdatenelemente
bei den Adressen A1, A2,
..., A254 und A254 in
die ersten Schaltungen RT1-1, RT1-2, ..., RT1-254 bzw. RT1-255 eingegeben
und darin gehalten. Darauf folgend werden 256 Speicherzellen gemäß den 1-Bit-Datenelementen,
die in den ersten Latch-Schaltungen RT1-0 bis RT1-255 der Datenschaltungen 6-0 bis 6-255 gehalten
sind, programmiert. Somit speichert jede Speicherzelle entweder "1" oder "2",
wodurch die obere Seite programmiert wird. Die programmierte obere
Seite kann weniger als 256 Bits enthalten. Dies bedeutet, dass kein
Datenelement in wenigstens der ersten Latch-Schaltung von wenigstens
einer Datenschaltung gehalten worden ist. In diesem Fall genügt es, ein
Datenelement in der ersten Latch-Schaltung so einzustellen, dass die
entsprechende Speicherzelle eine niedrige Schwellenspannung haben
kann, die einem Datenelement "1" entspricht.
-
<Programmierung einer unteren Seite
(B0 – B255)>
-
Zuerst
wird das Schreibdatenelement bei der Startadresse B0 zu
der ersten Latch-Schaltung RT1-0 der Datenschaltung 6-0 eingegeben
und in der Schaltung RT1-0 gehalten. Dann werden die Schreibdatenelemente
bei den Adressen B1, B2,
..., B254 und B255 in
die ersten Schaltungen RT1-1, RT1-2, ..., RT1-254 bzw. RT1-255 eingegeben
und darin gehalten. Während
die von außen
eingegebenen Datenelemente in die ersten Latch-Schaltungen RT1-1 bis RT1-255 geladen
werden, werden die Datenelemente bei den Adressen A0 bis
A255 aus den 256 Speicherzellen gelesen
und jeweils zu den zweiten Latch-Schaltungen
RT2-0 bis RT2-255 eingegeben. Darauf folgend werden 256 Speicherzellen
gemäß den in
den Datenschaltungen 6-0 bis 6-255 gehaltenen
2-Bit-Datenelementen programmiert.
-
Das
bedeutet, dass entweder ein Datenelement oder ein Datenelement "2" in jeder Speicherzelle gehalten wird,
oder dass in jeder Speicherzelle gespeicherte Datenelement von "1" zu "3" oder von "2" zu "4" geändert wird.
Die programmierten Daten können
weniger als 512 Bits enthalten. Wenn es so ist, hält wenigstens
eine der Latch-Schaltungen der Datenschaltungen 6-0 bis 6-m kein
Datenelement. In diesem Fall genügt
es, ein Datenelement in dieser Latch-Schaltung so einzustellen,
dass die entsprechende Speicherzelle eine niedrige Schwellenspannung
haben kann, die einem Datenelement "1", "2" oder "3" entspricht.
-
<Lesen von Daten>
-
Wie
Daten aus dem elften Ausführungsbeispiel
gelesen werden, wird unter Bezugnahme auf die 56A und 56B erklärt werden.
Zuerst wird eine Spannung Vp1 in der Mitte zwischen zwei Werten
entsprechend "2" und "3" an eine ausgewählte Wortleitung angelegt.
Mit der Wortleitung sind Speicherzellen verbunden, aus welchen Daten
zu lesen sind. Wenn die Speicherzellen eingeschaltet werden, wird
erfasst, dass sie entweder "1" oder "2" speichern. Wenn die Speicherzellen
ausgeschaltet werden, wird erfasst, dass sie entweder "3" oder "4" speichern.
Somit wird die untere Seite entsprechend einer Spaltenadresse B0, B1, B2,
..., B254 und B255 aus den
Speicherzellen gelesen und in den zweiten Latch-Schaltungen der
Datenschaltungen gehalten. Die untere Seite wird dann von dem Speicherchip über die
Daten-Eingabe/Ausgabe-Leitung IO1 ausgegeben.
-
Um
die obere Seite zu lesen, wird eine Spannung Vp2 in der Mitte zwischen
zwei Werten entsprechend "3" und "4" an die ausgewählte Wortleitung angelegt.
Somit wird bestimmt, ob die mit der Wortleitung verbundenen Speicherzellen "4" oder irgendeines der anderen Datenelemente "1", "2" und "3" speichern. Die so gelesenen Daten werden
in den ersten Latch-Schaltungen
der Datenschaltungen gehalten. Schließlich wird eine Spannung Vp3
in der Mitte zwischen zwei Werten entsprechend "1" und "2" an die Wortleitung angelegt. Somit
wird erfasst, ob die Speicherzellen "1" oder
irgendwelche der anderen Werte "2", "3" und "4" speichern.
Die obere Seite entsprechend einer Spaltenadresse A0,
A1, A2, ..., A254 und A255 wird
gelesen und in den ersten Latch-Schaltungen der Datenschaltungen
gehalten.
-
Die
obere Seite wird dann vom Speicherchip ausgegeben.
-
Wie
es oben angegeben ist, hat das elfte Ausführungsbeispiel, das ein Mehrfachwertdatenspeicher-EEPROM
ist, dieselbe Struktur wie das in 48 gezeigte
zehnte Ausführungsbeispiel.
-
Die
im EEPROM vorgesehenen NAND-Zellen sind bezüglich der Struktur identisch
zu der in den 1A, 1B und 2 dargestellten NAND-Zelle. Speicherzelleneinheiten
sind auf dieselbe Weise angeordnet, wie es in 3 gezeigt
ist. Jede Speicherzelle kann vier Schwellenspannungen haben, die
in 54 gezeigt sind, welche jeweils vier Datenelementen "1", "2", "3" und "4" entsprechen.
Die Datenschaltungen 6, die beim elften Ausführungsbeispiel enthalten
sind, haben die in 57 dargestellte Struktur.
-
Jede
Datenschaltung 6 ist entwickelt, um Vierwertdaten zu halten.
Wie es in 57 gezeigt ist, weist die Datenschaltung 6 zwei
Flip-Flops FF1 und FF2 auf. Das Flip-Flop FF1 weist n-Kanal-MOS-Transistoren
Qn21, Qn22 und Qn23 und p-Kanal-MOS-Transistoren Qp9, Qp10 und Qp11
auf. Das Flip-Flop FF2 weist n-Kanal-MOS-Transistoren Qn29, Qn30
und Qn31 und p-Kanal-MOS-Transistoren Qp16, Qp17 und Qp18 auf. Die
Flip-Flops FF1 und FF2 kooperieren, um als Leseverstärker zu
arbeiten.
-
Die
Flip-Flops FF1 und FF2 speichern ein Datenelement "1", "2", "3" oder "4",
das in eine Speicherzelle zu schreiben ist, zwischen. Sie erfassen auch
ein Datenelement "1", "2", "3" oder "4", das aus einer Speicherzelle gelesen
worden ist, und speichern es zwischen.
-
Das
Flip-Flop FF1 ist mit einer Daten-Eingabe/Ausgabe-Leitung IOA durch
einen n-Kanal-MOS-Transistor Qn28 und mit einer Daten-Eingabe/Ausgabe-Leitung
IOB durch einen n-Kanal-MOS-Transistor
Qn27 verbunden. Das Flip-Flop FF2 ist mit der Daten-Eingabe/Ausgabe-Leitung
IOA durch einen n-Kanal-MOS-Transistor
Qn36 und mit der Daten-Eingabe/Ausgabe-Leitung IOB durch einen n-Kanal-MOS-Transistor
Qn35 verbunden. Die Daten-Eingabe/Ausgabe-Leitungen
IOA und IOB sind mit der Pufferschaltung 5 verbunden (48). Die in dem Flip-Flop FF1 gehaltenen Lesedaten
werden zu den Leitungen IOA und IOB ausgegeben, wenn ein Signal
CENB1 aktiviert wird. Die in dem Flip-Flop FF2 gehaltenen Lesedaten
werden zu den Leitungen IOA und IOB ausgegeben, wenn ein Signal CENB2
aktiviert wird.
-
N-Kanal-MOS-Transistoren
Qn26 entzerren die Flip-Flops FF1 bzw. FF2, wenn Signale ECH1 und
ECH2 auf einen "H"-Pegel ansteigen.
Ein n-Kanal-MOS-Transistor Qn24 verbindet das Flip-Flop FF1 mit
oder trennt dasselbe von einem MOS-Kondensator Qd1. Ein n-Kanal-MOS-Transistor
Qn32 verbindet das Flip-Flop FF2 mit oder trennt das Flip-Flop FF2
von dem MOS-Kondensator Qd1. Ein n-Kanal-MOS-Transistor Qn25 verbindet
das Flip-Flop FF1 mit oder trennt das Flip-Flop FF1 von einem MOS-Kondensator
Qd2. Ein n-Kanal-MOS-Transistoren Qn33 verbindet das Flip-Flop FF2
mit oder trennt dasselbe von dem MOS-Kondensator Qd2.
-
P-Kanal-MOS-Transistoren
Qp12C und Q13C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den im Flip-Flop
FF1 gehaltenen Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal REFYBAC sind. P-Kanal-MOS-Transistoren
Qp14C und Q15C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß den im
Flip-Flop FF2 gehaltenen
Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBBC sind. N-Kanal-MOS-Transistoren
Qn1C und Qn2C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den im
Flip-Flop FF2 gehaltenen Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBA1C sind. N-Kanal-MOS-Transistoren
Qn3C und Qn4C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß dem im
Flip-Flop FF2 gehaltenen Datenelement ändert, wobei die Eingangsdaten
ein Aktivierungssignal VRFYBB1C sind.
-
Die
MOS-Kondensatoren Qd1 und Qd2 sind jeweils durch einen Abreicherungs-
bzw. Verarmungs-n-Kanal-MOS-Transistor gebildet. Sie haben eine
Kapazität,
die viel kleiner als die Bitleitungs-Kapazität ist. Ein n-Kanal-MOS-Transistor
Qn37 lädt den
MOS-Kondensator Qd1 auf eine Spannung VA, wenn er ein Signal PREA
empfängt.
Ein n-Kanal-MOS-Transistor Qn38 lädt den MOS-Kondensator Qd2
auf eine Spannung VB, wenn er ein Signal PREB empfängt. N-Kanal-MOS-Transistoren
Qn39 und Qn40 verbinden die Datenschaltung 6 mit oder trennen
dieselbe von Bitleitungen BLA und BLb, wobei die Eingangsdatensignale
BLCA bzw. BLCB sind. Die n-Kanal-MOS-Transistoren Qn37 und Qn38
bilden eine Schaltung, die die Spannungen der Bitleitungen BLa und
BLb steuert.
-
Es
wird erklärt
werden, wie der oben beschriebene EEPROM (das elfte Ausführungsbeispiel) arbeitet,
wenn das in 15 gezeigte Steuergate CG2A
ausgewählt
ist.
-
<Programmierung einer oberen Seite>
-
(1) Programmierung einer
oberen Seite
-
Von
einer externen Vorrichtung zugeführte Daten
werden über
den Daten-Eingabe/Ausgabe-Puffer 5 zur Datenschaltung 6 eingegeben.
Es soll angenommen sein, dass eine Seite 256 Bits enthält und dass
der EEPROM 256 Datenschaltungen 6 enthält. Dann wird eine obere Seite,
die von außen
zugeführt
ist und 256 Bits enthält,
zu den ersten Flip-Flops FF1 über
die Leitungen IOA und IOB eingegeben, wenn ein Spalten-Aktivierungssignal CENB1
auf einem "H"-Pegel ist. Die 58A und 58B stellen
die Beziehung zwischen Schreibdatenelementen und den Potentialen
an den Knoten N3C und N4C im Flip-Flop FF1 dar. Wie es aus 58a zu sehen ist, wird "2" geschrieben
werden, wenn das Eingangsdatenelement auf einem hohen Pegel ist,
und wird "1" geschrieben werden,
wenn das Eingangsdatenelement auf einem niedrigen Pegel ist.
-
Wie
ein Datenelement in eine Speicherzelle geschrieben wird, wird unter
Bezugnahme auf das Zeitdiagramm der 59 erklärt werden.
Zu einer Zeit t1s wird das Aktivierungssignal VRFYBAC auf 0 V programmiert,
wodurch eine Bitleitungs-Schreibsteuerspannung
Vcc an eine Bitleitung von der Datenschaltung aus angelegt wird,
die ein Datenelement "1" hält. Zu einer
Zeit t2s wird ein Signal RV1A auf Vcc programmiert, wodurch 0 V
an eine Bitleitung von der Datenschaltung angelegt wird, die beim
Datenelement "2" hält. Somit
wird die Bitleitung, über welche "1" in die Speicherzelle geschrieben wird,
auf Vcc programmiert und wird die Bitleitung, über welche "2" in
die Speicherzelle geschrieben wird, auf 0 V programmiert.
-
Zur
Zeit t1s werden das Auswahlgate SG1 des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks und die Steuergates CG1A bis CG4A auf Vcc eingestellt. Das
Auswahlgate SG2A ist auf 0 V. Zu einer Zeit t3s wird das ausgewählte Steuergate
CG2A auf eine hohe Spannung Vpp (z.B. 20 V) programmiert und werden
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt. In der Speicherzelle, die mit irgendeiner Datenschaltung verbunden
ist, die "2" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential 0V und dem Potential
Vpp des Steuergates Elektronen in das schwebende Gate injiziert.
Die Schwellenspannung der Speicherzelle wird daher größer. In
der Speicherzelle, die mit irgendeiner Datenschaltung verbunden
ist, die "1" hält, wird
das ausgewählte
Gate SG1A ausgeschaltet und wird der Kanal in einen schwebenden Zustand
versetzt.
-
Als
Ergebnis wird in der Speicherzelle, in welche "1" zu
schreiben ist, der Kanal aufgrund der kapazitiven Kopplung mit dem
Steuergate auf etwa 8 V programmiert. Somit werden keine Elektronen
in die Speicherzelle geschrieben. Die Speicherzelle bleibt in einem
gelöschten
Zustand, das heißt,
dass sie ein Datenelement "1" speichert. Während der Programmieroperation
bleiben Signale SAN1, SAN2, PREB, PRCB auf einem "H"-Pegel, bleiben Signale SAP1, SAP2,
VRFYBA1C, RV1B, RV2B, ECH1 und ECH2 auf einem "L"-Pegel
und bleibt die Spannung VB auf 0 V.
-
(2) Verifizierungsleseoperation
einer oberen Seite
-
Nach
der Programmieroperation wird bestimmt, ob Daten ausreichend geschrieben
worden sind. (Das bedeutet, dass eine Schreibverifizierungsoperation
ausgeführt
wird.) Wenn die Schwellenspannung der Speicherzelle einen erwünschten
Wert erreicht hat, würden
die in der Datenschaltung gehaltenen Daten auf "1" geändert. Sonst
werden die in der Datenschaltung gehaltenen Daten unverändert gelassen
und werden die Daten wieder in die Speicherzelle geschrieben. Ein
Schreiben von Daten und eine Schreibverifizierungsoperation werden
wiederholt, bis alle Speicherzellen, in welche "2" geschrieben
werden muss, dahin gelangen, eine erwünschte Schwellenspannung zu
haben.
-
Wie
die Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 60 erklärt werden.
-
Zuerst
werden zu einer Zeit t1yc die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Zu
einer Zeit t2yc wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung auf
1,8 V bleiben. Zu einer Zeit t3yc steigen die Signale BLCA und BLCB
auf einen "H"-Pegel an und werden
die Potentiale der Bitleitungen an die Knoten N1 und N2 angelegt.
Dann fallen die Signale BLCA und BLCB auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung
BLb von dem MOS-Kondensator Qd2 trennt.
-
Darauf
folgend wird zu einer Zeit t4yc das Signal VRFYBAC auf einen "L"-Pegel programmiert. Dann wird ein p-Kanal-MOS-Transistor Qp12C
eingeschaltet und wird der Knoten N1 auf Vcc in der Datenschaltung
programmiert, die ein Schreibdatenelement "1" hält. Das
bedeutet, dass der Knoten N1 auf Vcc programmiert wird, so dass "1" in die Speicherzelle geschrieben werden
kann. Der p-Kanal-MOS-Transistor
Qp12C wird ausgeschaltet, wenn "2" in die Speicherzelle
zu schreiben ist. Wenn die Speicherzelle ausreichend auf "2" programmiert ist, wird der Knoten N1
auf Vcc programmiert. Wenn die Speicherzelle unzureichend auf "2" programmiert ist, wird der Knoten N1
auf 0V programmiert.
-
Dann ändern sich
die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel
und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
-
Darauf
folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t5yc wird die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist, die
die Schreibdaten "2" hält, ausreichend
auf Daten "2" programmiert worden
ist oder nicht. Wenn die Speicherzelle "2" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Speicherzelle nicht "2" speichert, erfasst
das Flip-Flop FF1 die Spannung am Knoten N1 und speichert sie zwischen,
wodurch die Daten "2" in der Datenschaltung
gehalten werden. Ein Datenelement "1" bleibt
unverändert,
in welcher Datenschaltung auch immer, die es hält.
-
Wenn
die Schwellenspannungen von allen ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird ein Signal VRTC auf beispielsweise die Vorladespannung Vcc
programmiert. Sogar wenn es eine Speicherzelle gibt, die unzureichend
programmiert ist, ist der Knoten N4C der Datenschaltung, mit welcher
diese Speicherzelle verbunden ist, auf einem "H"-Pegel. Der
n-Kanal-MOS-Transistor Qn5C wird eingeschaltet, und das Signal VRTC
fällt von
der Vorladespannung Vcc ab. Wenn alle ausgewählten Speicherzellen ausreichend
programmiert sind, fallen die Knoten N4C in den Datenschaltungen 6**-0, 6**-1,
..., 6**-m-1 und 6**-m auf einen "L"-Pegel ab. Als Ergebnis werden die n-Kanal-MOS-Transistoren Qn5C
in jeder Datenschaltung ausgeschaltet, wodurch das Signal VRTC auf
der Vorladespannung bleibt. Somit wird bestimmt, dass alle ausgewählten Speicherzellen
programmiert worden sind.
-
<Programmierung einer unteren Seite>
-
(1) Lesen, Invertieren
eines Ladens einer oberen Seite
-
Bevor
die untere Seite programmiert wird, wird die obere Seite in den
Speicherzellen programmiert. Somit speichert jede Speicherzelle
entweder "1" oder "2", wie es in 61A gezeigt
ist. Ein Datenelement der in den Speicherzellen gespeicherten oberen
Seite wird gelesen und in dem Flip-Flop FF1 gehalten, und zwar zu
der gleichen Zeit, zu welcher ein Datenelement der unteren Seite
zu dem Flip-Flop FF1 über
die Daten-Eingabe/Ausgabe-Leitungen IOA und IOB von der externen
Vorrichtung eingegeben wird.
-
Wie
das Datenelement der oberen Seite aus einer Speicherzelle gelesen
wird, wird unter Bezugnahme auf die 61A bis 61C und das Zeitdiagramm der 62 erklärt
werden.
-
Zuerst
werden zu einer Zeit t1yd die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Zu
einer Zeit t2yd wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung auf
1,8 V bleiben. Zu einer Zeit t3yd steigen die Signale BLCA und BLCB
auf einen "H"-Pegel an und werden
die Potentiale der Bitleitungen an die Knoten N1 und N2 angelegt.
Dann fallen die Signale BLCA und BLCB auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung
BLb von dem MOS-Kondensator Qd2 trennt.
-
Darauf
folgend ändern
die Signale SAN2 und SAP2 sich jeweils zu einem "L"-Pegel
und einem "H"-Pegel, was das Flip-Flop
FF2 deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2
entzerrt wird. Die Signale RV2A und RV2B steigen dann auf einen "H"-Pegel an. Die Signale SAN2 und SAP2 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer t4yd wird dadurch die
Spannung am Knoten N1 erfasst und zwischengespeichert. Zu dieser
Zeit werden die Knoten N5C und N6C im Flip-Flop FF2 auf die in 61B gezeigten Potentiale eingestellt.
-
Darauf
folgend werden die ausgelesenen Daten invertiert. Wenn beispielsweise
ein Datenelement "1" ausgelesen wird,
ist der Knoten N5C auf einem "L"-Pegel, wie es in 61B gezeigt ist. Wenn das Datenelement invertiert
wird, steigt der Knoten N5C auf einen "H"-Pegel
an.
-
Zu
einer Zeit t5yd steigen die Signale PREA und PREB auf einen "H"-Pegel an. Die Knoten N1 und N2, d.h.
die Gate-Elektroden
der MOS-Kondensatoren Qd1 und Qd2, werden jeweils auf 1,8 V und 1,5
V vorgeladen und in einen schwebenden Zustand versetzt. Zu einer
Zeit t6yd steigt das Signal VRFYBA1C auf einen "H"-Pegel
an. Wenn die Datenschaltung ein Schreibdatenelement "2" hält,
wird der n-Kanal-MOS-Transistor Qn2C eingeschaltet und wird der
Knoten N1 auf 0 V programmiert. Wenn die Datenschaltung ein Schreibdatenelement "1" hält, wird
der n-Kanal-MOS-Transistor Qn2C ausgeschaltet und bleibt der Knoten
N1 auf 1,8 V.
-
Darauf
folgend ändern
sich die Signale SAN2 und SAP2 jeweils zu einem "L"-Pegel
und einem "H"-Pegel, was das Flip-Flop
FF2 deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2
entzerrt wird. Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Die Signale SAN2 und SAP2 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t7yd wird dadurch
die Spannung am Knoten N1 erfasst und zwischengespeichert. Da nun
die Daten invertiert worden sind, werden die Knoten N5C und N6C
im Flip-Flop FF2 auf die in 61C gezeigten
Potentiale eingestellt.
-
Das
Schreibdatenelement der unteren Seite, das von der externen Vorrichtung
zum Flip-Flop FF1 eingegeben ist, ist in den 63A und 63B dargestellt. wenn dieses Datenelement auf
einem "H"-Pegel ist, wird
es nicht in die Speicherzelle geschrieben. Die Speicherzelle hält daher
ein Speichern von entweder "1" oder "2" bei. Wenn das Datenelement auf einem "L"-Pegel ist, wird es in die Speicherzelle
geschrieben. In diesem Fall speichert der Speicher "3" anstelle von "1" oder
speichert "4" anstelle von "2".
-
Somit
werden die Knoten N3C und N4C im Flip-Flop FF1 und die Knoten N5C
und N6C im Flip-Flop FF2 auf die in den 64A und 64B gezeigten Potentiale während des Programmierens der
unteren Seite eingestellt.
-
(2) Programmieren einer
unteren Seite
-
Wie
die untere Seite programmiert wird, wird unter Bezugnahme auf das
Zeitdiagramm der 65 erklärt werden.
-
Zu
einer Zeit t1p wird die Spannung VA, die als Bitleitungs-Schreibspannung verwendet
wird, auf 1 V programmiert. Die Bitleitung BLa wird dadurch auf
1 V eingestellt. Wenn ein Spannungsabfall äquivalent zu der Schwellenspannung
des n-Kanal-MOS-Transistors
Qn39 ein Problem macht, genügt
es, den Pegel des Signals BLCA anzuheben. Dann fällt das Signal PREA auf einen "L"-Pegel ab, was die Bitleitung BLa in
einen schwebenden Zustand versetzt. Zu einer Zeit t2p wird das Signal RV2A
auf 1,5 V programmiert und legt die Datenschaltung, die "2" oder "4" speichert,
eine Bitleitungs-Steuerspannung
von 0 V an die Bitleitung BLa an.
-
Es
soll angenommen sein, dass der n-Kanal-MOS-Transistor Qn32 eine
Schwellenspannung von 1 V hat. Dann wird der n-Kanal-MOS-Transistor Qn32
ausgeschaltet, wenn die Daten, die geschrieben werden, "1" oder "3" sind,
oder wird ausgeschaltet, wenn die Daten, die geschrieben werden, "2" oder "4" sind.
Darauf folgend ändert
sich zu einer Zeit t3p das Signal VRFYBAC auf 0 V, wodurch die Datenschaltung,
die "1" oder "2" speichert, eine Bitleitungs-Steuerspannung
Vcc an die Bitleitung BLa anlegt.
-
Als
Ergebnis wird die Bitleitung, über
welche entweder "1" oder "2" geschrieben wird, auf Vcc programmiert,
wird die Bitleitung, über
welche "3" geschrieben wird,
auf 1 V programmiert und wird die Bitleitung, über welche "4" geschrieben
wird, auf 0 V programmiert.
-
Zu
einer Zeit t1p werden das Auswahlgate SG1A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks und die Steuergates CG1A bis CG4A auf Vcc eingestellt. Das Auswahlgate
SG2A ist auf 0 V. Zu einer Zeit t4b wird das ausgewählte Steuergate
CG2A auf eine hohe Spannung Vpp (z.B. 20 V) programmiert und werden die
nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt ist. In der Speicherzelle, die mit irgendeiner Datenschaltung
verbunden ist, die "4" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential von 0 V und dem
Potential Vpp des Steuergates Elektronen in das schwebende Gate
injiziert. Die Schwellenspannung der Speicherzelle wird daher größer. In
der Speicherzelle, die mit irgendeiner Datenschaltung verbunden
ist, die "3" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential von 1 V und dem
Potential Vpp des Steuergates Elektronen zu dem schwebenden Gate
injiziert. Die Schwellenspannung dieser Zelle wird daher größer.
-
Der
Kanal der Speicherzelle, die auf "3" zu programmieren
ist, wird auf ein Potential von 1 V programmiert, um weniger Elektronen
in das schwebende Gate als in der Speicherzelle zu injizieren, welche auf "4" zu programmieren ist. In der Speicherzelle, die
mit der Datenschaltung verbunden ist, die entweder "1" oder "2" hält, ist
die Differenz zwischen dem Potential des Kanals und dem Potential
Vpp des Steuergates so gering, dass als Wirkung davon keine Elektronen
in das schwebende Gate injiziert werden. Somit bleibt die Schwellenspannung
der Speicherzelle unverändert.
Während
der Programmieroperation bleiben die Signale SAN1, SAN2, PREB, BLCB auf
einem "H"-Pegel, bleiben die
Signale SAP1, SAP2, VRFYBA1C, RV1A, RV1B, RV2B, ECH1 und ECH2 auf
einem "L"-Pegel und bleibt
die Spannung VB auf 0 V.
-
Die
Programmieroperation kann in irgendeinem anderen Verfahren ausgeführt werden.
Beispielsweise kann sie durchgeführt
werden, wie es im Zeitdiagramm der 67 gezeigt
ist, in dem der Knoten der n-Kanal-Transistoren Qn2C und Qn4C auf
ein festes Potential Vref eingestellt wird, wie es in 66 gezeigt ist, und nicht auf das Erdpotential,
wie es in 57 dargestellt ist. Wie es
in 67 gezeigt ist, werden die Bitleitungen auf 0
V eingestellt, und somit in einen schwebenden Zustand. Dann wird
das Signal VRFYBA1C auf Vcc programmiert, wodurch die Bitleitung, über welche "1" oder "3" zu
schreiben ist, auf 1 V programmiert wird. Darauf folgend wird das Signal
VRFYBAC auf 0 V programmiert, wodurch die Bitleitung, über welche "1" oder "2" zu
schreiben ist, auf Vcc programmiert wird. Als Ergebnis wird die
Bitleitung zum Schreiben von "4" auf 0 V programmiert, die
Bitleitung zum Schreiben von "3" auf 1 V, die Bitleitung
zum Schreiben von "1" oder "2" auf Vcc.
-
(3)
Verifizierungsleseoperation einer unteren Seite Nach der Programmieroperation
wird bestimmt, ob Daten ausreichend geschrieben worden sind. (Das
bedeutet, dass eine Schreibverifizierungsoperation ausgeführt wird.)
Wenn die Schwellenspannung der Speicherzelle einen erwünschten
Wert erreicht hat, wird der Knoten N3C des Flip-Flops FF1 auf einen "H"-Pegel programmiert. Sonst werden die in
der Datenschaltung gehaltenen Daten unverändert gelassen und werden die
Daten wieder in die Speicherzelle geschrieben. Ein Schreiben von
Daten und eine Schreibverifizierungsoperation werden wiederholt,
bis jede Speicherzelle, in welche "3" geschrieben
werden muss, und jede Speicherzelle, in welche "4" geschrieben
werden muss, dahin gelangen, erwünschte
Schwellenspannungen zu haben.
-
Wie
diese Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 68 erklärt werden.
-
Zuerst
werden zu einer Zeit t1yx die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Dann
wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählten Blocks
auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Zu
einer Zeit t2yx steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die Knoten N1 und N2 angelegt. Dann fallen die
Signale BLCA und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von
dem MOS-Kondensator Qd2 trennt. Zu einer Zeit t3yx wird das Signal
RV2A auf 1,5 V programmiert, wird die Knoten N1 auf 0 V entladen,
um "2" oder "4" in die Speicherzelle zu schreiben.
Zu einer Zeit t4yx wird das VRFYBAC auf einen "L"-Pegel programmiert.
Dann wird in der Datenschaltung, die entweder "1" oder "2" hält,
der p-Kanal-MOS-Transistor Qp12C eingeschaltet und wird der Knoten
N1 auf Vcc programmiert. Das bedeutet, dass der Knoten N1 auf Vcc
programmiert wird, um "1" oder "2" in die Speicherzelle zu schreiben,
und auf 0 V, um "4" in die Speicherzelle
zu schreiben.
-
Dann ändern sich
die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel
und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Darauf folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t5yx wird die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist,
die die Schreibdaten "3" hält, ausreichend
auf Daten "3" programmiert worden
ist oder nicht. Wenn die Speicherzelle "3" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Daten in der Speicherzelle nicht "3" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N2 und speichert
sie zwischen, wodurch die Daten "3" in der Datenschaltung
gehalten werden. Ein Datenelement "1", "2" und "4" bleibt
unverändert,
in welcher Datenschaltung auch immer sie gehalten werden.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 2,5 V eingestellt. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 2,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner
als 1,5 V. Wenn die Schwellenspannung 2,5 V oder darüber ist,
bleibt die Bitleitungs-Spannung auf 1,8 V. Zu einer Zeit t6yx werden
die Signale PREA und PREB auf eine Spannung eingestellt, die niedriger
als Vcc ist, was die Knoten N1 und N2 jeweils auf 1,8 V und 1,5 V
einstellt. Die Bitleitungen BLa und BLb nehmen daher einen schwebenden
Zustand an. Dann werden zu einer Zeit t7yx die Signale BLCA und
BLCB auf einen "H"-Pegel eingestellt,
was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung
BLb von dem MOS-Kondensator Qd2 trennt.
-
Zu
einer Zeit t8yx fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. In jeder Datenschaltung, die "1" oder "2" hält, und
in jeder Datenschaltung, die "1" hält, wird,
weil "3" ausreichend programmiert
ist, der p-Kanal-MOS-Transistor Qp12 eingeschaltet und wird der
Knoten N1 auf Vcc programmiert.
-
Die
Signale SAN1 und SAP1 ändern
sich zu einem "L"-Pegel und einem "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop
FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
zu einem "H"-Pegel und zu einem "L"-Pegel. Zu einer Zeit t9yx wird dadurch
die Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist,
die die Schreibdaten "4" hält, ausreichend
auf Daten "4" programmiert worden ist
oder nicht. Wenn diese Speicherzelle "4" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "2" geändert werden.
Kein Datenelement wird darauf folgend in die Speicherzelle geschrieben.
Wenn die Daten in der Speicherzelle nicht "4" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch das Datenelement "4" in der
Datenschaltung gehalten wird und daraus in die Speicherzelle geschrieben
wird. Dann wird ein zusätzliches
Schreiben von Daten durchgeführt.
Die Datenelemente "1", "2" und "3" bleiben
unverändert, in
welcher von Datenschaltungen auch immer sie gehalten werden.
-
Wenn
die Schwellenspannungen von allen ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird ein Signal VRTC auf beispielsweise die Vorladespannung Vcc
programmiert. Wenn es nur eine der Speicherzellen gibt, die unzureichend
programmiert ist, ist der Knoten N4C der Datenschaltung, mit welcher die
Speicherzelle verbunden ist, auf einem "H"-Pegel.
Der n-Kanal-MOS-Transistor Qn5C wird eingeschaltet und das Signal
VRTC fällt
von der Vorladespannung Vcc ab. Wenn alle ausgewählten Speicherzellen ausreichend
programmiert sind, fallen die Knoten N4C in den Datenschaltungen 6**-0, 6**-1,
..., 6**-m-1 und 6**-m auf einen "L"-Pegel ab. Als Ergebnis werden die n-Kanal-MOS-Transistoren Qn5C
in jeder Datenschaltung ausgeschaltet, wodurch das Signal VRTC auf
der Vorladespannung bleibt. Somit wird bestimmt, dass alle ausgewählten Speicherzellen
programmiert worden sind.
-
<Lesen einer oberen Seite>
-
Die
obere Seite wird von dem EEPROM gelesen, indem bestimmt wird, ob
jede Speicherzelle entweder "1" oder "3" oder entweder "2" oder "4" speichert.
-
Wie
die obere Seite gelesen wird, wird unter Bezugnahme auf das Zeitdiagramm
der 69A und 69B erklärt werden.
-
Zuerst
werden zu einer Zeit t1RD die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Dann wird das
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählten Blocks
auf 1 V programmiert, während die
nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A auf
Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als 1,5 V. Wenn die
Schwellenspannung 1 V oder darüber
ist, wird die Bitleitungs-Spannung auf 1,8 V bleiben.
-
Zu
einer Zeit t2RD steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die MOS-Kondensatoren Qd1 und Qd2 angelegt.
Dann fallen die Signale BLCA und BLCB wieder auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2
trennt. Signale SAN2 und SAP2 ändern
sich jeweils zu einem "L"-Pegel und einem "H"-Pegel, was das Flip-Flop FF2 deaktiviert.
Das Signal ECH2 steigt auf einen "H"-Pegel
an, wodurch das Flip-Flop
FF2 entzerrt wird. Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Zu einer Zeit t3RD ändern sich
die Signale SAN2 und SAP2 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF2 erfasst, dass die Speicherzelle entweder "1" oder "2" oder
entweder "3" oder "4" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert. Zu dieser Zeit werden die Knoten
N5C und N6C im Flip-Flop FF2 auf das in 70 gezeigte
Potential eingestellt.
-
Das
ausgewählte
Steuergate wird auf 2 V programmiert. Wenn die Schwellenspannung
der ausgewählten
Speicherzelle 2 V oder darunter ist, wird die Bitleitungs-Spannung
kleiner als 1,5 V sein. Wenn die Schwellenspannung 2 V oder darüber ist, wird
die Bitleitungs-Spannung auf 1,8 V bleiben. Zu einer Zeit t4RD steigen
die Signale PREA und PREB auf einen "H"-Pegel
an. Die Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren Qd1 und
Qd2, werden auf 1,8 V und 1,5 V vorgeladen. Dann fallen die Signale
PREA und PREB auf einen "L"-Pegel ab, wodurch
die Knoten N1 und N2 einen schwebenden Zustand annehmen.
-
Zu
einer Zeit t5RD steigen die Signale BLCA und BLCB auf einen "H"-Pegel an. Dann fallen die Signale BLCA
und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Die Signale
SAN1 und SAP1 ändern
sich auf einen "L"-Pegel und einen "H"-Pegel, was das Flip-Flop FF1 deaktiviert.
Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop FF1 entzerrt. Darauf folgend steigen die Signale
RV1A und RV1B auf einen "H"-Pegel an. Zu einer
Zeit t6RD ändern sich
die Signale SAN1 und SAP1 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
-
Daher
erfasst das Flip-Flop FF1, das das in der Speicherzelle gespeicherte
Datenelement ein Datenelement "4" oder irgendeines
der anderen Datenelemente "1", "2" oder "3" ist.
Die Daten, die diese Tatsache anzeigen, werden zwischengespeichert.
Zu dieser Zeit werden die Knoten N3C im Flip-Flop FF1 und der Knoten
N5C im Flip-Flop FF2 auf die in 71 gezeigten
Potentiale eingestellt.
-
Das
Datenelement wird aus der Speicherzelle gelesen, wie es in 69B dargestellt ist. Zu einer Zeit t7RD werden
die Spannungen VA und VB jeweils auf 1,8 V und 1,5 V eingestellt.
Die Bitleitungen BLa und BLb werden dadurch auf 1,8 V und 1,5 V
eingestellt. Die Signale BLCA und BLCB fallen auf einen "L"-Pegel ab, was die Bitleitung BLa und
von dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa
und BLb nehmen daher einen schwebenden Zustand an. Die Signale PREB
fallen auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Dann wird das
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0V oder darunter ist, ist die Bitleitungs-Spannung kleiner als 1,5
V. Wenn die Schwellenspannung 1 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Darauf
folgend steigen zu einer Zeit t8RD die Signale BLCA und BLCB auf
einen "H"-Pegel an, wodurch
die Datenelemente auf den Bitleitungen zu den MOS-Kondensatoren
Qd1 bzw. Qd2 transferiert werden. Dann fallen die Signale BLCA und
BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Zu einer Zeit t9RD
steigt das Signal VRFYBA1C auf einen "H"-Pegel
an. Der Knoten N5C im Flip-Flop FF2 ist zu dieser Zeit auf einem "H"-Pegel. Dies ist so, weil das Datenelement,
das gelesen wird, "3" oder "4" ist, wie es aus der 71 verstanden werden kann.
-
In
diesem Fall wird der n-Kanal-MOS-Transistor Qn2C, der in 57 gezeigt ist, eingeschaltet. Der Knoten N1,
von welchem entweder "3" oder "4" gelesen wird, ist mit der Erdung verbunden.
-
Zu
einer Zeit t10RD fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. Der Knoten N3C im Flip-Flop
FF1 ist zu dieser Zeit auf einem "H"-Pegel. Dies
ist so, weil die Daten, die gelesen werden, "3" sind,
wie es aus 71 gesehen wird. In diesem
Fall wird der in 57 gezeigte n-Kanal-MOS-Transistor Qn12C
eingeschaltet. Der Knoten N1, von welchem "4" gelesen wird,
wird auf Vcc programmiert. Die Signale SAN1 und SAP1 ändern sich
zu einem "L"-Pegel und einem "H"-Pegel, was das Flip-Flop FF1 deaktiviert.
Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop FF1 entzerrt. Darauf folgend steigen Signale
RV1A und RV1B auf einen "H"-Pegel an. Zu einer
Zeit t11RD ändern
sich die Signale SAN1 und SAP1 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF1 erfasst die Potentiale an den Knoten N3C und N4C.
Die Daten, die diese Tatsache zeigen, werden zwischengespeichert:
Zu dieser Zeit sind die Knoten N3C und N4C im Flip-Flop FF1 und
die Knoten N5C und N6C im Flip-Flop FF2 auf die in 72 gezeigten Potentiale eingestellt.
-
Die
Datenelemente der oberen Seite werden zu den Knoten N3C und N4C
des Flip-Flops FF1 gelesen (siehe 72).
Genauer gesagt sind dann, wenn das Datenelement, das gelesen wird,
entweder "1" oder "3" ist, die Knoten N3C und N4C jeweils
auf einem "L"-Pegel und einem "H"-Pegel, und dann, wenn das Datenelement,
das gelesen wird, entweder "2" oder "4" ist, sind die Knoten N3C und N4C jeweils auf
einem "H"-Pegel und einem "L"-Pegel. Wie es in Zusammenhang mit der
Programmierung der oberen Seite beschrieben ist, ist jedes Datenelement
der oberen Seite entweder "1" oder "3" oder entweder "2" oder "4". Es wird festgestellt, dass das programmierte
Schreibdatenelement zuverlässig
in das Flip-Flop FF1
gelesen worden ist. Das nun im Flip-Flop FF1 gehaltene Datenelement
wird vom Speicherchip ausgegeben, wenn das Signal CENB1 aktiviert
ist.
-
<Lesen einer unteren Seite>
-
Die
untere Seite wird aus dem EEPROM gelesen, indem bestimmt wird, ob
jede Speicherzelle entweder "1" oder "2" oder entweder "3" oder "4" speichert.
-
Wie
die untere Seite gelesen wird, wird unter Bezugnahme auf das Zeitdiagramm
der 69A erklärt werden.
-
Zuerst
werden zu einer Zeit t1RD die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2 in einen schwebenden Zustand versetzt.
-
Dann
wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 1 V programmiert, während die
nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A auf
Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als 1,5
V. Wenn die Schwellenspannung 1 V oder darüber ist, wird die Bitleitungs-Spannung auf 1,8
V bleiben. Zu einer Zeit t2RD steigen die Signale BLCA und BLCB
auf einen "H"-Pegel an und werden
die Potentiale der Bitleitungen an die MOS-Kondensatoren Qd1 und
Qd2 angelegt.
-
Darauf
folgend fallen die Signale BLCA und BLCB wieder auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Die Signale
SAN2 und SAP2 ändern
sich jeweils zu einem "L"-Pegel und einem "H"-Pegel, was das Flip-Flop FF2 deaktiviert. Das Signal ECH2
steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2 entzerrt
wird. Die Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Zu einer Zeit t3RD ändern sich
die Signale SAN2 und SAP2 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF2 erfasst, dass die Speicherzelle entweder "1" oder "2" oder
entweder "3" oder "4" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert. Zu dieser Zeit sind die Knoten
N5C und N6C im Flip-Flop FF2 auf das in 70 gezeigte
Potential eingestellt.
-
Die
Datenelemente der unteren Seite werden zu den Knoten N5C und N6C
des Flip-Flops FF1 gelesen (siehe 70).
Genauer gesagt sind dann, wenn das Datenelement, das gelesen wird,
entweder "1" oder "2" ist, die Knoten N5C und N6C jeweils
auf einem "L"-Pegel und einem "H"-Pegel, und dann, wenn das Datenelement,
das gelesen wird, entweder "3" oder "4" ist, sind die Knoten N5C und N6C jeweils auf
einem "H"-Pegel und einem "L"-Pegel. Wie es in Zusammenhang mit der
Programmierung der unteren Seite beschrieben ist, ist jedes Datenelement
der unteren Seite entweder "1" oder "2" oder entweder "3" oder "4". Es wird festgestellt, dass das programmierte
Schreibdatenelement zuverlässig
in das Flip-Flop
FF2 gelesen worden ist. Das nun im Flip-Flop FF2 gehaltene Datenelement
wird vom Speicherchip ausgegeben, wenn das Signal CENB2 aktiviert
ist.
-
Wie
es aus dem obigen verstanden werden kann, dauert das Lesen der unteren
Seite bis zu einer Zeit t3RD an, zu welcher das Lesen der oberen
Seite gestartet wird. Somit kann die obere Seite gelesen werden,
während
die untere Seite von dem Speicherchip zu einer externen Vorrichtung
ausgegeben wird. Das bedeutet, dass das Datenelement der unteren Seite
im Flip-Flop FF1 zu einer Zeit t3RD zwischengespeichert wird und
das Lesen der oberen Seite dauert an, wie es in den 69A und 69B gezeigt
ist, beginnend zur selben Zeit, d.h. zur Zeit t3RD. Somit kann die
obere Seite virtuell mit hoher Geschwindigkeit gelesen werden.
-
Beim
elften Ausführungsbeispiel
wird die obere Seite gelesen und invertiert, bevor die untere Seite
programmiert wird. Die untere Seite kann selbst dann programmiert
werden, wenn sie nicht invertiert worden ist.
-
Wie
die untere Seite in einem Vierwertdatenspeicherungs-Flash-Speicher vom
NAND-Typ programmiert wird, welcher das zwölfte Ausführungsbeispiel der Erfindung
ist, wird unter Bezugnahme auf die 73A und 73B und die 74 bis 75 erklärt werden.
-
Das
zwölfte
Ausführungsbeispiel
hat Datenschaltungen, die identisch zu der in 57 gezeigten Datenschaltung sind. Beim zwölften Ausführungsbeispiel
wird die obere Seite auf dieselbe Weise wie beim zweiten Ausführungsbeispiel
programmiert.
-
(1) Lesen der oberen Seite
vor einem Programmieren der unteren Seite
-
Bevor
die untere Seite programmiert wird, wird ein Datenelement der oberen
Seite in eine Speicherzelle geschrieben. Als Ergebnis speichert
die Speicherzelle beispielsweise "1" oder "2", wie es in 61A gezeigt
ist. Ein Datenelement der unteren Seite wird zu dem Flip-Flop FF1
von der externen Vorrichtung über
die Daten-Eingabe/Ausgabe-Leitungen
IOA und IOB eingegeben. Gleichzeitig wird das Datenelement der oberen
Seite, das in der Speicherzelle gespeichert ist, in das Flip-Flop
FF2 gelesen. Die obere Seite wird auf nahezu dieselbe Weise wie
beim elften Ausführungsbeispiel
gelesen, wie es im Zeitdiagramm der 62 dargestellt
ist. Die obere Seite wird jedoch nicht invertiert. Somit endet das
Lesen der oberen Seite zur Zeit t4yd, wenn die Spannung am Knoten
N4 dadurch erfasst und zwischengespeichert ist. Die untere Seite
wird nicht programmiert, wie es in 64 gezeigt
ist, sondern wie es unter Bezugnahme auf die 73A und 73B beschrieben werden wird. Da keine Daten invertiert werden,
sind die logischen Pegel der Knoten N5C und N6C im Flip-Flop FF2
in Bezug auf diejenigen invertiert, welche die Knoten N5C und N6C
beim elften Ausführungsbeispiel
annehmen.
-
(2) Programmierung der
unteren Seite
-
Wie
die untere Seite bei dem zwölften
Ausführungsbeispiel
programmiert wird, wird unter Bezugnahme auf das Zeitdiagramm der 74 erklärt werden.
-
Zu
einer Zeit t1pq wird die Spannung VA, die als Bitleitungs-Schreibspannung verwendet
wird, auf 1 V programmiert. Die Bitleitung BLa wird dadurch auf
1 V eingestellt. Wenn ein Spannungsabfall äquivalent zu der Schwellenspannung
des n-Kanal-MOS-Transistors
Qn39 ein Problem macht, genügt
es, den Pegel des Signals BLCA anzuheben. Dann fällt das Signal PREA auf einen "L"-Pegel ab, was die Bitleitung BLa in
einen schwebenden Zustand versetzt. Zu einer Zeit t2gp wird das
Signal VRFYBA1C auf Vcc programmiert. Der n-Kanal-MOS-Transistor Qn2C wird
eingeschaltet, um entweder "2" oder "4" zu halten. Eine Bitleitungs-Steuerspannung
von 0 V wird an die Bitleitungen angelegt. Das Signal VRFYBA1C kann
auf einen Pegel eingestellt werden, der höher als Vcc ist. Zu einer Zeit
t3pq wird das Signal VRFYBAC auf 0 V programmiert, wird eine Bitleitungs-Steuerspannung
von Vcc an die Bitleitungen von irgendeiner Datenschaltung angelegt,
die entweder "1" oder "2" hält.
-
Als
Ergebnis wird die Bitleitung zum Schreiben von "1" oder "2" auf Vcc programmiert, die Bitleitung
zum Schreiben von "3" auf 1 V, die Bitleitung zum
Schreiben von "4" auf 0 V.
-
Zu
einer Zeit t1pq werden das Auswahlgate SG1A des durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählten Blocks
und die Steuergates SG1A bis SG4A auf Vcc eingestellt. Das Auswahlgate
SG2A ist auf 0 V. Zu einer Zeit t4pq wird das ausgewählte Steuergate
CG2A auf eine hohe Spannung Vpp (z.B. 20 V) programmiert und werden die
nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt ist. In der Speicherzelle, die mit irgendeiner Datenschaltung
verbunden ist, die "4" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential von 0 V und dem
Potential Vpp des Steuergates Elektronen in das schwebende Gate
injiziert. Die Schwellenspannung der Speicherzelle steigt daher
an. In der Speicherzelle, die mit irgendeiner Datenschaltung verbunden
ist, die "3" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential von 1 V und dem
Potential Vpp des Steuergates Elektronen in das schwebenden Gate
injiziert. Die Schwellenspannung dieser Zelle steigt daher an.
-
Der
Kanal der Speicherzelle, die auf "3" zu programmieren
ist, wird auf ein Potential von 1 V programmiert, um weniger Elektronen
in das schwebende Gate als in der Speicherzelle zu injizieren, die
auf "4" zu programmieren
ist. In der Speicherzelle, die mit der Datenschaltung verbunden
ist, die entweder "1" oder "2" hält,
ist die Differenz zwischen dem Potential des Kanals und dem Potential
Vpp des Steuergates so gering, dass im Effekt keine Elektronen in das
schwebende Gate injiziert werden. Somit bleibt die Schwellenspannung
der Speicherzelle unverändert.
Während
der Programmieroperation bleiben die Signale SAN1, SAN2, PREB, BLCB
auf einem "H"-Pegel, bleiben die Signale SAP1, SAP2, VRFYBA1C,
RV1A, RV1B, RV2B, ECH1 und ECH2 auf einem "L"-Pegel
und bleibt die Spannung VB auf 0 V.
-
(3) Verifizierungsleseoperation
der unteren Seite
-
Nach
der Programmieroperation wird bestimmt, ob Daten ausreichend geschrieben
worden sind. (Das bedeutet, dass eine Schreibverifizierungsoperation
ausgeführt
wird.) Wenn die Schwellenspannung der Speicherzelle einen erwünschten
Wert erreicht hat, wird der Knoten N3C des Flip-Flops FF1 auf einen "H"-Pegel programmiert. Sonst werden die in
der Datenschaltung gehaltenen Daten unverändert gelassen und werden die
Daten wieder in die Speicherzelle geschrieben. Ein Schreiben von
Daten und eine Schreibverifizierungsoperation werden wiederholt,
bis irgendeine Speicherzelle, in welche "3" geschrieben
werden muss, und irgendeine Speicherzelle, in welche "4" geschrieben werden muss, dahin gelangen,
erwünschte
Schwellenspannungen zu haben.
-
Wie
diese Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 75 erklärt werden.
-
Zu
einer Zeit t1ys die Spannungen VA und VB jeweils auf 1,8 V und 1,5
V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf 1,8
V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf einen "L"-Pegel ab, was die Bitleitung BLa von dem
MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Die Bitleitungen BLa und BLb nehmen daher einen schwebenden Zustand
an. Die Signale PREB fallen auf einen "L"-Pegel
ab, was die Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Dann wird das
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 1,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als 1,5
V. Wenn die Schwellenspannung 1,5 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Zu
einer Zeit t2ys steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die Knoten N1 und N2 angelegt. Dann fallen die
Signale BLCA und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von
dem MOS-Kondensator Qd2 trennt. Zu einer Zeit t3ys wird das Signal
VRFYBA1C auf Vcc programmiert. Der n-Kanal-MOS-Transistor Qn2C wird eingeschaltet,
um entweder "2" oder "4" zu halten, und der Knoten N1 wird auf
0 V entladen. Zu einer Zeit t4ys wird das Signal VRFYBAC auf einen "L"-Pegel programmiert. Dann wird in der
Datenschaltung, die entweder "1" oder "2" hält,
der p-Kanal-MOS-Transistor Qp12C eingeschaltet und wird der Knoten
N1 auf Vcc programmiert. Das bedeutet, dass der Knoten N1 auf Vcc
programmiert wird, um "1" oder "2" in die Speicherzelle zu schreiben,
und auf 0 V, um "4" in die Speicherzelle
zu schreiben.
-
Dann ändern sich
die Signale SAN1 und SAP1 jeweils zu einem "L"-Pegel
und einem "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Darauf folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t5ys wird die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist,
die die Schreibdaten "3" hält, ausreichend
zu Daten "3" programmiert worden
ist oder nicht. Wenn die Speicherzelle "3" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Daten in der Speicherzelle nicht "3" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N2 und speichert
sie zwischen, wodurch die Daten "3" in der Datenschaltung
gehalten werden. Ein Datenelement "1", "2" und "4" bleibt
unverändert,
in welcher Datenschaltung sie auch immer gehalten werden.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 2,5 V eingestellt. Wenn die Schwellenspannungen der
ausgewählten
Speicherzelle 2,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner
1,5 V. Wenn die Schwellenspannung 2,5 V oder darüber ist, bleibt die Bitleitungs-Spannung
auf 1,8 V. Zu einer Zeit t6ys werden die Signale PREA und PREB auf
einen "H"-Pegel eingestellt.
Das Potential der Bitleitungen wird an die Knoten N1 und N2 angelegt.
Dann werden zu einer Zeit t7ys die Signale BLCA und BLCB auf einen "H"-Pegel eingestellt, was die Bitleitung
BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Zu einer Zeit t8ys fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. In irgendeiner
Datenschaltung, die "1" oder "2" hält,
und in irgendeiner Datenschaltung, die "1" hält, weil "3" ausreichend programmiert worden ist,
wird der p-Kanal-MOS-Transistor Qp12
eingeschaltet und wird der Knoten N1 auf Vcc programmiert.
-
Die
Signale SAN1 und SAP1 ändern
sich zu einem "L"-Pegel und einem "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop
FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t9ys wird dadurch
die Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist,
die die Schreibdaten "4" hält, ausreichend
zu Daten "4" programmiert worden ist
oder nicht. Wenn diese Speicherzelle "4" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "2" geändert werden.
Kein Datenelement wird darauf folgend in die Speicherzelle geschrieben.
Wenn die Daten in der Speicherzelle nicht "4" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch das Datenelement "4" in der
Datenschaltung gehalten und daraus in die Speicherzelle geschrieben
wird. Dann wird ein zusätzliches
Schreiben von Daten ausgeführt.
Die Datenelemente "1", "2" und "3" bleiben
unverändert,
in welcher Datenschaltung auch immer sie gehalten werden.
-
Wenn
die Schwellenspannungen von allen ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird das Signal VRTC auf beispielsweise die Vorladespannung Vcc
programmiert. Wenn es sogar eine Speicherzelle gibt, die unzureichend
programmiert ist, ist der Knoten N4C der Datenschaltung, mit welcher
diese Speicherzelle verbunden ist, auf einem "H"-Pegel.
Der n-Kanal-MOS-Transistor Qn5C wird eingeschaltet, und das Signal
VRTC fällt
von der Vorladespannung Vcc ab. Wenn alle ausgewählten Speicherzellen ausreichend
programmiert sind, fallen die Knoten N4C in den Datenschaltungen 6**-0, 6**-1,
..., 6**-m-1 und 6**-m auf einen "L"-Pegel ab. Als Ergebnis werden die n-Kanal-MOS-Transistoren Qn5C
in irgendeiner Datenschaltung ausgeschaltet, wodurch das Signal
VRTC auf der Vorladespannung bleibt. Somit wird bestimmt, dass alle
ausgewählten
Speicherzellen programmiert worden sind.
-
Bei
dem elften und dem zwölften
Ausführungsbeispiel
hat die Speicherzelle, um irgendeine Speicherzelle zu programmieren,
die ein Datenelement "1" speichert, wodurch
ein gelöschter
Zustand angenommen wird, eine höhere
Schwellenspannung zum Speichern eines Datenelements "3" der unteren Seite als zum Speichern
eines Datenelements "2" der oberen Seite.
-
Bei
dem zwölften
Ausführungsbeispiel
ist die Schwellenspannung, die jede Speicherzelle zum Speichern
eines Datenelements "2" der oberen Seite hat,
höher als
die Schwellenspannung, die sie zum Speichern eines Datenelements "3" der unteren Seite hat.
-
Ein
Flash-Speicher vom NAND-Typ, welcher das dreizehnte Ausführungsbeispiel
der Erfindung ist, wird unter Bezugnahme auf die 76A und 76B und
die 77 bis 83 beschrieben
und erklärt
werden.
-
<Programmierung und Verifizierungsleseoperation der
oberen Seite>
-
Die
obere Seite wird beim dreizehnten Ausführungsbeispiel auf nahezu dieselbe
Weise wie beim elften Ausführungsbeispiel
programmiert. Die 76A und 76B zeigen
die beim dreizehnten Ausführungsbeispiel
zu programmierenden Daten. Die Daten werden programmiert, wie es
im Zeitdiagramm der 59 dargestellt ist. Die Daten
werden einem Verifizierungslesen aus dem Flash-Speicher vom NAND-Typ
unterzogen, wie es unter Bezugnahme auf das Zeitdiagramm der 77 erklärt
werden wird. Das dreizehnte Ausführungsbeispiel
unterscheidet sich von dem elften Ausführungsbeispiel bezüglich der
Spannung, die an ein ausgewähltes
Steuergate angelegt wird, um ein Datenelement einem Verifizierungslesen
zu unterziehen, wie es in 77 gezeigt
ist. Jede Speicherzelle wird auf "2" programmiert,
wenn sie eine Schwellenspannung im Bereich von 1,5 V bis 1,8 V hat,
und die in jeder Speicherzelle gespeicherten Daten werden einem
Verifizierungslesen unterzogen, bis die Schwellenspannung auf 1,5 V
ansteigt.
-
<Programmierung der unteren Seite>
-
(1) Lesen einer oberen
Seite, Dateninversion und Laden von Daten
-
Das
Lesen der oberen Seite und eine Dateninversion werden auf nahezu
dieselbe Weise wie bei dem elften Ausführungsbeispiel ausgeführt, wie es
im Zeitdiagramm der 62 gezeigt ist. Jedoch ist die
Spannung, die an das ausgewählte
Steuergate (d.h. das Gaste CG2A) angelegt wird, um das Datenelement
aus der Speicherzelle zu lesen, 1 V, und nicht 0 V wie bei dem elften
Ausführungsbeispiel,
weil die Schwellenspannung, die die Zelle zum Speichern von "2" hat, unterschiedlich von der Spannung
ist, welche die Zelle zum Speichern von "3" hat.
-
(2) Programmierung
-
Die
beim dreizehnten Ausführungsbeispiel zu
programmierende untere Seite ist in den 78A und 78B gezeigt. Wie es aus dem 78A und 78B zu
sehen ist, ist die Speicherzelle auf "1" oder "2" programmiert, wenn das eingegebene
Datenelement auf einem "H"-Pegel ist. Wenn
das eingegebene Datenelement auf einem "L"-Pegel
ist, ist die Speicherzelle auf "3" anstelle von "1" oder auf "4" anstelle
von "2" programmiert. Die 79A und 79B stellen
die verschiedenen Potentiale dar, welche die Knoten in jeder Datenschaltung
zum Programmieren der unteren Seite haben.
-
Wie
die untere Seite beim dreizehnten Ausführungsbeispiel programmiert
wird, wird unter Bezugnahme auf das Zeitdiagramm der 80 erklärt werden.
-
Zu
einer Zeit t1ps wird die Spannung VA, die als Bitleitungs-Schreibspannung verwendet
wird, auf 2 V programmiert. Die Bitleitung BLa wird dadurch auf
2 V eingestellt. Wenn ein Spannungsabfall äquivalent zu der Schwellenspannung
des n-Kanal-MOS-Transistors
Qn39 ein Problem macht, genügt
es, den Pegel des Signals BLCA anzuheben. Dann fällt das Signal PREA auf einen "L"-Pegel ab, was die Bitleitung BLa in
einen schwebenden Zustand versetzt. Zu einer Zeit t2ps wird das
Signal RV2A auf 1,5 V programmiert. Die Datenschaltung, die "2" oder "4" hält, legt
eine Bitleitungs-Steuerspannung von 0 V an die Bitleitung an. Wenn
der n-Kanal-MOS-Transistor Qn32 eine Schwellenspannung von 1 V hat,
wird der Transistor Qn32 ausgeschaltet, um entweder "1" oder "3" zu
speichern, und ein geschaltet, um entweder "2" oder "4" zu speichern. Darauf folgend wird zu
einer Zeit t3ps das Signal VRFYBAC zu 0 V programmiert. Die Datenschaltung,
die "1" oder "2" hält,
legt eine Bitleitungs-Steuerspannung von Vcc an die Bitleitung an.
-
Als
Ergebnis wird die Bitleitung zum Schreiben von "1" oder "2" auf Vcc programmiert, die Bitleitung
zum Schreiben von "3" auf 1 V, die Bitleitung zum
Schreiben von "4" auf 0 V.
-
Zur
Zeit t4sp werden das Auswahlgate SG1A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks und die Steuergates CG1A bis CG4A auf Vcc eingestellt. Das
Auswahlgate SG2A ist auf 0 V. Als nächstes wird das ausgewählte Steuergate
CG2A auf eine hohe Spannung Vpp (z.B. 20 V) programmiert und werden
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt. In den mit irgendeiner Datenschaltung, die "4" hält,
verbundenen Speicherzelle werden Elektronen aufgrund der Differenz
zwischen dem Kanalpotential von 0 V und dem Potential Vpp des Steuergates
in das schwebende Gate. Die Schwellenspannung der Speicherzelle
steigt daher an. In der mit irgendeiner Datenschaltung, die "3" hält,
verbundenen Speicherzelle werden aufgrund der Differenz zwischen
dem Kanalpotential von 1 V und dem Potential Vpp des Steuergates
Elektronen zum schwebenden Gate injiziert. Die Schwellenspannung
dieser Zelle steigt daher an.
-
Der
Kanal der Speicherzelle, die auf "3" zu programmieren
ist, wird auf ein Potential von 1 V programmiert, um weniger Elektronen
in das schwebende Gate als in die Speicherzelle zu injizieren, die
auf "4" zu programmieren
ist. In der mit der Datenschaltung, die entweder "1" oder "2" hält, verbundenen Speicherzelle
ist die Differenz zwischen dem Potential des Kanals und dem Potential
Vpp des Steuergates so klein, dass im Effekt keine Elektronen in
das schwebende Gate injiziert werden. Somit bleibt die Schwellenspannung
der Speicherzelle unverändert. Während der
Programmieroperation bleiben die Signale SAN1, SAN2, PREB, BLCB
auf einem "H"-Pegel, bleiben die
Signale SAP1, SAP2, VRFYBA1C, RV1A, RV1B, RV2B, ECH1 und ECH2 auf
einem "L"-Pegel und bleibt
die Spannung VB auf 0 V.
-
(3) Verifizierungsleseoperation
einer unteren Seite
-
Nach
der Programmieroperation wird bestimmt, ob Daten ausreichend geschrieben
worden sind. (Das bedeutet, dass eine Schreibverifizierungsoperation
ausgeführt
wird.) Wenn die Schwellenspannung der Speicherzelle einen erwünschten
Wert erreicht hat, wird der Knoten N3C des Flip-Flops FF1 auf einen "H"-Pegel programmiert. Sonst werden die in
der Datenschaltung gehaltenen Daten unverändert gelassen und werden die
Daten wieder in die Speicherzelle geschrieben. Ein Schreiben von
Daten und eine Schreibverifizierungsoperation werden wiederholt,
bis irgendeine Speicherzelle, in welche "3" geschrieben
werden muss, und irgendeine Speicherzelle, in welche "4" geschrieben werden muss, dahin gelangen,
erwünschte
Schwellenspannungen zu haben.
-
Wie
die Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 81 erklärt werden.
-
Zuerst
wird bestimmt, ob die Schwellenspannung irgendeiner Speicherzelle,
die zum Speichern von "3" dient, einen erwünschten
Wert erreicht hat oder nicht. Spezifischer werden zur Zeit t1yy
die Spannungen VA und VB jeweils auf 1,8 V und 1,5 V eingestellt.
Die Bitleitungen BLa und BLb werden dadurch auf 1,8 V und 1,5 V
eingestellt. Die Signale BLCA und BLCB fallen auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2
trennt. Die Bitleitungen BLa und BLb nehmen daher einen schwebenden
Zustand an. Die Signale PREB fallen auf einen "L"-Pegel
ab, was die Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Dann
wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Zur
Zeit t2yy steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die Knoten N1 und N2 angelegt. Dann fallen die
Signale BLCA und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator
Qd2 trennt. Zur Zeit t3yy wird das Signal RV2A auf 1,5 V programmiert.
Der Knoten N1 wird auf 0 V entladen, um entweder "2" oder "4" zu
schreiben. Zur Zeit t4yy wird das VRFYBAC auf einen "L"-Pegel programmiert. Dann wird in der
Datenschaltung, die entweder "1" oder "2" hält,
der p-Kanal-MOS-Transistor
Qp12C eingeschaltet und wird der Knoten N1 auf Vcc programmiert.
Der Knoten N1 wird nämlich
auf Vcc programmiert, um "1" oder "2" in die Speicherzelle zu schreiben,
und auf 0 V, um "4" in die Speicherzelle
zu schreiben.
-
Dann ändern sich
die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel
und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Darauf folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils auf einen "H"-Pegel und einen "L"-Pegel. Zur Zeit t5yy wird die Spannung
am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die mit der Datenschaltung, die die Schreibdaten "3" hält, verbundene
Speicherzelle ausreichend auf Daten "3" programmiert
worden ist oder nicht. Wenn die Speicherzelle "3" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Daten in der Speicherzelle nicht "3" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N2 und speichert
sie zwischen, wodurch die Daten "3" in der Datenschaltung gehalten
werden. Darauf folgend wird ein zusätzliches Schreiben von Daten
bewirkt. Datenelemente "1", "2" und "4" bleiben
unverändert,
in welcher Datenschaltung auch immer sie gehalten werden.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 2,5 V eingestellt. Wenn die Schwellenspannung der
ausgewählten
Speicherzelle 2,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner
als 1,5 V. Wenn die Schwellenspannung 2,5 V oder darüber ist,
bleibt die Bitleitungs-Spannung auf 1,8 V. Zur Zeit t6yy werden
die Signale PREA und PREB auf Vcc eingestellt, und werden die Knoten
N1 und N2 jeweils auf 1,8 V und 1,5 V einstellt. Die Knoten N1 und
N2 nehmen dann einen schwebenden Zustand an. Zur Zeit t7yy werden
die Signale BLCA und BLCB auf einen "H"-Pegel
eingestellt, was die Bitleitung BLa von dem MOS-Kondensator Qd1
und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Zur Zeit
t8yy fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. In irgendeiner
Datenschaltung, die "1" oder "2" hält,
und in irgendeiner Datenschaltung, die "1" hält, weil "3" ausreichend programmiert worden ist,
wird der p-Kanal-MOS-Transistor Qp12 eingeschaltet und wird der Knoten
N1 auf Vcc programmiert.
-
Die
Signale SAN1 und SAP1 ändern
sich auf einen "L"-Pegel und einen "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop
FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
auf einen "H"-Pegel und einen "L"-Pegel. Zur Zeit t9yy wird dadurch die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird dadurch
bestimmt, ob die mit der Datenschaltung, die die Schreibdaten "4" hält,
verbundene Speicherzelle ausreichend auf Daten "4" programmiert
worden ist oder nicht. Wenn diese Speicherzelle "4" speichert, erfasst
das Flip-Flop FF1 die Spannung am Knoten N1 und speichert sie zwischen,
wodurch die in die Speicherzelle zu schreibenden Daten zu "2" geändert werden.
Kein Datenelement wird darauf folgend in die Speicherzelle geschrieben.
Wenn die Daten in der Speicherzelle nicht "4" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch das Datenelement "4" in
der Datenschaltung gehalten wird und daraus in die Speicherzelle
geschrieben wird. Ein zusätzliches
Schreiben von Daten wird dann durchgeführt. Die Datenelemente "1", "2" und "3" bleiben unverändert, in welcher Datenschaltung
sie auch gehalten werden.
-
Wenn
die Schwellenspannungen von allen ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird ein Signal VRTC auf beispielsweise die Vorladespannung Vcc
programmiert. Wenn genau eine Speicherzellen unzureichend programmiert
ist, ist der Knoten N4C der Datenschaltung, mit welcher diese Speicherzelle
verbunden ist, auf einem "H"-Pegel. Der n-Kanal-MOS-Transistor Qn5C
wird eingeschaltet und das Signal VRTC fällt von der Vorladespannung Vcc
ab. Wenn alle ausgewählten
Speicherzellen ausreichend programmiert sind, fallen die Knoten
N4C in den Datenschaltungen 6**-0, 6**-1, ..., 6**-m-1 und 6**-m auf
einen "L"-Pegel ab. Als Ergebnis
werden die n-Kanal-MOS-Transistoren Qn5C in jeder Datenschaltung
ausgeschaltet, wodurch das Signal VRTC auf der Vorladespannung bleibt.
Somit wird bestimmt, dass alle ausgewählten Speicherzellen programmiert
worden sind.
-
<Lesen einer oberen Seite>
-
Die
obere Seite wird von dem dreizehnten Ausführungsbeispiel gelesen, indem
erfasst wird, ob jede Speicherzelle entweder "1" oder "3" oder entweder "2" oder "4" speichert. Genauer gesagt wird 1 V an
das ausgewählte
Steuergate angelegt, um zu bestimmen, ob ein Strom durch die Speicherzelle
fließt. Wie
es im Zeitdiagramm der 69A gezeigt
ist, speichert das Flip-Flop FF2 das Datenelement zur Zeit t3RD
zwischen. Dann wird das Signal CENB2 auf einen "H"-Pegel
programmiert, wodurch das Datenelement der oberen Seite zur externen
Vorrichtung ausgegeben wird. Zu dieser Zeit speichert das Flip-Flop
FF2 die in 70 gezeigten Daten zwischen.
-
<Lesen einer unteren Seite>
-
Die
untere Seite wird vom dreizehnten Ausführungsbeispiel gelesen, indem
bestimmt wird, ob jede Speicherzelle entweder "0" oder "2", oder entweder "1" oder "3" speichert, wie es im Zeitdiagramm der 69A und 69B dargestellt
ist.
-
Um
Datenelemente zu lesen, werden die Knoten in den Flip-Flops FF1 und FF2
auf die in 72 dargestellten Potentiale
eingestellt. Das Datenelement der unteren Seite wird im Flip-Flop FF1 gespeichert
(richtiger bei den Knoten N3C und N4C). Die Daten der unteren Seite
können
zu der externen Vorrichtung durch Aktivieren des Signals CENB1 ausgegeben
werden.
-
Wie
es aus dem obigen verstanden werden kann, dauert das Lesen der oberen
Seite bis zu einer Zeit t3RD an, zu welcher das Lesen der unteren
Seite gestartet wird. Somit kann die untere Seite nach der oberen
Seite gelesen werden, während
die obere Seite vom Speicherchip zu der externen Vorrichtung ausgegeben
wird. Das bedeutet, dass das Datenelement der oberen Seite zur Zeit
t3RD im Flip-Flop FF2 zwischengespeichert wird und das Lesen der
unteren Seite, das zur selben Zeit, d.h. zur Zeit t3RD, beginnt, andauert,
wie es in den 69A und 69B gezeigt
ist. Somit kann die untere Seite virtuell mit hoher Geschwindigkeit
gelesen werden.
-
<Ein weiteres Verfahren zum Programmieren
einer unteren Seite>
-
Beim
dreizehnten Ausführungsbeispiel
wird die obere Seite gelesen und invertiert, bevor die untere Seite
programmiert wird. Wie beim zwölften
Ausführungsbeispiel
müssen
die Daten der oberen Seite nicht invertiert werden. Die Daten werden vom
dreizehnten Ausführungsbeispiel
auf nahezu dieselbe Weise wie beim zwölften Ausführungsbeispiel bis zu einer
Zeit t4yd (62) gelesen. Das dreizehnte Ausführungsbeispiel
unterscheidet sich diesbezüglich,
dass das Steuergate CG2A auf 1 V programmiert wird, und nicht auf
0 V, weil jede Speicherzelle auf "2" programmiert
wird, wenn sie eine Schwellenspannung im Bereich von 1,5 V bis 1,8
V hat. Beim dreizehnten Ausführungsbeispiel
werden die Programmieroperation und das Verifizierungslesen durchgeführt, wie
es in den Zeitdiagrammen der 82 und 83 gezeigt
ist, und zwar auf nahezu dieselbe Weise wie beim zwölften Ausführungsbeispiel,
und werden daher hier nicht detailliert beschrieben werden.
-
Ein
Mehrfachwertspeicherungsspeicher, der ein vierzehntes Ausführungsbeispiel
der Erfindung ist, wird unter Bezugnahme auf die 84A und 84B bis 91 beschrieben werden.
-
Bei
diesem Ausführungsbeispiel
entspricht ein Datenelement "1" der ersten Schwellenspannung jeder
Speicherzelle, ein Datenelement "2" der zweiten Schwellenspannung
davon, ein Datenelement "3" der dritten Schwellenspannung
davon, und so weiter. Allgemein entspricht ein Datenelement "i" der i-ten Schwellenspannung einer n-Wert-Speicherzelle,
wobei i eine natürliche
Zahl ist, die kleiner als n ist, und n 4 ist oder eine größere natürliche Zahl.
Das Datenelement kann geändert
werden, wie es in den 90A bis 90E dargestellt ist.
-
Wenn
jede Speicherzelle ein Datenelement "1", "2", "2k -1-1" oder "2k-1" (k ist 2 oder eine
größere natürliche Zahl)
speichert, wird das Datenelement gemäß seinem eigenen Wert und dem
von der externen Vorrichtung zugeführten Schreibdatenelement jeweils
zu "1", "2", ..., "2k-1" oder "2k" geändert. Wenn jede
Speicherzelle ein Datenelement "1", "2", ..., "2k-1" oder "2k" speichert, wird
das Datenelement gemäß seinem
eigenen Wert und dem von der externen Vorrichtung zugeführten Schreibdatenelement
zu "1", "2", ..., "2k+1-1" oder "2k +i" geändert. Wenn
jede Speicherzelle ein Datenelement "1", "2", ..., "2m-1-1" oder "2m-1" (m ist eine natürliche Zahl,
die n = 2 m erfüllt) speichert,
wird das Datenelement gemäß seinem
eigenen Wert und dem von der externen Vorrichtung zugeführten Schreibdatenelement
zu "1", "2", ..., "2m-1" oder "2m" geändert.
-
Das
vierzehnte Ausführungsbeispiel
kann ein Vierwertdaten-Speicherungsspeicher
sein, der Vierwert-Speicherzellen hat. In diesem Fall speichert jede
Speicherzelle "1", "2", "3" oder "4" gemäß dem Datenelement,
das sie speichert, und dem Schreibdatenelement, das zu ihr eingegeben
wird, wenn die Speicherzelle entweder "1" oder "2" speichert, wie es in den 84A und 84B dargestellt
ist.
-
Wie
es in den 84A und 84B auch dargestellt
ist, speichert die Speicherzelle bei der ersten Programmieroperation "1", wenn der erste Logikpegel zu ihr eingegeben
wird, und speichert "2", wenn der zweite
Logikpegel zu ihr eingegeben wird. Bei der zweiten Programmieroperation
bleibt das in der Zelle gespeicherte Datenelement "1" unverändert, wenn der dritte Logikpegel
zu der Zelle eingegeben wird, und ändert sich zu "3", wenn der vierte Logikpegel zur Zelle
eingegeben wird, oder bleiben die in der Zelle gespeicherten Daten "2" unverändert, wenn der dritte Logikpegel
zu der Zelle eingegeben wird, und ändern sich zu "4", wenn der vierte Logikpegel zur Zelle
eingegeben wird.
-
Wie
es in 85 gezeigt ist, weist das vierzehnte
Ausführungsbeispiel
Speicherzellen (nur eine ist gezeigt) und Datenschaltungen (nur
eine ist gezeigt) auf. Jede Speicherzelle ist eine n-Wertzelle, die
Datenelemente "1", "2", "3" eine natürliche,
die kleiner als n ist, speichern kann (und n ist 4 oder eine größere natürliche Zahl).
Jede Datenschaltung ist vorgesehen, um das in die Speicherzelle
zu schreibende Datenelement zu halten.
-
Es
soll angenommen sein, dass die Speicherzelle entweder "1" oder "2" speichert.
Dann wird das in der Speicherzelle gespeicherte Datenelement in
Abhängigkeit
von ihrem eigenen Wert und auch von dem von der externen Vorrichtung
eingegebenen Schreibdatenelement zu "1", "2", "3" oder "4" geändert.
-
Bei
der ersten Programmieroperation wird die Speicherzelle "1" speichern, wenn das erste Schreibdatenelement,
das die Datenschaltung hält, der
erste Logikpegel ist, und wird "2" speichern, wenn das
erste Schreibdatenelement der zweite Logikpegel ist. Die Datenschaltung
hält das
erste Schreibdatenelement und das von der Speicherzelle gelesene Datenelement.
Darauf folgend wird die Speicherzelle "1" speichern,
wenn das zweite Schreibdatenelement der dritte Logikpegel ist, und
wird "3" speichern, wenn das
zweite Schreibdatenelement der vierte Logikpegel ist, vorausgesetzt,
dass die Speicherzelle "1" gespeichert hat.
Die Speicherzelle wird "2" speichern, wenn
das zweite Schreibdatenelement der dritte Logikpegel ist, und wird "4" speichern, wenn das zweite Schreibdatenelement
der vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "2" gespeichert hat.
-
In
dem Fall, in welchem die Speicherzelle eine Vierwertzelle ist, ist
es nur nötig,
verschiedene Schwellenspannungen zu haben, die verteilt sind, wie
es in den 84A und 84B gezeigt
ist. Das vierzehnte Ausführungsbeispiel
kann programmiert werden, wie es in den 84A und 84B und in 85 erklärt ist.
Wie es in 85 gezeigt ist, kann jede Datenschaltung
zwei Latch- bzw. Zwischenspeicherschaltungen aufweisen.
-
Bei
der ersten Programmieroperation wird das erste Schreibdatenelement
zur ersten Latch-Schaltung über
die I/O-Leitung
eingegeben. Wie es in 84A gezeigt
ist, wird die Speicherzelle "1" speichern, wenn
das erste Schreibdatenelement der erste Logikpegel ist, und wird "2" speichern, wenn das erste Schreibdatenelement
der zweite Logikpegel ist.
-
Bei
der zweiten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene zweite
Schreibdatenelement zwischen und hält die zweite Latch-Schaltung
das von der Speicherzelle gelesene erste Schreibdatenelement. Dann
wird, wie es in 84B gezeigt ist, die Speicherzelle "1" speichern, wenn das in der Datenschaltung
gehaltene zweite Schreibdatenelement der dritte Logikpegel ist, und
wird "3" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "1" gespeichert hat. Alternativ dazu wird
die Speicherzelle "2" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der dritte
Logikpegel ist, und wird "4" speichern, wenn das
in der Datenschaltung gehaltene zweite Schreibdatenelement der vierte
Logikpegel ist, vorausgesetzt, dass die Speicherzelle "2" gespeichert hat.
-
Die
im vierzehnten Ausführungsbeispiel
enthaltenen Speicherzellen sind nicht auf Vierwertzellen beschränkt. Sie
können
Achtwertzellen, 16-Wertzellen, und so weiter sein. Allgemein sind
sie 2m-Wertzellen (m ist eine natürliche Zahl). In jeder Speicherzelle
zu speichernde Daten sind nicht auf ein Vielfaches von 2 beschränkt. Vielmehr
können
sie Dreiwertdaten oder ein Fünfwertdatenelement
sein. Natürlich
können
die Daten 6-Wertdaten, 10-Wertdaten oder 280-Wertdaten sein.
-
Wenn
die Speicherzellen Achtwertzellen sind, können sie verschiedene Schwellenspannungen
haben, die verteilt sind, wie es in den 86A bis 86C spezifiziert ist, und können programmiert werden, wie
es unter Bezugnahme auf die 86A bis 86C erklärt
werden wird. In diesem Fall hat jede der Datenschaltungen drei Latch-Schaltungen,
wie es in 87 gezeigt ist.
-
Bei
der ersten Programmieroperation wird das erste Schreibdatenelement
zu der ersten Latch-Schaltung über
die I/O-Leitung eingegeben. Wie es in 86A gezeigt
ist, wird die Speicherzelle "1" speichern, wenn
das erste Schreibdatenelement der erste Logikpegel ist, und wird "2" speichern, wenn das Schreibdatenelement
der zweite Logikpegel ist, und die Speicherzelle wird "2" speichern.
-
Bei
der zweiten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene zweite
Schreibdatenelement zwischen und hält die zweite Latch-Schaltung
das von der Speicherzelle gelesene erste Schreibdatenelement. Darauf
folgend wird, wie es in 86B gezeigt
ist, die Speicherzelle "1" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "3" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "1" gespeichert hat. Alternativ dazu wird
die Speicherzelle "2" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "4" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "2" gespeichert hat.
-
Bei
der dritten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene dritte
Schreibdatenelement zwischen und halten die zweite und die dritte
Latch-Schaltung jeweils das erste und das zweite Schreibdatenelement,
die von der Speicherzelle gelesen sind. Wie es in 86C gezeigt ist, wird die Speicherzelle "1", "3" oder "4" speichern, wenn das dritte Schreibdatenelement
der fünfte
Logikpegel ist, und wird "5", "6", "7" bzw. "8" speichern, wenn das dritte Schreibdatenelement
der sechste Logikpegel ist.
-
Wenn
die Speicherzellen 16-Wertzellen sind, können sie verschiedene Schwellenspannungen
haben, die verteilt sind, wie es in den 88A bis 88D spezifiziert ist, und können programmiert werden, wie
es unter Bezugnahme auf die 88A bis 88D erklärt
werden wird. In diesem Fall hat jede der Datenschaltungen vier Latch-Schaltungen, wie
es in 89 dargestellt ist.
-
Bei
der ersten Programmieroperation wird das erste Schreibdatenelement
zu der ersten Latch-Schaltung über
die I/O-Leitung eingegeben. Wie es in 88A gezeigt
ist, wird die Speicherzelle "1" speichern, wenn
das erste Schreibdatenelement der erste Logikpegel ist, und wird "2" speichern, wenn das Schreibdatenelement
der zweite Logikpegel ist, und die Speicherzelle wird "2" speichern.
-
Bei
der zweiten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene zweite
Schreibdatenelement zwischen und hält die zweite Latch-Schaltung
das von der Speicherzelle gelesene erste Schreibdatenelement. Darauf
folgend wird, wie es in 88B gezeigt
ist, die Speicherzelle "1" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "3" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "1" gespeichert hat. Alternativ dazu wird
die Speicherzelle "2" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "4" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "2" gespeichert hat.
-
Bei
der dritten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene dritte
Schreibdatenelement zwischen und halten die zweite und die dritte
Latch-Schaltung jeweils das erste und das zweite Schreibdatenelement,
die von der Speicherzelle gelesen sind. Wie es in 86C gezeigt ist, wird die Speicherzelle "1", "3" oder "4" speichern, wenn das dritte Schreibdatenelement
der fünfte
Logikpegel ist, und wird jeweils "5", "6", "7" und "8" speichern, wenn das dritte Schreibdatenelement
der sechste Logikpegel ist.
-
Bei
der vierten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene vierte
Schreibdatenelement zwischen und halten die zweite, die dritte und
die vierte Latch-Schaltung
jeweils das erste, das zweite und das dritte Schreibdatenelement,
die von der Speicherzelle gelesen sind. Dann wird, wie es in 88C gezeigt ist, die Speicherzelle eines der Datenelemente "1" bis "8" speichern,
wenn das vierte Schreibdatenelement der siebte Logikpegel ist, und
wird eines der Datenelemente "9" bis "16" speichern, wenn
die vierten Schreibdaten der achte Logikpegel sind.
-
Wenn
die Speicherzellen 2m-Wertzellen sind, können sie
verschiedene Schwellenspannungen haben, die verteilt sind, wie es
in den 90A bis 90E spezifiziert
ist, und können
programmiert werden, wie es unter Bezugnahme auf die 90A bis 90E erklärt werden
wird. In diesem Fall hat jede der Datenschaltungen m Latch-Schaltungen, wie
es in 91 dargestellt ist.
-
Bei
der ersten Programmieroperation wird das erste Schreibdatenelement
zu der ersten Latch-Schaltung über
die I/O-Leitung eingegeben. Wie es in 90A gezeigt
ist, wird die Speicherzelle "1" speichern, wenn
das erste Schreibdatenelement der erste Logikpegel ist, und wird "2" speichern, wenn das erste Schreibdatenelement
der zweite Logikpegel ist, und die Speicherzelle wird "2" speichern.
-
Bei
der zweiten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene zweite
Schreibdatenelement zwischen und hält die zweite Latch-Schaltung
das von der Speicherzelle gelesene erste Schreibdatenelement. Darauf
folgend wird, wie es in 90B gezeigt
ist, die Speicherzelle "1" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "3" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "1" gespeichert hat. Alternativ dazu wird
die Speicherzelle "2" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
dritte Logikpegel ist, und wird "4" speichern, wenn
das in der Datenschaltung gehaltene zweite Schreibdatenelement der
vierte Logikpegel ist, vorausgesetzt, dass die Speicherzelle "2" gespeichert hat.
-
Bei
der dritten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene dritte
Schreibdatenelement zwischen und halten die zweite und die dritte
Latch-Schaltung jeweils das erste und das zweite Schreibdatenelement,
die von der Speicherzelle gelesen sind. Wie es in 90C gezeigt ist, wird die Speicherzelle "1", "3" oder "4" speichern, wenn das dritte Schreibdatenelement
der fünfte
Logikpegel ist, und wird jeweils "5", "6", "7" und "8" speichern, wenn das dritte Schreibdatenelement
der sechste Logikpegel ist.
-
Bei
der vierten Programmieroperation speichert die erste Latch-Schaltung
in der Datenschaltung das von der externen Vorrichtung eingegebene vierte
Schreibdatenelement zwischen und halten die zweite, die dritte und
die vierte Latch-Schaltung
jeweils das erste, das zweite und das dritte Schreibdatenelement,
die von der Speicherzelle gelesen sind. Dann wird, wie es in 90D gezeigt ist, die Speicherzelle eines der Datenelemente "1" bis "8" speichern,
wenn das vierte Schreibdatenelement der siebte Logikpegel ist, und
wird eines der Datenelemente "9" bis "16" speichern, wenn
die vierten Schreibdaten der achte Logikpegel ist.
-
Weiterhin
speichert die erste Latch-Schaltung in der Datenschaltung bei der
m-ten Programmieroperation das von der externen Vorrichtung eingegebene
m-te Schreibdatenelement zwischen und halten die zweite, die dritte,
die vierte, ... und die m-te Latch-Schaltung jeweils das erste,
das zweite, das dritte, ..., das (m-1)-te Schreibdatenelement, die
von der Speicherzelle gelesen sind. Dann wird, wie es in 90D gezeigt ist, die Speicherzelle eines der Datenelemente "1" bis "2m-1" speichern,
wenn das m-te Schreibdatenelement der (2m-1)-te Logikpegel ist.
-
Wenn
das m-te Schreibdatenelement der 2m-te Logikpegel ist, wird die
Speicherzelle eines der Datenelemente "2m-1+1", "2m-1+2", ..., "2m-1" und "2m" anstelle von "1", "2", "3", ..., "2m-1-1", "2m-1" speichern.
-
Beim
vierzehnten Ausführungsbeispiel
entspricht ein Datenelement "1" der ersten Schwellenspannung
jeder Speicherzelle, ein Datenelement "2" der
zweiten Schwellenspannung davon, ein Datenelement "3" der dritten Schwellenspannung davon, und
so weiter. Allgemein entspricht ein Datenelement "i" der i-ten Schwellenspannung einer n-Wert-Speicherzelle
(i ist eine natürliche
Zahl, die kleiner als n ist, und n ist 3 oder eine größere natürliche Zahl).
Die Schwellenspannung entsprechend dem in jeden Speicher bei der
p-ten Programmieroperation (p ist 1 oder eine größere natürliche Zahl) geschriebenen Datenelement
ist in einem Bereich, der kleiner als die Schwellenspannung ist,
die dem Datenelement entspricht, das bei der (p+1)-ten Programmieroperation in
die Speicherzelle geschrieben ist.
-
Ein
Flash-Speicher vom NAND-Typ, der das fünfzehnte Ausführungsbeispiel
der Erfindung ist, wird unter Bezugnahme auf die 92A bis 100B beschrieben
werden.
-
In
die Speicherzellen dieses Flash-Speichers kann eine Vielzahl von
Bits geschrieben werden, die in obere Bits und untere Bits aufgeteilt
werden können.
Die oberen Bits werden in eine Gruppe von Speicherzellen bei der
Programmieroperation der oberen Seite geschrieben. Die unteren Bits
werden in eine weitere Gruppe von Speicherzellen bei der Programmieroperation
der unteren Seite geschrieben.
-
Wie
die obere und die untere Seite programmiert werden, wird unter Bezugnahme
auf die 92A und 92B erklärt werden.
Jede Speicherzelle von einer Gruppe bleibt in einem gelöschten Zustand,
speichert "1", wenn das Schreibdatenelement
der oberen Seite auf einem hohen Pegel ist, und speichert "2", wenn das Schreibdatenelement der oberen
Seite auf einem niedrigen Pegel ist. Irgendeine Speicherzelle der
anderen Gruppe, die "1" oder "2" speichert, bleibt bei einem Speichern
desselben Datenelements, wenn das Schreibdatenelement der unteren
Seite auf einem hohen Pegel ist, und speichert "3" oder "4", wenn das Schreibdatenelement der unteren
Seite auf einem niedrigen Pegel ist. Da ein Schreibdatenelement
der oberen Seite in eine Speicherzelle von einer Gruppe geschrieben
wird, während
ein Schreibdatenelement der unteren Seite in eine Speicherzelle
der anderen Gruppe geschrieben wird, können Daten im Flash-Speicher mit höherer Geschwindigkeit
als sonst programmiert werden.
-
Wie
es aus 92A zu sehen ist, wird ein "2"-Verifizierungslesen
bei der Programmieroperation der oberen Seite durchgeführt, um
zu bestimmen, ob die Speicherzelle ausreichend auf "2" programmiert worden ist. Gegensätzlich dazu
werden, wie es in 92B gezeigt ist, ein "3"-Verifizierungslesen und
ein "4"-Verifizierungslesen
bei der Programmieroperation der unteren Seite bewirkt, um zu bestimmen,
ob die Speicherzelle ausreichend auf entweder "3" oder "4" programmiert worden ist. Allgemein
dauert das Verifizierungslesen umso länger, wie höher die Schwellenspannung ist,
die die Speicherzelle hat, um ein Datenelement zu speichern (die
Zelle hat die höchste
Schwellenspannung zum Speichern von "4").
Um die Schwellenspannung des Speicherzellentransistors bei der Programmieroperation
zu ändern,
wird ein als Schreibvorspannung verwendeter Puls zur Wortleitung
zugeführt.
Die Schreibvorspannung wird nach und nach Schritt für Schritt
erhöht,
bis die Speicherzelle ausreichend programmiert ist. Wenn die Spannung
zum Schreiben eines Datenelements der oberen Seite und die Spannung
zum Schreiben von Daten der unteren Seite (welche hierin nachfolgend
jeweils "Schreibspannung
der oberen Seite" und "Schreibspannung der
unteren Seite" genannt
werden) Schritt für
Schritt mit derselben Geschwindigkeit erhöht werden, kann die obere Seite schneller
als die untere Seite programmiert werden.
-
Jedoch
wird die Schreibzeit des Flash-Speichers, allgemein die Zeit, die
zum Programmieren einer Seite erforderlich ist, durch die Programmierzeit der
oberen Seite oder die Programmierzeit der unteren Seite, die länger als
die andere ist, bestimmt. Unvermeidlich ist die Schreibzeit die
Programmierzeit der unteren Seite, die länger als die Programmierzeit der
oberen Seite ist. Kein großer
Vorteil besteht darin, dass nur die obere Seite mit hoher Geschwindigkeit
programmiert wird. Im Hinblick darauf wird die obere Seite langsamer
und somit mit höherer
Genauigkeit beim fünfzehnten
Ausführungsbeispiel
programmiert. Somit wird die Schreibzeit der oberen Seite gleich
der Schreibzeit der unteren Seite.
-
Genauer
gesagt ist der Aufwärtsstufenwert ΔVpp1 der
Schreibspannung der oberen Seite kleiner als der Aufwärtsstufenwert ΔVpp2 der
Schreibspannung der unteren Seite -- das heißt ΔVpp1 < ΔVpp2.
Da die obere Seite mit höherer
Genauigkeit als die untere Seite programmiert wird, ist der Bereich
für die
Schwellenspannung entsprechend einem Datenelement "2" kleiner als sonst. Dies erhöht die Betriebszuverlässigkeit
der Speicherzelle.
-
Das
fünfzehnte
Ausführungsbeispiel
wird detaillierter im Vergleich mit einem Flash-Speicher vom NAND-Typ
beschrieben werden, bei welchem ΔVpp1 = ΔVpp2 gilt.
-
93 zeigt die Verteilungen der Schwellenspannungen,
welche jede Speicherzelle hat, wenn die Aufwärtsstufenwerte der Schreibspannungen
der oberen Seite und der unteren Seite gleich sind (ΔVpp1 = ΔVpp2) und
wenn die Schwellenspannung entsprechend "2",
das bei der Programmieroperation der oberen Seite geschrieben wird, über denselben Bereich
wie die Schwellenspannungen verteilt ist, die "3" und "4" entsprechen, die bei der Programmieroperation
der unteren Seite geschrieben sind. Ebenso sind in 93 Verifizierungsspannungen VCG2V, VCG3V und VCG4V
gezeigt, die angelegt werden, um zu bestimmen, ob die Speicherzelle
ausreichend auf jeweils "2", "3" und "4" programmiert
worden ist oder nicht. 94 stellt
die Wellenform eines zu der Speicherzelle zugeführten Pulssignals zum Programmieren
derselben dar.
-
Wie
es aus 93 zu sehen ist, sind die Schwellenspannungen
entsprechend "2", "3" und "4" über den
Bereich von 0,8 V verteilt. In diesem Fall wird die Schreibspannung
der oberen Seite stufenweise erhöht,
und zwar jedes Mal um 0,8 V, von dem Anfangswert von beispielsweise
15 V. Andererseits wird die Schreibspannung der unteren Seite stufenweise
jedes Mal um 0,8 V von dem Anfangswert von 17,8 V aus erhöht. Dieser
Anfangswert von 17,8 V ist die Summe aus dem Anfangswert (15 V)
für die Schreibspannung
der oberen Seite und der Differenz (2,8 V) zwischen den Verifizierungsspannungen VCG2V
und VCG4V (d.h. den Spannungen, die angelegt sind, um zu bestimmen,
ob die Speicherzelle ausreichend auf "2" und "4" programmiert worden ist). Der Kanal
der Speicherzelle, die auf "4" zu programmieren
ist, und die Bitleitung, mit welcher die Speicherzelle verbunden
ist, sind auf 0 V eingestellt. Der Kanal der Speicherzelle, die
auf "3" zu programmieren
ist, und die Bitleitung, mit welcher die Speicherzelle verbunden
ist, sind auf 1,4 V eingestellt, was die Differenz zwischen den
Verifizierungsspannungen VCG3V und VCG4V ist (d.h. den Spannungen,
die angelegt sind, um zu bestimmen, ob die Speicherzelle ausreichend
auf "3" und "4" programmiert worden ist). Mit diesen
vorgenommenen Maßnahmen
können
die Datenelemente "3" und "4" während
der Programmieroperation der unteren Seite nahezu zu derselben Zeit
geschrieben werden.
-
Die 95A bis 95E zeigen,
wie die Schwellenspannungen jeder Speicherzelle beim fünfzehnten
Ausführungsbeispiel
verteilt sind. Die 96A bis 96D und
die 97A und 97B stellen
die Wellenformen der zu der Speicherzelle zugeführten Pulssignale zum Programmieren
derselben dar.
-
Um
solche Verteilungen von Schwellenspannungen zu erhalten, wie es
in 95A gezeigt ist, genügt es, die
Pulssignale der 96A und 96B als
Schreibspannungen zu verwenden. Genauer gesagt wird das Pulssignal
der 96A, das sich stufenweise jedes
Mal um 0,3 V von dem Anfangswert von 15 V aus erhöht, als
die Schreibspannung der oberen Seite verwendet. Der Bereich, über welchen die
Schwellenspannung entsprechend "2" verteilt ist, kann
dadurch auf 0,3 V reduziert werden. Da der Aufwärtsstufenwert der Schreibspannung
der oberen Seite nur 0,3 V ist, kann die obere Seite mit hoher Genauigkeit
programmiert werden, aber die Schreibzeit wird unvermeidbar größer. Es
ist daher erwünscht, den
Aufwärtsstufenwert
der Schreibspannung der oberen Seite auf einen derartigen Wert einzustellen, dass
die Programmierzeit der oberen Seite (einschließlich der Verifizierungslesezeit)
im Wesentlichen gleich der Programmierzeit der unteren Seite (einschließlich der
Verifizierungslesezeit) sein kann.
-
Wie
es in 96B gezeigt ist, wird die Schreibspannung
der unteren Seite stufenweise jedes Mal um 0,8 V von dem Anfangswert
von 17,3 V aus erhöht.
Der Anfangswert der Schreibspannung der unteren Seite ist die Summe
aus dem Anfangswert für
die Schreibspannung der oberen Seite und der Differenz zwischen
den Verifizierungsspannungen, die angelegt sind, um zu bestimmen,
ob die Speicherzelle jeweils auf "2" und "4" ausreichend programmiert worden ist.
Der Aufwärtsstufenwert
der Schreibspannung der unteren Seite ist 0,8 V wie in dem Fall,
in welchem die Quellenspannungen die Verteilungen erhalten, die
in 93 dargestellt sind. Der Kanal der Speicherzelle,
die auf "4" zu programmieren
ist, und die Bitleitung, mit welcher die Speicherzelle verbunden
ist, werden auf 0 V eingestellt. Der Kanal der Speicherzelle, welche
auf "3" zu programmieren
ist, und die Bitleitung, mit welcher die Speicherzelle verbunden
ist, werden auf 1,4 V eingestellt, was die Differenz zwischen den Verifizierungsspannungen
ist, die angelegt sind, um zu bestimmen, ob die Speicherzelle ausreichend
auf "3" und "4" programmiert worden ist. Sind diese
Maßnahmen
vorgenommen, können
Datenelemente "3" und "4" nahezu zur selben Zeit während der
Programmieroperation der unteren Seite geschrieben werden.
-
Da
die Schwellenspannung entsprechend "2" über den
Bereich von nur 0,3 V verteilt ist, wie es in 95A gezeigt ist, wird der Bereich, über welchen
sich die höchste
Schwellenspannung entsprechend "4" verteilt, etwa 0,5
V mehr kleiner, als es in 93 dargestellt
ist. Als Ergebnis wird das Abfließen einer Ladung vom schwebenden
Gate der Speicherzelle in das Substrat verhindert. Die Datenhaltezeit
der Speicherzelle kann sich daher auf ein Zweifaches oder Dreifaches
erhöhen.
Dies verbessert die Betriebszuverlässigkeit der Speicherzelle.
-
Somit
kann die obere Seite mit hoher Genauigkeit, aber mit einer verringerten
Geschwindigkeit, programmiert werden. Nichts desto weniger wird
die Schreibgeschwindigkeit des Speicherchips nicht geringer, solange
die Programmiergeschwindigkeit der oberen Seite niedriger als die
Programmiergeschwindigkeit der unteren Seite ist. Dies ist deshalb
so, weil die Schreibgeschwindigkeit des Speicherchips durch die
Programmiergeschwindigkeit der unteren Seite bestimmt wird, da es
länger
dauert, die untere Seite zu programmieren, als die obere Seite zu
programmieren.
-
Beim
vorliegenden Ausführungsbeispiel
können
die Schwellenspannungen, die jede Speicherzelle haben kann, über mehr
oder weniger als es oben beschrieben ist verteilt werden. Beispielsweise
können
sie verteilt werden, wie es in 95B dargestellt ist.
In diesem Fall wird die obere Seite mit hoher Genauigkeit programmiert,
wodurch der Bereich, über welchen
eine Schwellenspannung entsprechend "2" verteilt
ist, auf 0,3 V reduziert wird, wie in dem in 95A gezeigten
Fall. Jedoch ist die Differenz unter den Bereichen der Schwellenspannungen
entsprechend "2", "3" und "4" größer als
in dem in 95A gezeigten Fall.
-
Um
genauer zu sein, ist in den in den 93 und 95A gezeigten Fällen die Differenz zwischen
den Bereichen der Schwellenspannungen entsprechend "2", "3" und "4" 0,6 V. Wenn die Schwellenspannung der
Speicherzelle, die ein Datenelement "3" oder "4" speichert, aufgrund des Ladungsabflusses
vom schwebenden Gate um mehr als 0,6 V kleiner werden kann, wird
sich das Datenelement von "3" zu "2" oder von "4" zu "3" ändern.
Das bedeutet, dass das Datenelement verloren werden kann. Gegensätzlich dazu
wird in dem in 95B gezeigten Fall das in der
Speicherzelle gespeicherte Datenelement nicht verloren, solange
die Schwellenspannung nicht um mehr als 0,8 V kleiner wird, weil
die Differenz zwischen den Bereichen der Schwellenspannungen 0,8
V ist. Somit wird die Lebensdauer der Speicherzelle verlängert, und
somit wird sich die Zuverlässigkeit
davon erhöhen,
wenn die Schwellenspannungen verteilt sind, wie es in 95B dargestellt ist.
-
Um
die Schwellenspannungen zu verteilen, wie es in 95B gezeigt ist, genügt es, die in den 96A und 96C gezeigten
Pulssignale jeweils als die Schreibspannungen der oberen Seite und
der unteren Seite zu verwenden. Das Pulssignal der 96A, das als die Schreibspannung der oberen Seite
verwendet wird, erhöht
sich Schritt für
Schritt jedes Mal um 0,4 V von einem Anfangswert von 15 V aus. Wenn
dieses Pulssignal angelegt wird, wird der Verteilungsbereich der
Schwellenspannung entsprechend "2" auf 0,3 V reduziert.
Da der Aufwärtsstufenwert
der Schreibspannung der oberen Seite klein ist, wird die obere Seite
mit hoher Genauigkeit programmiert, aber die Schreibzeit der oberen
Seite erhöht sich.
Im Hinblick darauf ist es erwünscht,
dass der Aufwärtsstufenwert
der Schreibspannung der oberen Seite so ist, dass die Programmierzeit
der oberen Seite nahezu dieselbe wie die Programmierzeit der unteren
Seite ist. (Jede Programmierzeit enthält die Verifizierungslesezeit.)
Andererseits erhöht
sich das Pulssignal der 96C,
das als die Schreibspannung der unteren Seite verwendet wird, Schritt
für Schritt
jedes Mal um 0,8 V von dem Anfangswert von 17,7 V aus. Dieser Anfangswert
ist die Summe aus dem Anfangswert für die Schreibspannung der oberen
Seite und der Differenz zwischen den Verifizierungsspannungen, die
angelegt sind, um zu bestimmen, ob die Speicherzelle jeweils ausreichend
auf "2" und "4" programmiert worden ist. Der Aufwärtsstufenwert
der Schreibspannung der unteren Seite ist 0,8 V wie in dem Fall,
in welchem die Schwellenspannungen die in 93 dargestellten
Verteilungen erhalten. Der Kanal der Speicherzelle, die auf "4" zu programmieren ist, und die Bitleitung,
mit welcher die Speicherzelle verbunden ist, sind auf 0 V eingestellt. Der
Kanal der Speicherzelle, die auf "3" zu
programmieren ist, und die Bitleitung, mit welcher die Speicherzelle
verbunden ist, sind auf 1,6 V eingestellt, was die Differenz zwischen
den Verifizierungsspannungen ist, die angelegt sind, um zu bestimmen,
ob die Speicherzelle ausreichend auf "3" und "4" programmiert worden ist. Sind diese
Maßnahmen
vorgenommen, können
Datenelemente "3" und "4" während
der Programmieroperation der unteren Seite nahezu zur gleichen Zeit
geschrieben werden.
-
Die
Schwellenspannungen, die jede Speicherzelle haben kann, können auf
eine andere Weise verteilt werden, wie es in 95C dargestellt
ist. In diesem Fall ist die Differenz zwischen den Schwellenspannungen
entsprechend "3" und "4" größer als die
Differenz zwischen den Schwellenspannungen entsprechend "2" und "3",
wohingegen diese Differenzen in den in den 95A und 95B gezeigten Fall gleich sind. Richtiger ausgedrückt ist
die Differenz zwischen den Schwellenspannungen entsprechend "2" und "3" 0,7
V, während die
Differenz zwischen den Schwellenspannungen entsprechend "3" und "4" 1
V ist. Diese Maßnahme
wird vorgenommen, da die Ladung wahrscheinlicher aus dem schwebenden
Gate der Speicherzelle abfließt,
wenn die Schwellenspannung größer wird,
was letztlich die Schwellenspannung erniedrigt.
-
Um
die Schwellenspannungen zu verteilen, wie es in 95C gezeigt ist, genügt es, die in den 96A und 96D gezeigten
Pulssignale jeweils als die Schreibspannungen der oberen Seite und
der unteren Seite zu verwenden. Das Pulssignal der 96A, das als die Schreibspannung der oberen Seite
verwendet wird, erhöht
sich Schritt für
Schritt jedes Mal um 0,3 V von dem Anfangswert von 15 V aus. Das
Pulssignal der 96D, das als die Schreibspannung
der unteren Seite verwendet wird, erhöht sich Schritt für Schritt
jedes Mal um 0,8 V von dem Anfangswert von 17,8 V aus. Dieser Anfangswert
ist die Summe aus dem Anfangswert für die Schreibspannung der oberen
Seite und der Differenz zwischen den Verifizierungsspannungen, die
angelegt sind, um zu bestimmen, ob die Speicherzelle jeweils ausreichend
auf "2" und "4" programmiert worden ist. Der Aufwärtsstufenwert
der Schreibspannung der unteren Seite ist 0,8 V wie in dem Fall,
in welchem die Schwellenspannungen die in 93 dargestellten
Verteilungen erhalten. Der Kanal der Speicherzelle, welche auf "4" zu programmieren ist, und die Bitleitung,
mit welcher die Speicherzelle verbunden ist, sind auf 0 V eingestellt.
Der Kanal der Speicherzelle, welche auf "3" zu
programmieren ist, und die Bitleitung, mit welcher die Speicherzelle
verbunden ist, ist auf 1,8 V programmiert, was die Differenz zwischen
den Verifizierungsspannungen ist, die angelegt sind, um zu bestimmen,
ob die Speicherzelle ausreichend auf "3" und "4" programmiert worden ist. Sind diese
Maßnahmen
vorgenommen, können Datenelemente "3" und "4" während der
Programmieroperation der unteren Seite nahezu zur selben Zeit geschrieben
werden.
-
Die
Schwellenspannungen, die jede Speicherzelle haben kann, können auf
eine weitere Weise verteilt werden, wie es in 95D und 95E beschrieben
ist. In diesen Fällen
unterscheidet sich die Beziehung der Datenelemente "1" bis "4" von
derjenigen in den in den 95A bis 95C gezeigten Fällen. Genauer gesagt ist die
Schwellenspannung entsprechend "2", um bei der Programmieroperation der
oberen Seite geschrieben zu werden, höher als die Schwellenspannung
entsprechend "3", um bei der Programmieroperation
der unteren Seite geschrieben zu werden.
-
Auch
in dem in den 95D und 95E gezeigten
Fällen
wird die Schwellenspannung entsprechend "2" über den
Bereich von nur 0,3 V verteilt, wie es in 95A gezeigt
ist, und kann der Bereich, über
welchen sich die höchste
Schwellenspannung entsprechend "4" verteilt, zu der
unteren Seite verschoben werden, obwohl der Verteilungsbereich der Schwellenspannung
entsprechend "2" auf 0,3 V reduziert
ist. In dem Fall der 95D ist
die Differenz zwischen den Schwellenspannungen entsprechend "2" und "3" 0,6
V, während
die Differenz zwischen den Schwellenspannungen entsprechend "2" und "4" 1
V ist, wie in dem Fall der 95C.
Dies hilft zum Erhöhen
der Differenz zwischen den Verteilungsbereichen der höheren Schwellenspannungen.
-
Um
die Schwellenspannungen zu verteilen, wie es in 95D gezeigt ist, genügt es, die in den 97A und 97B gezeigten
Pulssignale jeweils als die Schreibspannungen der oberen Seiet und
der unteren Seite zu verwenden. Das Pulssignal der 97A, das als die Schreibspannung der oberen Seite
verwendet wird, erhöht
sich Schritt für
Schritt jedes Mal um 0,3 V von dem Anfangswert von 16,4 V aus. Das
Pulssignal der 97B, das als die Schreibspannung
der unteren Seite verwendet wird, erhöht sich Schritt für Schritt
jedes Mal um 0,8 V von dem Anfangswert von 17,7 V aus. Dieser Anfangswert
ist die Summe aus dem Anfangswert für die Schreibspannung der oberen
Seite und der Differenz zwischen den Verifizierungsspannungen, die
angelegt sind, um zu bestimmen, ob die Speicherzelle jeweils ausreichend
auf "2" und "4" programmiert worden ist. Der Aufwärtsstufenwert
der Schreibspannung der unteren Seite ist 0,8 V wie in dem Fall,
in welchem die Schwellenspannungen die in 93 dargestellten
Verteilungen erhalten. Der Kanal der Speicherzelle, die auf "4" zu programmieren ist, und die Bitleitung,
mit welcher die Speicherzelle verbunden ist, sind auf 0 V eingestellt.
Der Kanal der Speicherzelle, die auf "3" zu
programmieren ist, und die Bitleitung, mit welcher die Speicherzelle
verbunden ist, werden auf 2,7 V eingestellt, was die Differenz zwischen
den Verifizierungsspannungen ist, die angelegt sind, um zu bestimmen,
ob die Speicherzelle ausreichend auf "3" und "4" programmiert worden ist. Diese Maßnahmen
werden vorgenommen und Datenelemente "3" und "4" können
während
der Programmieroperation der unteren Seite nahezu zur selben Zeit
geschrieben werden.
-
In
dem in 95E gezeigten Fall ist die
Differenz zwischen den Bereichen der Schwellenspannungen entsprechend "3" und "2" 0,6
V und ist die Differenz zwischen den Bereichen der Schwellenspannungen
entsprechend "2" und "4" auch 0,6 V. Um diese Verteilungsbereiche
von Schwellenspannungen zu erhalten, genügt es, die untere Seite auf dieselbe
Weise wie in dem in 95D gezeigten Fall zu programmieren,
außer
der Kanal der Speicherzelle, die auf "3" zu
programmieren ist, und die Bitleitung, mit welcher die Speicherzelle
verbunden ist, auf 2,3 V eingestellt werden.
-
Es
ist erklärt
worden, wie die erste und die zweite Programmieroperation bei jeder
Vierwert-Speicherzelle beim fünfzehnten
Ausführungsbeispiel
durchgeführt
werden. Nichts desto weniger können
die erste und die zweite Programmieroperation bei anderen Mehrfachwert-Speicherzellen
durchgeführt
werden. Dies kann durch Verwenden eines kleinen Aufwärtsstufenwerts
einer Schreibspannung bei der ersten Programmieroperation und eines
großen
Aufwärtsstufenwerts
einer Schreibspannung bei der zweiten Programmieroperation erreicht
werden, wodurch der Bereich der Schwellenspannung entsprechend einem
Datenelement, um bei der ersten Programmieroperation geschrieben
zu werden, weniger breit als der Bereich der Schwellenspannung entsprechend
einem Datenelement, um bei der ersten Programmieroperation geschrieben
zu werden, gemacht wird.
-
Beispielsweise
kann das fünfzehnte
Ausführungsbeispiel
Speicherzellen vom selben Typ haben, wie sie beim vierzehnten Ausführungsbeispiel
enthalten sind, d.h. 2m-Wert-Speicherzellen (m
ist eine natürliche
Zahl).
-
Jede
Speicherzelle kann eine n-Wertzelle sein, die eine erste Schwellenspannung
entsprechend einem Datenelement "1" haben kann, eine zweite
Schwellenspannung entsprechend einem Datenelement "2", eine dritte Schwellenspannung entsprechend
einem Datenelement "3", und so weiter, und
kann eine i-te Schwellenspannung entsprechend einem Datenelement "i" haben (i ist eine natürliche Zahl
gleich oder kleiner als n, und n ist 4 oder eine größere natürliche Zahl).
In diesem Fall wird dann, wenn die Speicherzelle eine Schwellenspannung entsprechend "1" hat, die erste Programmieroperation
gemäß dem von
einer externen Vorrichtung eingegebenen Datenelement ausgeführt, wodurch
die Schwellenspannung unverändert
bleibt oder auf "2" geändert wird.
Wenn die Speicherzelle eine Schwellenspannung entsprechend "1", "2", ..., "2k-1-1" oder "2k-1" hat, wird die k-te
Programmieroperation gemäß dem von
der externen Vorrichtung eingegebenen Datenelement und der Schwellenspannung
der Speicherzelle ausgeführt,
wodurch die Schwellenspannung unverändert bleibt oder auf "2", "3", ..., "2k-1" oder "2k" geändert wird.
Wenn jede Speicherzelle ein Datenelement "1", "2", ..., "2k-1" oder "2k" hat, wird die (k+1)-te
Programmieroperation gemäß dem von
der externen Vorrichtung eingegebenen Datenelement und der Schwellenspannung
der Speicherzelle bewirkt, wodurch die Schwellenspannung unverändert bleibt
oder auf "2", "3", ..., „2k+1-1" oder "2k+1" geändert wird.
Wenn die Speicherzelle eine Schwellenspannung entsprechend "1", "2", ..., "2m-1-1" oder "2m-1" (m ist eine natürliche Zahl,
die n = 2m erfüllt) hat,
wird die m-te Programmieroperation gemäß dem von der externen Vorrichtung
eingegebenen Datenelement und der Schwellenspannung der Speicherzelle
bewirkt, wodurch die Schwellenspannung unverändert bleibt oder auf "1", "2", ..., "2m-1" oder "2m" geändert wird.
In diesen Fällen
hat die Speicherzelle Schwellenspannungen, die verteilt sind, wie
es in den 98A bis 98G gezeigt
ist.
-
Alternativ
dazu kann jede Speicherzelle eine n-Wertzelle sein, die eine erste
Schwellenspannung entsprechend einem Datenelement "1" haben kann, eine zweite Schwellenspannung
entsprechend einem Datenelement "2", eine dritte Schwellenspannung
entsprechen einem Datenelement "3", und so weiter,
und kann eine i-te Schwellenspannung entsprechend einem Datenelement "i" (i ist eine natürliche Zahl gleich oder kleiner
als n und n ist 3 oder eine größere natürliche Zahl)
haben. Dann wird, wenn die Speicherzelle eine Schwellenspannung
entsprechend "1" hat, die erste Programmieroperation
gemäß dem von
einer externen Vorrichtung eingegebenen Datenelement ausgeführt, wodurch
die Schwellenspannung unverändert
bleibt oder zu "2", "3", ..., "m-1" oder "m" (m ist 2 oder eine größere natürliche Zahl)
geändert
wird: Wenn die Speicherzelle eine Schwellenspannung entsprechend "1", "2", ..., "m-1" oder "m" hat, wird die zweite Programmieroperation gemäß dem von
der externen Vorrichtung eingegebenen Datenelement und der Schwellenspannung der
Speicherzelle bewirkt, wodurch die Schwellenspannung unverändert bleibt
oder zu "2", "3", ..., "k-1" oder "k" (k ist eine natürliche Zahl größer als
m) geändert
wird. In diesen Fällen
hat die Speicherzelle Schwellenspannungen, die verteilt sind, wie
es in den 99A und 99B gezeigt
ist.
-
Weiterhin
kann jede Speicherzelle eine n-Wertzelle sein, die eine erste Schwellenspannung entsprechend
einem Datenelement "1" haben kann, eine
zweite Schwellenspannung entsprechend einem Datenelement "2", eine dritte Schwellenspannung entsprechend
einem Datenelement "3", und so weiter,
und kann eine i-te Schwellenspannung entsprechend einem Datenelement "i" (i ist eine natürliche Zahl gleich oder kleiner
als n, und n ist 4 oder eine größere natürliche Zahl)
haben. Dann wird, wenn die Speicherzelle eine Schwellenspannung entsprechend "1", "2", ..., "r-1" oder "r" (r ist 2 oder eine größere natürliche Zahl)
hat, das j-te (j ist 2 oder eine größere natürliche Zahl) gemäß dem von
externen Vorrichtung eingegebenen Datenelement und der Schwellenspannung
der Speicherzelle geschrieben, wodurch die Schwellenspannung unverändert bleibt
oder zu "2", "3", ..., "r" geändert wird.
Wenn die Speicherzelle eine Schwellenspannung entsprechend "1" "2", ...,"s-1" oder "s" hat wird die (j+1)-te Programmieroperation
gemäß dem von
der externen Vorrichtung eingegebenen Datenelement und der Schwellenspannung
der Speicherzelle durchgeführt, wodurch
die Schwellenspannung unverändert
bleibt oder zu "2", "3", ..., "t-1" oder "t" (t ist eine natürliche Zahl größer als
s) geändert
wird. In diesen Fällen
hat die Speicherzelle Schwellenspannungen, die verteilt sind, wie
es in den 100A und 100B gezeigt ist.
-
Weiterhin
kann jede Speicherzelle eine n-Wertzelle haben, die eine erste Schwellenspannung
entsprechend einem Datenelement "1" haben kann, eine
zweite Schwellenspannung entsprechend einem Datenelement "2", eine dritte Schwellenspannung entsprechend
einem Datenelement "3", und so weiter,
und kann eine i-te Schwellenspannung entsprechend einem Datenelement "i" (i ist eine natürliche Zahl gleich oder kleiner
als n, und n ist 3 oder eine größere natürliche Zahl)
haben. Die Zelle wird "1" speichern, wenn
der erste Logikpegel zu ihr eingegeben wird, sie wird "2" speichern, wenn der zweite Logikpegel
zu ihr eingegeben wird, und zwar bei der ersten Programmieroperation.
Unter der Annahme, dass die Speicherzelle "A" bei
der (k-1)-ten Programmieroperation speichern kann (k ist 2 oder
eine größere natürliche Zahl),
wird die Schwellenspannung unerändert
bleiben, wenn der (2k-1)-te Logikpegel zu der Speicherzelle eingegeben
wird, und wird sich zu "A+2k-1" ändern, wenn
der 2k-te Logikpegel zur Speicherzelle eingegeben wird.
-
Ein
Vierwertdatenspeicherungs-Flash-Speicher vom NAND-Typ gemäß dem sechzehnten
Ausführungsbeispiel
der Erfindung wird unter Bezugnahme auf 101, 102 und die 103A und 103B beschrieben werden. Wie beim elften Ausführungsbeispiel
hat dieser Flash-Speicher dieselbe Struktur, wie sie in 48 gezeigt ist, und er enthält Datenschaltungen, die identisch
zu denjenigen sind, die in 57 dargestellt
sind. Er unterscheidet sich vom elften Ausführungsbeispiel bezüglich der
Beziehung zwischen den vier Datenelementen und den Schwellenspannungen,
die jeder Speicher zum Speichern dieser Datenelemente hat.
-
101 stellt die Beziehung zwischen vier Datenelementen "1" bis "4" einerseits
und die Schwellenspannungen, die die Zelle zum Speichern dieser
Datenelemente hat, dar. Die vier Schwellenspannungen entsprechen
jeweils vier Datenelementen "1", "2", "3" und "4". Jede Speicherzelle speichert ein Datenelement "1" oder nimmt einen gelöschten Zustand
an, wenn sie eine negative Schwellenspannung hat. Sie speichert
ein Datenelement "2", wenn sie eine Schwellenspannung
von beispielsweise 0,5 bis 0,8 V hat, speichert ein Datenelement "3", wenn sie eine Schwellenspannung von
beispielsweise 1,5 V bis 1,8 V hat, und ein Datenelement "4", wenn sie eine Schwellenspannung von
beispielsweise 2,5 V bis 2,8 V hat.
-
Beim
sechzehnten Ausführungsbeispiel
wird eine Lesespannung von beispielsweise 1,1 V an das Steuergate
CG irgendeiner ausgewählten
Speicherzelle angelegt. Wenn die Zelle eingeschaltet wird, wird
erfasst, dass die Speicherzelle entweder "1" oder "2" speichert. Wenn die Zelle ausgeschaltet wird,
wird erfasst, dass die Zelle M entweder "3" oder "4" speichert. Dann werden Lesespannungen
von beispielsweise 2,5 V und 0 V sequentiell an das Steuergate CG
angelegt. Es wird dadurch bestimmt, welches Datenelement die Speicherzelle
speichert. Diese Verifizierungsspannungen VCG2V, VCG3V und VCG4V
sind beispielsweise jeweils 0,5 V, 1,4 V und 2,8 V.
-
Wie
das sechzehnte Ausführungsbeispiel
arbeitet, wird detailliert beschrieben werden. Die bei diesem Ausführungsbeispiel
enthaltenen Datenschaltungen sind entwickelt, um Vierwertdaten zu halten.
-
Wie
es in 57 gezeigt ist, weist jede
Datenschaltung zwei Flip-Flops FF1 und FF2 auf. Das Flip-Flop FF1
weist n-Kanal-MOS-Transistoren Qn21,
Qn22 und Qn23 und p-Kanal-MOS-Transistoren
Qp9, Qp10 und Qp11 auf. Das Flip-Flop FF2 weist n-Kanal-MOS-Transistoren
Qn29, Qn30 und Qn31 und p-Kanal-MOS-Transistoren Qp16, Qp17 und Qp18 auf.
Die Flip-Flops FF1 und FF2 kooperieren, um als Leseverstärker zu
arbeiten.
-
Die
Flip-Flops FF1 und FF2 speichern ein Datenelement "1", "2", "3" oder "4" zwischen,
das in eine Speicherzelle zu schreiben ist. Sie erfassen auch ein
Datenelement "1", "2", "3" oder "4", das aus der Speicherzelle gelesen
worden ist, und speichern es zwischen.
-
Das
Flip-Flop FF1 ist mit einer Daten-Eingabe/Ausgabe-Leitung IOA durch
einen n-Kanal-MOS-Transistor Qn28 und mit einer Daten-Eingabe/Ausgabe-Leitung
IOB durch einen n-Kanal-MOS-Transistor
Qn27 verbunden. Das Flip-Flop FF2 ist mit der Daten-Eingabe/Ausgabe-Leitung
IOA durch einen n-Kanal-MOS- Transistor
Qn36 und mit der Daten-Eingabe/Ausgabe-Leitung IOB durch einen n-Kanal-MOS-Transistor
Qn35 verbunden. Die Daten-Eingabe/Ausgabe-Leitungen
IOA und IOB sind mit der Pufferschaltung 5 verbunden (48). Die im Flip-Flop FF1 gehaltenen Lesedaten
werden zu den Leitungen IOA und IOB ausgegeben, wenn ein Signal
CENB1 aktiviert wird. Die im Flip-Flop FF2 gehaltenen Lesedaten
werden zu den Leitungen IOA und IOB ausgegeben, wenn ein Signal
CENB2 aktiviert wird.
-
N-Kanal-MOS-Transistoren
Qn26 entzerren jeweils die Flip-Flops
FF1 und FF2, wenn Signale ECH1 und ECH2 auf einen "H"-Pegel
ansteigen. Ein N-Kanal-MOS-Transistor Qn24 verbindet das Flip-Flop
FF1 mit einem MOS-Kondensator Qd1 oder trennt dasselbe von diesem.
Ein N-Kanal-MOS-Transistor Qn32 verbindet das Flip-Flop FF2 mit
dem MOS-Kondensator Qd1 oder trennt das Flip-Flop FF2 von diesem.
Ein N-Kanal-MOS-Transistor
Qn25 verbindet das Flip-Flop FF1 mit einem MOS-Kondensator Qd2 oder trennt das Flip-Flop
FF1 von diesem. Ein N-Kanal-MOS-Transistoren Qn33 verbindet das Flip-Flop
FF2 mit dem MOS-Kondensator Qd2 oder trennt dasselbe von diesem.
-
P-Kanal-MOS-Transistoren
Qp12C und Q13C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den im Flip-Flop
FF1 gehaltenen Daten, wobei die Eingangsdaten ein Aktivierungssignal
VRFYBAC sind. P-Kanal-MOS-Transistoren
Qp14C und Q15C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß den im
Flip-Flop FF2 gehaltenen
Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBBC sind. N-Kanal-MOS-Transistoren
Qn1C und Qn2C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd1 gemäß den im
Flip-Flop FF2 gehaltenen Daten ändert,
wobei die Eingangsdaten ein Aktivierungssignal VRFYBA1C sind. N-Kanal-MOS-Transistoren
Qn3C und Qn4C bilden eine Schaltung, die die Gatespannung des MOS-Kondensators
Qd2 gemäß dem im
Flip-Flop FF2 gehaltenen Datenelement ändert, wobei die Eingangsdaten
ein Aktivierungssignal VRFYBB1C sind.
-
Die
MOS-Kondensatoren Qd1 und Qd2 sind jeweils durch einen Verarmungs-
bzw. Abreicherungs-n-Kanal-MOS-Transistor gebildet. Sie haben eine
Kapazität,
die viel kleiner als die Bitleitungs-Kapazität ist. Ein N-Kanal-MOS-Transistor
Qn37 lädt den
MOS-Kondensator Qd1 auf eine Spannung VA, wenn er ein Signal PREA
empfängt.
Ein N-Kanal-MOS-Transistor Qn38 lädt den MOS-Kondensator Qd2
auf eine Spannung VB, wenn er ein Signal PREB empfängt. N-Kanal-MOS-Transistoren
Qn39 und Qn40 verbinden die Datenschaltung 6 mit Bitleitungen
BLa und BLb oder trennen dieselbe von diesen, wobei die Eingangsdaten
jeweils Signale BLCA bzw. BLCB sind. Die n-Kanal-MOS-Transistoren Qn37
und Qn38 bilden eine Schaltung, die die Spannungen der Bitleitungen
BLa und BLb steuert.
-
Es
wird erklärt
werden, wie der oben beschriebene EEPROM (das elfte Ausführungsbeispiel) arbeitet,
wenn das Steuergate CG2A auswählt
ist.
-
<Programmierung einer oberen Seite>
-
(1) Programmierung einer
oberen Seite
-
Von
einer externen Vorrichtung zugeführte Daten
werden über
den Daten-Eingabe/Ausgabe-Puffer 5 zur Datenschaltung 6 eingegeben.
Es soll angenommen sein, dass eine Seite 256 Bits enthält und dass
der EEPROM 256 Datenschaltungen 6 enthält. Dann wird eine obere Seite,
die von außen
zugeführt
wird und die 256 Bits enthält,
zu dem ersten Flip-Flop FF1 über
die Leitungen IOA und IOB eingegeben, wenn ein Spalten-Aktivierungssignal
CENB1 auf einem "H"-Pegel ist. Die 58A und 58B stellen
die Beziehung zwischen Schreibdatenelementen und den Potentialen
an den Knoten N3C und N4C im Flip-Flop FF1 dar. Wie es aus 58a gesehen wird, wird "2" geschrieben
werden, wenn das eingegebene Datenelement auf einem hohen Pegel
ist, und wird "1" geschrieben werden,
wenn das eingegebene Datenelement auf einem niedrigen Pegel ist.
-
Wie
ein Datenelement in eine Speicherzelle geschrieben wird, wird unter
Bezugnahme auf das Zeitdiagramm der 59 erklärt werden.
-
Zu
einer Zeit t1s wird das Aktivierungssignal VRFYBAC auf 0 V programmiert,
wodurch eine Bitleitungs-Schreibsteuerspannung Vcc an eine Bitleitung von
der Datenschaltung angelegt wird, die ein Datenelement "1" hält.
Zu einer Zeit t2s wird ein Signal RV1A auf Vcc programmiert, wodurch
0 V an eine Bitleitung von der Datenschaltung angelegt wird, die
ein Datenelement "2" hält. Somit
wird die Bitleitung, über welche "1" in die Speicherzelle geschrieben wird,
auf Vcc programmiert und wird die Bitleitung, über welche "2" in
die Speicherzelle geschrieben wird, auf 0 V programmiert.
-
Zu
einer Zeit t1s werden das Auswahlgate SG1 des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks und die Steuergates CG1A bis CG4A auf Vcc eingestellt. Das
Auswahlgate SG2A ist auf 0 V. Zu einer Zeit t3s wird das ausgewählte Steuergate
CG2A auf eine hohe Spannung Vpp (z.B. 15 V) programmiert und werden
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt. In der Speicherzelle, die mit irgendeiner Datenschaltung
verbunden ist, die "2" hält, werden
aufgrund der Differenz zwischen dem Kanalpotential von 0 V und dem
Potential Vpp des Steuergates Elektronen in das schwebende Gate
injiziert. Die Schwellenspannung der Speicherzelle wird daher größer. In
der Speicherzelle, die mit irgendeiner Datenschaltung verbunden ist,
die "1" hält, wird
das ausgewählte
Gate SG1A ausgeschaltet und wird der Kanal in einen schwebenden
Zustand versetzt.
-
Als
Ergebnis wird in der Speicherzelle, in welche "1" zu
schreiben ist, der Kanal aufgrund der kapazitiven Kopplung mit dem
Steuergate auf etwa 8 V programmiert. Somit werden keine Elektronen
in die Speicherzelle geschrieben. Die Speicherzelle bleibt in einem
gelöschten
Zustand, nämlich
bei einer Speicherung eines Datenelements "1".
Während
der Programmieroperation bleiben die Signale SAN1, SAN2, PREB, BLCB
auf einem "H"-Pegel, bleiben Signale
SAP1, SAP2, VRFYBA1C, RV1B, RV2B, ECH1 und ECH2 auf einem "L"-Pegel und bleibt die Spannung VB auf
0 V.
-
(2) Verifizierungsleseoperation
einer oberen Seite
-
Nach
der Programmieroperation wird bestimmt, ob Daten ausreichend geschrieben
worden sind. (Das heißt,
dass eine Schreibverifizierungsoperation ausgeführt wird.) Wenn die Schwellenspannung
der Speicherzelle einen erwünschten
Wert erreicht hat, werden die in der Datenschaltung gehaltenen Daten
zu "1" geändert. Sonst
werden die in der Datenschaltung gehaltenen Daten unverändert gelassen
und werden die Daten wieder in die Speicherzelle geschrieben. Ein
Schreiben von Daten und eine Schreibverifizierungsoperation werden
wiederholt, bis alle Speicherzellen, in welche "2" geschrieben werden
muss, dahin gelangen, eine erwünschte Schwellenspannung
zu haben. Jedes Mal wenn das Schreiben von Daten und eine Schreibverifizierungsoperation
wiederholt werden, wird die Spannung Vpp, die an das Steuergate
CG2A angelegt ist, um beispielsweise 0,3 V erhöht, wie es in 96A gezeigt ist. Somit wird die Spannung Vpp stufenweise jedes
Mal um 0,3 V von dem Anfangswert von 15 V aus angehoben.
-
Wie
die Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 60 erklärt werden.
-
Zuerst
werden zu einer Zeit t1yc die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Zu
einer Zeit t2yc wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählten Blocks
auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung auf
1,8 V bleiben. Zur Zeit t3yc steigen die Signale BLCA und BLCB auf
einen "H"-Pegel an und werden die
Potentiale der Bitleitungen an die Knoten N1 und N2 angelegt. Dann
fallen die Signale BLCA und BLCB auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt.
-
Darauf
folgend wird zur Zeit t4yc das Signal VRFYBAC auf einen "L"-Pegel programmiert. Dann wird ein p-Kanal-MOS-Transistor Qp12C
eingeschaltet und wird der Knoten N1 auf Vcc in der Datenschaltung
programmiert, die ein Schreibdatenelement "1" hält. Der
Knoten N1 wird nämlich
so auf Vcc programmiert, dass "1" in die Speicherzelle
geschrieben werden kann. Der p-Kanal-MOS-Transistor Qp12C wird ausgeschaltet,
wenn "2" in die Speicherzelle
zu schreiben ist. Wenn die Speicherzelle ausreichend auf "2" programmiert ist, wird der Knoten N1
auf Vcc programmiert. Wenn die Speicherzelle unzureichend auf "2" programmiert ist, ist der Knoten N1
auf 0V programmiert. Dann ändern
sich die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel und einen "H"-Pegel,
was das Flip-Flop FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
-
Darauf
folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer Zeit t5yc wird die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob die Speicherzelle, die mit der Datenschaltung verbunden ist, die
die Schreibdaten "2" hält, ausreichend
auf Daten "2" programmiert worden
ist oder nicht. Wenn die Speicherzelle "2" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Speicherzelle "2" nicht speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die Daten "2" in der Datenschaltung
gehalten werden. Ein Datenelement "1" bleibt
unverändert,
in welcher Datenschaltung auch immer, die es hält.
-
Wenn
die Schwellenspannungen von allen ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird das Signal VRTC auf beispielsweise die Vorladespannung Vcc
programmiert. Wenn es gerade eine Speicherzelle gibt, die unzureichend
programmiert ist, ist der Knoten N4C der Datenschaltung, mit welcher
diese Speicherzelle verbunden ist, auf einem "H"-Pegel.
Der n-Kanal-MOS-Transistor Qn5C wird eingeschaltet, und das Signal
VRTC fällt
von der Vorladespannung Vcc ab. Wenn alle ausgewählten Speicherzellen ausreichend
programmiert sind, fallen die Knoten N4C in den Datenschaltungen 6-0, 6-1,
..., 6-m-1 und 6-m auf einen "L"-Pegel ab. Als Ergebnis werden
die n-Kanal-MOS-Transistoren Qn5C in jeder Datenschaltung ausgeschaltet,
wodurch das Signal VRTC auf der Vorladespannung bleibt. Somit ist
es bestimmt, dass alle ausgewählten
Speicherzellen programmiert worden sind.
-
Die
Schwellenspannung entsprechend "2", das so geschrieben
ist, ist im Bereich von 0,5 V bis 0,8 V, da der Aufwärtsstufenwert
für die
an das Steuergate CGA angelegte Spannung Vpp 0,3 V ist.
-
<Programmierung einer unteren Seite>
-
(1) Lesen, Invertieren
eines Ladens einer oberen Seite
-
Bevor
die untere Seite programmiert wird, wird die obere Seite in den
Speicherzellen programmiert. Somit speichert jede Speicherzelle
entweder "1" oder "2", wie es in 61A gezeigt
ist. Ein Datenelement der in den Speicherzellen gespeicherten oberen
Seite wird gelesen und in dem Flip-Flop FF1 gehalten, und zwar zur
selben Zeit, zu welcher ein Datenelement der unteren Seite zu dem
Flip-Flop FF1 über
die Daten-Eingabe/Ausgabe-Leitungen IOA und IOB von der externen
Vorrichtung aus eingegeben wird.
-
Wie
das Datenelement der oberen Seite aus einer Speicherzelle gelesen
wird, wird unter Bezugnahme auf die 61A bis 61C und das Zeitdiagramm der 62 erklärt
werden.
-
Zuerst
werden zu einer Zeit t1yd die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Zu
einer Zeit t2yd wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0,5 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0,5 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 0,5 V oder darüber ist, wird die Bitleitungs-Spannung auf
1,8 V bleiben. Zur Zeit t3yd steigen die Signale BLCA und BLCB auf
einen "H"-Pegel an und werden die
Potentiale der Bitleitungen an die Knoten N1 und N2 angelegt. Dann
fallen die Signale BLCA und BLCB auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt.
-
Darauf
folgend ändern
sich die Signale SAN2 und SAP2 jeweils zu einem "L"-Pegel
und einem "H"-Pegel, was das Flip-Flop
FF2 deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2
entzerrt wird. Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Die Signale SAN2 und SAP2 ändern sich
wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel. Zu einer t4yd wird die Spannung
am Knoten N1 dadurch erfasst und zwischengespeichert. Zu dieser
Zeit werden die Knoten N5C und N6C im Flip-Flop FF2 auf die in
-
61B gezeigten Potentiale eingestellt. Die ausgelesene
obere Seite wird nicht invertiert und das Flip-Flop FF1 hält die Daten
vollständig,
wenn es sie zur Zeit t4yd erfasst.
-
Das
von der externen Vorrichtung zum Flip-Flop FF1 eingegebene Schreibdatenelement
der unteren Seite ist in den 63A und 63B dargestellt. Wenn dieses Datenelement auf
einem "H"-Pegel ist, wird
es nicht in die Speicherzelle geschrieben. Die Speicherzelle behält daher
ein Speichern von entweder "1" oder "2". Wenn das Datenelement auf einem "L"-Pegel
ist, wird es in die Speicherzelle geschrieben. In diesem Fall speichert
der Speicher "3" anstelle von "1" oder speichert er "4" anstelle
von "2".
-
Somit
werden die Knoten N3C und N4C im Flip-Flop FF1 und die Knoten N5C
und N6C im Flip-Flop FF2 während
des Programmierens der unteren Seite auf die in den 73A und 73B gezeigten
Potentiale eingestellt.
-
(2) Programmieren einer
unteren Seite
-
Die
untere Seite wird nahezu auf dieselbe Weise programmiert, wie es
in 74 erklärt
worden ist. Jedoch wird die Bitleitungs-Schreibsteuerspannung zur
Zeit t1pq auf 1,4 V programmiert, was die Bitleitung BLa auf 1,4
V einstellt. Wie die untere Seite programmiert wird, wird unter
Bezugnahme auf das Zeitdiagramm der 74 erklärt werden.
-
Wenn
ein Spannungsabfall äquivalent
zu der Schwellenspannung des n-Kanal-MOS-Transistors Qn39 ein Problem
macht, genügt
es, den Pegel des Signals BLCA anzuheben. Dann fällt das Signal PREA auf einen "L"-Pegel ab, was die Bitleitung BLa in
einen schwebenden Zustand versetzt. Zu einer Zeit t2yq wird das
Signal VRFYBA1C auf Vcc programmiert. Der n-Kanal-MOS-Transistor Qn2C wird eingeschaltet,
um entweder "1" oder "3" zu halten. Eine Bitleitungs-Steuerspannung
von 0 V wird an die Bitleitungen angelegt. Wie es in 74 gezeigt ist, kann das Signal VRFYBA1C auf einen
Pegel eingestellt werden, der höher
als Vcc ist. Zu einer Zeit t3pq wird das Signal VRFYBAC auf 0 V
programmiert, wird eine Bitleitungs-Steuerspannung von Vcc an die Bitleitungen
von irgendeiner Datenschaltung angelegt, die entweder "1" oder "2" hält.
-
Als
Ergebnis wird die Bitleitung zum Schreiben von "1" oder "2" auf Vcc programmiert, die Bitleitung
zum Schreiben von "3" auf 1 V, die Bitleitung zum
Schreiben von "4" auf 0 V.
-
Zu
einer Zeit t1pq werden das Auswahlgate SG1A des durch die Steuergate/Auswahlgate-Treiberschaltung 21 ausgewählten Blocks
und die Steuergates CG1A bis CG4A auf Vcc eingestellt. Das Auswahlgate
SG2A ist auf 0 V. Zur Zeit t4pq wird das ausgewählte Steuergate CG2A auf eine
hohe Spannung Vpp (z.B. den Anfangswert von 17,3 V) programmiert
und werden die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A auf eine Spannung VM (z.B. 10 V)
eingestellt ist. In der mit irgendeiner Datenschaltung, die "4" hält,
verbundenen Speicherzelle werden aufgrund der Differenz zwischen
dem Kanalpotential von 0 V und dem Potential Vpp des Steuergates
Elektronen in das schwebende Gate injiziert. Die Schwellenspannung
der Speicherzelle steigt daher an. In der mit irgendeiner Datenschaltung,
die "3" hält, verbundenen
Speicherzelle werden aufgrund der Differenz zwischen dem Kanalpotential von
1 V und dem Potential Vpp des Steuergates Elektronen zum schwebenden
Gate injiziert. Die Schwellenspannung dieser Zelle steigt daher
an.
-
Der
Kanal der Speicherzelle, die auf "3" zu programmieren
ist, wird auf ein Potential von 1,4 V programmiert, um weniger Elektronen
in das schwebende Gate zu injizieren, als in der Speicherzelle,
die auf "4" zu programmieren
ist. In der mit der Datenschaltung, die entweder "1" oder "2" hält, verbundenen
Speicherzelle ist die Differenz zwischen dem Potential des Kanals
und dem Potential Vpp des Steuergates so klein, dass im Effekt keine
Elektronen in das schwebende Gate injiziert werden. Somit bleibt die
Schwellenspannung der Speicherzelle unverändert. Während der Programmieroperation
bleiben die Signale SAN1, SAN2, PREB, BLCB auf einem "H"-Pegel,
bleiben die Signale SAP1, SAP2, VRFYBA1C, RV1A, RV1B, RV2B, ECH1
und ECH2 auf einem "L"-Pegel und bleibt
die Spannung VB auf 0 V.
-
(3) Verifizierungsleseoperation
einer unteren Seite
-
Nach
der Programmieroperation wird bestimmt, ob Daten ausreichend geschrieben
worden sind. (Das heißt,
dass eine Schreibverifizierungsoperation ausgeführt wird.) Wenn die Schwellenspannung
der Speicherzelle einen erwünschten
Wert erreicht hat, wird der Knoten N3C des Flip-Flops FF1 auf einen "H"-Pegel programmiert. Sonst werden die in
der Datenschaltung gehaltenen Daten unverändert gelassen und werden die
Daten wieder in die Speicherzelle geschrieben. Ein Schreiben von
Daten und eine Schreibverifizierungsoperation werden wiederholt,
bis irgendeine Speicherzelle, in welche "3" geschrieben
werden muss, und irgendeine Speicherzelle, in welche "4" geschrieben werden muss, dahin gelangen,
erwünschte
Schwellenspannungen zu haben.
-
Jedes
Mal wenn das Schreiben von Daten und die Schreibverifizierungsoperation
wiederholt werden, wird die an das Steuergate CG2A angelegte Spannung
Vpp um beispielsweise 0,8 V erhöht,
wie es in 96B gezeigt ist. Somit wird
die Spannung Vpp stufenweise jedes Mal um 0,8 V von dem Anfangswert
von 17,3 V aus angehoben.
-
Wie
diese Schreibverifizierungsoperation bewirkt wird, wird unter Bezugnahme
auf das Schaltungsdiagramm der 57 und
das Zeitdiagramm der 102 erklärt werden.
-
Zur
Zeit t1ys die Spannungen VA und VB jeweils auf 1,8 V und 1,5 V eingestellt.
Die Bitleitungen BLa und BLb werden dadurch auf 1,8 V und 1,5 V
eingestellt. Die Signale BLCA und BLCB fallen auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Die Bitleitungen BLa und BLb nehmen daher einen schwebenden
Zustand an. Die Signale PREB fallen auf einen "L"-Pegel
ab, was die Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Dann wird das
Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 1,4 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1,4 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,4 V. Wenn die Schwellenspannung 1,4 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Zur
Zeit t2ys steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die Knoten N1 und N2 angelegt. Dann fallen die
Signale BLCA und BLCB auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator
Qd2 trennt. Zur Zeit t3ys wird das Signal VRFYBA1C auf ein Potential
kleiner als Vcc programmiert. Der n-Kanal-MOS-Transistor Qn2C wird
eingeschaltet, um entweder "2" oder "4" zu halten, und der Knoten N1 wird auf
0 V entladen. Zur Zeit t4ys wird das Signal VRFYBAC auf einen "L"-Pegel programmiert. Dann wird in der
Datenschaltung, die entweder "1" oder "2" hält,
der p-Kanal-MOS-Transistor Qp12C eingeschaltet und wird der Knoten
N1 auf Vcc programmiert. Der Knoten N1 wird nämlich auf Vcc programmiert,
um "1" oder "2" in die Speicherzelle zu schreiben,
und auf 0 V, um "4" in die Speicherzelle
zu schreiben.
-
Dann ändern sich
die Signale SAN1 und SAP1 jeweils auf einen "L"-Pegel
und einen "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Darauf folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
wieder jeweils auf einen "H"-Pegel und einen "L"-Pegel. Zur Zeit t5ys wird die Spannung
am Knoten N1 erfasst und zwischengespeichert. Es wird bestimmt,
ob mit der Datenschaltung, die die Schreibdaten "3" hält, verbundene
Speicherzelle ausreichend auf Daten "3" programmiert
worden ist oder nicht. Wenn die Speicherzelle "3" speichert,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch die in die Speicherzelle zu schreibenden Daten
zu "1" geändert werden.
Wenn die Daten in der Speicherzelle nicht "3" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N2 und speichert
sie zwischen, wodurch die Daten "3" in der Datenschaltung behalten
werden. Die Datenelemente "1", "2" und "4" bleiben
unverändert,
in welcher Datenschaltung auch immer sie gehalten sind.
-
Als
nächstes
wird das ausgewählte
Steuergate auf 2,8 V eingestellt. Wenn die Schwellenspannungen der
ausgewählten
Speicherzelle 2,8 V oder darunter ist, ist die Bitleitungs-Spannung kleiner
1,5 V. Wenn die Schwellenspannung 2,5 V oder darüber ist, bleibt die Bitleitungs-Spannung
auf 1,8 V. Zur Zeit t6ys werden die Signale PREA und PREB auf Vcc eingestellt.
Die Knoten N1 und N2 werden dadurch jeweils auf 1,8 V und 1,5 V
eingestellt und in einen schwebenden Zustand versetzt. Dann werden
zur Zeit t7ys die Signale BLCA und BLCB auf einen "H"-Pegel eingestellt, was die Bitleitung
BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt.
-
Zur
Zeit t8ys fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. In jeder
Datenschaltung, die "1" oder "2" hält,
und in jeder Datenschaltung, die "1" hält, weil "3" ausreichend programmiert worden ist, wird
der p-Kanal-MOS-Transistor Qp12 eingeschaltet und wird der Knoten
N1 auf Vcc programmiert.
-
Die
Signale SAN1 und SAP1 ändern
sich zu einem "L"-Pegel und einem "H"-Pegel. Das Flip-Flop FF1 wird dadurch
deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel
an, was das Flip-Flop
FF1 entzerrt. Dann steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Die Signale SAN1 und SAP1 ändern sich
zu einem "H"-Pegel und einem "L"-Pegel. Zur Zeit t9ys wird dadurch die
Spannung am Knoten N1 erfasst und zwischengespeichert. Es wird somit bestimmt,
ob die mit der Datenschaltung, die die Schreibdaten "4" hält,
verbundene Speicherzelle ausreichend auf Daten "4" programmiert
worden ist oder nicht. Wenn diese Speicherzelle "4" speichert, erfasst
das Flip-Flop FF1 die Spannung am Knoten N1 und speichert sie zwischen,
wodurch die in die Speicherzelle zu schreibenden Daten zu "2" geändert werden.
Kein Datenelement wird darauf folgend in die Speicherzelle geschrieben.
Wenn die Daten in der Speicherzelle nicht "4" sind,
erfasst das Flip-Flop FF1 die Spannung am Knoten N1 und speichert
sie zwischen, wodurch das Datenelement "4" in
der Datenschaltung gehalten wird und daraus in die Speicherzelle
geschrieben wird. Dann wird ein zusätzliches Schreiben von Daten
ausgeführt.
Die Datenelemente "1", "2" und "3" bleiben
unverändert,
in welcher Datenschaltung auch immer sie gehalten werden.
-
Wenn
die Schwellenspannungen aller ausgewählten Speicherzellen die erwünschten
Werte erreichen, fallen die Knoten N4C in den Datenschaltungen auf
einen "L"-Pegel ab. Somit
ist es dann, wenn die Knoten N4C auf einem "L"-Pegel
gefunden werden, bekannt, dass alle ausgewählten Speicherzellen die erwünschten
Schwellenspannungen haben. Um zu bestimmen, dass die Zellen programmiert
sind, kann der in 57 gezeigte Schreibbeendigungs-Erfassungstransistor
Qn5C verwendet werden. Nachdem die Leseverifizierung bewirkt ist,
wird ein Signal VRTC auf beispielsweise die Vorladespannung Vcc programmiert.
Wenn es gerade eine Speicherzelle gibt, die unzureichend programmiert
ist, ist der Knoten N4C der Datenschaltung, mit welcher diese Speicherzelle
verbunden ist, auf einem "H"-Pegel. Der n-Kanal-MOS-Transistor
Qn5C wird eingeschaltet, und das Signal VRTC fällt von der Vorladespannung ab.
Wenn alle ausgewählten
Speicherzellen ausreichend programmiert sind, fallen die Knoten
N4C in den Datenschaltungen 6-0, 6-1, ..., 6-m-1 und 6-m auf
einen "L"-Pegel ab. Als Ergebnis werden die n-Kanal-MOS-Transistoren
Qn5C in jeder Datenschaltung ausgeschaltet, wodurch das Signal VRCC auf
der Vorladespannung bleibt. Somit wird bestimmt, dass alle ausgewählten Speicherzellen
programmiert worden sind.
-
<Lesen einer oberen Seite>
-
Die
obere Seite wird von dem sechzehnten Ausführungsbeispiel gelesen, indem
erfasst wird, ob jede Speicherzelle entweder "1" oder "3", oder entweder "2" oder "4" speichert.
-
Wie
die obere Seite gelesen wird, wird unter Bezugnahme auf das Zeitdiagramm
der 103A und 103B erklärt werden.
-
Zuerst
werden zur Zeit t1RD die Spannungen VA und VB jeweils auf 1,8 V
und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch
auf 1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen
auf einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt. Dann wird das
Steuergate CG2A des durch die Steuergate/Auswahlgate- Treiberschaltung 21 ausgewählten Blocks
auf 1,1 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1,1 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 1,1 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Zur
Zeit t2RD steigen die Signale BLCA und BLCB auf einen "H"-Pegel an und werden die Potentiale
der Bitleitungen an die MOS-Kondensatoren Qd1 und Qd2 angelegt.
Darauf folgend fallen die Signale BLCA und BLCB wieder auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Die Signale SAN2 und SAP2 ändern sich jeweils zu einem "L"-Pegel und einem "H"-Pegel,
was das Flip-Flop FF2 deaktiviert. Das Signal ECH2 steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2 entzerrt
wird. Die Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Zur Zeit t3RD ändern sich
die Signale SAN2 und SAP2 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF2 erfasst, dass die Speicherzelle entweder "1" oder "2" oder
entweder "3" oder "4" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert. Zu dieser Zeit werden die Knoten
N5C und N6C im Flip-Flop FF2 auf das in 70 gezeigte
Potential eingestellt.
-
Das
ausgewählte
Steuergate wird auf 2,5 V programmiert. Wenn die Schwellenspannung
der ausgewählten
Speicherzelle 2,5 V oder darunter ist, wird die Bitleitungs-Spannung
kleiner als 1,5 V sein. Wenn die Schwellenspannung 2,5 V oder darüber ist, wird
die Bitleitungs-Spannung auf 1,8 V bleiben. Zur Zeit t4RD steigen
die Signale PREA und PREB auf einen "H"-Pegel an. Die Knoten
N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren Qd1 und Qd2,
werden auf 1,8 V und 1,5 V vorgeladen. Dann fallen die Signale PREA
und PREB auf einen "L"-Pegel ab, wodurch
die Knoten N1 und N2 einen schwebenden Zustand annehmen.
-
Zur
Zeit t5RD steigen die Signale BLCA und BLCB auf einen "H"-Pegel an. Dann fallen die Signale BLCA
und BLCB auf einen "L"-Pegel ab, was die Bitleitung
BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator
Qd2 trennt. Die Signale SAN1 und SAP1 ändern sich zu einem "L"-Pegel
und einem "H"-Pegel, was das Flip-Flop
FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt. Darauf
folgend steigen die Signale RV1A und RV1B auf einen "H"-Pegel an. Zur Zeit t6RD ändern sich
die Signale SAN1 und SAP1 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Daher erfasst das Flip-Flop FF1, dass das in der Speicherzelle gespeicherte
Datenelement ein Datenelement "4" ist, oder irgendeines
der anderen Datenelemente "1", "2" oder "3".
Die Daten, die diese Tatsache anzeigen, werden zwischengespeichert.
Zu dieser Zeit werden die Knoten N3C im Flip-Flop FF1 und der Knoten
N5C im Flip-Flop FF2 auf die in 71 gezeigten
Potentiale eingestellt.
-
Das
Datenelement wird aus der Speicherzelle gelesen, wie es in 103B dargestellt ist. Zur Zeit t7RD werden die
Spannungen VA und VB jeweils auf 1,8 V und 1,5 V eingestellt. Die
Bitleitungen BLa und BLb werden dadurch auf 1,8 V und 1,5 V eingestellt.
Die Signale BLCA und BLCB fallen auf einen "L"-Pegel
ab, was die Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung
BLb von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und
BLb nehmen daher einen schwebenden Zustand an. Die Signale PREB
fallen auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden
der MOS-Kondensatoren Qd1 und Qd2, in einen schwebenden Zustand
versetzt. Dann wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 0 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
0 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 1 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben.
-
Darauf
folgend steigen zur Zeit t8RD die Signale BLCA und BLCB auf einen "H"-Pegel an, wodurch die Datenelemente
auf den Bitleitungen jeweils zu den MOS-Kondensatoren Qd1 bzw. Qd2
transferiert werden. Dann fallen die Signale BLCA und BLCB auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt.
Zur Zeit t9RD steigt das Signal VRFYBA1C auf einen "H"-Pegel an. Der Knoten N5C im Flip-Flop
FF2 ist zu dieser Zeit auf einen "H"-Pegel
eingestellt. Dies ist deshalb so, weil das Datenelement, das gelesen
wird, "3" oder "4" ist, wie es aus 71 verstanden
werden kann. In diesem Fall wird der in 57 gezeigte n-Kanal-MOS-Transistor Qn2C eingeschaltet.
Der Knoten N1, aus welchem entweder "3" oder "4" gelesen wird, wird mit der Erdung verbunden.
-
Zur
Zeit t10RD fällt
das Signal VRFYBAC auf einen "L"-Pegel ab. Der Knoten
N3C im Flip-Flop FF1 ist zu dieser Zeit auf einem "H"-Pegel. Dies ist deshalb so, weil die
Daten, die gelesen werden, "3" sind, wie es aus 71 zu sehen ist. In diesem Fall wird der in 57 gezeigte n-Kanal-MOS-Transistor Qn12C eingeschaltet. Der
Knoten N1, aus welchem "4" gelesen wird, wird
auf Vcc programmiert. Die Signale SAN1 und SAP1 ändern sich zu einem "L"-Pegel und einem "H"-Pegel,
was das Flip-Flop FF1 deaktiviert. Das Signal ECH1 steigt auf einen "H"-Pegel an, was das Flip-Flop FF1 entzerrt.
Darauf folgend steigen Signale RV1A und RV1B auf einen "H"-Pegel an. Zur Zeit t11RD ändern sich
die Signale SAN1 und SAP1 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF1 erfasst die Potentiale an den Knoten N3C und N4C. Die
Daten, die diese Tatsache zeigen, werden zwischengespeichert. Zu
dieser Zeit werden die Knoten N3C und N4C im Flip-Flop FF1 und die
Knoten N5C und N6C im Flip-Flop FF2 auf die in 72 gezeigten Potentiale eingestellt.
-
Die
Datenelemente der oberen Seite werden zu den Knoten N3C und N4C
des Flip-Flops FF1 gelesen (siehe 72).
Genauer gesagt sind dann, wenn das Datenelement, das gelesen wird,
entweder "1" oder "3" ist, die Knoten N3C und N4C jeweils
auf einem "L"-Pegel und einem "H"-Pegel, und dann, wenn das Datenelement,
das gelesen wird, entweder "2" oder "4" ist, sind die Knoten N3C und N4C jeweils auf
einem "H"-Pegel und einem "L"-Pegel. Wie es in Zusammenhang mit der
Programmierung der oberen Seite beschrieben ist, ist jedes Datenelement
der oberen Seite entweder "1" oder "3" oder entweder "2" oder "4". Es wird festgestellt, dass das programmierte
Schreibdatenelement zuverlässig
in das Flip-Flop FF1
gelesen worden ist. Das nun im Flip-Flop FF1 gehaltene Datenelement
wird von dem Speicherchip ausgegeben, wenn das Signal CENB1 aktiviert
wird.
-
<Lesen einer unteren Seite>
-
Die
untere Seite wird vom sechzehnten Ausführungsbeispiel gelesen, indem
bestimmt wird, ob jede Speicherzelle entweder "1" oder "2", oder entweder "3" oder "4" speichert.
-
Wie
die untere Seite gelesen wird, wird unter Bezugnahme auf das Zeitdiagramm
der 103A erklärt werden.
-
Zuerst
werden zu einer Zeit t1RD die Spannungen VA und VB jeweils auf 1,8
V und 1,5 V eingestellt. Die Bitleitungen BLa und BLb werden dadurch auf
1,8 V und 1,5 V eingestellt. Die Signale BLCA und BLCB fallen auf
einen "L"-Pegel ab, was die
Bitleitung BLa von dem MOS-Kondensator Qd1 und die Bitleitung BLb
von dem MOS-Kondensator Qd2 trennt. Die Bitleitungen BLa und BLb
nehmen daher einen schwebenden Zustand an. Die Signale PREB fallen
auf einen "L"-Pegel ab, was die
Knoten N1 und N2, d.h. die Gate-Elektroden der MOS-Kondensatoren
Qd1 und Qd2, in einen schwebenden Zustand versetzt.
-
Dann
wird das Steuergate CG2A des durch die Steuergate/Auswahlgate-Treiberschaltung
21 ausgewählten
Blocks auf 1,1 V programmiert, während
die nicht ausgewählten
Steuergates CG1A, CG3A und CG4A und die Auswahlgates SG1A und SG2A
auf Vcc eingestellt werden. Wenn die Schwellenspannung der ausgewählten Speicherzelle
1,1 V oder darunter ist, ist die Bitleitungs-Spannung kleiner als
1,5 V. Wenn die Schwellenspannung 1,1 V oder darüber ist, wird die Bitleitungs-Spannung
auf 1,8 V bleiben. Zur Zeit t2RD steigen die Signale BLCA und BLCB
auf einen "H"-Pegel an und werden
die Potentiale der Bitleitungen an die MOS-Kondensatoren Qd1 und
Qd2 angelegt.
-
Darauf
folgend fallen die Signale BLCA und BLCB wieder auf einen "L"-Pegel ab, was die Bitleitung BLa von
dem MOS-Kondensator
Qd1 und die Bitleitung BLb von dem MOS-Kondensator Qd2 trennt. Die Signale
SAN2 und SAP2 ändern
sich jeweils zu einem "L"-Pegel und einem "H"-Pegel, was das Flip-Flop FF2 deaktiviert. Das Signal ECH2
steigt auf einen "H"-Pegel an, wodurch das Flip-Flop FF2 entzerrt
wird. Die Signale RVA2A und RV2B steigen dann auf einen "H"-Pegel an. Zur Zeit t3RD ändern sich
die Signale SAN2 und SAP2 wieder jeweils zu einem "H"-Pegel und einem "L"-Pegel.
Die Spannung am Knoten N1 wird dadurch erfasst und zwischengespeichert.
Das Flip-Flop FF2 erfasst, dass die Speicherzelle entweder "1" oder "2" oder
entweder "3" oder "4" speichert. Die Daten, die diese Tatsache
zeigen, werden zwischengespeichert. Zu dieser Zeit werden die Knoten
N5C und N6C im Flip-Flop FF2 auf das in 70 gezeigte
Potential eingestellt.
-
Die
Datenelemente der unteren Seite werden zu den Knoten N5C und N6C
des Flip-Flops FF1 gelesen (siehe 70).
Genauer gesagt sind dann, wenn das Datenelement, das gelesen wird,
entweder "1" oder "2" ist, die Knoten N5C und N6C jeweils
auf einem "L"-Pegel und einem "H"-Pegel, und dann, wenn das Datenelement,
das gelesen wird, entweder "3" oder "4" ist, sind die Knoten N5C und N6C jeweils auf
einem "H"-Pegel und einem "L"-Pegel. Wie es in Zusammenhang mit der
Programmierung der unteren Seite beschrieben ist, ist jedes Datenelement
der unteren Seite entweder "1" oder "2" oder entweder "3" oder "4". Es wird festgestellt, dass das programmierte
Schreibdatenelement zuverlässig
in das Flip-Flop
FF2 gelesen worden ist. Das nun im Flip-Flop FF2 gehaltene Datenelement
wird von dem Speicherchip ausgegeben, wenn das Signal CENB2 aktiviert
ist.
-
Wie
es aus dem obigen verstanden werden kann, dauert das Lesen der unteren
Seite bis zu der Zeit t3RD an, zu welcher das Lesen der oberen Seite begonnen
wird. Somit kann die obere Seite gelesen werden, während die
untere Seite von dem Speicherchip zu einer externen Vorrichtung
ausgegeben wird. Das bedeutet, dass das Datenelement der unteren Seite
im Flip-Flop FF1 zur Zeit t3RD zwischengespeichert wird und das
Lesen der oberen Seite andauert, wie es in den 103A und 103B gezeigt
ist, und zwar beginnend zur selben Zeit, d.h. zur Zeit t3RD. Somit
kann die obere Seite virtuell mit hoher Geschwindigkeit gelesen
werden.
-
Ein
Halbleiterspeicher gemäß dem siebzehnten
Ausführungsbeispiel
wird unter Bezugnahme auf die 104, 106A, 106B, 107A und 108B beschrieben
werden. Dieses Ausführungsbeispiel
ist dadurch charakterisiert, dass die untere Seite nicht in den
Speicherzellen programmiert wird, bevor die obere Seite vollständig programmiert
ist.
-
104 stellt die Speicherzellenanordnung des siebzehnten
Ausführungsbeispiels
dar. Wie es in 104 gezeigt ist, weist die
Anordnung Vierwertzellen auf, die jeweils ein 2-Bit-Datenelement speichern können.
-
Genauer
gesagt sind 16 Millionen (16 × 106) Speicherzellen in 4000 Zeilen und 4000
Spalten angeordnet. Da jede Speicherzelle 2 Bits von Daten speichern
kann, hat die Speicherzellenanordnung eine Speicherkapazität von 32
Megabits.
-
Spaltenadressen
sind den Bitleitungen zugeteilt. Richtiger ausgedrückt ist
eine Spaltenadresse C1 der Bitleitung BL1 zugeteilt, eine Spaltenadresse C2
der Bitleitung BL2, und so weiter. Zwei Zeilenadressen sind einer
jeweiligen Wortleitung zugeteilt. Die erste Zeilenadresse ist die
Adresse der oberen Seite und die zweite Zeilenadresse ist die Adresse der
unteren Seite. Um genauer zu sein, sind Zeilenadressen Q1U und Q1L
der Wortleitung WL1 zugeteilt, Zeilenadressen Q2U und Q2L der Wortleitung
WL2, und so weiter. Hier bezeichnen "U" eine
Zeilenadresse der oberen Seite und "L" eine
Zeilenadresse der unteren Seite.
-
105 zeigt die Speicherzellenanordnung mit herkömmlichen
Vierwertzellen, die entwickelt ist, um eine Seite derselben Größe wie beim
siebzehnten Ausführungsbeispiel
zu programmieren (104). In dieser Anordnung werden
4000 Bits gleichzeitig geschrieben. Zwei Bits, die jeweils zu oberen
und unteren Seiten gehören,
werden gleichzeitig in jede Speicherzelle gleichzeitig geschrieben und
nicht sequentiell, wie beim siebzehnten Ausführungsbeispiel. Die Speicherzellenanordnung
hat dieselbe Speicherkapazität
wie das siebzehnte Ausführungsbeispiel,
d.h. die Speicherkapazität
von 32 Megabits. Somit sind 16 Millionen Speicherzellen in 2000
Zeilen und 8000 Spalten angeordnet. Die Speicherzellenanordnung
hat daher 2000 Bitleitungen.
-
In
der Speicherzellenanordnung der 105 sind
zwei Spaltenadressen jeder Bitleitung zugeteilt. Genauer gesagt
sind Spaltenadressen A1 und A2 der Bitleitung BL1 zugeteilt, Spaltenadressen
A3 und A4 der Bitleitung BL2, und so weiter. Eine Zeilenadresse ist
jeder Wortleitung zugeteilt. Das bedeutet, dass eine Zeilenadresse
R1 der Wortleitung WL1 zugeteilt ist, eine Zeilenadresse R2 der
Wortleitung WL2, und so weiter.
-
Wie
die Speicherzellenanordnung des siebzehnten Ausführungsbeispiels programmiert
wird, wird erklärt
werden. Zuerst wird eine Schreiboperation der unteren Seite, in
welcher Daten niedrigerer Bits nahezu gleichzeitig in die Speicherzellen
entsprechend einer Seite geschrieben werden, ausgeführt, nach
einer Schreiboperation der oberen Seite, bei welcher Daten höherer Bits
nahezu gleichzeitig in die Speicherzellen entsprechend einer Seite
geschrieben werden, sequentiell ausgeführt ist. Das bedeutet, dass
4000 Bits, die eine obere Seite bilden, gleichzeitig in die 4000
Speicherzellen geschrieben werden, die mit der Wortleitung WL1 verbunden
sind, welcher die Zeilenadresse Q1U zugeteilt ist. Dann werden die
nächsten
4000 Bits, die eine weitere obere Seite bilden, gleichzeitig in
die 4000 Speicherzellen geschrieben, die mit der Wortleitung WL2
verbunden sind, welcher die Zeilenadresse Q2U zugeteilt ist. Gleichermaßen werden
4000 Bits, die eine obere Seite bilden, in die 4000 Speicherzellen
geschrieben, die mit jeder der anderen Wortleitungen WL3 bis WL4000
verbunden sind, welchen die Zeilenadressen Q3U bis Q4000U jeweils
zugeteilt sind.
-
Wie
die in 5 gezeigte Speicherzellenanordnung
programmiert wird, wird erklärt
werden. Zuerst werden 2000 2-Bit-Datenelemente,
die eine obere Seite und eine untere Seite bilden, in die 2000 Speicherzellen
geschrieben, die mit der Wortleitung WL1 verbunden sind, wodurch
die obere und die untere Seite beschrieben werden. Als nächstes werden 2000
2-Bit-Datenelemente,
die eine obere Seite und eine untere Seite bilden, in die 2000 Speicherzellen geschrieben,
die mit der Wortleitung WL2 verbunden sind, wodurch die obere und
die untere Seite in diesen Speicherzellen geschrieben werden.
-
Es
soll angenommen sein, dass Datenelemente "2" in
die Speicherzellen geschrieben werden, anstelle von Datenelementen "1", um dadurch die obere Seite zu programmieren,
und das Datenelement "4" dann in die Speicherzellen
geschrieben werden, um dadurch die untere Seite zu programmieren. Beim
siebzehnten Ausführungsbeispiel
(104) ist die obere Seite vollständig programmiert,
wenn 16 Megabits jeweils in die 16 Millionen Speicherzellen geschrieben
sind -- das heißt
alle Speicherzellen speichern Datenelemente "2",
wie es in 106A dargestellt ist. Wenn
16 Megabits in die in 105 gezeigte
Speicherzellenanordnung geschrieben sind, speichern acht Millionen
Speicherzellen "4", während die übrigen acht
Millionen Speicherzellen "1" speichern, wie es
in 106B dargestellt ist. Andererseits
speichern die Speicherzellen des siebzehnten Ausführungsbeispiels
niemals "4" und haben niemals
eine hohe Schwellenspannung. Daher ist es nicht wahrscheinlich,
dass eine Ladung von dem schwebenden Gate jeder Speicherzelle herauskommt,
um das in der Speicherzelle gespeicherte Datenelement zu verlieren.
Dies verlängert
die Lebensdauer der Speicherzellen und verbessert letztlich die
Betriebszuverlässigkeit
des siebzehnten Ausführungsbeispiels.
-
Wenn
ein EEPROM als Speicherkarte verwendet wird, wird er normalerweise
bei beispielsweise 70 % seiner Speicherkapazität betrieben, um eine Abfallsammlung
oder ähnliches
zu erreichen, und die übrige
Speicherkapazität
von 30 % wird ungenutzt gelassen. Wie das siebzehnte Ausführungsbeispiel und
der EEPROM mit der Speicherzellenanordnung der 105 bei 70 % seiner Speicherkapazität arbeitet,
wird unter Bezugnahme auf die 107A und 107B erklärt
werden.
-
Wenn
das siebzehnte Ausführungsbeispiel bei
70 % der Speicherkapazität
betrieben wird, werden 60 % von allen Speicherzellen "2" anstelle von "1" speichern
und werden 40 % davon "4" anstelle von "2" speichern, wie es in 107A dargestellt ist. Gegensätzlich dazu werden dann, wenn
die in 105 gespeicherte Speicherzellenanordnung
bei ihren 70 % der Speicherkapazität betrieben wird, 70 % von
allen Speicherzellen "4" speichern und werden die
30 % davon in einem gelöschten
Zustand bleiben, nämlich "1" speichern, wie es in 107B dargestellt ist. Das Verhältnis der Speicherzellen, die "4" bei dem siebzehnten Ausführungsbeispiel
speichern, zu den Speicherzellen, die "4" bei
der in 105 gezeigten Anordnung speichern,
ist die Zahl 4/7. Somit ist die Wahrscheinlichkeit dafür, dass
Daten verloren werden, beim siebzehnten Ausführungsbeispiel etwa 57 % von
der Wahrscheinlichkeit, dass Daten in den in 105 gezeigten
Speicherzellenanordnungen verloren werden.
-
Die
Wortleitungen WL1, WL2, WL3, ... und WL4000 müssen nicht sequentiell ausgewählt werden,
wie es oben beschrieben ist, um Daten in die Speicherzellenanordnung
zu schreiben. Beispielsweise können
die Wortleitungen WL1 bis WL4000 durch eine Steuerung ausgewählt werden,
die außerhalb
des Speicherchips vorgesehen ist, so dass die Speicherzellen "4" mit derselben Häufigkeit speichern. Genauer
gesagt wird die Anzahl von Malen, für welche eine untere Seite
in die 4000 Speicherzellen geschrieben wird, die mit einer Wortleitung
verbunden sind, aufgezeichnet und wird die Reihenfolge, in welcher
die Wortleitungen WL1 bis WL4000 ausgewählt werden müssen, aus
der Anzahl von Malen, die so aufgezeichnet ist, bestimmt. Somit
ist es mit dem siebzehnten Ausführungsbeispiel
möglich, zu
verhindern, dass jede Speicherzelle sich aufgrund einer exzessiven
Nutzung, verschlechtert. Die Daten, die die Anzahl von Malen darstellen,
für welche
eine untere Seite geschrieben wird, können in einem Speicherbereich
gespeichert werden, der ein anderer als der Datenbereich ist. Beispielsweise
werden die mit einer Wortleitung verbundenen Speicherzellen zum
Speichern von 522 Bytes verwendet. Von diesen Speicherzellen bilden
diejenigen, die zum Speichern von 512 Bytes verwendet werden, einen
Datenbereich, und bilden diejenigen, die zum Speichern der übrigen 10
Bytes verwendet werden, einen Bereich zum Speichern dieser Anzahl
von Malen oder eines ECC (Fehlerkorrekturcodes).
-
108 zeigt ein Speichersystem gemäß dem achtzehnten
Ausführungsbeispiel
der Erfindung, das einen Halbleiterspeicher gemäß der Erfindung enthält. Wie
es in 108 gezeigt ist, weist das
System eine Vielzahl von Speicherchips 101q auf (q ist eine
natürliche
Zahl), und eine Steuerung 100 zum Steuern der Speicherchips 101q.
Jeder Speicherchip hat eine Speicherzellenanordnung von dem in 104 gezeigten Typ. In 108 sind
nur vier der Speicherchips 1011 bis 1014 gezeigt, die durch die Steuerung 100 gesteuert
werden.
-
Das
Speichersystem ist dadurch charakterisiert, dass die untere Seite
in den Speicherzellen nicht programmiert wird, bevor die obere Seite
vollständig
programmiert ist. Wie beim siebzehnten Ausführungsbeispiel wird "2" in diejenigen Speicherzellen geschrieben,
die "1" gespeichert haben,
um dadurch die obere Seite zu programmieren, und wird dann "4" in die Speicherzellen geschrieben,
um dadurch die untere Seite zu programmieren. Wenn das Speichersystem
zu 50 seiner Speicherkapazität
programmiert ist, haben alle Speicherzellen von jedem Speicherchip 101q eine
Schwellenspannung, die dem Datenelement "2" entspricht,
wie es in 109 dargestellt ist.
-
Wenn
das Speichersystem zu 70 % seiner Speicherkapazität programmiert
ist, speichern 60 % aller vorgesehenen Speicherzellen "2" und speichern 40 % davon "4", wie es in Zusammenhang mit dem siebzehnten
Ausführungsbeispiel
erklärt
worden ist. Um genauer zu sein, wird, wie es aus 110 zu sehen ist, das Datenelement "4" in alle Speicherzellen des ersten Chips
A1011 geschrieben, und in 80 % der Speicherzellen
des zweiten Chips B1012, und wird das Datenelement "2" in 20 % der Speicherzellen des zweiten
Chips B1012 und in alle Speicherzellen des dritten
und des vierten Chips C1013 und D1014 geschrieben. Auch bei dem Speichersystem
speichert nur eine kleine Anzahl von Speicherzellen ein Datenelement "4", welches einer hohen Schwellenspannung
entspricht. Somit hat das Speichersystem daher eine hohe Betriebszuverlässigkeit.
-
In
jedem Speicherchip 101q werden die Wortleitungen WL1A bis
WL8000A des ersten Chips A1011, die Wortleitungen
WL1B bis WL8000B des zweiten Chips B1012,
die Wortleitungen WL1C bis WL8000C des dritten Chips C1013 und die Wortleitungen WL1D bis WL8000D
des vierten Chips D1014 in der Reihenfolge
ausgewählt,
die angegeben ist, um die Speicherchips 1011 bis 1014 zu programmieren. Die Wortleitungen
können
in irgendeiner anderen Reihenfolge ausgewählt werden. Beispielsweise können die
Wortleitungen durch eine außerhalb
des Speicherchips vorgesehene Steuerung ausgewählt werden, so dass die Speicherzellen
in jedem Speicherchip "4" mit derselben Häufigkeit
speichern können.
Genauer gesagt wird wie beim siebzehnten Ausführungsbeispiel die Anzahl von
Malen, für
welche eine untere Seite in die 4000 Speicherzellen geschrieben
wird, die mit einer Wortleitung verbunden sind, aufgezeichnet und
wird die Reihenfolge, in welcher die Wortleitungen ausgewählt werden
müssen, in
Einheiten von Seiten aus der Anzahl von Malen, die so aufgezeichnet
ist, bestimmt. Alternativ dazu kann die Anzahl von Malen, für welche
die untere Seite in jeden Speicherchip geschrieben wird, aufgezeichnet
werden und wird die Reihenfolge, in welcher die Speicherchips 1011 bis 1014 ausgewählt werden müssen, aus
der Anzahl von Malen, die so aufgezeichnet ist, bestimmt.
-
Somit
ist es mit dem achtzehnten Ausführungsbeispiel
möglich,
zu verhindern, dass sich eine jeweilige Speicherzelle aufgrund einer
exzessiven Nutzung verschlechtert, gleichgültig, ob sie für eine spezifische
Seite oder in einem spezifischen Speicher vorgesehen ist. Die Daten,
die die Anzahl von Malen darstellen, für welche eine untere Seite
geschrieben wird, können
in einem Speicherbereich gespeichert werden, der ein anderer als
der Datenbereich ist. Beispielsweise werden die mit einer Wortleitung
verbundenen Speicherzellen zum Speichern von 522 Bytes verwendet.
Von diesen Speicherzellen bilden diejenigen, die zum Speichern von
512 Bytes verwendet werden, einen Datenbereich und bilden diejenigen,
die zum Speichern der übrigen
10 Bytes verwendet werden, einen Bereich zum Speichern dieser Anzahl
von Malen oder eines ECC (Fehlerkorrekturcodes).