DE69734951T2 - Halbleiteranordnung und Speichersystem - Google Patents

Halbleiteranordnung und Speichersystem Download PDF

Info

Publication number
DE69734951T2
DE69734951T2 DE69734951T DE69734951T DE69734951T2 DE 69734951 T2 DE69734951 T2 DE 69734951T2 DE 69734951 T DE69734951 T DE 69734951T DE 69734951 T DE69734951 T DE 69734951T DE 69734951 T2 DE69734951 T2 DE 69734951T2
Authority
DE
Germany
Prior art keywords
data
memory cell
level
circuit
voltage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69734951T
Other languages
English (en)
Other versions
DE69734951D1 (de
Inventor
Ken 1-1 Shibaura 1-chome Takeuchi
Tomoharu 1-1 Shibaura 1-chome Tanaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP6144596A external-priority patent/JP3200006B2/ja
Priority claimed from JP30233596A external-priority patent/JP3210259B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of DE69734951D1 publication Critical patent/DE69734951D1/de
Publication of DE69734951T2 publication Critical patent/DE69734951T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Description

  • 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).

Claims (5)

  1. Halbleiterspeichervorrichtung, die folgendes aufweist: eine löschbare und programmierbare Speicherzelle (MC), die einen Zellentransistor aufweist und ein Gate hat, das mit einer Wortleitung verbunden ist, einen Ladespeicherteil und einen Drain, der mit einer Bitleitung (BL) verbunden ist, die zum Speichern von n-Bit-Daten konfiguriert ist, wobei n 2 oder eine größere natürliche Zahl ist, indem einer von 2n Lademengenpegel in dem Ladespeicherteil gespeichert werden, wobei eine Schwellenspannung des Zellentransistors durch einen Lademengenpegel definiert ist; eine mit der Bitleitung (BL) verbundene Datenschaltung (6), die zum Lesen von in der Speicherzelle (MC) gespeicherten Daten konfiguriert ist; eine mit der Wortleitung verbundene Treiberschaltung (2), die zum Treiben der Wortleitung konfiguriert ist; und einen Adressenpuffer (4), der zum Liefern eines Adressensignals zu der Datenschaltung (6) und der Treiberschaltung (2) konfiguriert ist; wobei die Halbleiterspeichervorrichtung dazu geeignet ist, erste Bitdaten aus den in der Speicherzelle (MC) gespeicherten n-Bit-Daten durch die Datenschaltung (6) auszulesen, wenn der Adressenpuffer (4) eine erste Adresse einschließlich einer ersten Zeilenadresse liefert und die Treiberschaltung (2) die Wortleitung mit einer ersten Lesespannung antreibt; die Halbleiterspeichervorrichtung dazu geeignet ist, zweite Bit-Daten der in der Speicherzelle (MC) gespeicherten n-Bit-Daten durch die Datenschaltung (6) auszulesen, wenn der Adressenpuffer (4) eine zweite Adresse einschließlich einer zweiten Zeilenadresse, die von der ersten Zeilenadresse unterschiedlich ist, liefert und die Treiberschaltung (2) die Wortleitung mit einer zweiten Lesespannung antreibt; die zweite Lesespannung unterschiedlich von der ersten Lesespannung ist; und die Datenschaltung (6) eine erste Latch-Schaltung (RT1) und eine zweite Latch-Schaltung (RT2) hat, die ersten Bit-Daten in der ersten Latch-Schaltung (RT1) gespeichert sind, wenn der Adressenpuffer (4) die erste Adresse einschließlich der ersten Zeilenadresse liefert, und die zweiten Bit-Daten in der zweiten Latch-Schaltung (RT2) gespeichert sind, wenn der Adressenpuffer (4) die zweite Adresse einschließlich der zweiten Zeilenadresse liefert.
  2. Halbleiterspeichervorrichtung nach Anspruch 1, wobei die ersten Bit-Daten zu einer externen Vorrichtung ausgegeben werden, bevor die zweite Adresse durch den Adressenpuffer (4) geliefert wird.
  3. Halbleiterspeichervorrichtung nach Anspruch 1 oder 2, die weiterhin eine mit der Bitleitung (BL) verbundene Datenschaltung aufweist, die zum Schreiben von Daten in die Speicherzelle (MC) konfiguriert ist; wobei erste Bit-Daten der n-Bit-Daten durch die Datenschaltung und die Treiberschaltung in die Speicherzelle (MC) geschrieben werden, wenn der Adressenpuffer eine erste Adresse liefert, und zweite Bit-Daten der n-Bit-Daten in die Speicherzelle (MC) geschrieben werden, unter Codierung der zweiten Bit-Daten und eines Schreibzustands der Speicherzelle (MC), genau nachdem die ersten Bit-Daten geschrieben sind, durch die Datenschaltung und die Treiberschaltung (2), wenn der Adressenpuffer (4) eine zweite Adresse liefert.
  4. Halbleiterspeichervorrichtung nach Anspruch 3, wobei die Datenschaltung eine erste Latch-Schaltung und eine zweite Latch-Schaltung hat, die ersten Ein-Bit-Daten in der ersten Latch-Schaltung gespeichert werden, wenn der Adressenpuffer die erste Adresse liefert, und dann in die Speicherzelle (MC) geschrieben werden, und die zweiten Ein-Bit-Daten in der zweiten Latch-Schaltung gespeichert werden, wenn der Adressenpuffer die zweite Adresse liefert, und dann in die Speicherzelle (MC) geschrieben werden.
  5. Halbleiterspeichervorrichtung nach Anspruch 3 oder 4, wobei die ersten Bit-Daten in die Speicherzelle (MC) geschrieben werden, bevor die zweite Adresse durch den Adressenpuffer (4) geliefert wird.
DE69734951T 1996-03-18 1997-03-18 Halbleiteranordnung und Speichersystem Expired - Lifetime DE69734951T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP6144596 1996-03-18
JP6144596A JP3200006B2 (ja) 1996-03-18 1996-03-18 不揮発性半導体記憶装置
JP9862796 1996-04-19
JP9862796 1996-04-19
JP30233596 1996-10-29
JP30233596A JP3210259B2 (ja) 1996-04-19 1996-10-29 半導体記憶装置及び記憶システム

Publications (2)

Publication Number Publication Date
DE69734951D1 DE69734951D1 (de) 2006-02-02
DE69734951T2 true DE69734951T2 (de) 2006-09-07

Family

ID=27297503

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69734951T Expired - Lifetime DE69734951T2 (de) 1996-03-18 1997-03-18 Halbleiteranordnung und Speichersystem
DE69738992T Expired - Lifetime DE69738992D1 (de) 1996-03-18 1997-03-18 Multibit-Halbleiterspeichervorrichtung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69738992T Expired - Lifetime DE69738992D1 (de) 1996-03-18 1997-03-18 Multibit-Halbleiterspeichervorrichtung

Country Status (5)

Country Link
US (2) US5903495A (de)
EP (2) EP1615227B1 (de)
KR (1) KR100244863B1 (de)
DE (2) DE69734951T2 (de)
TW (1) TW337046B (de)

