-
Die
Erfindung betrifft ein Flashspeicherbauelement, insbesondere ein
Flashspeicherbauelement vom Mehrpegelzellen(MLC)-Typ, und ein Lese-
und Programmierverfahren hierfür.
-
Flashspeicherbauelemente
werden allgemein in NAND-Flashspeicherbauelemente und NOR-Flashspeicherbauelemente
klassifiziert. Während
NOR-Flashspeicherbauelemente Speicherzellen umfassen, welche unabhängig mit
Bitleitungen und Wortleitungen verbunden sind und eine ausgezeichnete
Direktzugriffszeit aufweisen, umfassen NAND-Flashspeicherbauelemente
Speicherzellen, welche in Reihe geschaltet sind, so dass nur ein
Kontakt pro Zellenkette erforderlich ist. Deshalb haben NAND-Flashspeicherbauelemente
einen ausgezeichneten Integrationsgrad. Entsprechend werden NAND-Strukturen
hauptsächlich
in hochintegrierten Flashspeicherbauelementen verwendet.
-
Ein
allgemein bekanntes NAND-Flashspeicherbauelement umfasst ein Speicherzellenfeld, einen
Zeilendecoder und einen Seitenpuffer. Das Speicherzellenfeld umfasst
Wortleitungen, welche sich entlang Zeilen erstrecken, und Bitleitungen,
welche sich entlang Spalten erstrecken, und Zellenketten, welche
mit entsprechenden Bitleitungen korrespondieren.
-
Die
Zellenketten sind entlang den Bitleitungen mit Kettenauswahltransistoren,
Speicherzellen und Masseauswahltransistoren in dieser Reihenfolge verbunden.
Ein Strompfad des Kettenauswahltransistors in der Zellenkette ist
mit der korrespondierenden Bitleitung und einem Strompfad der Speicherzellen
verbunden. Ein Strompfad des Masseauswahltransistors ist zwischen
einer gemeinsamen Sourceleitung und einem Strompfad der Speicherzellen
eingeschleift. Eine Kettenauswahlleitung, Wortleitungen und eine
gemeinsame Sourceleitung sind mit Gates der Kettenauswahltransistoren,
Steuergates der Speicherzellentransistoren bzw. einem Gate des Masseauswahltransistors
verbunden.
-
Jede
der Speicherzellen ist mit einem Zellentransistor mit einem Steuergate,
einem floatenden Gate, einer Source und einer Drain ausgestattet.
Wie allgemein bekannt ist, führen
die Zellentransistoren einen Programmiervorgang unter Verwendung
von Fowler-Nordheim-Tunneln (F-N-Tunneln) aus.
-
Der
allgemein bekannte Zeilendecoder, der mit der Kettenauswahlleitung,
den Wortleitungen und der gemeinsamen Sourceleitung verbunden ist,
ist auf einer Seite des Speicherzellenfeldes angeordnet. Zusätzlich ist
der mit der Mehrzahl von Bitleitungen verbundene Seitenpuffer auf
der anderen Seite des Speicherzellenfeldes angeordnet.
-
In
jüngerer
Zeit sind zur Erhöhung
der Integration eines solchen Flashspeicherbauelements Entwicklungen
für eine
Mehrbitzelle gemacht worden, welche in der Lage ist, mehrere Bits
an Daten in einer Speicherzelle zu speichern. Eine solche Speicherzelle
wird gewöhnlich
als Mehrpe gelzelle (MLC) bezeichnet. Eine Einzelbitzelle wird demgegenüber als
Einzelpegelzelle (SLC) bezeichnet.
-
Allgemein
hat die Mehrpegelzelle zwei oder mehr Schwellwertspannungsverteilungen
und zwei oder mehr Datenspeicherzustände korrespondierend mit den
Spannungsverteilungen. Wie aus 11A ersichtlich
ist, hat die Mehrpegelzelle, welche zwei Bit an Daten programmieren
kann, vier Datenspeicherzustände,
die mit [11], [10], [01] und [00] bezeichnet sind. Diese Verteilungen
korrespondieren mit den Schwellwertspannungsverteilungen der Mehrpegelzelle.
Wenn beispielsweise angenommen wird, dass die entsprechenden Schwellwertspannungsverteilungen
der Speicherzelle –2,7V
oder niedriger, 0,3V bis 0,7V, 1,3V bis 1,7V bzw. 2,3V bis 2,7V
sind, dann korrespondieren die Zustände [11], [10], [01] und [00] mit
2,7V oder niedriger, 0,3V bis 0,7V, 1,3V bis 1,7V bzw. 2,3V bis
2,7V.
-
Ein
Lesevorgang des Flashspeicherbauelements mit Mehrpegelzellen wird
durch Detektieren von Daten einer Mehrpegelzelle durch eine Differenz zwischen
Zellströmen
ausgeführt,
welche über
eine ausgewählte
Speicherzelle gemäß einer
konstanten Bitleitungsstrommenge und einer stufenförmigen Wortleitungsspannung
fließen.
Wie aus 11B ersichtlich
ist, umfasst ein herkömmliches
Datenleseverfahren die Schritte: dreimaliges Anlegen von Wortleitungsspannungen
an eine ausgewählte
Wortleitung mit gleichmäßigen Intervallen
und Anlegen von Wortleitungsspannungen gleich Vread an nicht ausgewählte Wortleitungen
während
des Lesevorgangs. Hierbei wird die an die ausgewählte Wortleitung angelegte
Spannung nacheinander von einer hohen Spannung zu einer niedrigen
Spannung angelegt. In anderen Worten ausgedrückt, eine zwischen den Zuständen [00]
und [01] angelegte Spannung Vrd3 ist 2V, eine zwischen den Zuständen [01]
und [10] angelegte Spannung Vrd2 ist 1V und eine zwischen den Zuständen [10]
und [11] angelegte Spannung Vrd1 ist 0V. Hierbei wird eine Spannung,
z.B. Vread = 6V, wel che in der Lage ist, die nicht ausgewählten Speicherzellen
leitend zu schalten, an die nicht ausgewählten Wortleitungen angelegt.
Eine detaillierte Beschreibung des Lesevorgangs wird in der koreanischen
Patentveröffentlichung
Nr. 10-0204803 gegeben.
-
Ein
Programmiervorgang des Flashspeicherbauelements mit Mehrpegelzelle
wird durch Anlegen einer vorbestimmten Programmierspannung, z.B. von
14V bis 19V, an das Gate der ausgewählten Speicherzelle durch Nutzung
von F-N-Tunneln und anschließendes
Anlegen einer Massespannung Vss an die Bitleitung durchgeführt. Eine
Versorgungsspannung Vcc wird an die Bitleitung angelegt, um die Programmierung
zu verhindern. Sind die Programmierspannung und die Massespannung
Vss an die Wortleitung bzw. die Bitleitung der ausgewählten Speicherzelle
angelegt, dann wird ein relativ hohes elektrisches Feld zwischen
einem floatenden Gate und einem Kanal der Speicherzelle angelegt.
Durch das elektrische Feld passieren Elektronen des Kanals eine
Oxidschicht, die zwischen dem floatenden Gate und dem Kanal ausgebildet
ist, so dass darin ein Tunneleffekt auftritt. Auf diese Weise wird
eine Schwellwertspannung der Speicherzelle erhöht, die durch ein Ansammeln
der Elektronen im floatenden Gate programmiert wird. 12 zeigt ein Diagramm, das
einen herkömmlichen
Programmiervorgang illustriert. Bei diesem Stand der Technik wird
der Programmiervorgang drei Mal ausgeführt, um den in 12 dargestellten Datenzustand zu erreichen.
Ist der gewünschte
Zustand beispielsweise [00], dann wird der Zustand über die
Stufen 1, 2 und 3 erreicht, und ist der gewünschte Zustand [01], dann wird
die Programmierung über
die Stufen 1 und 2 und die Programmierverhinderung erreicht. Eine
detaillierte Beschreibung des Programmiervorgangs ist in der koreanischen
Patentveröffentlichung
10-0204803 offenbart.
-
Als
technisches Problem liegt der Erfindung die Bereitstellung eines
Flashspeicherbauelements vom Mehrpegelzellentyp sowie zugehöriger Lese- und
Programmierverfahren zugrunde, die verglichen mit dem oben beschriebenen
Stand der Technik verbesserte Eigenschaften aufweisen, insbesondere günstige Datenlese-
und Datenprogrammiervorgänge
erlauben.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung eines Flashspeicherbauelements
mit den Merkmalen des Patentanspruchs 1, durch ein Programmierverfahren
mit den Merkmalen des Patentanspruchs 8 und ein Leseverfahren mit
den Merkmalen des Patentanspruchs 10.
-
Die
Erfindung stellte ein Flashspeicherbauelement und Lese- und Programmierverfahren
hierfür zur
Verfügung,
bei welchen die Effektivität
der Lese- und Schreibvorgänge
verbessert ist und insbesondere die Zeitdauer der Programmiervorgänge reduziert ist.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte
Ausführungsformen
der Erfindung sowie die oben erläuterten,
herkömmlichen Ausführungsbeispiele
sind in den Zeichnungen dargestellt, und vorteilhafte Ausführungsformen
der Erfindung werden nachfolgend beschrieben. Es zeigen:
-
1 ein Blockschaltbild eines
Speicherzellenfeldes eines erfindungsgemäßen NAND-Flashspeicherbauelements,
-
2 ein Blockschaltbild eines
erfindungsgemäßen Flashspeicherbauelements
mit Mehrpegelzelle,
-
3 ein Schaltbild eines erfindungsgemäßen Flashspeicherbauelements
mit Mehrpegelzelle,
-
4 ein Diagramm zur Darstellung
von Datenspeicherzuständen
einer Mehrpegelzelle gemäß der Erfindung,
-
5 ein Zeitablaufdiagramm
zur Darstellung von während
eines Lesevorgangs an eine Wortleitung angelegten Spannungen gemäß der Erfindung,
-
6 eine Zeitablauftabelle
eines LSB-Lesevorgangs in einem Flashspeicherbauelement gemäß der Erfindung,
-
7 eine Zeitablauftabelle
eines MSB-Lesevorgangs in einem Flashspeicherbauelement gemäß der Erfindung,
-
8A ein Diagramm zur Darstellung
eines erfindungsgemäßen Programmierverfahrens,
-
8B ein Zeitablaufdiagramm
zur Darstellung von während
eines Programmiervorgangs an eine Wortleitung angelegten Spannungen
gemäß der Erfindung,
-
9 eine Zeitablauftabelle
eines LSB-Programmiervorgangs in einem Flashspeicherbauelement gemäß der Erfindung,
-
10 eine Zeitablauftabelle
eines MSB-Programmiervorgangs in einem Flashspeicherbauelement gemäß der Erfindung,
-
11A ein Diagramm zur Darstellung
von Datenspeicherzuständen
einer herkömmlichen Mehrpegelzelle,
-
11B ein Zeitablaufdiagramm
zur Darstellung von während
eines herkömmlichen
Lesevorgangs an eine Wortleitung angelegten Spannungen und
-
12 ein Diagramm zur Darstellung
eines herkömmlichen
Programmierverfahrens.
-
1 zeigt ein Schaltbild eines
erfindungsgemäßen Speicherzellenfeldes.
Wie aus 1 ersichtlich
ist, umfasst das Speicherzellenfeld Wortleitungen WL0 bis WLm, Bitleitungen
BL0 bis BLn und Speicherzellen M0 bis Mm. Ein Zeilendecoder 300, der
mit einer Kettenauswahlleitung SSL, den Wortleitungen WL0 bis WLm
und einer Masseauswahlleitung GSL verbunden ist, ist auf einer Seite
des Speicherzellenfeldes 100 angeordnet. Der Zeilendecoder 300 wählt eine
Wortleitung durch eine Kombination eines Decodiervorgangs, welcher
einen korrespondierenden Speicherblock auswählt, und eines Decodiervorgangs,
welcher eine Wortleitung innerhalb der ausgewählten Kette gemäß einer
dieser bereitgestellten Adresse auswählt.
-
Zusätzlich ist
ein Seitenpuffer 200, der mit der Mehrzahl von Bitleitungen
BL0 bis BLn verbunden ist, an einer anderen Seite des Speicherzellenfeldes 100 angeordnet.
Eine Seitenpuffersteuereinheit 290, welche den Seitenpuffer 200 mit
einem Steuersignal, einem Rücksetzsignal
und einem Ladesignal versorgt, und eine Spannungsgeneratorschaltung 280,
welche den Seitenpuffer 200 mit einer variablen Spannung
versorgt, sind auf beiden Seiten des Seitenpuffer angeordnet.
-
2 ist ein Blockschaltbild
des Flashspeicherbauelements gemäß einer
Ausführungsform der
Erfindung. Eine Funktion jedes Blockes wird nachfolgend unter Bezugnahme
auf 2 beschrieben.
-
Das
Speicherzellenfeld 100 speichert Datenbits, welche wenigstens
zwei Bits umfassen. Die Datenbits werden in ein unteres Datenbit
und ein oberes Datenbit klassifiziert. Hierbei werden das untere
Datenbit als „LSB" definiert und das
obere Datenbit als „MSB" definiert. Für Datenbits [10]
ist z.B. ein oberes Datenbit „1" das MSB und ein
unteres Datenbit „0" ist das LSB. Die
Datenbits werden gemäß den Schwellwertspannungsverteilungen
der Speicherzelle aufgeteilt. In dieser Beschreibung wird folgende
Korrespondenz der Spannungsverteilungen zu Datenbits angenommen:
[11] entspricht –2,7V
oder weniger, [10] entspricht 0,3V bis 0,7V, [00] entspricht 1,3V
bis 1,7V und [01] entspricht 2,3V bis 2,7V. Selbstverständlich sind
dies nur beispielhafte Spannungsbereiche und Ausführungsformen
der Erfindung sind auch mit anderen Bereichen effektiv.
-
Eine
Wortleitungsspannung VWL, welche bei Lese- und Programmiervorgängen bestimmt
wird, wird an ausgewählte
oder nicht ausgewählte
Wortleitungen des Speicherzellenfelds 100 angelegt. Die Wortleitungsspannung
VWL wird von einer Wortleitungsspannungsversorgungsschaltung 270 angelegt.
Die Pegel der Wortleitungsspannung werden nachfolgend in einem Abschnitt
mit den Lese- und Programmiervorgängen beschrieben.
-
Eine
Vorladeschaltung 250 wird in Reaktion auf ein erstes Ladesignal
PLOAD betrieben, um eine Bitleitung oder einen Knoten E vorzuladen.
Zusätzlich
steuert die Vorladeschaltung 250 eine erste und eine zweite
Zwischenspeicherschaltung 210 und 220 gemäß einem
Pegel am Knoten E.
-
Die
erste Zwischenspeicherschaltung 210 wird von einem ersten
und einem zweiten Zwischenspeichersignal LCH_MR und LCH_MS und die
zweite Zwischenspeicherschaltung 220 wird von einem dritten
Zwischenspeichersignal LCH_S gesteuert. Durch Nutzung einer Bitleitungsspannungsversorgungsschaltung 240 werden
die zwischengespeicherten Datenbits in die Speicherzelle 100 programmiert
oder die programmierten Datenbits werden ausgelesen. Eine dritte
Zwischenspeicherschaltung 230 wird von einem zweiten Ladesignal
PCLOAD gesteuert, empfängt
das in der ersten Zwischenspeicherschaltung 210 gespeicherte
Datenbit und gibt es aus oder entlädt die eingegebenen Daten zur
ersten Zwischenspeicherschaltung 210.
-
Die
Bitleitungsspannungsversorgungsschaltung 240 wird von den
Datenbits gesteuert, welche in der ersten und zweiten Zwischenspeicherschaltung 210 und 220 zwischengespeichert
sind, oder von einem ersten und einem zweiten Steuersignal VBL1 und
VBL2. Die Bitleitungsspannungsversorgungsschaltung 240 gibt
die Versorgungsspannung Vcc oder die Massespannung Vss oder eine
variable Spannung BLPWR an die Bitleitung aus, wodurch die Programmierung
der Speicherzelle erreicht wird.
-
Die
Spannungsgeneratorschaltung 280 erzeugt die variable Spannung
BLPWR. Die variable Spannung BLPWR wird beim MSB-Programmiervorgang
verwendet und hat einen Wert zwischen der Versorgungsspannung Vcc
und der Massespannung Vss. Die Seitenpuffersteuereinheit 290 legt
die Steuersignale und dergleichen an die entsprechenden Blöcke des
Seitenpuffers an.
-
Entsprechende
interne Schaltungsstrukturen der ersten bis dritten Zwischenspeicherschaltung 210, 220 und 230,
der Bitleitungsspannungsversorgungsschaltung 240 und der
Vorladeschaltung 250 gemäß einer Ausführungsform
der vorliegenden Erfindung und ihre Funktionsprinzipien werden nachfolgend
unter Bezugnahme auf 3 detailliert
beschrieben.
-
3 zeigt im Schaltbild einen
beispielhaften Seitenpuffer 200 gemäß Ausführungsformen der vorliegenden
Erfindung. Während
des Lesevorgangs wirkt der Seitenpuffer 200 als Mittel
zum Detektieren und Verstärken
von Informationen, welche an einer korrespondierenden Bitleitung
anliegen. Während des
Programmiervorgangs wirkt der Seitenpuffer 200 als Möglichkeit
zum Zwischenspeichern von externen Daten und zum Versorgen der korrespondierenden
Bitleitung mit einer Spannung, welche mit den zwischengespeicherten
Daten korrespondiert. Zusätzlich
wirkt der Seitenpuffer 200 während eines Programmierverifizierungsvorgangs
als Möglichkeit zum
Verifizieren, ob die Programmierung ordnungsgemäß ausgeführt worden ist oder nicht.
-
Wie
aus 3 ersichtlich ist,
umfasst der Seitenpuffer 200 die drei Zwischenspeicherschaltungen 210, 220 und 230,
welche voneinander verschiedene Funktionen ausführen, und die Bitleitungsspannungsversorgungsschaltung 240 zum
Versorgen der Bitleitung mit einer vorbestimmten Spannung. Die Zwischenspeicherschaltungen 210, 220 und 230 umfassen
jeweils Zwischenspeicher Q1, Q2 bzw. Q3, von denen jeder mit zwei
Invertern ausgestattet ist, die über
Kreuz miteinander verbunden sind. Möglichkeiten zur Initialisierung
von Knoten A, D und G, bevor die Lese- und Programmiervorgänge ausgeführt werden,
werden an den Knoten A, D und G der Zwischenspeicher Q1, Q2 und
Q3 zur Verfügung
gestellt. Gates der NMOS-Transistoren T2, T18 und T21 werden auf
einen niedrigen Pegel „L" initialisiert, wenn Rücksetzsignale
RESET_M, RESET_S und RESET_C einen hohen Pegel (H) annehmen. Hierbei werden
Zwischenspeicherrücksetzschaltungen
zum Setzen der anderen Knoten B, C und F auf einen niedrigen Pegel
(L) an den anderen Knoten B, C und F der Zwischenspeicherschaltungen
Q1, Q2 und Q3 zur Verfügung
gestellt. Die Zwischenspeicherrücksetzschaltungen
werden unten beschrieben.
-
Die
erste Zwischenspeicherschaltung 210 umfasst den ersten
Zwischenspeicher Q1 und die ersten Zwischenspeicherrücksetzschaltung.
Der erste Zwischenspeicher Q1 ist aus zwei Invertern und die erste
Zwischenspeicherrücksetzschaltung
ist aus NMOS-Transistoren T3 bis T7 gebildet. Ein Strompfad T5-T6-T7
oder T5-T3-T4 der NMOS-Transistoren
T3 bis T7 ist in Reihe zwischen den Knoten C des ersten Zwischenspeichers
Q1 und Masse GND eingeschleift. Ein Gate des NMOS-Transistors T5
ist mit dem Knoten E verbunden. Gates der Transistoren T3 und T6
sind mit den Knoten B bzw. A des zweiten Zwischenspeichers Q2 verbunden
und die Transistoren T3 und T6 werden gemäß jedem Knoten des zweiten
Zwischenspeichers Q2 leitend oder sperrend geschaltet. Das erste
Zwischenspeichersignal LCH_MR und das zweite Zwischenspeichersignal LCH_MS
werden an die Gates der NMOS-Transistoren T4 bzw. T7 angelegt.
-
Die
zweite Zwischenspeicherschaltung 220 umfasst den zweiten
Zwischenspeicher Q2 und die zweite Zwischenspeicherrücksetzschaltung.
Der zweite Zwischenspeicher Q2 ist aus zwei Invertern und die zweite
Zwischenspeicherrücksetzschaltung ist
aus den NMOS-Transistoren T15 bis T17 gebildet. Ein Strompfad T15-T16-T7
der NMOS-Transistoren T15 bis T17 ist in Reihe zwischen dem Knoten
B des zweiten Zwischenspeichers Q2 und Masse GND eingeschleift.
Ein Gate des NMOS-Transistors T15 ist mit dem Knoten E verbunden.
Das dritte Zwischenspeichersignal LCH_S wird an die Gates der NMOS-Transistoren
T16 und T17 angelegt.
-
Die
dritte Zwischenspeicherschaltung 230 umfasst den dritten
Zwischenspeicher Q3 und die dritte Zwischenspeicherrücksetzschaltung.
Der dritte Zwischenspeicher Q3 ist aus zwei Invertern und die dritte
Zwischenspeicherrücksetzschaltung
ist aus den NMOS-Transistoren T19 und T20 gebildet. Ein Strompfad
der Transistoren T19 und T20 ist in Reihe zwischen dem Knoten F
des dritten Zwischenspeichers Q3 und Masse GND eingeschleift. Ein
Gate des NMOS-Transistors T19 ist mit dem Knoten D der ersten Zwischenspeicherschaltung 210 verbunden und
daher wird der Transistor T19 gemäß dem Knoten D leitend oder
sperrend geschaltet. Das zweite Knotensignal PCLOAD wird an das
Gate des NMOS-Transistors T20 angelegt. Ist das zweite Ladesignal
PCLOAD in einem Zustand, in welchem der Knoten D auf einem hohen Pegel
ist, auf einem hohen Pegel, dann wird der Knoten F auf einen niedrigen
Pegel gesetzt. Die dritte Zwischenspeicherschaltung 230 unterstützt zudem
eine Cachefunktion. Die Cachefunktion wird benutzt, um als nächstes zu
programmierende Daten in den Seitenpuffer zu laden, während vorher
geladene Daten programmiert werden, oder um abgetastete Daten während eines
Datenabtastvorgangs nach extern auszugeben.
-
Wie
aus 3 ersichtlich ist,
umfasst die Bitleitungsspannungsversorgungsschaltung 240 eine
erste Spannungsversorgungsleitung zum Verhindern des Programmiervorgangs
durch Bilden eines Strompfades T8-T9 zwischen dem Knoten E und der Versorgungsspannung
Vcc, eine zweite Spannungsversorgungsleitung zum Durchführen des
Programmiervorgangs durch Bilden eines Strompfades T10-T11-T12 zwischen
dem Knoten E und einer Referenzmassespannung Vss und eine dritte
Spannungsversorgungsleitung zum Durchführen des Programmiervorgangs
durch Bilden eines Strompfades T10-T13-T14 zwischen dem Knoten E
und der variablen Spannung BLPWR.
-
Die
erste Spannungsversorgungsleitung ist mit zwei PMOS-Transistoren
T8 und T9 gebildet. Der PMOS-Transistor T8 wird vom Knoten C und
der PMOS-Transistor T9 wird von einem ersten Steuersignal VBL1 gesteuert.
Wird das erste Steuersignal VBL1 auf einen niedrigen Pegel gesetzt,
wenn der Knoten C auf einem niedrigen Pegel ist, dann wird die Versorgungsspannung
Vcc an die Bitleitung angelegt, so dass die Programmierung der ausgewählten Zelle
verhindert wird. In anderen Worten ausgedrückt, die Schwellwertspannung
der Speicherzelle wird nicht verändert.
-
Die
zweite Spannungsversorgungsleitung ist mit drei NMOS-Transistoren T10,
T11 und T12 gebildet. Die NMOS-Transistoren T10, T11 und T12 werden
vom Knoten C, vom Knoten B bzw. von einem zweiten Steuersignal VBL2
gesteuert. Wird das zweite Steuersignal VBL2 in einem Zustand, in
dem die Knoten C und B beide auf einem hohen Pegel sind, auf einen
hohen Pegel gesetzt, dann wird die Massereferenzspannung Vss an
die Bitleitung angelegt, so dass die Programmierung der ausgewählten Speicherzelle
durchgeführt
wird. In anderen Worten ausgedrückt,
die Schwellwertspannung der Speicherzelle wird erhöht.
-
Die
dritte Spannungsversorgungsleitung ist mit drei NMOS-Transistoren
T10, T13 und T14 gebildet. Die NMOS-Transistoren T10, T13 und T14
werden vom Pegel am Knoten C, vom Pegel am Knoten A bzw. vom zweiten
Steuersignal VBL2 gesteuert. Wird das zweite Steuersignal VBL2 in
einem Zustand, in dem die Knoten C und A beide auf einem hohen Pegel
sind, auf einen hohen Pegel gesetzt, dann wird die variable Spannung
BLPWR an die Bitleitung angelegt, so dass die Programmierung der ausgewählten Zelle
durchgeführt
wird. In anderen Worten ausgedrückt,
die Schwellwertspannung der Speicherzelle wird erhöht. Hierbei
ist die variable Spannung BLPWR eine Spannung, welche an die Bitleitung über die
dritte Spannungsversorgungsleitung angelegt wird, und eine Spannung,
die angelegt wird, wenn die Speicherzelle während des MSB-Programmiervorgangs
vom Pegel [10] auf den Pegel [00] programmiert wird.
-
Wie
aus 3 ersichtlich ist,
wird die Vorladeschaltung 250 bereitgestellt, um die Vorladespannung
an die Bitleitung oder den Knoten E anzulegen. Die Vorladeschaltung 250 ist
mit einem PMOS-Transistor T1 ausgestattet und wird vom ersten Ladesignal
PLOAD gesteuert. Nimmt das erste Ladesignal PLOAD einen niedrigen
Pegel an, dann wird die Versorgungsspannung Vcc an den Knoten E
angelegt, so dass die NMOS-Transistoren T5 und T15 der ersten und
zweiten Zwischenspeicherrücksetzschaltung leitend
geschaltet werden.
-
Nachfolgend
werden die Lese- und Programmiervorgänge des Flashspeicherbauelements
gemäß Ausführungsformen
der vorliegenden Erfindung unter Bezugnahme auf die begleitenden
Zeichnungen beschrieben, beginnend mit der Erläuterung eines MLC-Lesevorgangs.
-
4 zeigt ein Diagramm, welches
Zustände
von Datenbits korrespondierend mit den Schwellwertspannungsverteilungen
der Speicherzelle darstellt. Entsprechende Datenbits werden unterschiedlich
um ein Bit verändert,
verglichen mit ihren benachbarten Datenbits. Entsprechend nehmen
die Datenbits unter der Annahme, dass diejenigen, die der niedrigsten
Schwellwertspannungsverteilung entsprechen, den Wert [11] haben,
die Werte [11], [10], [00] und [01] an.
-
5 zeigt ein Diagramm, welches
Spannungspegel veranschaulicht, die an die ausgewählte oder
nicht ausgewählte
Wortleitung angelegt werden. Die Wortleitungsspannung wird von der
Wortleitungsspannungsversorgungsschaltung 270 aus 2 angelegt. So werden beispielsweise
die Spannung Vrd1 von 0V, die Spannung Vrd2 von 1V und die Spannung
Vrd3 von 2V während
des Lesevorgangs an die ausgewählte
Wortleitung angelegt und die Spannung Vread von 6V wird an die nicht
ausgewählte
Wortleitung angelegt.
-
Ob
die Speicherzelle eine leitend geschaltete Zelle oder eine sperrend
geschaltete Zelle ist, wird durch die an die ausgewählte Wortleitung
während eines
Lesevorgangs angelegte Spannung bestimmt. Ist die Wortleitungsspannung
höher als
die Schwellwertspannung, dann wird die Speicherzelle eine gesperrt
geschaltete Speicherzelle, wodurch die Bitleitung vorgeladen wird.
Ist die Wortleitungsspannung niedriger als die Schwellwertspannung,
dann wird die Speicherzelle eine leitend geschaltete Speicherzelle, wodurch
die Bitleitung entladen wird.
-
Wie
aus 5 ersichtlich ist,
wird der Lesevorgang in einen LSB-Lesevorgang und einen MSB-Lesevorgang
aufgeteilt. Während
des LSB-Lesevorgangs wird die Spannung Vrd3, z.B. 2V, an die ausgewählte Wortleitung
angelegt, dann wird die Spannung Vrd1 angelegt, z.B. 0V. Gleichzeitig
wird die Spannung Vread, z.B. 6V, an die nicht ausgewählte Wortleitung
angelegt. Während
des MSB-Lesevorgangs wird die Spannung Vrd2, z.B. 1V, an die ausgewählte Wortleitung
und die Spannung Vread, z.B. 6V, an die nicht ausgewählte Wortleitung
angelegt.
-
Die 6 und 7 zeigen Zeitablaufpläne des Lesevorgangs gemäß Ausführungsformen
der vorliegenden Erfindung. Der Lesevorgang wird durch Ausführung des
LSB-Lesevorgangs und des MSB-Lesevorgangs umgesetzt. Der LSB-Lesevorgang
wird durch einen LSB1-Lesevorgang und einen LSB2-Lesevorgang, welche
nacheinander ausgeführt
werden, und durch Ausgabe der LSB-Daten umgesetzt. Während des
LSB1-Lesevorgangs
wird die Wortleitungsspannung Vrd3 an die ausgewählte Wortleitung angelegt.
Während
des LSB2-Lesevorgangs wird die Wortleitungsspannung Vrd1 an die
ausgewählte Wortleitung
angelegt. Der MSB-Lesevorgang werden nach dem LSB-Lesevorgang ausgeführt. Während des
MSB-Lesevorgangs werden die Wortleitungsspannung Vrd2 angelegt und
die MSB-Daten ausgegeben. Die MSB-Ausgabedaten und die LSB-Ausgabedaten
sind Datenbits, welche in die Speicherzelle programmiert werden.
-
6 zeigt einen Zeitablaufplan
des LSB-Lesevorgangs. Wie aus 6 ersichtlich
ist, werden zuerst die beiden Zwischenspeicher Q1 und Q2 zurückgesetzt.
In anderen Worten ausgedrückt, werden,
wenn das erste Rücksetzsignal
RESET_M und das zweite Rücksetzsignal
RESET_S einen hohen Pegel annehmen, um die NMOS-Transistoren T2 und
T18 leitend zu schalten, die Knoten A und D auf einen niedrigen
Pegel gesetzt und die Knoten B und C werden auf einen hohen Pegel
gesetzt. Da die Knoten B und C auf hohem Pegel sind, werden die NMOS- Transistoren T10
und T11 leitend geschaltet. Hierbei wird der NMOS-Transistor T12 leitend
geschaltet, wenn das zweite Steuersignal VBL2 einen hohen Pegel
annimmt, so dass die Bitleitung entladen wird. Als Konsequenz wird
der Knoten E auf einen niedrigen Pegel gesetzt.
-
Ist
das erste Ladesignal PLOAD auf einen niedrigen Pegel gesetzt, während das
zweite Steuersignal VBL2 auf einem niedrigen Pegel ist, dann ist der
PMOS-Transistor T1 leitend geschaltet und der NMOS-Transistor T12
ist sperrend geschaltet, so dass die Bitleitung vorgeladen wird.
Hierbei wird der Knoten E auf einen hohen Pegel gesetzt. Dann wird der
LSB1-Lesevorgang ausgeführt.
Die Spannung Vrd3, z.B. 2V, wird an die ausgewählte Wortleitung angelegt und
die Spannung Vread, z.B. 6V, wird an die nicht ausgewählte Wortleitung
angelegt.
-
Entsprechen
die Daten der ausgewählten Speicherzelle
dem Wert [01], dann liegt die Schwellwertspannungsverteilung des
Zellentransistors zwischen 2,3V bis 2,7V, so dass der Zellentransistor sperrend
geschaltet ist. Entsprechend wird der Knoten E auf hohem Pegel gehalten
und der NMOS-Transistor T15 wird leitend geschaltet. Hierbei werden
die NMOS-Transistoren T16 und T17 leitend geschaltet, wenn das dritte
Zwischenspeichersignal LCH_S auf einen hohen Pegel gesetzt ist,
so dass die Knoten B und A auf einen niedrigen bzw. hohen Pegel
geändert
werden.
-
Entsprechen
die Daten der ausgewählten Speicherzelle
dem Wert [00], dann liegt die Schwellwertspannungsverteilung des
Zellentransistors zwischen 1,3V bis 1,7V, so dass der Zellentransistor
leitend geschaltet ist. Entsprechend wird der Knoten E auf einen
niedrigen Pegel geändert.
Da hierbei der NMOS-Transistor T15 sperrend geschaltet wird, werden
die Knoten B und A auf hohem Pegel bzw. niedrigem Pegel gehalten,
auch wenn das dritte Zwischenspeichersignal LCH_S auf einen hohen Pegel gesetzt
wird. Die Fälle,
dass die Speicherzelle den Wert [10] bzw. [11] enthält, entsprechen
dem Fall mit dem Wert [00].
-
Gemäß dem LSB1-Lesevorgang
wird die Spannung Vrd3 an die ausgewählte Wortleitung angelegt und
die Daten werden im zweiten Zwischenspeicher Q2 gespeichert. Entsprechen
die Daten der ausgewählten
Speicherzellen den Werten [11], [10], [00] oder [01], dann nimmt
der Knoten B des zweiten Zwischenspeichers Q2 einen hohen Pegel,
einen hohen Pegel, einen hohen Pegel bzw. einen niedrigen Pegel
an.
-
Wie
aus 6 ersichtlich ist,
wird das erste Ladesignal PLOAD wieder auf einen niedrigen Pegel gesetzt.
Hierbei wird der PMOS-Transistor T1 leitend geschaltet, so dass
die Bitleitung vorgeladen wird. Der Knoten E wird auf einen hohen
Pegel gesetzt, so dass die NMOS-Transistoren T5 und T15 leitend
geschaltet werden. Danach wird der LSB2-Lesevorgang ausgeführt. Die
Spannung Vrd1, z.B. 0V, wird an die ausgewählte Wortleitung angelegt und
die Spannung Vread, z.B. 6V, wird an die nicht ausgewählte Wortleitung
angelegt.
-
Entsprechen
die Daten der ausgewählten Speicherzellen
den Werten [01], [00] oder [10], dann sind die Schwellwertspannungsverteilungen
des Zellentransistors zwischen 2,3V bis 2,7V, zwischen 1,3V bis
1,7V bzw. zwischen 0,3V bis 0,7V, so dass die Zellentransistoren
sperrend geschaltet werden. Entsprechend wird der Knoten E auf hohem
Pegel gehalten, so dass die NMOS-Transistoren T5 und T15 leitend
geschaltet werden. Hierbei wird der NMOS-Transistor T4 ebenfalls
leitend geschaltet, wenn das erste Zwischenspeichersignal LCH_MR auf
einen hohen Pegel gesetzt ist.
-
Andererseits
werden die NMOS-Transistoren T16 und T17 sperrend geschaltet, da
das dritte Zwischenspeichersignal LCH_S auf einem niedrigen Pegel
ist. Entsprechend wird der Knoten B auf dem vorherigen Zu stand gehalten.
In anderen Worten ausgedrückt,
der Knoten B ist auf einem niedrigen Pegel, wenn die Daten der ausgewählten Speicherzelle
den Wert [01] haben, und der Knoten B ist auf einem hohen Pegel,
wenn die Daten der ausgewählten
Speicherzelle den Wert [00] oder [10] haben. Ist der Knoten B auf
einem niedrigen Pegel, d.h. haben die Daten der ausgewählten Speicherzelle
den Wert [01], dann wird der NMOS-Transistor T3 sperrend geschaltet, so
dass der Knoten C seinen vorherigen Zustand, d.h. den hohen Pegel,
beibehält.
Ist der Knoten B jedoch auf einem hohen Pegel, d.h. haben die Daten
der ausgewählten
Speicherzelle den Wert [00] oder [10], dann wird der NMOS-Transistor
T3 leitend geschaltet, so dass der Knoten C auf einen niedrigen Pegel
geändert
wird.
-
Gemäß dem LSB2-Lesevorgang
wird die Spannung Vrd3 an die ausgewählte Wortleitung angelegt und
die Daten werden im ersten Zwischenspeicher Q2 gespeichert. Entsprechen
die Daten der ausgewählten
Speicherzellen den Werten [11], [10], [00] und [01], dann nimmt
der Knoten C des ersten Zwischenspeichers Q1 einen hohen Pegel,
einen niedrigen Pegel, einen niedrigen Pegel bzw. einen hohen Pegel
an. Als Konsequenz nimmt der Knoten D einen niedrigen Pegel, einen
hohen Pegel, einen hohen Pegel bzw. einen niedrigen Pegel an.
-
Wie
aus 6 ersichtlich ist,
wird ein Ausgabevorgang der LSB-Daten ausgeführt. Zuerst nehmen, wenn das
dritte Rücksetzsignal
RESET_C auf einen hohen Pegel gesetzt wird, um den NMOS-Transistor
T21 leitend zu schalten, der Knoten G einen niedrigen Pegel und
der Knoten F einen hohen Pegel an. Dann wird der NMOS-Transistor T20
leitend geschaltet, wenn das zweite Lastsignal PCLOAD auf einen
hohen Pegel gesetzt wird. Hierbei wird, wenn der Knoten D des ersten
Zwischenspeichers Q1 auf einem hohen Pegel ist, d.h. die Daten der
ausgewählten
Speicherzelle den Wert [10] oder [00] haben, der NMOS-Transistor
T19 leitend geschaltet, so dass die Knoten F und G auf einen niedrigen
Pe gel bzw. hohen Pegel geändert
werden. Ist der Knoten D des ersten Zwischenspeichers Q1 auf einem
niedrigen Pegel, d.h. die Daten der ausgewählten Speicherzelle haben den
Wert [11] oder [01], dann wird der NMOS-Transistor T19 sperrend
geschaltet, so dass die Knoten F und G auf hohem bzw. niedrigem
Pegel gehalten werden.
-
Entsprechend
nimmt, wenn die Daten der ausgewählten
Speicherzellen den Wert [11], [01], [00] oder [10] haben, der Knoten
G des dritten Zwischenspeichers Q3 jeweils einen niedrigen Pegel,
einen hohen Pegel, einen hohen Pegel bzw. einen niedrigen Pegel
an. Hierbei werden die Daten am Knoten G über die Datenleitung IO ausgegeben,
wenn ein Eingabe-/Ausgabesteuersignal DI auf einen hohen Pegel gesetzt
wird. Ein hoher Pegel, ein niedriger Pegel, ein niedriger Pegel
bzw. ein hoher Pegel wird nach extern ausgelesen, was den invertierten
Daten vom Knoten G entspricht. Diese sind gleich den entsprechenden
LSB-Daten der ausgewählten
Speicherzellen, d.h. 1, 0, 0, 1 (H, L, L, H).
-
7 zeigt einen beispielhaften
Zeitablaufplan des MSB-Lesevorgangs gemäß einer Ausführungsform
der Erfindung. Im Gegensatz zum LSB-Lesevorgang gibt der MSB-Lesevorgang
Daten durch alleiniges Nutzen des ersten Zwischenspeichers aus.
-
Wie
aus 7 ersichtlich ist,
beginnt der MSB-Lesevorgang mit einem Rücksetzschritt des ersten Zwischenspeichers
Q1. In anderen Worten ausgedrückt,
werden, wenn das erste Rücksetzsignal
RESET_M einen hohen Pegel annimmt, um den NMOS-Transistor T2 leitend
zu schalten, der Knoten D auf einen niedrigen Pegel gesetzt und
der Knoten C auf einen hohen Pegel gesetzt. Da der Knoten C auf
hohem Pegel ist, wird der NMOS-Transistor T10 leitend geschaltet.
Hierbei werden die NMOS-Transistoren
T12 und T14 leitend geschaltet, wenn das zweite Steuersignal VBL2
einen hohen Pegel annimmt. Andererseits wird, da die Knoten A und
B des zweiten Zwischenspeichers einen unbekannten Zu stand aufweisen,
einer der NMOS-Transistoren T11 oder T13 leitend geschaltet. Entsprechend
wird die Bitleitung entladen, so dass der Knoten E auf einen niedrigen
Pegel gesetzt wird.
-
Das
erste Ladesignal PLOAD ist auf einen niedrigen Pegel gesetzt. Hierbei
wird der PMOS-Transistor T1 leitend geschaltet, so dass die Bitleitung
vorgeladen wird. Der Knoten E wechselt auf einen hohen Pegel. Dann
wird der MSB-Lesevorgang ausgeführt.
Die Spannung Vrd2, z.B. 1V, wird an die ausgewählte Wortleitung angelegt und
die Spannung Vread, z.B. 6V, wird an die nicht ausgewählte Wortleitung
angelegt.
-
Entsprechen
die Daten der ausgewählten Speicherzelle
dem Wert [01] oder [00], dann liegen die Schwellwertspannungsverteilungen
des Zellentransistors zwischen 2,3V bis 2,7V bzw. zwischen 1,3V
bis 1,7V, so dass der Zellentransistor sperrend geschaltet ist.
Entsprechend wird der Knoten E auf hohem Pegel gehalten und der
NMOS-Transistor T5 wird leitend geschaltet. Hierbei werden die NMOS-Transistoren
T4 und T7 leitend geschaltet, wenn das erste Zwischenspeichersignal
LCH_MR und das zweite Zwischenspeichersignal LCH_MS auf einen hohen
Pegel gesetzt sind. Andererseits sind die Knoten A und B des zweiten
Zwischenspeichers Q2 in einem unbekannten Zustand, so dass einer
der NMOS-Transistoren T3 und T6 leitend geschaltet wird. Entsprechend
wechseln die Knoten C und D auf einen niedrigen bzw. einen hohen
Pegel.
-
Entsprechen
die Daten der ausgewählten Speicherzelle
dem Wert [10] oder [11], dann liegen die Schwellwertspannungsverteilungen
des Zellentransistors zwischen 0,3V bis 0,7V bzw. auf –2,7V oder
weniger, so dass der Zellentransistor leitend geschaltet wird. Entsprechend
wird der Knoten E auf einen niedrigen Pegel geändert. Da hierbei der NMOS-Transistor T5 sperrend
geschaltet wird, werden die Knoten C und D auf einem hohen Pegel
bzw. niedrigen Pegel gehalten, auch wenn das erste Zwischenspeichersignal
LCH_MR und das zweite Zwischenspeichersignal LCH_MS beide auf einen
hohen Pegel gesetzt sind.
-
Gemäß dem MSB-Lesevorgang
wird die Spannung Vrd2 an die ausgewählte Wortleitung angelegt und
die Daten werden im ersten Zwischenspeicher Q1 gespeichert. Entsprechen
die Daten der ausgewählten
Speicherzellen dem Wert [11], [10], [00] oder [01], dann nimmt der
Knoten C des ersten Zwischenspeichers Q1 einen hohen Pegel, einen
hohen Pegel, einen niedrigen Pegel bzw. einen niedrigen Pegel an.
Als Konsequenz nimmt der Knoten D einen niedrigen Pegel, einen niedrigen
Pegel, einen hohen Pegel bzw. einen hohen Pegel an.
-
Wie
aus 7 ersichtlich ist,
wird ein beispielhafter Ausgabevorgang der MSB-Daten ausgeführt. Zuerst
nimmt, wenn das dritte Rücksetzsignal RESET_C
auf einen hohen Pegel gesetzt wird, um den NMOS-Transistor T21 leitend zu schalten,
der Knoten G einen niedrigen Pegel und der Knoten F einen hohen
Pegel an. Dann wird der NMOS-Transistor
T20 leitend geschaltet, wenn das zweite Ladesignal PCLOAD auf einen
hohen Pegel gesetzt wird. Hierbei wird, wenn der Knoten D des ersten
Zwischenspeichers Q1 auf einem hohen Pegel ist, d.h. die gespeicherten
Daten den Wert [00] oder [01] haben, der NMOS-Transistor T19 leitend geschaltet, so dass
die Knoten F und G auf einen niedrigen Pegel bzw. hohen Pegel geändert werden.
Ist der Knoten D des ersten Zwischenspeichers Q1 auf einem niedrigen
Pegel, d.h. die gespeicherten Daten haben den Wert [10] oder [11],
dann wird der NMOS-Transistor T19 sperrend geschaltet, so dass die
Knoten F und G auf hohem bzw. niedrigem Pegel verbleiben.
-
Entsprechend
nimmt, wenn die Daten der ausgewählten
Speicherzellen den Wert [11], [10], [00] oder [01 ] haben, der Knoten
G des dritten Zwischenspeichers Q3 einen niedrigen Pegel, einen
niedrigen Pegel, einen hohen Pegel bzw. einen hohen Pegel an. Hierbei
werden die Daten am Knoten G über
die Datenleitung IO ausgegeben, wenn ein Eingabe-/Ausgabesteuersignal DI auf einen hohen
Pegel gesetzt wird. Ein hoher Pegel, ein hoher Pegel, ein niedriger
Pegel bzw. ein niedriger Pegel werden ausgelesen, was den invertierten
Daten des Knotens G entspricht. Diese sind gleich den MSB-Daten
der ausgewählten
Speicherzellen, d.h. 1, 1, 0 und 0 (H, H, L und L).
-
Als
Konsequenz wird der MLC-Lesevorgang durch sequentielles Ausführen des
Lesevorgangs der LSB-Daten (1, 0, 0, 1) und des Lesevorgangs der MSB-Daten
(1, 1, 0, 0) umgesetzt. Die Daten der Mehrpegelzelle können aus
den Ergebnissen detektiert werden.
-
Der
MLC-Programmiervorgang umfasst den Programmierprozess, bei dem Elektronen
in die floatenden Gates der ausgewählten Speicherzellentransistoren
injiziert werden, und einen Programmierverifizierungsprozess zum
Verifizieren, ob die programmierten Speicherzellentransistoren gewünschte Schwellwertspannungen
erreichen. Der Programmiervorgang wird wiederholend ausgeführt, bis
die ausgewählten
Speicherzellen die gewünschten Schwellwertspannungspegel
erreichen. Zur Vereinfachung wird auf eine Beschreibung des wiederholten Programmiervorgangs
verzichtet und angenommen, dass die ausgewählte Speicherzelle den gewünschten
Schwellwertspannungspegel durch einen einmaligen Programmiervorgang
erreicht.
-
Um
die ausgewählten
Speicherzellen unter Verwendung von F-N-Tunneln zu programmieren, wird eine
vorbestimmte Programmierspannung, z.B. 14V bis 19V, an die Gates
der korrespondierenden Speicherzellen angelegt und eine Massespannung Vss
oder eine vorbestimmte Spannung wird an die Kanäle der korrespondierenden Speicherzellen
angelegt. Entsprechend wird ein hohes elektrisches Feld zwischen
den floatenden Gates und den Kanälen
der zu programmierenden Speicherzellen ausgebildet. Durch das elektrische
Feld tritt ein Tunneln auf, bei welchem die Elektronen der Kanäle durch
die Oxidschichten zwischen den floatenden Gates und den Kanälen passieren.
Daher werden die Elektronen an den floatenden Gates der korrespondierenden
Speicherzellen gesammelt und die Schwellwertspannungen der zu programmierenden
Speicherzellen erhöhen
sich durch die Ansammlung der Elektronen an den floatenden Gates.
Hierbei wird die Versorgungsspannung Vcc an die Kanäle der korrespondierenden
Speicherzellen angelegt, um die Programmierung zu verhindern.
-
8A zeigt graphisch ein Konzept
des Programmierverfahrens gemäß Ausführungsformen
der vorliegenden Erfindung. Das beschriebene Programmierverfahren
wird in einen LSB-Programmiervorgang und einen MSB-Programmiervorgang
aufgeteilt. Zuerst wird der LSB-Programmiervorgang ausgeführt, um
nur das LSB zu verändern.
In anderen Worten ausgedrückt, ändert, wenn
die LSB-Daten mit einem Wert von „0" programmiert werden sollen, der LSB-Programmiervorgang
die gespeicherten Daten von [11] zu [10]. Ansonsten verbleiben die
gespeicherten Daten auf dem Wert [11]. Danach detektiert der MSB-Programmiervorgang
das Ergebnis des LSB-Programmiervorgangs und führt den MSB-Programmiervorgang gemäß dem Detektionsergebnis aus.
Wird ein LSB mit dem Wert „1" detektiert, und die
zu programmierenden MSB-Daten haben den Wert „0", dann ändert der MSB-Programmiervorgang den
Datenspeicherzustand von [10] zu [01]. Ansonsten verbleibt der Datenspeicherzustand
auf dem Wert [11]. Wird ein LSB mit dem Wert „0" detektiert, und die zu programmierenden
MSB-Daten haben den Wert „0", dann ändert der
MSB-Programmiervorgang den Datenspeicherzustand von [10] zu [00].
Ansonsten verbleibt der Datenspeicherzustand auf dem Wert [10].
Entsprechend diesem Programmierverfahren gemäß Ausführungsformen der Erfindung
können alle
Datenbitzustände
durch nur zwei Programmiervorgänge
programmiert werden.
-
8B zeigt ein Diagramm, welches
die Spannungspegel veranschaulicht, die an die ausgewählten oder
nicht ausgewählten
Wortleitungen angelegt werden. Die Wortleitungsspannung wird von der
Wortleitungsspannungsversorgungsschaltung 270 aus 2 angelegt. Beim Programmiervorgang ist
die bei dem LSB-Programmiervorgang an die Wortleitung angelegte
Spannung von der bei dem MSB-Programmiervorgang angelegten Spannung verschieden.
Die Spannung VPGM1, die bei einem LSB-Vorgang an die Wortleitung
angelegt wird, beginnt beispielsweise bei 14V und die Spannung VPGM2,
die bei einem MSB-Programmiervorgang an die Wortleitung angelegt
wird, beginnt bei 16V. Die Spannung Vpass von 10V wird an die nicht
ausgewählte
Wortleitung angelegt.
-
Die 9 und 10 zeigen Zeitablaufpläne eines
Programmiervorgangs gemäß Ausführungsformen
der vorliegenden Erfindung.
-
Der
Programmiervorgang wird in die LSB-Programmierperiode und die MSB-Programmierperiode
aufgeteilt. Der LSB-Programmiervorgang wird durch Anlegen der ersten
Bitleitungsspannung, d.h. Vcc oder Vss, an die Bitleitung gemäß den zu
programmierenden LSB-Daten umgesetzt. Der MSB-Programmiervorgang
wird durch Auslesen der programmierten LSB-Daten und durch Anlegen
der zweiten Bitleitungsspannung, d.h. Vss oder BLPWR, an die Bitleitung
gemäß den gelesenen
LSB-Daten umgesetzt.
-
Eine
bemerkenswerte Eigenschaft des Programmiervorgangs gemäß Ausführungsformen
der vorliegenden Erfindung besteht darin, dass die variable Spannung
BLPWR beim MSB-Programmiervorgang an die Bitleitung angelegt wird
und der Programmiervorgang durch einen einmaligen LSB-Programmiervorgang
und einen einmaligen MSB-Programmiervorgang ausgeführt wird.
Der LSB-Programmiervorgang und der MSB- Programmiervorgang werden nachfolgend
unter Bezugnahme auf die 9 und 10 im Detail beschrieben.
-
9 zeigt einen Zeitablaufplan
eines beispielhaften LSB-Programmiervorgangs. Der LSB-Programmiervorgang
beginnt mit einem Zurücksetzen
des dritten Zwischenspeichers Q3 aus 3. Ist
das dritte Rücksetzsignal
RESET_C auf einen hohen Pegel gesetzt, um den NMOS-Transistor T21 leitend
zu schalten, dann nehmen die Knoten G und F einen niedrigen Pegel
bzw. einen hohen Pegel an.
-
Dann
werden externe Daten in den Knoten G geladen, wenn das Eingabe-/Ausgabesteuersignal DI
auf einen hohen Pegel gesetzt ist, um den NMOS-Transistor T23 leitend
zu schalten. Entsprechen die in die ausgewählten Speicherzellen zu programmierenden
Daten beispielsweise dem Wert [11], [10], [00] oder [01], dann sind
die in den Knoten G geladenen Daten gleich [00], [01], [11] bzw.
[10]. Hierbei werden, da die LSBs 0, 1, 1 und 0 sind, ein niedriger Pegel,
ein hoher Pegel, ein hoher Pegel bzw. ein niedriger Pegel in den
Knoten G geladen. Als Konsequenz nimmt der Knoten F einen hohen
Pegel, einen niedrigen Pegel, einen niedrigen Pegel bzw. einen hohen
Pegel an.
-
Dann
wird das erste Ladesignal PLOAD auf einen niedrigen Pegel gesetzt.
Der PMOS-Transistor T1 wird leitend geschaltet, so dass die Bitleitung
vorgeladen wird. Der Knoten E wird auf einen hohen Pegel gesetzt,
so dass der NMOS-Transistor T5 leitend geschaltet wird. Hierbei
werden die NMOS-Transistoren T4 und T7 leitend geschaltet, wenn
das erste Zwischenspeichersignal LCH_MR und das zweite Zwischenspeichersignal
LCH_MS auf hohen Pegel gesetzt werden. Da die Knoten A und B des
zweiten Zwischenspeichers Q2 in einem unbekannten Zustand sind,
wird einer der NMOS-Transistoren T3 oder T6 leitend geschaltet.
Entsprechend nehmen die Knoten C und D einen niedrigen bzw. einen
hohen Pegel an.
-
Ein
Ausgabe(Dump)-Vorgang der Daten vom Knoten G zum Knoten C wird ausgeführt. Wird
das Dump-Steuersignal PDUMP auf einen hohen Pegel gesetzt, dann
wird der Transistor T25 leitend geschaltet. Entsprechen die in die
ausgewählten
Speicherzellen zu programmierenden Daten dem Wert [00] oder [10],
dann sind die in den Knoten G geladenen LSB-Daten auf einem hohen
Pegel, so dass der NMOS-Transistor T24 leitend geschaltet wird.
Entsprechend nehmen die Knoten D und C einen niedrigen Pegel bzw.
einen hohen Pegel an. Entsprechen die in die ausgewählten Speicherzellen
zu programmierenden Daten dem Wert [01] oder [11], dann sind die
in den Knoten G geladenen LSB-Daten auf einem niedrigen Pegel, so
dass der NMOS-Transistor T24 sperrend geschaltet wird. Entsprechend
werden die Knoten D und C auf hohem Pegel bzw. niedrigem Pegel gehalten.
-
Entsprechend
dem Ergebnis des oben beschriebenen Dump-Vorgangs werden, wenn die
in die ausgewählten
Speicherzellen zu programmierenden Daten dem Wert [11], [10], (00]
oder [01] entsprechen, die Daten 0, 1, 1 bzw. 0 in den Knoten C
ausgegeben.
-
Wie
aus 9 ersichtlich ist,
wird ein Programmiervorgang der LSB-Daten ausgeführt. Sind das erste Steuersignal
VBL1 und das zweite Steuersignal VBL2 auf einen niedrigen Pegel
bzw. auf einen hohen Pegel gesetzt, dann werden der PMOS-Transistor
T19 und die NMOS-Transistoren
T12 und T14 leitend geschaltet. Da die Knoten A und B des zweiten
Zwischenspeichers Q2 in einem unbekannten Zustand sind, wird einer
der NMOS-Transistoren T11 oder T13 leitend geschaltet. Hierbei wird
der NMOS-Transistor T10 leitend geschaltet, wenn der Knoten C auf
einem hohen Pegel ist, so dass der Knoten E auf einen niedrigen
Pegel geändert
wird. Ist der Knoten C jedoch auf einem niedrigen Pegel, dann wird
der PMOS-Transistor T8 leitend geschaltet, so dass der Knoten E
auf hohem Pegel gehalten wird. Entsprechend nimmt der Knoten E einen
hohen Pegel, einen niedrigen Pegel, einen niedrigen Pegel bzw. einen
hohen Pegel an, wenn die in die ausgewählten Speicherzellen zu programmierenden
Daten dem Wert [11], [10], [00] bzw. [01] entsprechen.
-
Da
die Bitleitung auf die Versorgungsspannung aufgeladen wird, wenn
der Knoten E auf hohem Pegel ist, wird die Programmierung der Speicherzelle verhindert.
Nur wenn der Knoten E auf niedrigem Pegel ist, d.h. der Massereferenzspannung,
wird die Programmierung der korrespondierenden Speicherzelle ausgeführt. Hierbei
wird eine Spannung von ungefähr
14V an die Wortleitung angelegt. Eine an die Wortleitung angelegte
Spannung wird gemäß dem Verifizierungsergebnis
der Programmierzustände
sequenziell um ungefähr
0,2V bis 0,3V erhöht.
Entsprechend wird, wenn die zu programmierenden Daten dem Wert [10]
oder [00] entsprechen, die Programmierung durchgeführt und
die Schwellwertspannung der Speicherzelle wird erhöht. Die
Schwellwertspannungsverteilungen der Speicherzellen liegen dann beispielsweise
bei 0,3V bis 0,7V. Entsprechen die zu programmierenden Daten jedoch
dem Wert [11] oder [01], dann wird die Programmierung verhindert,
wodurch ein Zustand beibehalten wird, in dem die Schwellwertspannungsverteilungen
gelöscht
werden, beispielsweise ein Zustand von –2,7V oder weniger.
-
Dann
wird der Programmierverifizierungsvorgang ausgeführt. Der Detektionsvorgang
für die Programmierverifizierung
ist weitgehend ähnlich
zum oben beschriebenen Lesevorgang. Um jedoch einen Spielraum zwischen
einer Spannung der ausgewählten
Wortleitung und der Schwellwertspannung während des Lesevorgangs sicherzustellen,
wird eine um ein vorgegebenes Maß, z.B. 0,2V bis 0,3V, höhere Spannung
als die während
des Lesevorgangs angelegte Spannung an die ausgewählte Wortleitung
angelegt.
-
10 zeigt einen Zeitablaufplan
des MSB-Programmiervorgangs. Der MSB-Programmiervorgang beginnt
mit einem Rücksetzschritt
des dritten Zwischenspeichers Q3. Wird das dritte Rücksetzsignal
RESET_C auf einen hohen Pegel gesetzt, um den NMOS-Transistor T21
leitend zu schalten, dann nehmen die Knoten G und F einen niedrigen Pegel
bzw. einen hohen Pegel an.
-
Dann
werden externe Daten in den Knoten G geladen, wenn das Eingabe-/Ausgabesteuersignal DI
auf einen hohen Pegel gesetzt ist und dadurch der NMOS-Transistor
T23 leitend geschaltet ist. Entsprechen die in die ausgewählten Speicherzellen
zu programmierenden Daten beispielsweise dem Wert [11], [10], [00]
oder [01], dann sind die in den Knoten G geladenen Daten gleich
[00], [01], [11] bzw. [10]. Hierbei werden, da die MSBs 0, 0, 1
und 1 sind, ein niedriger Pegel, ein niedriger Pegel, ein hoher
Pegel bzw. ein hoher Pegel in den Knoten G geladen. Als Konsequenz
wird der Knoten F auf einen hohen Pegel, einen hohen Pegel, einen
niedrigen Pegel bzw. einen niedrigen Pegel gesetzt.
-
Dann
nimmt das erste Ladesignal PLOAD einen niedrigen Pegel an. Hierbei
wird der PMOS-Transistor T1 leitend geschaltet und die Bitleitung
vorgeladen. Der Knoten E wird auf einen hohen Pegel gesetzt, um
den NMOS-Transistor T5 leitend zu schalten. Hierbei werden die NMOS-Transistoren T4
und T7 leitend geschaltet, wenn das erste Zwischenspeichersignal
LCH_MR und das zweite Zwischenspeichersignal LCH_MS auf einen hohen
Pegel gesetzt werden. Da die Knoten A und B des zweiten Zwischenspeichers
Q2 in einem unbekannten Zustand sind, wird einer der NMOS-Transistoren
T3 oder T6 leitend geschaltet. Entsprechend werden die Knoten C
und D auf einen niedrigen bzw. auf einen hohen Pegel gesetzt.
-
Dann
wird ein Dump-Vorgang der Daten vom Knoten G zum Knoten C ausgeführt. Wird
das Dump-Steuersignal PDUMP auf einen hohen Pe gel gesetzt, dann
wird der Transistor T25 leitend geschaltet. Entsprechen die in die
ausgewählten
Speicherzellen zu programmierenden Daten dem Wert [01] oder [00],
dann wird der NMOS-Transistor T24 leitend geschaltet, da die in
den Knoten G geladenen MSB-Daten gleich „1" sind, d.h. hohen Pegel haben. Entsprechend
werden die Knoten D und C in einen niedrigen Zustand bzw. in einen
hohen Zustand geändert.
Entsprechen die in die ausgewählten
Speicherzellen zu programmierenden Daten dem Wert [10] oder [11],
dann wird der NMOS-Transistor T24 sperrend geschaltet, da alle in
den Knoten G geladenen MSB-Daten gleich „0" sind, d.h. niedrigen Pegel haben. Entsprechend
werden die Knoten D und C auf einem hohen Pegel bzw. einem niedrigen
Pegel gehalten.
-
Entsprechend
dem Ergebnis des oben beschriebenen Dump-Vorgangs werden, wenn die
in die ausgewählten
Speicherzellen zu programmierenden Daten den Wert [11], [10], (00]
oder [01] haben, die Daten 0, 0, 1 bzw. 1 in den Knoten C ausgegeben.
-
Wie
aus 10 ersichtlich ist,
wird ein Auslesevorgang der durch den LSB-Programmiervorgang gespeicherten
Speicherzellendaten ausgeführt. Die
Lesedaten sind im zweiten Zwischenspeicher Q2 gespeichert. Vor dem
Lesevorgang wird das zweite Rücksetzsignal
RESET_S auf einen hohen Pegel gesetzt, so dass die Knoten A und
B einen niedrigen bzw. einen hohen Pegel annehmen. Ist die Speicherzelle
durch den LSB-Programmiervorgang in einem Programmierzustand, dann
nimmt der Knoten E einen hohen Zustand an. Ist die Speicherzelle
in einem gelöschten
Zustand, dann nimmt der Knoten E einen niedrigen Pegel an.
-
Wird
das dritte Zwischenspeichersignal LCH_S auf einen hohen Pegel gesetzt,
dann werden die NMOS-Transistoren T16 und T17 leitend geschaltet.
Hierbei werden die Knoten A und B gemäß den Zuständen des Knotens E bestimmt.
Ist der Knoten E auf einem hohen Pegel, dann wird der NMOS-Transistor
T15 leitend geschaltet, so dass der Knoten B auf einen niedrigen
Pegel geändert
wird. Ist der Knoten E auf einem niedrigen Pegel, dann wird der
NMOS-Transistor T15 sperrend geschaltet, so dass der Knoten B auf
hohem Pegel gehalten wird. Entsprechend nimmt der Knoten B einen
hohen Pegel, einen niedrigen Pegel, einen niedrigen Pegel bzw. einen
hohen Pegel an, wenn die zu programmierenden Daten den Wert [11],
[10], [00] oder [01] haben.
-
Dann
wird der MSB-Programmiervorgang ausgeführt. Sind das erste Steuersignal
VBL1 und das zweite Steuersignal VBL2 auf einen niedrigen Pegel
bzw. auf einen hohen Pegel gesetzt, dann werden der PMOS-Transistor
T9 und die NMOS-Transistoren T12 und T14 leitend geschaltet.
-
Erstens
ist, wenn die zu programmierenden Daten den Wert [01] haben, das
Ergebnis des LSB-Programmiervorgangs der gelöschte Zustand, z.B. ein Zustand,
an dem die Schwellwertspannungsverteilung gleich –2,7V oder
weniger ist. Da die Knoten B und C auf hohem Pegel sind, sind die NMOS-Transistoren
T10 und T11 leitend geschaltet, so dass der Knoten E die Massereferenzspannung annimmt.
Entsprechend ist die korrespondierende Speicherzelle ausreichend
programmiert, so dass die Schwellwertspannungsverteilung auf zwischen
ungefähr
2,3V bis 2,7V gelangt. In anderen Worten ausgedrückt, das Ergebnis des MSB-Programmierungsvorgangs
ist, dass die gespeicherten Daten den Zustand [01] annehmen.
-
Zweitens
ist, wenn die zu programmierenden Daten den Wert [00] haben, das
Ergebnis des LSB-Programmiervorgangs der programmierte Zustand,
z.B. ein Zustand, bei dem die Schwellwertspannungsverteilung 0,3V
bis 0,7V ist. Da die Knoten B und A auf einem niedrigen Pegel bzw.
auf einem hohen Pegel sind, ist der NMOS-Transistor T13 leitend
ge schaltet. Da der Knoten C auf einem hohen Pegel ist, ist der NMOS-Transistor T10 leitend
geschaltet, so dass der Knoten E eine vorbestimmte Spannung BLPWR
zwischen der Versorgungsspannung Vcc und der Massespannung Vss aufweist.
Entsprechend ist die korrespondierende Speicherzelle etwas programmiert,
so dass die Schwellwertspannungsverteilung auf zwischen ungefähr 1,3V
bis 1,7V gelangt. In anderen Worten ausgedrückt, das Ergebnis des MSB-Programmierungsvorgangs
ist, dass die gespeicherten Daten den Zustand [00] annehmen.
-
Drittens
ist, wenn die zu programmierenden Daten den Wert [10] haben, das
Ergebnis des LSB-Programmiervorgangs der programmierte Zustand,
z.B. ein Zustand, bei dem die Schwellwertspannungsverteilung 0,3V
bis 0,7V ist. Da der Knoten C auf einem niedrigen Pegel ist, ist
der PMOS-Transistor T8 leitend geschaltet und der NMOS-Transistor T10
ist sperrend geschaltet. Entsprechend wird eine Programmierung der
korrespondierenden Speicherzelle verhindert, da, der Knoten E auf
die Versorgungsspannung Vcc gesetzt ist und die Schwellwertspannungsverteilung
im Zustand zwischen 0,3V bis 0,7V gehalten wird. In anderen Worten
ausgedrückt, das
Ergebnis des MSB-Programmierungsvorgangs ist, dass die gespeicherten
Daten den Zustand [10] annehmen.
-
Viertens
ist, wenn die zu programmierenden Daten den Wert [11] haben, das
Ergebnis des LSB-Programmiervorgangs der gelöschte Zustand, z.B. ein Zustand,
bei dem die Schwellwertspannungsverteilung gleich –2,7V oder
weniger ist. Da der Knoten C auf einem hohen Pegel ist, ist der PMOS-Transistor
T8 leitend geschaltet und der NMOS-Transistor T10 ist sperrend geschaltet.
Entsprechend wird der Knoten E auf die Versorgungsspannung Vcc gesetzt,
so dass eine Programmierung der korrespondierenden Speicherzelle
verhindert wird und die Schwellwertspannungsverteilung weiter im
Zustand von –2,7V
gehalten wird. In anderen Worten ausgedrückt, das Ergebnis des MSB-Programmierungs vorgangs
ist, dass die gespeicherten Daten den Zustand [11] annehmen.
-
Als
Konsequenz kann die Mehrpegelzelle die Schwellwertspannungsverteilungen
von [11] (–2,7V oder
weniger), [10] (0,3V bis 0,7V), [00] (1,3V bis 1,7V) oder [01] (2,3V
bis 2,7V) durch den LSB-Programmiervorgang und den MSB-Programmiervorgang
aufweisen.
-
Gemäß einer
Ausführungsform
der Erfindung können
während
des Programmiervorgangs der Mehrpegelzelle Daten mit vier Zuständen durch zwei
Programmiervorgänge
programmiert werden, wodurch die Zeitdauer des Programmierbetriebs
reduziert wird.