Families Citing this family (755)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5969985A (en) 1996-03-18 1999-10-19 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US6335878B1 (en) * 1998-07-28 2002-01-01 Hitachi, Ltd. Non-volatile multi-level semiconductor flash memory device and method of driving same
JP3602294B2 (ja) 1997-05-28 2004-12-15 株式会社ルネサステクノロジ 半導体メモリおよび情報記憶装置
US6091631A (en) * 1998-07-01 2000-07-18 Advanced Micro Devices, Inc. Program/verify technique for multi-level flash cells enabling different threshold levels to be simultaneously programmed
JP3999900B2 (ja) 1998-09-10 2007-10-31 株式会社東芝 不揮発性半導体メモリ
JP3905990B2 (ja) 1998-12-25 2007-04-18 株式会社東芝 記憶装置とその記憶方法
US6178114B1 (en) * 1999-01-12 2001-01-23 Macronix International Co., Ltd. Sensing apparatus and method for fetching multi-level cell data
KR100388179B1 (ko) 1999-02-08 2003-06-19 가부시끼가이샤 도시바 불휘발성 반도체 메모리
JP3425881B2 (ja) * 1999-02-25 2003-07-14 Necエレクトロニクス株式会社 不揮発性半導体記憶装置及び不揮発性半導体記憶装置におけるデータの消去方法
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
JP4023953B2 (ja) * 1999-06-22 2007-12-19 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6914827B2 (en) * 1999-07-28 2005-07-05 Samsung Electronics Co., Ltd. Flash memory device capable of preventing an over-erase of flash memory cells and erase method thereof
US7366020B2 (en) * 1999-07-28 2008-04-29 Samsung Electronics Co., Ltd. Flash memory device capable of preventing an overerase of flash memory cells and erase method thereof
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
JP4170604B2 (ja) * 2001-04-18 2008-10-22 株式会社東芝 不揮発性半導体メモリ
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6762092B2 (en) * 2001-08-08 2004-07-13 Sandisk Corporation Scalable self-aligned dual floating gate memory cell array and methods of forming the array
JP4034949B2 (ja) * 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7554842B2 (en) * 2001-09-17 2009-06-30 Sandisk Corporation Multi-purpose non-volatile memory card
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7177197B2 (en) * 2001-09-17 2007-02-13 Sandisk Corporation Latched programming of memory and method
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6967872B2 (en) * 2001-12-18 2005-11-22 Sandisk Corporation Method and system for programming and inhibiting multi-level, non-volatile memory cells
US6542407B1 (en) 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US6639309B2 (en) * 2002-03-28 2003-10-28 Sandisk Corporation Memory package with a controller on one side of a printed circuit board and memory on another side of the circuit board
US6894930B2 (en) 2002-06-19 2005-05-17 Sandisk Corporation Deep wordline trench to shield cross coupling between adjacent cells for scaled NAND
WO2004001852A1 (en) * 2002-06-19 2003-12-31 Sandisk Corporation Deep wordline trench to shield cross coupling between adjacent cells for scaled nand
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US6983428B2 (en) 2002-09-24 2006-01-03 Sandisk Corporation Highly compact non-volatile memory and method thereof
JP4420823B2 (ja) * 2002-09-24 2010-02-24 サンディスク コーポレイション 感知動作が改善された不揮発性メモリおよび方法
US7327619B2 (en) * 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US7324393B2 (en) * 2002-09-24 2008-01-29 Sandisk Corporation Method for compensated sensing in non-volatile memory
US6891753B2 (en) 2002-09-24 2005-05-10 Sandisk Corporation Highly compact non-volatile memory and method therefor with internal serial buses
US7046568B2 (en) * 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7443757B2 (en) * 2002-09-24 2008-10-28 Sandisk Corporation Non-volatile memory and method with reduced bit line crosstalk errors
US6940753B2 (en) 2002-09-24 2005-09-06 Sandisk Corporation Highly compact non-volatile memory and method therefor with space-efficient data registers
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US6908817B2 (en) * 2002-10-09 2005-06-21 Sandisk Corporation Flash memory array with increased coupling between floating and control gates
US6888755B2 (en) * 2002-10-28 2005-05-03 Sandisk Corporation Flash memory cell arrays having dual control gates per memory cell charge storage element
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
JP3889699B2 (ja) * 2002-11-29 2007-03-07 株式会社東芝 不揮発性半導体記憶装置及びそのデータ書き込み方法
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
US6859397B2 (en) * 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US6839281B2 (en) * 2003-04-14 2005-01-04 Jian Chen Read and erase verify methods and circuits suitable for low voltage non-volatile memories
US7045849B2 (en) 2003-05-21 2006-05-16 Sandisk Corporation Use of voids between elements in semiconductor structures for isolation
US7105406B2 (en) * 2003-06-20 2006-09-12 Sandisk Corporation Self aligned non-volatile memory cell and process for fabrication
KR100512181B1 (ko) * 2003-07-11 2005-09-05 삼성전자주식회사 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법
US6956770B2 (en) * 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7046555B2 (en) 2003-09-17 2006-05-16 Sandisk Corporation Methods for identifying non-volatile memory elements with poor subthreshold slope or weak transconductance
US7064980B2 (en) * 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7221008B2 (en) * 2003-10-06 2007-05-22 Sandisk Corporation Bitline direction shielding to avoid cross coupling between adjacent cells for NAND flash memory
JP4041057B2 (ja) * 2003-11-13 2008-01-30 株式会社東芝 不揮発性半導体記憶装置
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR20070007265A (ko) 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US7154779B2 (en) * 2004-01-21 2006-12-26 Sandisk Corporation Non-volatile memory cell using high-k material inter-gate programming
US7466590B2 (en) * 2004-02-06 2008-12-16 Sandisk Corporation Self-boosting method for flash memory cells
US7161833B2 (en) * 2004-02-06 2007-01-09 Sandisk Corporation Self-boosting system for flash memory cells
US7355237B2 (en) * 2004-02-13 2008-04-08 Sandisk Corporation Shield plate for limiting cross coupling between floating gates
JP4398750B2 (ja) * 2004-02-17 2010-01-13 株式会社東芝 Nand型フラッシュメモリ
US7183153B2 (en) * 2004-03-12 2007-02-27 Sandisk Corporation Method of manufacturing self aligned non-volatile memory cells
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7310347B2 (en) * 2004-03-14 2007-12-18 Sandisk, Il Ltd. States encoding in multi-bit flash cells
US7177977B2 (en) * 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
JP4405405B2 (ja) * 2004-04-15 2010-01-27 株式会社東芝 不揮発性半導体記憶装置
US7057939B2 (en) * 2004-04-23 2006-06-06 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
US7023733B2 (en) * 2004-05-05 2006-04-04 Sandisk Corporation Boosting to control programming of non-volatile memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8429313B2 (en) * 2004-05-27 2013-04-23 Sandisk Technologies Inc. Configurable ready/busy control
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7294882B2 (en) * 2004-09-28 2007-11-13 Sandisk Corporation Non-volatile memory with asymmetrical doping profile
US20060067127A1 (en) * 2004-09-30 2006-03-30 Matrix Semiconductor, Inc. Method of programming a monolithic three-dimensional memory
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7402886B2 (en) * 2004-11-23 2008-07-22 Sandisk Corporation Memory with self-aligned trenches for narrow gap isolation regions
US7381615B2 (en) 2004-11-23 2008-06-03 Sandisk Corporation Methods for self-aligned trench filling with grown dielectric for high coupling ratio in semiconductor devices
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7202125B2 (en) * 2004-12-22 2007-04-10 Sandisk Corporation Low-voltage, multiple thin-gate oxide and low-resistance gate electrode
US7482223B2 (en) * 2004-12-22 2009-01-27 Sandisk Corporation Multi-thickness dielectric for semiconductor memory
US6980471B1 (en) * 2004-12-23 2005-12-27 Sandisk Corporation Substrate electron injection techniques for programming non-volatile charge storage memory cells
US7450433B2 (en) 2004-12-29 2008-11-11 Sandisk Corporation Word line compensation in non-volatile memory erase operations
US20060140007A1 (en) * 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7212436B2 (en) * 2005-02-28 2007-05-01 Micron Technology, Inc. Multiple level programming in a non-volatile memory device
US8000502B2 (en) 2005-03-09 2011-08-16 Sandisk Technologies Inc. Portable memory storage device with biometric identification security
US7251160B2 (en) * 2005-03-16 2007-07-31 Sandisk Corporation Non-volatile memory and method with power-saving read and program-verify operations
US7457166B2 (en) * 2005-03-31 2008-11-25 Sandisk Corporation Erase voltage manipulation in non-volatile memory for controlled shifts in threshold voltage
US7522457B2 (en) * 2005-03-31 2009-04-21 Sandisk Corporation Systems for erase voltage manipulation in non-volatile memory for controlled shifts in threshold voltage
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7170784B2 (en) * 2005-04-01 2007-01-30 Sandisk Corporation Non-volatile memory and method with control gate compensation for source line bias errors
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7173854B2 (en) * 2005-04-01 2007-02-06 Sandisk Corporation Non-volatile memory and method with compensation for source line bias errors
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7196946B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
KR100697285B1 (ko) * 2005-05-11 2007-03-20 삼성전자주식회사 워드라인과 선택라인 사이에 보호라인을 가지는 낸드플래시 메모리 장치
CN101189681B (zh) * 2005-05-30 2010-10-13 精工爱普生株式会社 在顺序写入当中进行校验处理的非易失性的存储器
US7339834B2 (en) 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7457910B2 (en) 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
KR100721012B1 (ko) * 2005-07-12 2007-05-22 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
US7023737B1 (en) * 2005-08-01 2006-04-04 Sandisk Corporation System for programming non-volatile memory with self-adjusting maximum program loop
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US20070059945A1 (en) * 2005-09-12 2007-03-15 Nima Mohklesi Atomic layer deposition with nitridation and oxidation
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
JP2007102865A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 半導体集積回路装置
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7541240B2 (en) 2005-10-18 2009-06-02 Sandisk Corporation Integration process flow for flash devices with low gap fill aspect ratio
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7366022B2 (en) * 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7379330B2 (en) * 2005-11-08 2008-05-27 Sandisk Corporation Retargetable memory cell redundancy methods
US8683081B2 (en) * 2005-11-14 2014-03-25 Sandisk Technologies Inc. Methods for displaying advertisement content on host system using application launched from removable memory device
US8683082B2 (en) * 2005-11-14 2014-03-25 Sandisk Technologies Inc. Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices
US7739472B2 (en) * 2005-11-22 2010-06-15 Sandisk Corporation Memory system for legacy hosts
US7747927B2 (en) * 2005-11-22 2010-06-29 Sandisk Corporation Method for adapting a memory system to operate with a legacy host originally designed to operate with a different memory system
US7353073B2 (en) * 2005-12-01 2008-04-01 Sandisk Corporation Method for managing appliances
US7739078B2 (en) * 2005-12-01 2010-06-15 Sandisk Corporation System for managing appliances
US7262994B2 (en) * 2005-12-06 2007-08-28 Sandisk Corporation System for reducing read disturb for non-volatile storage
US7737483B2 (en) * 2005-12-06 2010-06-15 Sandisk Corporation Low resistance void-free contacts
JP4960378B2 (ja) 2005-12-06 2012-06-27 サンディスク コーポレイション 不揮発性メモリの読み出し外乱を低減する方法
US7615448B2 (en) * 2005-12-06 2009-11-10 Sandisk Corporation Method of forming low resistance void-free contacts
US7349258B2 (en) * 2005-12-06 2008-03-25 Sandisk Corporation Reducing read disturb for non-volatile storage
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7355888B2 (en) * 2005-12-19 2008-04-08 Sandisk Corporation Apparatus for programming non-volatile memory with reduced program disturb using modified pass voltages
US7355889B2 (en) * 2005-12-19 2008-04-08 Sandisk Corporation Method for programming non-volatile memory with reduced program disturb using modified pass voltages
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US8161289B2 (en) * 2005-12-21 2012-04-17 SanDisk Technologies, Inc. Voice controlled portable memory storage device
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143111A1 (en) * 2005-12-21 2007-06-21 Conley Kevin M Voice controlled portable memory storage device
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7747837B2 (en) * 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143117A1 (en) * 2005-12-21 2007-06-21 Conley Kevin M Voice controlled portable memory storage device
US7917949B2 (en) * 2005-12-21 2011-03-29 Sandisk Corporation Voice controlled portable memory storage device
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7495294B2 (en) * 2005-12-21 2009-02-24 Sandisk Corporation Flash devices with shared word lines
US7655536B2 (en) * 2005-12-21 2010-02-02 Sandisk Corporation Methods of forming flash devices with shared word lines
US8484632B2 (en) * 2005-12-22 2013-07-09 Sandisk Technologies Inc. System for program code execution with memory storage controller participation
US8479186B2 (en) * 2005-12-22 2013-07-02 Sandisk Technologies Inc. Method for program code execution with memory storage controller participation
US7436703B2 (en) * 2005-12-27 2008-10-14 Sandisk Corporation Active boosting to minimize capacitive coupling effect between adjacent gates of flash memory devices
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US7362615B2 (en) * 2005-12-27 2008-04-22 Sandisk Corporation Methods for active boosting to minimize capacitive coupling effect between adjacent gates of flash memory devices
KR101016783B1 (ko) 2005-12-27 2011-02-25 팡 하오 부스터 플레이트를 구비한 플래시 메모리 장치
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7365018B2 (en) * 2005-12-28 2008-04-29 Sandisk Corporation Fabrication of semiconductor device for flash memory with increased select gate width
US7224614B1 (en) * 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
US7352629B2 (en) * 2005-12-29 2008-04-01 Sandisk Corporation Systems for continued verification in non-volatile memory write operations
US7310255B2 (en) * 2005-12-29 2007-12-18 Sandisk Corporation Non-volatile memory with improved program-verify operations
US7307887B2 (en) * 2005-12-29 2007-12-11 Sandisk Corporation Continued verification in non-volatile memory write operations
US7349260B2 (en) * 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
US7443726B2 (en) * 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
US7733704B2 (en) 2005-12-29 2010-06-08 Sandisk Corporation Non-volatile memory with power-saving multi-pass sensing
US7447094B2 (en) * 2005-12-29 2008-11-04 Sandisk Corporation Method for power-saving multi-pass sensing in non-volatile memory
US7499319B2 (en) * 2006-03-03 2009-03-03 Sandisk Corporation Read operation for non-volatile storage with compensation for coupling
US7436733B2 (en) * 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
EP1991989B1 (de) 2006-03-03 2011-01-05 Sandisk Corporation Leseoperation für nichtflüchtige speicherung mit floating-gate-kopplungskompensation
US7324389B2 (en) * 2006-03-24 2008-01-29 Sandisk Corporation Non-volatile memory with redundancy data buffered in remote buffer circuits
US7352635B2 (en) * 2006-03-24 2008-04-01 Sandisk Corporation Method for remote redundancy for non-volatile memory
US7224605B1 (en) 2006-03-24 2007-05-29 Sandisk Corporation Non-volatile memory with redundancy data buffered in data latches for defective locations
EP2002447B1 (de) 2006-03-24 2014-02-26 SanDisk Technologies Inc. Nichtflüchtiger speicher und verfahren mit in fernpufferschaltungen gepufferten redundanzdaten
US7394690B2 (en) * 2006-03-24 2008-07-01 Sandisk Corporation Method for column redundancy using data latches in solid-state memories
WO2007112201A2 (en) 2006-03-24 2007-10-04 Sandisk Corporation Non-volatile memory and method with redundancy data buffered in data latches for defective locations
US7511995B2 (en) * 2006-03-30 2009-03-31 Sandisk Corporation Self-boosting system with suppression of high lateral electric fields
US7428165B2 (en) * 2006-03-30 2008-09-23 Sandisk Corporation Self-boosting method with suppression of high lateral electric fields
DE602006013935D1 (de) * 2006-03-31 2010-06-10 St Microelectronics Srl Verfahren zum Programmieren einer Speicheranordnung dafür geeignet die Kopplungen der schwebeneden Gatter zu minimieren und eine Speicheranordnung
WO2007126665A1 (en) 2006-04-12 2007-11-08 Sandisk Corporation Reducing the impact of program disturb during read
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7951669B2 (en) 2006-04-13 2011-05-31 Sandisk Corporation Methods of making flash memory cell arrays having dual control gates per memory cell charge storage element
US7467253B2 (en) * 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
US7440322B2 (en) * 2006-04-20 2008-10-21 Sandisk Corporation Method and system for flash memory devices
US7447821B2 (en) * 2006-04-21 2008-11-04 Sandisk Corporation U3 adapter
US7516261B2 (en) * 2006-04-21 2009-04-07 Sandisk Corporation Method for U3 adapter
US7286408B1 (en) 2006-05-05 2007-10-23 Sandisk Corporation Boosting methods for NAND flash memory
US7436709B2 (en) * 2006-05-05 2008-10-14 Sandisk Corporation NAND flash memory with boosting
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US7518911B2 (en) * 2006-05-25 2009-04-14 Sandisk Corporation Method and system for programming multi-state non-volatile memory devices
JP5095131B2 (ja) * 2006-05-31 2012-12-12 株式会社東芝 半導体記憶装置
US7440331B2 (en) * 2006-06-01 2008-10-21 Sandisk Corporation Verify operation for non-volatile storage using different voltages
US7457163B2 (en) * 2006-06-01 2008-11-25 Sandisk Corporation System for verifying non-volatile storage using different voltages
WO2008097320A2 (en) * 2006-06-01 2008-08-14 Virginia Tech Intellectual Properties, Inc. Premixing injector for gas turbine engines
US7310272B1 (en) * 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
US20100024732A1 (en) * 2006-06-02 2010-02-04 Nima Mokhlesi Systems for Flash Heating in Atomic Layer Deposition
US20070281105A1 (en) * 2006-06-02 2007-12-06 Nima Mokhlesi Atomic Layer Deposition of Oxides Using Krypton as an Ion Generating Feeding Gas
US20070277735A1 (en) * 2006-06-02 2007-12-06 Nima Mokhlesi Systems for Atomic Layer Deposition of Oxides Using Krypton as an Ion Generating Feeding Gas
US7450421B2 (en) * 2006-06-02 2008-11-11 Sandisk Corporation Data pattern sensitivity compensation using different voltage
US20070281082A1 (en) * 2006-06-02 2007-12-06 Nima Mokhlesi Flash Heating in Atomic Layer Deposition
US7342831B2 (en) * 2006-06-16 2008-03-11 Sandisk Corporation System for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates
US7391650B2 (en) * 2006-06-16 2008-06-24 Sandisk Corporation Method for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates
US7492633B2 (en) * 2006-06-19 2009-02-17 Sandisk Corporation System for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines
US7352628B2 (en) * 2006-06-19 2008-04-01 Sandisk Corporation Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
US7349261B2 (en) * 2006-06-19 2008-03-25 Sandisk Corporation Method for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US20070297247A1 (en) * 2006-06-26 2007-12-27 Gerrit Jan Hemink Method for programming non-volatile memory using variable amplitude programming pulses
US7506113B2 (en) * 2006-07-20 2009-03-17 Sandisk Corporation Method for configuring compensation
US7400535B2 (en) * 2006-07-20 2008-07-15 Sandisk Corporation System that compensates for coupling during programming
US7885119B2 (en) * 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7495953B2 (en) * 2006-07-20 2009-02-24 Sandisk Corporation System for configuring compensation
US7522454B2 (en) * 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7443729B2 (en) * 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7755132B2 (en) 2006-08-16 2010-07-13 Sandisk Corporation Nonvolatile memories with shaped floating gates
EP2472570A3 (de) 2006-08-16 2013-07-17 SanDisk Technologies, Inc. Nicht flüchtige Speicher mit geformten Schwebegattern
US7494860B2 (en) * 2006-08-16 2009-02-24 Sandisk Corporation Methods of forming nonvolatile memories with L-shaped floating gates
US7440326B2 (en) * 2006-09-06 2008-10-21 Sandisk Corporation Programming non-volatile memory with improved boosting
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7606091B2 (en) * 2006-09-12 2009-10-20 Sandisk Corporation Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
JP4819951B2 (ja) 2006-09-12 2011-11-24 サンディスク コーポレイション 初期プログラミング電圧の線形推定のための不揮発性メモリおよび方法
US7606077B2 (en) * 2006-09-12 2009-10-20 Sandisk Corporation Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US7599223B2 (en) * 2006-09-12 2009-10-06 Sandisk Corporation Non-volatile memory with linear estimation of initial programming voltage
US7453731B2 (en) * 2006-09-12 2008-11-18 Sandisk Corporation Method for non-volatile memory with linear estimation of initial programming voltage
US7774392B2 (en) * 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
US7696044B2 (en) * 2006-09-19 2010-04-13 Sandisk Corporation Method of making an array of non-volatile memory cells with floating gates formed of spacers in substrate trenches
US7646054B2 (en) * 2006-09-19 2010-01-12 Sandisk Corporation Array of non-volatile memory cells with floating gates formed of spacers in substrate trenches
US7615445B2 (en) * 2006-09-21 2009-11-10 Sandisk Corporation Methods of reducing coupling between floating gates in nonvolatile memory
US20080074920A1 (en) * 2006-09-21 2008-03-27 Henry Chien Nonvolatile Memory with Reduced Coupling Between Floating Gates
US7961511B2 (en) * 2006-09-26 2011-06-14 Sandisk Corporation Hybrid programming methods and systems for non-volatile memory storage elements
US8189378B2 (en) * 2006-09-27 2012-05-29 Sandisk Technologies Inc. Reducing program disturb in non-volatile storage
US8184478B2 (en) * 2006-09-27 2012-05-22 Sandisk Technologies Inc. Apparatus with reduced program disturb in non-volatile storage
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US20080092015A1 (en) * 2006-09-28 2008-04-17 Yigal Brandman Nonvolatile memory with adaptive operation
US7977186B2 (en) * 2006-09-28 2011-07-12 Sandisk Corporation Providing local boosting control implant for non-volatile memory
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7705387B2 (en) * 2006-09-28 2010-04-27 Sandisk Corporation Non-volatile memory with local boosting control implant
US7805663B2 (en) 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7447076B2 (en) * 2006-09-29 2008-11-04 Sandisk Corporation Systems for reverse reading in non-volatile memory with compensation for coupling
US7656735B2 (en) 2006-09-29 2010-02-02 Sandisk Corporation Dual voltage flash memory methods
US7684247B2 (en) * 2006-09-29 2010-03-23 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7675802B2 (en) 2006-09-29 2010-03-09 Sandisk Corporation Dual voltage flash memory card
US7450426B2 (en) 2006-10-10 2008-11-11 Sandisk Corporation Systems utilizing variable program voltage increment values in non-volatile memory program operations
WO2008045805A1 (en) * 2006-10-10 2008-04-17 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
US7474561B2 (en) 2006-10-10 2009-01-06 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
JP4990978B2 (ja) 2006-10-13 2012-08-01 サンディスク コーポレイション 不揮発性記憶素子における部分的な消去と消去の検証
US7372748B2 (en) * 2006-10-16 2008-05-13 Sandisk Corporation Voltage regulator in a non-volatile memory device
KR100764750B1 (ko) * 2006-10-16 2007-10-08 삼성전자주식회사 유연한 어드레스 맵핑 스킴을 갖는 플래시 메모리 장치
US7691710B2 (en) * 2006-10-17 2010-04-06 Sandisk Corporation Fabricating non-volatile memory with dual voltage select gate structure
US7586157B2 (en) * 2006-10-17 2009-09-08 Sandisk Corporation Non-volatile memory with dual voltage select gate structure
US7616490B2 (en) * 2006-10-17 2009-11-10 Sandisk Corporation Programming non-volatile memory with dual voltage select gate structure
US7596031B2 (en) * 2006-10-30 2009-09-29 Sandisk Corporation Faster programming of highest multi-level state for non-volatile memory
US7440323B2 (en) * 2006-11-02 2008-10-21 Sandisk Corporation Reducing program disturb in non-volatile memory using multiple boosting modes
US7468911B2 (en) * 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8059456B2 (en) * 2006-11-07 2011-11-15 Sandisk Il Ltd. Programming a NAND flash memory with reduced program disturb
WO2008056351A1 (en) * 2006-11-07 2008-05-15 Sandisk Il Ltd. Programming a nand flash memory with reduced program disturb
KR101003163B1 (ko) 2006-11-07 2010-12-22 샌디스크 아이엘 엘티디 프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍
US7508710B2 (en) * 2006-11-13 2009-03-24 Sandisk Corporation Operating non-volatile memory with boost structures
US7696035B2 (en) * 2006-11-13 2010-04-13 Sandisk Corporation Method for fabricating non-volatile memory with boost structures
US7508703B2 (en) * 2006-11-13 2009-03-24 Sandisk Corporation Non-volatile memory with boost structures
KR100836762B1 (ko) * 2006-12-11 2008-06-10 삼성전자주식회사 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7623387B2 (en) * 2006-12-12 2009-11-24 Sandisk Corporation Non-volatile storage with early source-side boosting for reducing program disturb
US7623386B2 (en) * 2006-12-12 2009-11-24 Sandisk Corporation Reducing program disturb in non-volatile storage using early source-side boosting
US7800161B2 (en) * 2006-12-21 2010-09-21 Sandisk Corporation Flash NAND memory cell array with charge storage elements positioned in trenches
US7642160B2 (en) 2006-12-21 2010-01-05 Sandisk Corporation Method of forming a flash NAND memory cell array with charge storage elements positioned in trenches
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US20080157169A1 (en) * 2006-12-28 2008-07-03 Yuan Jack H Shield plates for reduced field coupling in nonvolatile memory
US20080160680A1 (en) * 2006-12-28 2008-07-03 Yuan Jack H Methods of fabricating shield plates for reduced field coupling in nonvolatile memory
US7701765B2 (en) * 2006-12-28 2010-04-20 Micron Technology, Inc. Non-volatile multilevel memory cell programming
KR101194841B1 (ko) 2006-12-28 2012-10-25 삼성전자주식회사 메모리 셀 프로그래밍 방법
US7539052B2 (en) 2006-12-28 2009-05-26 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US7495962B2 (en) * 2006-12-29 2009-02-24 Sandisk Corporation Alternating read mode
US7616498B2 (en) * 2006-12-29 2009-11-10 Sandisk Corporation Non-volatile storage system with resistance sensing and compensation
US7590002B2 (en) * 2006-12-29 2009-09-15 Sandisk Corporation Resistance sensing and compensation for non-volatile storage
US7463531B2 (en) * 2006-12-29 2008-12-09 Sandisk Corporation Systems for programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages
US7468918B2 (en) * 2006-12-29 2008-12-23 Sandisk Corporation Systems for programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data
US7890723B2 (en) * 2006-12-29 2011-02-15 Sandisk Corporation Method for code execution
US7606070B2 (en) * 2006-12-29 2009-10-20 Sandisk Corporation Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation
US7489547B2 (en) * 2006-12-29 2009-02-10 Sandisk Corporation Method of NAND flash memory cell array with adaptive memory state partitioning
US7433241B2 (en) * 2006-12-29 2008-10-07 Sandisk Corporation Programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data
US7518923B2 (en) * 2006-12-29 2009-04-14 Sandisk Corporation Margined neighbor reading for non-volatile memory read operations including coupling compensation
US7890724B2 (en) * 2006-12-29 2011-02-15 Sandisk Corporation System for code execution
US7489548B2 (en) 2006-12-29 2009-02-10 Sandisk Corporation NAND flash memory cell array with adaptive memory state partitioning
US7450430B2 (en) * 2006-12-29 2008-11-11 Sandisk Corporation Programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages
US7440324B2 (en) * 2006-12-29 2008-10-21 Sandisk Corporation Apparatus with alternating read mode
US7525843B2 (en) * 2006-12-30 2009-04-28 Sandisk Corporation Non-volatile storage with adaptive body bias
US7583539B2 (en) * 2006-12-30 2009-09-01 Sandisk Corporation Non-volatile storage with bias for temperature compensation
US7468920B2 (en) * 2006-12-30 2008-12-23 Sandisk Corporation Applying adaptive body bias to non-volatile storage
US7554853B2 (en) * 2006-12-30 2009-06-30 Sandisk Corporation Non-volatile storage with bias based on selective word line
US7583535B2 (en) * 2006-12-30 2009-09-01 Sandisk Corporation Biasing non-volatile storage to compensate for temperature variations
US7468919B2 (en) * 2006-12-30 2008-12-23 Sandisk Corporation Biasing non-volatile storage based on selected word line
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
WO2008103586A1 (en) 2007-02-20 2008-08-28 Sandisk Corporation Dynamic verify based on threshold voltage distribution
JP5032155B2 (ja) * 2007-03-02 2012-09-26 株式会社東芝 不揮発性半導体記憶装置、及び不揮発性半導体記憶システム
US7499320B2 (en) * 2007-03-07 2009-03-03 Sandisk Corporation Non-volatile memory with cache page copy
US7502255B2 (en) * 2007-03-07 2009-03-10 Sandisk Corporation Method for cache page copy in a non-volatile memory
US7535764B2 (en) * 2007-03-21 2009-05-19 Sandisk Corporation Adjusting resistance of non-volatile memory using dummy memory cells
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7577031B2 (en) * 2007-03-29 2009-08-18 Sandisk Corporation Non-volatile memory with compensation for variations along a word line
US7508713B2 (en) * 2007-03-29 2009-03-24 Sandisk Corporation Method of compensating variations along a word line in a non-volatile memory
US7797480B2 (en) * 2007-03-29 2010-09-14 Sandisk Corporation Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
US7745285B2 (en) * 2007-03-30 2010-06-29 Sandisk Corporation Methods of forming and operating NAND memory with side-tunneling
US7606076B2 (en) * 2007-04-05 2009-10-20 Sandisk Corporation Sensing in non-volatile storage using pulldown to regulated source voltage to remove system noise
US7532516B2 (en) * 2007-04-05 2009-05-12 Sandisk Corporation Non-volatile storage with current sensing of negative threshold voltages
US7551483B2 (en) * 2007-04-10 2009-06-23 Sandisk Corporation Non-volatile memory with predictive programming
US7643348B2 (en) * 2007-04-10 2010-01-05 Sandisk Corporation Predictive programming in non-volatile memory
US7606071B2 (en) * 2007-04-24 2009-10-20 Sandisk Corporation Compensating source voltage drop in non-volatile storage
US7606072B2 (en) * 2007-04-24 2009-10-20 Sandisk Corporation Non-volatile storage with compensation for source voltage drop
US7606079B2 (en) * 2007-04-25 2009-10-20 Sandisk Corporation Reducing power consumption during read operations in non-volatile storage
US7440327B1 (en) 2007-04-25 2008-10-21 Sandisk Corporation Non-volatile storage with reduced power consumption during read operations
US7460404B1 (en) * 2007-05-07 2008-12-02 Sandisk Corporation Boosting for non-volatile storage using channel isolation switching
US7463522B2 (en) * 2007-05-07 2008-12-09 Sandisk Corporation Non-volatile storage with boosting using channel isolation switching
US7577026B2 (en) * 2007-05-07 2009-08-18 Sandisk Corporation Source and drain side early boosting using local self boosting for non-volatile storage
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US7489553B2 (en) * 2007-06-07 2009-02-10 Sandisk Corporation Non-volatile memory with improved sensing having bit-line lockout control
US7492640B2 (en) * 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US7849383B2 (en) * 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US20080320366A1 (en) * 2007-06-25 2008-12-25 Lin Jason T Methods of reading nonvolatile memory
US7471567B1 (en) 2007-06-29 2008-12-30 Sandisk Corporation Method for source bias all bit line sensing in non-volatile storage
US7545678B2 (en) * 2007-06-29 2009-06-09 Sandisk Corporation Non-volatile storage with source bias all bit line sensing
US7489543B1 (en) * 2007-07-25 2009-02-10 Micron Technology, Inc. Programming multilevel cell memory arrays
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US8026170B2 (en) * 2007-09-26 2011-09-27 Sandisk Technologies Inc. Method of forming a single-layer metal conductors with multiple thicknesses
US7577034B2 (en) * 2007-09-26 2009-08-18 Sandisk Corporation Reducing programming voltage differential nonlinearity in non-volatile storage
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
US20090088876A1 (en) * 2007-09-28 2009-04-02 Conley Kevin M Portable, digital media player and associated methods
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US7613045B2 (en) * 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
US7869276B2 (en) * 2007-11-29 2011-01-11 Macronix International Co., Ltd. Nand type memory and programming method thereof
US7688638B2 (en) * 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
US7764547B2 (en) * 2007-12-20 2010-07-27 Sandisk Corporation Regulation of source potential to combat cell source IR drop
US7701761B2 (en) * 2007-12-20 2010-04-20 Sandisk Corporation Read, verify word line reference voltage to track source level
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US7593265B2 (en) * 2007-12-28 2009-09-22 Sandisk Corporation Low noise sense amplifier array and method for nonvolatile memory
US7915664B2 (en) * 2008-04-17 2011-03-29 Sandisk Corporation Non-volatile memory with sidewall channels and raised source/drain regions
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7808836B2 (en) * 2008-04-29 2010-10-05 Sandisk Il Ltd. Non-volatile memory with adaptive setting of state voltage levels
US7808819B2 (en) * 2008-04-29 2010-10-05 Sandisk Il Ltd. Method for adaptive setting of state voltage levels in non-volatile memory
US8051240B2 (en) * 2008-05-09 2011-11-01 Sandisk Technologies Inc. Compensating non-volatile storage using different pass voltages during program-verify and read
US7719902B2 (en) * 2008-05-23 2010-05-18 Sandisk Corporation Enhanced bit-line pre-charge scheme for increasing channel boosting in non-volatile storage
US7952928B2 (en) * 2008-05-27 2011-05-31 Sandisk Il Ltd. Increasing read throughput in non-volatile memory
US7957197B2 (en) * 2008-05-28 2011-06-07 Sandisk Corporation Nonvolatile memory with a current sense amplifier having a precharge circuit and a transfer gate coupled to a sense node
US7813172B2 (en) * 2008-06-12 2010-10-12 Sandisk Corporation Nonvolatile memory with correlated multiple pass programming
US7796435B2 (en) * 2008-06-12 2010-09-14 Sandisk Corporation Method for correlated multiple pass programming in nonvolatile memory
US7826271B2 (en) * 2008-06-12 2010-11-02 Sandisk Corporation Nonvolatile memory with index programming and reduced verify
KR101558144B1 (ko) 2008-06-12 2015-10-08 샌디스크 테크놀로지스, 인코포레이티드 상호 관련 다중 패스 프로그래밍을 위한 비휘발성 메모리와 방법
US7800945B2 (en) * 2008-06-12 2010-09-21 Sandisk Corporation Method for index programming and reduced verify in nonvolatile memory
US7848144B2 (en) * 2008-06-16 2010-12-07 Sandisk Corporation Reverse order page writing in flash memories
US8710907B2 (en) * 2008-06-24 2014-04-29 Sandisk Technologies Inc. Clock generator circuit for a charge pump
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
US7751250B2 (en) * 2008-06-27 2010-07-06 Sandisk Corporation Memory device with power noise minimization during sensing
US7751249B2 (en) * 2008-06-27 2010-07-06 Sandisk Corporation Minimizing power noise during sensing in memory device
US7715235B2 (en) * 2008-08-25 2010-05-11 Sandisk Corporation Non-volatile memory and method for ramp-down programming
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
US8254177B2 (en) * 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
US8089805B2 (en) 2008-11-20 2012-01-03 Micron Technology, Inc. Two-part programming methods and memories
US7813181B2 (en) * 2008-12-31 2010-10-12 Sandisk Corporation Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
US7944754B2 (en) * 2008-12-31 2011-05-17 Sandisk Corporation Non-volatile memory and method with continuous scanning time-domain sensing
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
EP2374063B1 (de) 2009-01-05 2017-11-22 SanDisk Technologies LLC Nichtflüchtiger speicher und verfahren mit schreibcachepartitionierung
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US7974133B2 (en) 2009-01-06 2011-07-05 Sandisk Technologies Inc. Robust sensing circuit and method
US8026544B2 (en) 2009-03-30 2011-09-27 Sandisk Technologies Inc. Fabricating and operating a memory array having a multi-level cell region and a single-level cell region
US8351236B2 (en) 2009-04-08 2013-01-08 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US7983065B2 (en) 2009-04-08 2011-07-19 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines
JP2012523648A (ja) 2009-04-08 2012-10-04 サンディスク スリーディー,エルエルシー 垂直ビット線および二重グローバルビット線アーキテクチャを有する再プログラミング可能な不揮発性メモリ素子の3次元アレイ
US7907449B2 (en) 2009-04-09 2011-03-15 Sandisk Corporation Two pass erase for non-volatile storage
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US20100318720A1 (en) 2009-06-16 2010-12-16 Saranyan Rajagopalan Multi-Bank Non-Volatile Memory System with Satellite File System
US7974124B2 (en) * 2009-06-24 2011-07-05 Sandisk Corporation Pointer based column selection techniques in non-volatile memories
US8054691B2 (en) 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8383479B2 (en) 2009-07-21 2013-02-26 Sandisk Technologies Inc. Integrated nanostructure-based non-volatile memory fabrication
US8339183B2 (en) * 2009-07-24 2012-12-25 Sandisk Technologies Inc. Charge pump with reduced energy consumption through charge sharing and clock boosting suitable for high voltage word line in flash memories
US8144511B2 (en) 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US8400854B2 (en) 2009-09-11 2013-03-19 Sandisk Technologies Inc. Identifying at-risk data in non-volatile storage
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8423866B2 (en) * 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8473809B2 (en) 2009-11-20 2013-06-25 Sandisk Technologies Inc. Data coding for improved ECC efficiency
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US20110133820A1 (en) * 2009-12-09 2011-06-09 Feng Pan Multi-Stage Charge Pump with Variable Number of Boosting Stages
US8174895B2 (en) 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8054684B2 (en) 2009-12-18 2011-11-08 Sandisk Technologies Inc. Non-volatile memory and method with atomic program sequence and write abort detection
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US7888966B1 (en) 2010-03-25 2011-02-15 Sandisk Corporation Enhancement of input/output for non source-synchronous interfaces
US8218366B2 (en) 2010-04-18 2012-07-10 Sandisk Technologies Inc. Programming non-volatile storage including reducing impact from other memory cells
US8546214B2 (en) 2010-04-22 2013-10-01 Sandisk Technologies Inc. P-type control gate in non-volatile storage and methods for forming same
US8427874B2 (en) 2010-04-30 2013-04-23 SanDisk Technologies, Inc. Non-volatile memory and method with even/odd combined block decoding
US8208310B2 (en) 2010-05-04 2012-06-26 Sandisk Technologies Inc. Mitigating channel coupling effects during sensing of non-volatile storage elements
US8274831B2 (en) 2010-05-24 2012-09-25 Sandisk Technologies Inc. Programming non-volatile storage with synchronized coupling
US8526237B2 (en) 2010-06-08 2013-09-03 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof
US20110297912A1 (en) 2010-06-08 2011-12-08 George Samachisa Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof
US8546239B2 (en) 2010-06-11 2013-10-01 Sandisk Technologies Inc. Methods of fabricating non-volatile memory with air gaps
US8946048B2 (en) 2010-06-19 2015-02-03 Sandisk Technologies Inc. Method of fabricating non-volatile memory with flat cell structures and air gap isolation
US8603890B2 (en) 2010-06-19 2013-12-10 Sandisk Technologies Inc. Air gap isolation in non-volatile memory
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8369156B2 (en) 2010-07-13 2013-02-05 Sandisk Technologies Inc. Fast random access to non-volatile storage
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
CN107093464A (zh) 2010-07-13 2017-08-25 桑迪士克科技有限责任公司 后台存储器系统接口的动态优化
US8374031B2 (en) 2010-09-29 2013-02-12 SanDisk Technologies, Inc. Techniques for the fast settling of word lines in NAND flash memory
US8106701B1 (en) 2010-09-30 2012-01-31 Sandisk Technologies Inc. Level shifter with shoot-through current isolation
US20120081172A1 (en) 2010-09-30 2012-04-05 Jonathan Hoang Huynh High Voltage Switch Suitable for Use in Flash Memory
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8837216B2 (en) 2010-12-13 2014-09-16 Sandisk Technologies Inc. Non-volatile storage system with shared bit lines connected to a single selection device
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
US8625322B2 (en) 2010-12-14 2014-01-07 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with low current structures and methods thereof
US20120159040A1 (en) 2010-12-15 2012-06-21 Dhaval Parikh Auxiliary Interface for Non-Volatile Memory System
US8294509B2 (en) 2010-12-20 2012-10-23 Sandisk Technologies Inc. Charge pump systems with reduction in inefficiencies due to charge sharing between capacitances
US8339185B2 (en) 2010-12-20 2012-12-25 Sandisk 3D Llc Charge pump system that dynamically selects number of active stages
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US8782495B2 (en) 2010-12-23 2014-07-15 Sandisk Il Ltd Non-volatile memory and methods with asymmetric soft read points around hard read points
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
US8099652B1 (en) 2010-12-23 2012-01-17 Sandisk Corporation Non-volatile memory and methods with reading soft bits in non uniform schemes
US8778749B2 (en) 2011-01-12 2014-07-15 Sandisk Technologies Inc. Air isolation in high density non-volatile memory
US8472257B2 (en) 2011-03-24 2013-06-25 Sandisk Technologies Inc. Nonvolatile memory and method for improved programming with reduced verify
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8334796B2 (en) 2011-04-08 2012-12-18 Sandisk Technologies Inc. Hardware efficient on-chip digital temperature coefficient voltage generator and method
US8537593B2 (en) 2011-04-28 2013-09-17 Sandisk Technologies Inc. Variable resistance switch suitable for supplying high voltage to drive load
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
JP2014513850A (ja) 2011-05-17 2014-06-05 サンディスク テクノロジィース インコーポレイテッド 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8427884B2 (en) 2011-06-20 2013-04-23 SanDisk Technologies, Inc. Bit scan circuits and method in non-volatile memory
US8432740B2 (en) 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US9032269B2 (en) 2011-07-22 2015-05-12 Sandisk Technologies Inc. Systems and methods of storing data
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US20130031431A1 (en) 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
US8743615B2 (en) * 2011-08-22 2014-06-03 Sandisk Technologies Inc. Read compensation for partially programmed blocks of non-volatile storage
US8699247B2 (en) 2011-09-09 2014-04-15 Sandisk Technologies Inc. Charge pump system dynamically reconfigurable for read and program
US8638606B2 (en) 2011-09-16 2014-01-28 Sandisk Technologies Inc. Substrate bias during program of non-volatile storage
WO2013043602A2 (en) 2011-09-19 2013-03-28 SanDisk Technologies, Inc. High endurance non-volatile storage
US8406053B1 (en) 2011-09-21 2013-03-26 Sandisk Technologies Inc. On chip dynamic read for non-volatile storage
US8400212B1 (en) 2011-09-22 2013-03-19 Sandisk Technologies Inc. High voltage charge pump regulation system with fine step adjustment
US8514628B2 (en) 2011-09-22 2013-08-20 Sandisk Technologies Inc. Dynamic switching approach to reduce area and power consumption of high voltage charge pumps
US8395434B1 (en) 2011-10-05 2013-03-12 Sandisk Technologies Inc. Level shifter with negative voltage capability
US8630120B2 (en) 2011-10-20 2014-01-14 Sandisk Technologies Inc. Compact sense amplifier for non-volatile memory
WO2013058960A2 (en) 2011-10-20 2013-04-25 Sandisk Technologies Inc. Compact sense amplifier for non-volatile memory
US8705293B2 (en) 2011-10-20 2014-04-22 Sandisk Technologies Inc. Compact sense amplifier for non-volatile memory suitable for quick pass write
US8917554B2 (en) 2011-10-26 2014-12-23 Sandisk Technologies Inc. Back-biasing word line switch transistors
US8593866B2 (en) 2011-11-11 2013-11-26 Sandisk Technologies Inc. Systems and methods for operating multi-bank nonvolatile memory
WO2013074528A1 (en) 2011-11-18 2013-05-23 SanDisk Technologies, Inc. Non-volatile storage with broken word line screen and data recovery
US9076544B2 (en) 2011-11-18 2015-07-07 Sandisk Technologies Inc. Operation for non-volatile storage system with shared bit lines
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8811091B2 (en) 2011-12-16 2014-08-19 SanDisk Technologies, Inc. Non-volatile memory and method with improved first pass programming
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8885404B2 (en) 2011-12-24 2014-11-11 Sandisk Technologies Inc. Non-volatile storage system with three layer floating gate
US8811075B2 (en) 2012-01-06 2014-08-19 Sandisk Technologies Inc. Charge cycling by equalizing and regulating the source, well, and bit line levels during write operations for NAND flash memory: verify to program transition
US8582381B2 (en) 2012-02-23 2013-11-12 SanDisk Technologies, Inc. Temperature based compensation during verify operations for non-volatile storage
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
US8937835B2 (en) 2012-03-13 2015-01-20 Sandisk Technologies Inc. Non-volatile storage with read process that reduces disturb
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8897085B2 (en) 2012-03-19 2014-11-25 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile memory: pausing techniques
US8804430B2 (en) 2012-03-26 2014-08-12 Sandisk Technologies Inc. Selected word line dependent select gate diffusion region voltage during programming
US8902659B2 (en) 2012-03-26 2014-12-02 SanDisk Technologies, Inc. Shared-bit-line bit line setup scheme
US8804425B2 (en) 2012-03-26 2014-08-12 Sandisk Technologies Inc. Selected word line dependent programming voltage
US8638608B2 (en) 2012-03-26 2014-01-28 Sandisk Technologies Inc. Selected word line dependent select gate voltage during program
US8760957B2 (en) 2012-03-27 2014-06-24 SanDisk Technologies, Inc. Non-volatile memory and method having a memory array with a high-speed, short bit-line portion
US9135192B2 (en) 2012-03-30 2015-09-15 Sandisk Technologies Inc. Memory system with command queue reordering
US9053066B2 (en) 2012-03-30 2015-06-09 Sandisk Technologies Inc. NAND flash memory interface
US8995183B2 (en) 2012-04-23 2015-03-31 Sandisk Technologies Inc. Data retention in nonvolatile memory with multiple data storage formats
US8732391B2 (en) 2012-04-23 2014-05-20 Sandisk Technologies Inc. Obsolete block management for data retention in nonvolatile memory
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8937837B2 (en) 2012-05-08 2015-01-20 Sandisk Technologies Inc. Bit line BL isolation scheme during erase operation for non-volatile storage
US9281029B2 (en) 2012-06-15 2016-03-08 Sandisk 3D Llc Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof
US20130336037A1 (en) 2012-06-15 2013-12-19 Sandisk 3D Llc 3d memory having vertical switches with surround gates and method thereof
US9293195B2 (en) 2012-06-28 2016-03-22 Sandisk Technologies Inc. Compact high speed sense amplifier for non-volatile memory
US8971141B2 (en) 2012-06-28 2015-03-03 Sandisk Technologies Inc. Compact high speed sense amplifier for non-volatile memory and hybrid lockout
US20140003176A1 (en) 2012-06-28 2014-01-02 Man Lung Mui Compact High Speed Sense Amplifier for Non-Volatile Memory with Reduced layout Area and Power Consumption
US9142305B2 (en) 2012-06-28 2015-09-22 Sandisk Technologies Inc. System to reduce stress on word line select transistor during erase operation
US8566671B1 (en) 2012-06-29 2013-10-22 Sandisk Technologies Inc. Configurable accelerated post-write read to manage errors
US9053819B2 (en) 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
US8830745B2 (en) 2012-07-17 2014-09-09 Sandisk Technologies Inc. Memory system with unverified program step
US8854900B2 (en) 2012-07-26 2014-10-07 SanDisk Technologies, Inc. Non-volatile memory and method with peak current control
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US8730724B2 (en) 2012-08-07 2014-05-20 Sandisk Technologies Inc. Common line current for program level determination in flash memory
US8737125B2 (en) 2012-08-07 2014-05-27 Sandisk Technologies Inc. Aggregating data latches for program level determination
US9224475B2 (en) 2012-08-23 2015-12-29 Sandisk Technologies Inc. Structures and methods for making NAND flash memory
US9036417B2 (en) 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US9329986B2 (en) 2012-09-10 2016-05-03 Sandisk Technologies Inc. Peak current management in multi-die non-volatile memory devices
US20140071761A1 (en) 2012-09-10 2014-03-13 Sandisk Technologies Inc. Non-volatile storage with joint hard bit and soft bit reading
US8887011B2 (en) 2012-09-13 2014-11-11 Sandisk Technologies Inc. Erased page confirmation in multilevel memory
US8710909B2 (en) 2012-09-14 2014-04-29 Sandisk Technologies Inc. Circuits for prevention of reverse leakage in Vth-cancellation charge pumps
US9153595B2 (en) 2012-09-14 2015-10-06 Sandisk Technologies Inc. Methods of making word lines and select lines in NAND flash memory
US9099532B2 (en) 2012-09-14 2015-08-04 Sandisk Technologies Inc. Processes for NAND flash memory fabrication
US9810723B2 (en) 2012-09-27 2017-11-07 Sandisk Technologies Llc Charge pump based over-sampling ADC for current detection
US9164526B2 (en) 2012-09-27 2015-10-20 Sandisk Technologies Inc. Sigma delta over-sampling charge pump analog-to-digital converter
US9053011B2 (en) 2012-09-28 2015-06-09 Sandisk Technologies Inc. Selective protection of lower page data during upper page write
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9047974B2 (en) 2012-10-04 2015-06-02 Sandisk Technologies Inc. Erased state reading
US9129854B2 (en) 2012-10-04 2015-09-08 Sandisk Technologies Inc. Full metal gate replacement process for NAND flash memory
US20140108705A1 (en) 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
US9218881B2 (en) 2012-10-23 2015-12-22 Sandisk Technologies Inc. Flash memory blocks with extended data retention
US9159406B2 (en) 2012-11-02 2015-10-13 Sandisk Technologies Inc. Single-level cell endurance improvement with pre-defined blocks
US8902669B2 (en) 2012-11-08 2014-12-02 SanDisk Technologies, Inc. Flash memory with data retention bias
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
US8830717B2 (en) 2012-11-29 2014-09-09 Sandisk Technologies Inc. Optimized configurable NAND parameters
US9171620B2 (en) 2012-11-29 2015-10-27 Sandisk Technologies Inc. Weighted read scrub for nonvolatile memory
US9183945B2 (en) 2012-11-30 2015-11-10 Sandisk Technologies Inc. Systems and methods to avoid false verify and false read
US8823075B2 (en) 2012-11-30 2014-09-02 Sandisk Technologies Inc. Select gate formation for nanodot flat cell
US9146807B2 (en) 2012-12-04 2015-09-29 Sandisk Technologies Inc. Bad column handling in flash memory
US9087601B2 (en) 2012-12-06 2015-07-21 Sandisk Technologies Inc. Select gate bias during program of non-volatile storage
US8995184B2 (en) 2012-12-06 2015-03-31 Sandisk Technologies Inc. Adaptive operation of multi level cell memory
US9104591B2 (en) 2012-12-11 2015-08-11 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
US9123577B2 (en) 2012-12-12 2015-09-01 Sandisk Technologies Inc. Air gap isolation in non-volatile memory using sacrificial films
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US8923065B2 (en) 2012-12-31 2014-12-30 SanDisk Technologies, Inc. Nonvolatile memory and method with improved I/O interface
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
US8913428B2 (en) 2013-01-25 2014-12-16 Sandisk Technologies Inc. Programming non-volatile storage system with multiple memory die
US9026757B2 (en) 2013-01-25 2015-05-05 Sandisk Technologies Inc. Non-volatile memory programming data preservation
US9098205B2 (en) 2013-01-30 2015-08-04 Sandisk Technologies Inc. Data randomization in 3-D memory
US8885416B2 (en) 2013-01-30 2014-11-11 Sandisk Technologies Inc. Bit line current trip point modulation for reading nonvolatile storage elements
US8971128B2 (en) 2013-01-31 2015-03-03 Sandisk Technologies Inc. Adaptive initial program voltage for non-volatile memory
US8836412B2 (en) 2013-02-11 2014-09-16 Sandisk 3D Llc Charge pump with a power-controlled clock buffer to reduce power consumption and output voltage ripple
US8995195B2 (en) 2013-02-12 2015-03-31 Sandisk Technologies Inc. Fast-reading NAND flash memory
US8987802B2 (en) 2013-02-28 2015-03-24 Sandisk Technologies Inc. Method for using nanoparticles to make uniform discrete floating gate layer
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9384839B2 (en) 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
US9349452B2 (en) 2013-03-07 2016-05-24 Sandisk Technologies Inc. Hybrid non-volatile memory cells for shared bit line
US9331181B2 (en) 2013-03-11 2016-05-03 Sandisk Technologies Inc. Nanodot enhanced hybrid floating gate for non-volatile memory devices
US9165656B2 (en) 2013-03-11 2015-10-20 Sandisk Technologies Inc. Non-volatile storage with shared bit lines and flat memory cells
US8988947B2 (en) 2013-03-25 2015-03-24 Sandisk Technologies Inc. Back bias during program verify of non-volatile storage
US8942038B2 (en) 2013-04-02 2015-01-27 SanDisk Technologies, Inc. High endurance nonvolatile memory
US8932948B2 (en) 2013-04-18 2015-01-13 SanDisk Technologies, Inc. Memory cell floating gate replacement
US9070449B2 (en) 2013-04-26 2015-06-30 Sandisk Technologies Inc. Defective block management
US9177808B2 (en) 2013-05-21 2015-11-03 Sandisk Technologies Inc. Memory device with control gate oxygen diffusion control and method of making thereof
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
CN105122227B (zh) 2013-05-29 2018-10-23 桑迪士克科技有限责任公司 用于nand存储器系统的高性能系统拓补
US9183086B2 (en) 2013-06-03 2015-11-10 Sandisk Technologies Inc. Selection of data for redundancy calculation in three dimensional nonvolatile memory
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9123430B2 (en) 2013-06-14 2015-09-01 Sandisk 3D Llc Differential current sense amplifier and method for non-volatile memory
US8981835B2 (en) 2013-06-18 2015-03-17 Sandisk Technologies Inc. Efficient voltage doubler
US8933516B1 (en) 2013-06-24 2015-01-13 Sandisk 3D Llc High capacity select switches for three-dimensional structures
US9024680B2 (en) 2013-06-24 2015-05-05 Sandisk Technologies Inc. Efficiency for charge pumps with low supply voltages
US9077238B2 (en) 2013-06-25 2015-07-07 SanDisk Technologies, Inc. Capacitive regulation of charge pumps without refresh operation interruption
US9230656B2 (en) 2013-06-26 2016-01-05 Sandisk Technologies Inc. System for maintaining back gate threshold voltage in three dimensional NAND memory
US9007046B2 (en) 2013-06-27 2015-04-14 Sandisk Technologies Inc. Efficient high voltage bias regulation circuit
US20150006784A1 (en) 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US8969153B2 (en) 2013-07-01 2015-03-03 Sandisk Technologies Inc. NAND string containing self-aligned control gate sidewall cladding
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9177663B2 (en) 2013-07-18 2015-11-03 Sandisk Technologies Inc. Dynamic regulation of memory array source line
US9442842B2 (en) 2013-08-19 2016-09-13 Sandisk Technologies Llc Memory system performance configuration
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
US9613806B2 (en) 2013-09-04 2017-04-04 Sandisk Technologies Llc Triple patterning NAND flash memory
US8932955B1 (en) 2013-09-04 2015-01-13 Sandisk Technologies Inc. Triple patterning NAND flash memory with SOC
US9342401B2 (en) 2013-09-16 2016-05-17 Sandisk Technologies Inc. Selective in-situ retouching of data in nonvolatile memory
US9240238B2 (en) 2013-09-20 2016-01-19 Sandisk Technologies Inc. Back gate operation with elevated threshold voltage
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US9083231B2 (en) 2013-09-30 2015-07-14 Sandisk Technologies Inc. Amplitude modulation for pass gate to improve charge pump efficiency
US8929141B1 (en) 2013-10-02 2015-01-06 Sandisk Technologies Inc. Three-dimensional NAND memory with adaptive erase
US9177673B2 (en) 2013-10-28 2015-11-03 Sandisk Technologies Inc. Selection of data for redundancy calculation by likely error rate
US20150121156A1 (en) 2013-10-28 2015-04-30 Sandisk Technologies Inc. Block Structure Profiling in Three Dimensional Memory
KR102170975B1 (ko) * 2013-10-31 2020-10-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 불량 워드라인 탐지 방법
US9501400B2 (en) 2013-11-13 2016-11-22 Sandisk Technologies Llc Identification and operation of sub-prime blocks in nonvolatile memory
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9229644B2 (en) 2013-11-25 2016-01-05 Sandisk Technologies Inc. Targeted copy of data relocation
US9141291B2 (en) 2013-11-26 2015-09-22 Sandisk Technologies Inc. Adaptive context disbursement for improved performance in non-volatile memory systems
US9218283B2 (en) 2013-12-02 2015-12-22 Sandisk Technologies Inc. Multi-die write management
US9213601B2 (en) 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US9093158B2 (en) 2013-12-06 2015-07-28 Sandisk Technologies Inc. Write scheme for charge trapping memory
US9154027B2 (en) 2013-12-09 2015-10-06 Sandisk Technologies Inc. Dynamic load matching charge pump for reduced current consumption
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
US9208023B2 (en) 2013-12-23 2015-12-08 Sandisk Technologies Inc. Systems and methods for scheduling post-write read in nonvolatile memory
US9703702B2 (en) 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
US9466383B2 (en) 2013-12-30 2016-10-11 Sandisk Technologies Llc Non-volatile memory and method with adaptive logical groups
US9620182B2 (en) 2013-12-31 2017-04-11 Sandisk Technologies Llc Pulse mechanism for memory circuit interruption
US9349740B2 (en) 2014-01-24 2016-05-24 Sandisk Technologies Inc. Non-volatile storage element with suspended charge storage region
US9514831B2 (en) 2014-01-29 2016-12-06 Sandisk Technologies Llc Multi-clock generation through phase locked loop (PLL) reference
US9508437B2 (en) 2014-01-30 2016-11-29 Sandisk Technologies Llc Pattern breaking in multi-die write management
US9368224B2 (en) 2014-02-07 2016-06-14 SanDisk Technologies, Inc. Self-adjusting regulation current for memory array source line
US9541456B2 (en) 2014-02-07 2017-01-10 Sandisk Technologies Llc Reference voltage generator for temperature sensor with trimming capability at two temperatures
US9337085B2 (en) 2014-02-12 2016-05-10 Sandisk Technologies Inc. Air gap formation between bit lines with side protection
US9542344B2 (en) 2014-02-19 2017-01-10 Sandisk Technologies Llc Datapath management in a memory controller
US9325276B2 (en) 2014-03-03 2016-04-26 Sandisk Technologies Inc. Methods and apparatus for clock oscillator temperature coefficient trimming
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9384128B2 (en) 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8929169B1 (en) 2014-05-13 2015-01-06 Sandisk Technologies Inc. Power management for nonvolatile memory array
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US9015561B1 (en) 2014-06-11 2015-04-21 Sandisk Technologies Inc. Adaptive redundancy in three dimensional memory
US8918577B1 (en) 2014-06-13 2014-12-23 Sandisk Technologies Inc. Three dimensional nonvolatile memory with variable block capacity
JP6286292B2 (ja) * 2014-06-20 2018-02-28 株式会社フローディア 不揮発性半導体記憶装置
US9483339B2 (en) 2014-06-27 2016-11-01 Sandisk Technologies Llc Systems and methods for fast bit error rate estimation
US9245898B2 (en) 2014-06-30 2016-01-26 Sandisk Technologies Inc. NAND flash memory integrated circuits and processes with controlled gate height
US9633742B2 (en) 2014-07-10 2017-04-25 Sandisk Technologies Llc Segmentation of blocks for faster bit line settling/recovery in non-volatile memory devices
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9466523B2 (en) 2014-07-29 2016-10-11 Sandisk Technologies Llc Contact hole collimation using etch-resistant walls
US9218874B1 (en) 2014-08-11 2015-12-22 Sandisk Technologies Inc. Multi-pulse programming cycle of non-volatile memory for enhanced de-trapping
US9330776B2 (en) 2014-08-14 2016-05-03 Sandisk Technologies Inc. High voltage step down regulator with breakdown protection
US9208895B1 (en) 2014-08-14 2015-12-08 Sandisk Technologies Inc. Cell current control through power supply
US9305648B2 (en) 2014-08-20 2016-04-05 SanDisk Technologies, Inc. Techniques for programming of select gates in NAND memory
US9312026B2 (en) 2014-08-22 2016-04-12 Sandisk Technologies Inc. Zoned erase verify in three dimensional nonvolatile memory
US9349468B2 (en) 2014-08-25 2016-05-24 SanDisk Technologies, Inc. Operational amplifier methods for charging of sense amplifier internal nodes
US9224637B1 (en) 2014-08-26 2015-12-29 Sandisk Technologies Inc. Bi-level dry etching scheme for transistor contacts
US9484314B2 (en) 2014-08-29 2016-11-01 Sandisk Technologies Llc Word line hook up with protected air gap
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9401275B2 (en) 2014-09-03 2016-07-26 Sandisk Technologies Llc Word line with multi-layer cap structure
US9224744B1 (en) 2014-09-03 2015-12-29 Sandisk Technologies Inc. Wide and narrow patterning using common process
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9411669B2 (en) 2014-09-11 2016-08-09 Sandisk Technologies Llc Selective sampling of data stored in nonvolatile memory
US9418750B2 (en) 2014-09-15 2016-08-16 Sandisk Technologies Llc Single ended word line and bit line time constant measurement
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9419006B2 (en) 2014-09-24 2016-08-16 Sandisk Technologies Llc Process for 3D NAND memory with socketed floating gate cells
US9431411B1 (en) 2014-09-24 2016-08-30 Sandisk Technologies Llc Efficient process for 3D NAND memory with socketed floating gate cells
US9236393B1 (en) 2014-09-24 2016-01-12 Sandisk Technologies Inc. 3D NAND memory with socketed floating gate cells
US9496272B2 (en) 2014-09-24 2016-11-15 Sandisk Technologies Llc 3D memory having NAND strings switched by transistors with elongated polysilicon gates
US9595338B2 (en) 2014-09-24 2017-03-14 Sandisk Technologies Llc Utilizing NAND strings in dummy blocks for faster bit line precharge
US9318204B1 (en) 2014-10-07 2016-04-19 SanDisk Technologies, Inc. Non-volatile memory and method with adjusted timing for individual programming pulses
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9361990B1 (en) 2014-12-18 2016-06-07 SanDisk Technologies, Inc. Time domain ramp rate control for erase inhibit in flash memory
US9385721B1 (en) 2015-01-14 2016-07-05 Sandisk Technologies Llc Bulk driven low swing driver
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US9318210B1 (en) 2015-02-02 2016-04-19 Sandisk Technologies Inc. Word line kick during sensing: trimming and adjacent word lines
US9236128B1 (en) 2015-02-02 2016-01-12 Sandisk Technologies Inc. Voltage kick to non-selected word line during programming
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US9390922B1 (en) 2015-02-06 2016-07-12 Sandisk Technologies Llc Process for forming wide and narrow conductive lines
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9583207B2 (en) 2015-02-10 2017-02-28 Sandisk Technologies Llc Adaptive data shaping in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9425047B1 (en) 2015-02-19 2016-08-23 Sandisk Technologies Llc Self-aligned process using variable-fluidity material
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9318209B1 (en) 2015-03-24 2016-04-19 Sandisk Technologies Inc. Digitally controlled source side select gate offset in 3D NAND memory erase
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9502123B2 (en) 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9502428B1 (en) 2015-04-29 2016-11-22 Sandisk Technologies Llc Sidewall assisted process for wide and narrow line formation
US9595444B2 (en) 2015-05-14 2017-03-14 Sandisk Technologies Llc Floating gate separation in NAND flash memory
US9917507B2 (en) 2015-05-28 2018-03-13 Sandisk Technologies Llc Dynamic clock period modulation scheme for variable charge pump load currents
US9627393B2 (en) 2015-06-30 2017-04-18 Sandisk Technologies Llc Height reduction in memory periphery
US9548107B1 (en) * 2015-07-09 2017-01-17 Kabushiki Kaisha Toshiba Semiconductor memory device
US9443862B1 (en) 2015-07-24 2016-09-13 Sandisk Technologies Llc Select gates with select gate dielectric first
US9613971B2 (en) 2015-07-24 2017-04-04 Sandisk Technologies Llc Select gates with central open areas
US9647536B2 (en) 2015-07-28 2017-05-09 Sandisk Technologies Llc High voltage generation using low voltage devices
US9484098B1 (en) 2015-08-05 2016-11-01 Sandisk Technologies Llc Smart reread in nonvolatile memory
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
US10157681B2 (en) 2015-09-14 2018-12-18 Sandisk Technologies Llc Programming of nonvolatile memory with verify level dependent on memory state and programming loop count
US9520776B1 (en) 2015-09-18 2016-12-13 Sandisk Technologies Llc Selective body bias for charge pump transfer switches
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9792175B2 (en) 2015-10-21 2017-10-17 Sandisk Technologies Llc Bad column management in nonvolatile memory
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
KR102451154B1 (ko) 2015-12-07 2022-10-06 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
US9569143B1 (en) * 2015-12-11 2017-02-14 Sandisk Technologies Llc In block data folding for 3D non-volatile storage
US9698676B1 (en) 2016-03-11 2017-07-04 Sandisk Technologies Llc Charge pump based over-sampling with uniform step size for current detection
US10248499B2 (en) 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
KR102115638B1 (ko) * 2016-07-27 2020-05-27 매그나칩 반도체 유한회사 Otp 메모리 장치
US9792994B1 (en) 2016-09-28 2017-10-17 Sandisk Technologies Llc Bulk modulation scheme to reduce I/O pin capacitance
US10304550B1 (en) 2017-11-29 2019-05-28 Sandisk Technologies Llc Sense amplifier with negative threshold sensing for non-volatile memory
US10643677B2 (en) 2018-06-26 2020-05-05 Sandisk Technologies Llc Negative kick on bit line control transistors for faster bit line settling during sensing
US10643695B1 (en) 2019-01-10 2020-05-05 Sandisk Technologies Llc Concurrent multi-state program verify for non-volatile memory
US10643713B1 (en) 2019-02-08 2020-05-05 Sandisk Technologies Llc Toggling power supply for faster bit line settling during sensing
KR20210024916A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US11024392B1 (en) 2019-12-23 2021-06-01 Sandisk Technologies Llc Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4460982A (en) * 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US5602789A (en) * 1991-03-12 1997-02-11 Kabushiki Kaisha Toshiba Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller
JP3476952B2 (ja) * 1994-03-15 2003-12-10 株式会社東芝 不揮発性半導体記憶装置
US5497354A (en) * 1994-06-02 1996-03-05 Intel Corporation Bit map addressing schemes for flash memory
JP2689948B2 (ja) * 1995-04-28 1997-12-10 日本電気株式会社 多値メモリセルを有する半導体記憶装置
US5677869A (en) * 1995-12-14 1997-10-14 Intel Corporation Programming flash memory using strict ordering of states
JPH09180473A (ja) * 1995-12-27 1997-07-11 Nec Corp 不揮発性半導体メモリ装置
JP3547245B2 (ja) * 1996-02-01 2004-07-28 シャープ株式会社 不揮発性メモリの多値書き込み方法

Also Published As

Publication number Publication date
EP1615227B1 (de) 2008-09-10
DE69738992D1 (de) 2008-10-23
KR100244863B1 (ko) 2000-03-02
KR970067856A (ko) 1997-10-13
EP0797212A2 (de) 1997-09-24
US6046935A (en) 2000-04-04
EP0797212B1 (de) 2005-12-28
EP1615227A2 (de) 2006-01-11
US5903495A (en) 1999-05-11
EP1615227A3 (de) 2006-03-15
EP0797212A3 (de) 1999-07-14
TW337046B (en) 1998-07-21
DE69734951D1 (de) 2006-02-02

Similar Documents

Publication Publication Date Title
DE69734951T2 (de) Halbleiteranordnung und Speichersystem
DE69934961T2 (de) Halbleiterspeicheranordnung und deren Speicherverfahren
DE4433721C2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE4422810C2 (de) Nichtflüchtige Halbleiterspeichervorrichtung
DE102005056493B4 (de) Mehrbit nichtflüchtige Halbleiterspeicherbauelemente und Betriebsverfahren
DE102004033443B4 (de) Flashspeicherbauelement mit Mehrpegelzelle
DE69702256T2 (de) Verfahren für einen merhfachen, bits pro zelle flash eeprom, speicher mit seitenprogrammierungsmodus und leseverfahren
DE69706873T2 (de) Löschverfahren für mehrere-bits-pro-zelle flash -eeprom mit seitenmodus
US6363010B2 (en) Nonvolatile semiconductor memory device
DE69722133T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
JP3210259B2 (ja) 半導体記憶装置及び記憶システム
US20020034097A1 (en) Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
DE19523775A1 (de) Nichtflüchtige Halbleiterspeichervorrichtung
KR20000011896A (ko) 비휘발성반도체기억장치및그데이터기입방법
DE69828131T2 (de) Nicht-flüchtige Halbleiterspeicheranordnung und Schreibverfahren dafür
DE102008003168A1 (de) Speichervorrichtung und Verfahren zum Betreiben derselben
DE19956461A1 (de) Nichtflüchtige Halbleiterspeichereinrichtung, die Mehrfachbit-Daten speichert
DE69627318T2 (de) Mehrpegelige nichtflüchtige Speicheranordnung
DE60314287T2 (de) Nichtflüchtiger speicher und schreibverfahren dafür
DE69828669T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
JP3200006B2 (ja) 不揮発性半導体記憶装置
DE102006031575A1 (de) Seitenpuffer, nichtflüchtiges Speicherbauelement und Betriebsverfahren
DE102021005912A1 (de) Selektive übersteuerung der versorgungsspannung für einen primärschalter zum programmieren von speicherzellen
DE69232785T2 (de) Nicht-flüchtige Halbleiter-Speicher-Vorrichtung
DE69630320T2 (de) Seitenmodus-schwebegatterspeicheranordnung mit mehrbitzellen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition