-
Die
Erfindung bezieht sich auf ein nichtflüchtiges Halbleiterspeicherbauelement
nach dem Oberbegriff des Anspruchs 1 und auf ein Verfahren zur Programmierung
desselben.
-
Nichtflüchtige integrierte
Schaltkreisspeicherbauelemente lassen sich in die Typen Masken-ROM,
EPROM, EEPROM und Flash-EEPROM klassifizieren.
Von diesen Speicherbauelementen sind in jüngerer Zeit die Flash-EEPROMs
als Festwertspeicher für
Personalcomputer im Gespräch,
da sie eine elektrische Umwandlung von Information und ein Löschen gespeicherter
Daten in einem "Flash" ermöglichen.
-
In
herkömmlichen
nichtflüchtigen
Speicherbauelementen können
Speicherzellen einen von zwei Informationsspeicherzuständen einnehmen, nämlich den "EIN"-Zustand und den "AUS"-Zustand. Ein Bit
an Information ist durch den EIN- oder AUS-Zustand einer jeweiligen
Speicherzelle definiert. Um Daten von N Bit, mit N als einer natürlichen Zahl
größer oder
gleich zwei, in den oben erwähnten, herkömmlichen
Speicherbauelementen zu speichern, sind eine entsprechende Anzahl
N unabhängiger
Speicherzellen nötig.
Wenn Bedarf daran besteht, die Anzahl an Datenbits, die in einem
Speicherbauelement mit solchen Einbit-Speicherzellen zu speichern
sind, zu erhöhen,
muss die Anzahl solcher Speicherzellen entsprechend erhöht werden.
-
In
einer herkömmlichen
Einbit-Speicherzelle gespeicherte Information ist durch den programmierten
Zustand der Speicherzelle bestimmt, wobei die Programmierung dazu
benutzt wird, die gewünschte Information
in der Speicherzelle zu speichern. Der Informationsspeicherzustand
der Speicherzelle ist durch die Schwellenspannung bestimmt, welche
die minimale Spannung darstellt, die zwischen den Gate- und den
Source-Anschluss eines in der Speicherzelle enthaltenen Transistors
anzulegen ist, um den Zellentransistor in seinen EIN-Zustand zu
schalten. Mit anderen Worten besitzen Speicherzellen unterschiedliche
Informationsspeicherzustände
gemäß unterschiedlichen
Schwellenspannungen derselben. Im Fall von EPROMs, EEPROMs und Flash-EEPROMs
wird eine Differenz in der Schwellenspannung von Zellentransistoren
durch Speichern unterschiedlicher Ladungsmengen in potentialfreien Gate-Elektroden
der Speicherzellen erhalten.
-
Speziell
hat hierbei jeder Speicherzellentransistor zwei Gate-Elektroden
mit einer oberen und einer unteren Schicht, die auf einen Kanalbereich
zwischen einem Source- und einem Drain-Bereich laminiert sind. Die
obere Gate-Elektrode wird als Steuer-Gate bezeichnet. Ein Ladungsspeicherteil
ist von einem isolierenden Material zwischen dem Steuer-Gate und
dem Kanalbereich umgeben. Dieser Ladungsspeicherteil wird als potentialfreies
oder "schwebendes" Gate bezeichnet.
Dementsprechend kann der in jeder Speicherzelle gespeicherte Informationszustand
durch die Schwellenspannung dieser Speicherzelle unterscheidbar
erkannt werden.
-
Um
in den Speicherzellen eines Speicherbauelementes gespeicherte Information
zu lesen, muss der Informationsspeicherzustand der programmierten
Speicherzellen abgefragt werden. Zu diesem Zweck werden Signale,
die zum Lesen von Zustandsinformation aus einer ausgewählten Speicherzelle benötigt werden, unter
Verwendung einer Decoderschaltung an Schaltkreise angelegt, die
mit der ausgewählten
Speicherzelle verknüpft
sind. Dadurch kann auf einer Bitleitung ein Strom- oder Spannungssignal
erhalten werden, das für
die gespeicherte Information der Speicherzelle indikativ ist. Auf
diese Weise kann die programmierte Information einer Speicherzelle
durch Messen des erhaltenen Strom- oder Spannungssignals ermittelt
werden.
-
Diese
Speicherbauelemente können
abhängig
von der Verbindung der Speicherzellen mit jeweiligen Bitleitungen
eine Speicherzellenfeldstruktur vom NOR-Typ oder NAND-Typ haben.
In einem Speicherzellenfeld vom NOR-Typ ist jede Speicherzelle zwischen
eine Bitleitung und eine Masseleitung eingeschleift. In einem Speicherzellenfeld
vom NAND-Typ sind mehrere Speicherzellen seriell zwischen eine Bitleitung
und eine Masseleitung eingeschleift. Eine Gruppe von Speicherzellen,
die seriell mit einer Bitleitung zusammen mit Auswahltransistoren
verbunden sind, die zum Auswählen
dieser Speicherzellen verwendet werden, wird als Kette bezeichnet.
Die Auswahltransistoren können
einen ersten Transistor oder Kettenauswahltransistor, der zwischen
den seriell verbundenen Speicherzellen und der zugehörigen Bitleitung
angeordnet ist, und einen zweiten Transistor oder Masseauswahltransistor
umfassen, der zwischen den seriell verbundenen Speicherzellen und
einer Masseleitung angeordnet ist.
-
Wenn
eine Information, die in einem Speicherbauelement vom NAND-Typ gespeichert
ist, gelesen wird, wird ein Auswahltransistor in einer ausgewählten Kette
in den EIN-Zustand geschaltet. Außerdem wird an die Steuer-Gates
nicht ausgewählter Speicherzellen
eine Spannung angelegt, die höher als
die an das Steuer-Gate der ausgewählten Speicherzelle angelegte
Spannung ist. Dadurch weisen die nicht ausgewählten Speicherzellen im Vergleich zu
der ausgewählten
Speicherzelle einen niedrigen äquivalenten
Widerstand auf. Die Höhe
des über
die Kette von der zugehörigen
Bitleitung fließenden Stroms
hängt folglich
von der in der ausgewählten Speicherzelle
der Kette gespeicherten Information ab. Die Spannung oder der Strom,
welche bzw. welcher der Information entspricht, die in jeder ausgewählten Speicherzelle
gespeichert ist, wird durch eine Abtastschaltung abgetastet, die
allgemein unter der Bezeichnung Abtast- oder Leseverstärker bekannt
ist.
-
Es
wurden bereits viele Methoden vorgeschlagen, die Informationsspeicherkapazität von Speicherbauelementen
zu erhöhen,
ohne dazu die Chipabmessung vergrößern zu müssen. In jeder Speicherzelle
kann z.B. eine Information von wenigstens zwei Bit gespeichert werden.
Herkömmlicherweise
speichert eine Speicherzelle nur ein Bit an Information. Wenn zwei
Bit an Information in einer Speicherzelle gespeichert werden, ist
diese folglich mit "00", "01", "10" oder "11" programmiert. Dementsprechend
kann ein solches Speicherbauelement mit derselben Anzahl an Speicherzellen
doppelt so viel Information speichern wie ein Speicherbauelement, bei
dem nur ein Bit pro Speicherzelle gespeichert wird. Wenn pro Speicherzelle
zwei Bit gespeichert werden, wird dadurch ein Mehrzustands-Speicherbauelement
bereitgestellt, bei dem die Schwellenspannung jeder Speicherzelle
auf einen von vier verschiedenen Werten programmiert werden kann.
Da die Speicherkapazität
pro Speicherzelle verdoppelt wird, kann die Chipabmessung bei konstant
bleibender Speicherkapazität
reduziert werden. Mit wachsender Anzahl an pro Speicherzelle gespeicherten Bits
erhöht
sich die Datenspeicherkapazität
des Mehrzustands-Speicherbauelements.
-
1 zeigt ein Schaltbild eines
herkömmlichen
Speicherbauelements, bei dem pro Speicherzelle zwei Bit an Information
unter Verwendung von Flash-EEPROM-Zellen vom NAND-Typ gespeichert werden.
Ein solches Speicherbauelement ist in der Patentschrift
US 5.768.188 offenbart,
deren Inhalt hierin durch Verweis aufgenommen wird.
-
Das
dort beschriebene Speicherbauelement beinhaltet zwei Speicherzellenketten
mit jeweils mehreren seriell verbundenen Speicherzellen. Es sind
zwei Bitleitungen BL1, BL2 veranschaulicht, die mit einer jeweiligen
Speicherzellenkette verknüpft sind,
wobei diese Bitleitungen zu verschiedenen Gruppen gehören. Wie
für den
Fachmann klar, kann eine höhere
Anzahl an Speicherzellenketten und jeweiligen Bitleitungen verwendet
werden. In 1 sind die
Speicherzellen jeder Kette mit T1-2 bis T1-5 bzw. T1-8 bis T1-11
bezeichnet. Ein Auswahltransistor T1-1 bzw. T1-7 ist zwischen jede
Kette und die zugehörige
Bitleitung eingeschleift. Der Auswahltransistor wird selektiv leitend
geschaltet, um die zugehörige
Kette und die Bitleitung miteinander zu verbinden. Ein weiterer
Auswahltransistor T1-6 bzw. T1-12 ist zwischen jede Kette und eine
gemeinsame Quellenleitung CSL eingeschleift, um die Verbindung zwischen
der Kette und der gemeinsamen Quellenleitung CSL selektiv zu schalten.
Ein Verarmungstransistor D1-1 bzw. D1-2 ist ebenfalls mit der jeweiligen Bitleitung
gekoppelt, um die Beaufschlagung mit einer hohen Spannung zu verhindern.
-
Mit
jeder Bitleitung ist außerdem
ein Bitleitungs-Auswahltransistor S1-1 bzw. S1-2 verbunden. Jeder
Bitleitungs-Auswahltransistor
wählt eine
jeweilige Bitleitung in Reaktion auf ein Bitleitungsauswahlsignal
A9 bzw. A9b aus. Eine Signalleitung BLLVL ist mit jeder der Bitleitungen über Transmissionstransistoren
TM1-1 bzw. TM1-2 verbunden. Jeder Transmissionstransistor beaufschlagt
die zugehörige
Bitleitung in Reaktion auf das an ihn angelegte Bitleitungsauswahlsignal
A9 bzw. A9b mit dem Signal BLLVL von der betreffenden Signalleitung,
wenn die Bitleitung nicht ausgewählt
ist. Das Signal BLLVL führt
der nicht ausgewählten
Bitleitung während
Programmier- und Lesevorgängen
eine Programmiersperrspannung zu, z.B. die Speisespannung Vcc, während es bei
Löschvorgängen potentialfrei
bleibt. Mit den Bitleitungen ist des weiteren ein Transistor T1-13
verbunden, um der ausgewählten
Bitleitung während
eines Lesevorgangs einen statischen Strom zuzuführen. Das Speicherbauelement
von 1 beinhaltet des
weiteren Abtastverstärker
I1-1 und I1-2 bzw. I1-3 und I1-4 vom Zwischenspeichertyp, die mit
einer jeweiligen Bitleitung ver knüpft sind. Die Abtastverstärker puffern
extern während
eines Programmiervorgangs zugeführte
Daten, führen
der zugehörigen
Bitleitung eine den zwischengespeicherten Daten entsprechende Spannung
zu und puffern die während eines
Lesevorgangs gelesenen Daten.
-
Eine
Mehrzahl von Transistoren von T1-17 bis T1-23 ist dazu vorgesehen,
Zwischenspeicherzustände
der Abtastverstärker
in Abhängigkeit
von einem während
eines Lesevorgangs ausgewählten
Bitleitungspegel zu invertieren oder beizubehalten. Diese Funktion
wird durch Zwischenspeicherfreigabesignale ϕV2, ϕV1
und ϕR1 gesteuert. Diese Zwischenspeicherfreigabesignale
werden impulsförmig
zu dem Zeitpunkt freigegeben, zu dem eine Invertierung im Zwischenspeicherzustand
erforderlich ist, nachdem seit dem Beginn eines Lesevorgangs eine
vorgebbare Zeitdauer verstrichen ist. Mit den Bitleitungen ist außerdem ein
Transistor T1-15 verbunden, der die Zwischenspeicher unmittelbar
vor der Ausführung
eines Lesevorgangs initialisiert, während er die Bitleitungen auf
einem Massespannungszustand hält.
Der Transistor T1-15 wird durch ein Signal DCB gesteuert. Mit einer
jeweiligen Bitleitung gekoppelte Transistoren T1-14 und T1-16 werden
leitend geschaltet, wenn ein Programmiervorgang ausgeführt wird,
um dadurch die zwischengespeicherten Daten zu den jeweiligen Bitleitungen
zu übertragen.
Die Transistoren T1-14 und T1-16 werden durch ein jeweiliges Steuersignal
PGM1, PGM2 gesteuert.
-
2 zeigt eine Schwellenspannungsverteilung
einer Speicherzelle in Abhängigkeit
von programmierten Daten. Wie daraus ersichtlich, besitzt eine programmierte
Speicherzelle entweder eine Schwellenspannungsverteilung unterhalb
von –2,0
V, was 2-Bit-Daten der Form "11" anzeigt, eine Schwellenspannungsverteilung
zwischen 0,4 V und 0,8 V, was 2-Bit-Daten der Form "10" anzeigt, eine Schwellenspannungsverteilung
zwischen 1,6 V und 2,0 V, was 2-Bit-Daten der Form "01" anzeigt, oder eine Schwellenspannungsverteilung
zwischen 2,8 V und 3,2 V, was zwei Bit-Daten der Form "00" anzeigt. Auf der
Basis dieser Schwellenspannungsverteilungen können Daten in vier verschiedenen
Zuständen
in einer Speicherzelle gespeichert werden.
-
In
den 3 und 4 sind Signalverläufe von Signalen
veranschaulicht, die mit Programmier- und Programmierprüfvorgängen verknüpft sind.
Der Programmierzyklus beinhaltet einen Programmiervorgang, in welchem
Elektronen in potentialfreie Gate-Elektroden von Speicherzellen
injiziert werden, und einen Programmierprüfvorgang, in welchem nachgeprüft wird,
ob jede programmierte Speicherzelle eine gewünschte Schwellenspannung aufweist oder
nicht. Die Programmier- und Programmierprüfvorgänge werden wiederholt, bis
alle ausgewählten Speicherzellen
die gewünschten
Schwellenspannungen aufweisen. Die Anzahl an Wiederholungen dieser
Vorgänge
kann auf einen geeigneten Wert begrenzt werden, der intern im Speicherbauelement festgelegt
wird. Um einen Programmiervorgang in einer ausgewählten Speicherzelle
unter Verwendung von Fowler-Nordheim-Tunneln auszuführen, wird
an die Gate-Elektrode der Zelle eine hohe Spannung, z.B. 14 V bis
19 V, als vorgegebene Programmierspannung angelegt, während der
Kanal der Zelle auf dem Massespannungspegel gehalten wird.
-
Dementsprechend
wird ein relativ starkes elektrisches Feld zwischen die potentialfreie Gate-Elektrode
und den Kanal angelegt. Unter der Wirkung eines solchen elektrischen
Feldes tritt zwischen der potentialfreien Gate-Elektrode und dem Kanal
Tunneln durch einen Oxidfilm hindurch auf, der zwischen der potentialfreien
Gate-Elektrode und dem Kanal gebildet ist. Im Kanal existierende
Elektronen wandern dadurch in Richtung der potentialfreien Gate-Elektrode,
so dass sich diese Elektronen dort ansammeln. Die Ansammlung von
Elektronen in der potentialfreien Gate-Elektrode resultiert in einem
Anwachsen der Schwellenspannung der Zelle. Für den Fall eines aus mehreren
Datenzellen bestehenden Speicherbauelementes werden Programmiervorgänge für die Datenzellen
nicht einzeln, sondern gleichzeitig ausgeführt. Jedoch kann es sein, dass die Speicherzellen
unterschiedliche Schwellenspannungen benötigen, nämlich für einen unterschiedlichen Grad
an Programmierung. Aus diesem Grund kann es notwendig sein, in einer
Programmierprüfung
zu überprüfen, ob
die Speicherzellen nach Ausführung eines
Programmiervorgangs ihre gewünschten
Zustände
erreicht haben oder nicht, und für
nicht vollständig
programmierte Speicherzellen einen weiteren Programmiervorgang auszuführen, ohne
die vollständig
programmierten Speicherzellen zu beeinflussen, d.h. für letztere
ist eine Programmiersperrung vorzusehen. Diese Programmier- und
Programmierprüfvorgänge werden
wiederholt, bis alle ausgewählten
Speicherzellen ihre gewünschten
Schwellenspannungen erreicht haben. Im Speicherbauelement von 1 wird nur die mit einer
ausgewählten
Wortleitung verbundene Hälfte
der Speicherzellen in der oben beschriebenen Weise programmiert.
-
Der
Programmiervorgang und der Programmierprüfvorgang nach dem Stand der
Technik werden nachfolgend unter Bezugnahme auf das Zeitsteuerungsdiagramm
von
3 erläutert. Vor
dem Programmiervorgang haben alle Speicherzellen, wie dem Fachmann
bekannt, aufgrund eines Löschschemas,
wie es z.B. in der Patentschrift
US
5.841.721 beschrieben ist, eine negative Schwellenspannung.
-
Wenn
eine von zwei Bitleitungen in Abhängigkeit von den Bitleitungsauswahlsignalen
A9 und A9b ausgewählt
wird, z.B. die Bitleitung BL1, wird die Speisespannung Vcc von der
Leitung BLLVL an die nicht ausgewählte Bitleitung BL2 angelegt,
was eine Programmierung derjenigen Speicherzellen verhindert, die
mit der nicht ausgewählten
Bitleitung verknüpft,
aber mit der ausgewählten
Wortleitung verbunden sind. Diese Programmiersperrtechnik mit Beaufschlagung
nicht ausgewählter
Bitleitungen durch eine Speisespannung ist dem Fachmann geläufig.
-
Zu
programmierende Daten werden auf Zwischenspeicher Q2 und Q1 geladen,
die mit der ausgewählten
Bitleitung BL1 verknüpft
sind. Wird z.B. angenommen, dass der Datenwert "00" auf
die Zwischenspeicher Q2 und Q1 geladen wird, wechselt unter dieser
Bedingung bei Beginn eines ersten Programmierzyklus (A) das Signal
PGM1 zum Auswählen
des Zwischenspeichers Q1 von einem niedrigen auf einen hohen Logikpegel.
Dadurch nimmt die ausgewählte
Bitleitung BL1 über
den Transistor T1-16 einen Massespannungspegel ein. Eine Wortleitung,
mit der eine ausgewählte
Speicherzelle verbunden ist, wird mit einer hohen Spannung beaufschlagt.
Nach Ablauf einer gewissen Zeitdauer wird der Programmierprüfvorgang
durchgeführt,
um zu überprüfen, ob die
ausgewählte
Speicherzelle bis auf die gewünschte
Schwellenspannung von z.B. 0,4 V bis 0,8 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung ausgeführt wird, werden die Signale
PGM1, PGM2 und PGM3 jeweils auf einem niedrigen Logikpegel gehalten.
Wenn die ausgewählte
Speicherzelle nicht ausreichend programmiert wurde, wird die Bitleitung
BL1 als Resultat des Abtastvorgangs weiter auf dem Massespannungspegel
gehalten. Zu diesem Zeitpunkt sind die Transistoren T1-19 und T1-20 sperrend
geschaltet, da die Logikzustände
der ausgewählten
Bitleitung BL1 und des Zwischenspeichers Q1 auf niedrigem Logikpegel
liegen. Wie in 3 veranschaulicht,
wird daher der Logikzustand des Zwischenspeichers Q1 in einer Programmierprüfperiode
nicht invertiert, selbst wenn das Zwischenspeicherfreigabesignal ϕV1
in Impulsform aktiviert wird. Der Programmiervorgang und der Programmierprüfvorgang,
die sich auf den Zwischenspeicher Q1 beziehen, werden mit einer
vorgegebenen Programmierfrequenz oder solange wiederholt, bis die
ausgewählte
Speicherzelle ausreichend programmiert ist. Nach Beendigung des
ersten Programmierzyklus (A) besitzt dann die ausgewählte Speicherzelle
eine Schwellenspannungsverteilung zwischen 0,4 V und 0,8 V, was
dem Datenwert "10" entspricht, wie
in den 6C und 6D veranschaulicht.
-
Sobald
ein zweiter Programmierzyklus (B) von 3 beginnt,
geht das Signal PGM2 zum Auswählen
des Zwischenspeichers Q2 mit "0" von einem niedrigen
auf einen hohen Logikpegel über.
-
Über den
Transistor T1-14 liegt die ausgewählte Bitleitung BL1 auf Massespannungspegel.
An der ausgewählten
Wortleitung, die mit der ausgewählten
Speicherzelle verbunden ist, liegt eine hohe Spannung an. Nach Ablauf
einer gewissen Zeitdauer wird der Programmierprüfvorgang ausgeführt, um
zu überprüfen, ob
die ausgewählte
Speicherzelle auf eine gewünschte
Schwellenspannung von z.B. 1,6 V bis 2,0 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung ausgeführt wird, werden die Signale
PGM1, PGM2 und PGM3 jeweils auf niedrigem Logikpegel gehalten. Wenn
die ausgewählte
Speicherzelle ausreichend programmiert ist, verbleibt die Bitleitung BL1
als Ergebnis des Abtastvorgangs auf dem Speisespannungspegel, wodurch
der Transistor T1-17 leitend geschaltet wird. Wenn das Zwischenspeicheraktivierungssignal ϕV2,
wie in 3 illustriert,
während
einer Programmierprüfperiode
des zweiten Programmierzyklus (B) impulsförmig aktiviert wird, wird der
Logikzustand des Zwischenspeichers Q2 von "1" in "0" invertiert. Andererseits wird, wenn
die ausgewählte
Speicherzelle nicht ausreichend programmiert ist, die ausgewählte Bitleitung
BL1 auf dem Massespannungspegel gehalten, so dass der Zustand des Zwischenspeichers
Q2 nicht invertiert wird. In diesem Fall werden der Programmiervorgang
und der Programmierprüfvorgang,
die mit dem Zwischenspeicher Q2 verknüpft sind, mit einer vorgegebenen
Programmierfrequenz oder so lange wiederholt, bis die ausgewählte Speicherzelle
ausreichend programmiert ist. Nach Abschluss des zweiten Programmierzyklus
(B) besitzt die ausgewählte
Speicherzelle eine Schwellenspannungsverteilung von 1,6 V bis 2,0
V, was "01" entspricht, wie
in den 6C und 6D veranschaulicht.
-
Sobald
schließlich
ein dritter Programmierzyklus (C) von 3 beginnt,
geht das Signal PGM1 zum Auswählen
des Zwischenspeichers Q1 mit "0" von niedrigem auf
hohen Logikpegel über.
Die ausgewählte
Bitleitung BL1 liegt über
den Transistor T1-16 auf
Massespannungspegel. An die ausgewählte Wortleitung, mit der die
ausgewählte
Speicherzelle verbunden ist, wird ei ne hohe Spannung angelegt. Nach
Ablauf einer gewissen Zeitdauer wird der Programmierprüfvorgang
ausgeführt,
um zu überprüfen, ob
die ausgewählte
Speicherzelle auf eine gewünschte
Schwellenspannung von z.B. 2,8 V bis 3,2 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung ausgeführt wird, werden die Signale
PGM1, PGM2 und PGM3 jeweils auf niedrigem Logikpegel gehalten. Wenn
die ausgewählte
Speicherzelle ausreichend programmiert ist, verbleibt die Bitleitung BL1
als Resultat des Abtastvorgangs weiterhin auf dem Speisespannungspegel,
was den Transistor T1-17 leitend schaltet. Zu diesem Zeitpunkt ist
der Transistor T1-20 leitend geschaltet, da sich der Zwischenspeicher
Q2 im "1"-Zustand befindet.
Wenn somit das Zwischenspeicheraktivierungssignal ϕV1, wie
in 3 illustriert, während einer
Programmierprüfperiode
des dritten Programmierzyklus (C) impulsförmig aktiviert wird, wird der
Logikzustand des Zwischenspeichers Q1 von "1" in "0" invertiert. Nach Abschluss des dritten
Programmierzyklus (C) besitzt die ausgewählte Speicherzelle eine Schwellenspannungsverteilung
von 2,8 V bis 3,2 V, was "00" entspricht, wie
in den 6C und 6D veranschaulicht.
-
Im
Fall, dass ein Datenwert von "01" auf die Zwischenspeicher
Q2 und Q1 geladen wird, ergeben sich der Programmiervorgang und
der Programmierprüfvorgang
wie folgt. Zunächst
geht bei Beginn des ersten Programmierzyklus A das Signal PGM1 zum Auswählen des
Zwischenspeichers Q1 vom niedrigen auf den hohen Logikpegel über. Somit
liegt die ausgewählte
Bitleitung BL1 über
den Transistor T1-16 auf Speisespannungspegel. Da die Bitleitung BL1
während
des ersten Programmierzyklus (A) auf dem Speisespannungspegel eines
Programmiersperrzustands gehalten wird, ist die ausgewählte Speicherzelle
gegen eine Programmierung gesperrt. Somit wird nach dem ersten Programmierzyklus
(A) die Schwellenspannung der ausgewählten Speicherzelle auf einem
Löschzustand
gehalten, d.h. auf einer Schwellenspannungsverteilung von –3 V bis –2 V, was "11" entspricht.
-
Wenn
der zweite Programmierzyklus (B) von 3 beginnt,
geht das Signal PGM2 zum Auswählen
des Zwischenspeichers Q2 mit "0" vom niedrigen auf
den hohen Logikpegel über.
Die ausgewählte
Bitleitung BL1 liegt über
dem Transistor T1-14 auf dem Massespannungspegel. An der ausgewählten Wortleitung,
die mit der ausgewählten
Speicherzelle verbunden ist, liegt eine hohe Spannung an. Nach Ablauf
einer gewissen Zeitdauer wird der Programmierprüfvorgang ausgeführt, um
zu überprüfen, ob
die ausgewählte
Speicherzelle auf die gewünschte Schwellenspannung
von z.B. 1,6 V bis 2,0 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung ausgeführt wird, werden die Signale
PGM1, PGM2 und PGM3 jeweils auf niedrigem Logikpegel gehalten. Wenn
die ausgewählte
Speicherzelle ausreichend programmiert ist, bleibt die Bitleitung
BL1 als Resultat des Abtastvorgangs weiterhin auf dem Speisespannungspegel,
was den Transistor D1-17 leitend schaltet. Wenn das Zwischenspeicheraktivierungssignal ϕV2,
wie in 3 illustriert,
während
einer Programmierprüfperiode
des zweiten Programmzyklus (B) impulsförmig aktiviert wird, wird der
Logikzustand des Zwischenspeichers Q2 von "1" in "0" invertiert. Andererseits wird, wenn
die ausgewählte Speicherzelle
nicht ausreichend programmiert ist, die ausgewählte Bitleitung BL1 auf dem
Massespannungspegel gehalten, so dass der Zustand des Zwischenspeichers
Q2 nicht invertiert wird. In diesem Fall werden der Programmiervorgang
und der Programmierprüfvorgang,
die mit dem Zwischenspeicher Q2 verknüpft sind, mit einer vorgegebenen
Programmierfrequenz oder so lange wiederholt, bis die ausgewählte Speicherzelle
ausreichend programmiert ist. Nach Abschluss des zweiten Programmierzyklus
(B) besitzt die ausgewählte
Speicherzelle eine Schwellenspannungsverteilung von 1,6 V bis 2,0
V, was "01" entspricht, wie
in den 6C und 6D illustriert.
-
Wenn
in Fortsetzung hiervon der dritte Programmierzyklus (C) von 3 beginnt, geht das Signal
PGM1 zum Auswählen
des Zwischenspeichers Q1 vom niedrigen auf den hohen Logikpegel über. Die
ausgewählte
Bitleitung BL1 liegt über
den Transistor T1-16 auf Speisespannungspegel. Da die ausgewählte Bitleitung
BL1 während
des dritten Programmierzyklus (C) auf dem Speisespannungspegel eines
Programmiersperrzustands gehalten wird, ist die ausgewählte Speicherzelle
gegen Programmierung gesperrt. Dadurch weist die ausgewählte Speicherzelle
nach Abschluss des dritten Programmierzyklus (C) eine Schwellenspannungserteilung
von 1,6 V bis 2,0 V auf, was "01" entspricht, in den 6C und 6D illustriert.
-
Im
Fall, dass ein Datenwert von "11" in die Zwischenspeicher
Q1 und Q2 geladen ist, wird die ausgewählte Speicherzelle im Löschzustand
gehalten, da die ausgewählte
Bitleitung BL1 sowohl im ersten als auch im zweiten und dritten
Programmierzyklus (A, B und C) auf dem Speisespannungspegel gehalten
wird. Dies bedeutet, dass die ausgewählte Speicherzelle eine Schwellenspannungsverteilung von –3 V bis –2 V besitzt,
wie in den 5A und 5B illustriert. Im Fall,
dass ein Datenwert von "10" in die Zwischenspeicher
Q1 und Q2 geladen ist, wird der Zustand des Zwischenspeichers Q1
von "1" in "0" invertiert, wie zum Programmiervorgang
von "00" beschrieben. Die
ausgewählte
Speicherzelle ist folglich im zweiten und dritten Programmierzyklus
(B und C) gegen Programmierung gesperrt. Dadurch weist die ausgewählte Speicherzelle
eine Schwellenspannungsverteilung von 0,4 V bis 0,8 V auf.
-
In
den 5A bis 5D und 6A bis 6D ist
zudem eine Variante der Schwellenspannungsverteilung in Abhängigkeit
von programmierten Daten einer ausgewählten Speicherzelle während des
oben beschriebenen Programmiervorgangs illustriert. Wie aus den 6A und 6B, die eine Schwellenspannungsvariation
für "01" zeigen, zu erkennen,
verschiebt sich die Schwellenspannung der ausgewählten Speicherzelle, da diese
im ersten Programmierzyklus (A) gegen Programmierung gesperrt ist,
von einer Schwellenspannungsverteilung zwischen –3 V bis –2 V zu einer Schwellenspannungsverteilung
zwischen 1,6 V bis 2,0 V, wenn der zweite Programmierzyklus (B)
ausgeführt
wird. Dies bedeutet, dass die Schwellenspannung der ausgewählten Speicherzelle direkt
von einer Schwellenspannungsverteilung von "11" zu
einer Schwellenspannungsverteilung von "01" verschoben
wird, ohne zu einer Schwellenspannungsverteilung von "10" verschoben zu werden.
Zu diesem Zweck ist die zur Programmierung der Daten von "01" benötigte Zeitdauer
länger
als diejenige einer sequentiell oder graduell zu programmierenden Speicherzelle,
wie z.B. für
die Daten von "00" beschrieben. Daher
ist, wie durch eine gestrichelte Linie in den 6A und 6B illustriert,
die Schwellenspannungsverteilung von 1,5 V bis 2,1 V einer mit "01" zu programmierenden
Speicherzelle im Vergleich zur gewünschten Schwellenspannungsverteilung
von 1,6 V bis 2,0 V verbreitert, wodurch die Toleranz zwischen den
Schwellenspannungsverteilungen verringert ist. Beispielsweise ist
die Toleranz zwischen der zu "10" gehörigen Schwellenspannungsverteilung und
der zu "01" gehörigen Schwellenspannungsverteilung
verringert, oder die Toleranz zwischen der zu "01" gehörigen Schwellenspannungsverteilung
und der zu "00" gehörigen Schwellenspannungsverteilung.
Dies kann Ausfälle
beim Lesen verursachen.
-
Ein
weiteres, ähnliches
herkömmliches nichtflüchtiges
Halbleiterspeicherbauelement der gattungsgemäßen Art, bei dem zur Mehrbitprogrammierung
beide Zwischenspeicher mit einer Bitleitung verbunden werden können, ist
in der Patentschrift
US 5.862.074 offenbart.
-
Der
Erfindung liegt als technisches Problem die Bereitstellung eines
nichtflüchtigen
Halbleiterspeicherbauelements der eingangs genannten Art und eines
zugehörigen
Programmierverfahrens zugrunde, bei denen sich die Toleranz zwischen Schwellenspannungsverteilungen
nach der Programmierung konstant halten lässt und die Schwellenspannung
einer Speicherzelle, wenn letztere bis zu einer gewünschten
Schwellenspannung programmiert wird, sequentiell in eine zu den
jeweiligen Programmierdaten gehörige
Schwellenspannung verschoben wird.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung eines nichtflüchtigen
Halbleiterspeicherbauelementes mit den Merkmalen des Anspruchs 1
sowie eines Programmierverfahrens mit den Merkmalen des Anspruchs
9.
-
Erfindungsgemäß werden
in einem Speicherschaltkreis mehrere Datenbits, z.B. Daten mit zwei
Bit, an Information zur Einprogrammierung in eine Speicherzelle
gespeichert. Eine Programmierdatendiskriminatorschaltung setzt während eines Programmiervorgangs
eine Bitleitung in Abhängigkeit
vom Logikzustand der zwischengespeicherten Daten auf eine Programmierspannung,
wenn wenigstens eines der zwischengespeicherten Datenbits eine Programmierung
einer ausgewählten
Speicherzelle anzeigt, und auf eine Programmiersperrspannung, wenn
alle zwischengespeicherten Datenbits eine Programmiersperre der
ausgewählten
Speicherzelle anzeigen. Auf diese Weise ist es möglich, die Speicherzelle in
jedem Programmierzyklus unabhängig
von den Logikzuständen
von in dem Speicherschaltkreis gespeicherten Datenbits mit einer
gewünschten
Schwellenspannung zu programmieren.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie die zu deren besserem Verständnis oben beschriebenen, herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt, in denen zeigen:
-
1 ein
schematisches Blockschaltbild eines herkömmlichen nichtflüchtigen
Halbleiterspeicherbauelements,
-
2 eine
typische Schwellenspannungsverteilung einer Speicherzelle in Abhängigkeit
von programmierten Daten,
-
3 ein
Zeitsteuerungsdiagramm bezüglich
Steuersignalen, die mit einem Programmiervorgang und einem Programmierprüfvorgang
des Speicherbauelements von 1 verknüpft sind,
-
4 ein
Signalverlaufsdiagramm einer an eine ausgewählte Wortleitung während eines
Programmiervorgangs und eines Programmierprüfvorgangs angelegten Spannung,
-
5A bis 5D und 6A bis 6D Varianten
bezüglich
Programmierdaten und Schwellenspannungen einer Speicherzelle während der Programmierung,
-
7 ein
schematisches Blockschaltbild eines erfindungsgemäßen nichtflüchtigen
Halbleiterspeicherbauelements,
-
8 ein
Zeitsteuerungsdiagramm bezüglich
Steuersignalen, die mit einem Programmiervorgang und einem Programmierprüfvorgang
des Speicherbauelements von 7 verknüpft sind,
und
-
9A bis 9D und 10A bis 10D Varianten
bezüglich
Programmierdaten und Schwellenspannungen einer erfindungsgemäßen Speicherzelle
während
der Programmierung.
-
7 zeigt
ein Schaltbild eines erfindungsgemäßen Speicherbauelementes, das
unter Verwendung von Flash-EEPROM-Zellen vom NAND-Typ zwei Bit an
Information pro Speicherzelle speichert. Das Speicherbauelement
beinhaltet gemäß 7 zwei
Speicherzellenketten mit je mehreren, seriell verbundenen Speicherzellen,
wobei die Speicherzellen jeder Kette mit MC1-1 bis MC1-4 bzw. MC1-5 bis MC1-8 bezeichnet
sind. Je ein Kettenauswahltransistor ST1, ST2 ist zwischen die zugehörige Kette
und eine zugehörige
Bitleitung eingeschleift. Die Kettenauswahltransistoren ST1, ST2
werden in Abhängigkeit
vom Logikzustand eines Kettenauswahlleitungssignals SSL einer Zeilendecoderschaltung 100 leitend
bzw. sperrend geschaltet und dienen der elektrischen Verbindung
der jeweiligen Kette mit der zugehörigen Bitleitung. Zwischen
einer jeweiligen Kette und einer gemeinsamen Quellenleitung CSL
ist je ein Masseauswahltransistor GT1, GT2 angeordnet, der in Abhängigkeit
vom Logikzustand eines Masseauswahlleitungssignals GSL der Zeilendecoderschaltung 100 leitend
bzw. sperrend geschaltet wird. Ein jeweiliger Transistor DT1 oder
DT2 vom Verarmungstyp dient dazu, das Anlegen einer hohen Spannung
an die zugehörige
Bitleitung zu verhindern.
-
Mit
den Bitleitungen BL1 und BL2 ist je ein Bitleitungsauswahltransistor
BLST1, BLST2 verbunden, der die zugehörige Bitleitung in Reaktion
auf ein Bitleitungsauswahlsignal A9 bzw. A9b auswählt. Eine Signalleitung
BLLVL ist über
zugehörige
Transfergatter TG1 und TG2 mit den Bitleitungen BL1 und BL2 verbunden.
Jedes Transfergatter TG1, TG2 führt
ein Signal von der Signalleitung BLLVL einer nicht ausgewählten Bitleitung
in Reaktion auf die Bitleitungsauswahlsignale A9, A9b zu. Die Signalleitung
BLLVL führt
während
des Programmierens und Lesens der nicht ausgewählten Bitleitung eine Programmiersperrspannung,
z.B. eine Speisespannung Vcc, zu und wird während eines Löschvorgangs
in einem potentialfreien Zustand gehalten. Die Transistoren BLST1
und BLST2 bilden zusammen mit den Transfergattern TG1 und TG2 eine
Bitleitungsauswahlschaltung.
-
Ein
als Ladetransistor dienender PMOS-Transistor MP1 ist mit beiden
Bitleitungen BL1, BL2 verbunden, um während des Lesens eine ausgewählte Bitleitung
auf der Basis einer Referenzspannung Vref mit einem konstanten Strom
zu versorgen. Ein Beispiel einer Schaltung zur Erzeugung der Referenzspannung
Vref ist in der Patentschrift
US
5.748.529 beschrieben, deren Inhalt hierin durch Verweis
aufgenommen wird und auf die hinsichtlich entsprechender Details
verwiesen werden kann.
-
Des
weiteren weist das erfindungsgemäße Speicherbauelement
zu den Bitleitungen BL1 und BL2 gehörige Zwischenspeicherschaltungen
LT2 und LT1 und je zwei gepufferte Inverter INV1, INV2 und INV3,
INV4 auf. Jede Zwischenspeicherschaltung LT2, LT1 puffert von außen während des
Programmierens angelegte Daten und puffert während des Lesens Daten, die
aus einer ausgewählten
Speicherzelle ausgelesen wurden. Unmittelbar vor einem Lesevorgang
werden Knoten QN1 und QN2 der Zwischenspeicherschaltungen LT1 und
LT2, die jeweils mit einer zugehörigen
Eingabe/Ausgabe-Leitung I/O1 und I/O2 verbunden sind, über einen
jeweils zugehörigen
NMOS-Transistor MN8, MN9 initi alisiert. Die Transistoren MN8 und
MN9 werden in Abhängigkeit
vom Logikzustand eines Initialisierungssignals PBset leitend bzw.
sperrend geschaltet. Die Zwischenspeicher LT1 und LT2 bilden einen
Speicherschaltkreis.
-
Des
weiteren sind im Speicherbauelement von 7 mehrere
NMOS-Transistoren MN1 bis MN7 vorgesehen, die eine Speichersteuerschaltung bilden.
Die Speichersteuerschaltung invertiert oder hält Pufferzustände der
Zwischenspeicherschaltungen LT1 und LT2 in Abhängigkeit vom Spannungspegel
einer Bitleitung, die während
des Lesens ausgewählt
wird. Diese Funktion wird durch Zwischenspeicheraktivierungssignale ϕV2
und ϕR1 gesteuert. Die Zwischenspeicheraktivierungssignale
werden zu einem Zeitpunkt gepulst, zu dem nach Beginn eines Lesevorgangs
und Verstreichen einer gewissen Zeitdauer eine Inversion eines Pufferzustands
benötigt wird.
-
Das
erfindungsgemäße Speicherbauelement
von 7 beinhaltet des weiteren ein NOR-Gatter NOR und
einen NMOS-Transistor MN10, die eine Programmierdatenbeurteilungsschaltung
bilden. Ein Eingangsanschluss des NOR-Gatters NOR ist mit einem
Knoten /QN1 der Zwischenspeicherschaltung LT1 verbunden, während sein
anderer Anschluss mit einem Knoten /QN2 der Zwischenspeicherschaltung
LT2 verbunden ist. Die Source-Elektrode des NMOS-Transistors MN10
ist über
die Transistoren BLST1 und BLST2 mit den Bitleitungen BL1 und BL2
verbunden, während
seine Drain-Elektrode an einen Ausgangsanschluss des NOR-Gatters NOR angeschlossen
und seine Gate-Elektrode mit einer Signalleitung SLT verbunden ist.
Das Signal SLT wird in einer Programmierperiode jedes Programmierzyklus
auf einem hohen Logikpegel gehalten, während ein Programmiervorgang durchgeführt wird.
Durch diese Konfiguration wird, wenn wenigstens eines der zu programmierenden Datenbits
Q2 und Q1 auf einem niedrigen Logikpegel liegt (wenn eine ausgewählte Zelle
zu programmieren ist), die ausgewählte Bitleitung über das NOR-Gatter und den NMOS-Transistor
MN10 auf eine Programmierspannung, d.h. einen Massespannungspegel,
gesetzt, wenn ein Pro grammiervorgang jedes Programmierzyklus ausgeführt wird.
Wenn alle zu programmierenden Datenbits auf einem hohen Logikpegel
liegen (wenn eine ausgewählte
Zelle vor Programmierung zu sperren ist), wird die ausgewählte Bitleitung
durch die Programmierdatenbeurteilungsschaltung auf eine Programmiersperrspannung,
d.h. eine Speisespannung, gesetzt, wenn der Programmiervorgang jedes
Programmierzyklus ausgeführt
wird.
-
Es
versteht sich, dass alternativ zu der gezeigten Realisierung die
Programmierdatenbeurteilungsschaltung zur Durchführung seiner oben angegebenen
Funktion unter Verwendung anderer Logikgatter aufgebaut sein kann.
Zudem können
alternativ zu den in 7 gezeigten zwei Bitleitungen
mehr als zwei Bitleitungen vorgesehen sein. Dabei sind dann die
mit den zusätzlichen
Bitleitungen verknüpften Komponenten
in der zu 7 analogen Weise konfiguriert.
-
Nachfolgend
werden der Programmiervorgang und der Programmierprüfvorgang
des erfindungsgemäßen Speicherbauelementes
näher erläutert. Dabei
zeigt 8 ein Zeitsteuerungsdiagramm zum erfindungsgemäßen Programmier-
und Programmierprüfvorgang.
Alle Speicherzellen werden zunächst
durch eine herkömmliche
Löschmethode gelöscht, so
dass sie eine negative Schwellenspannung haben, wonach die Programmierung
einer ausgewählten
Speicherzelle wie folgt abläuft.
-
Zuerst
wird, wenn eine der Bitleitungen BL1, BL2, z.B. die Bitleitung BL1,
in Abhängigkeit
von den Bitleitungsauswahlsignalen A9 und A9b ausgewählt wurde,
an die nicht ausgewählte
Bitleitung BL2 von der Signalleitung BLLVL eine Speisespannung Vcc angelegt,
so dass die mit der nicht ausgewählten
Bitleitung BL2 verknüpfte
Speicherzelle gegen Programmierung gesperrt wird. Zu programmierende Datenbits
Q2 und Q1 werden in die mit der ausgewählten Bitleitung BL1 verknüpften Zwischenspeicherschaltungen
LT2 und LT1 geladen.
-
Ein
erster Fall betrifft den Programmier- und Programmierprüfvorgang
für die
Daten "11". Wenn die Daten "11" in die Zwischenspeicherschaltungen LT2
und LT1 geladen wurden und ein erster Programmierzyklus (A) beginnt,
geht das Signal SLT von einem niedrigen auf einen hohen Logikpegel über, wie in 8 veranschaulicht.
Dies macht den NMOS-Transistor MN10 leitend, wodurch der Ausgangsanschluss
des NOR-Gatters NOR mit der ausgewählten Bitleitung BL1 verbunden
wird. Da die Eingangsanschlüsse
des NOR-Gatters NOR mit den Knoten /QN2 und /QN1 mit auf niedrigem
Logikpegel liegenden Zwischenspeicherzuständen verbunden sind, geht der
Ausgang des NOR-Gatters
NOR auf hohen Logikpegel. Dadurch wird die ausgewählte Bitleitung
BL1 über
das NOR-Gatter NOR und den Transistor MN10 auf die Programmiersperrspannung,
d.h. die Speisespannung gesetzt.
-
Anschließend wird
an eine ausgewählte Wortleitung,
an die eine ausgewählte
Speicherzelle angeschlossen ist, eine hohe Spannung angelegt. Nach
Ablauf einer gewissen Zeitdauer wird die ausgewählte Speicherzelle auf einem
gelöschten
Zustand gehalten, da die Bitleitung BL1 auf der Programmiersperrspannung
Vcc liegt. Als Resultat eines Programmierprüfvorgangs werden daher die
Knoten QN2 und QN1 der Zwischenspeicherschaltungen LT2 und LT1 auf
ihren anfänglich
geladenen Logikzuständen "11" gehalten. Genauso
wie im ersten Programmierzyklus (A) liegt die ausgewählte Bitleitung BL1
im zweiten und dritten Programmierzyklus (B und C) auf der Programmiersperrspannung,
so dass die Knoten QN2 und QN1 der Zwischenspeicherschaltungen LT2
und LT1 auf ihren anfänglich
geladenen Logikzuständen "11" bleiben. Dies bedeutet, dass
die ausgewählte
Speicherzelle eine den Daten "11" entsprechende Schwellenspannung
aufweist, wie in den 9A und 9B illustriert.
-
Ein
zweiter Fall betrifft den Programmier- und Programmierprüfvorgang
für die
Daten "10". Wenn die Datenbits
Q2 und Q1 für
den Datenwert "10" in die Zwischenspeicherschaltungen
LT2 und LT1 geladen wurden, ergibt sich folgender Programmier- und Prüfvorgang.
Zunächst
geht bei Beginn des ersten Programmierzyklus (A) das Signal SLT
von niedrigem auf hohen Logikpegel über, was den NMOS-Transistor
MN10 leitend macht. Dadurch wird der Ausgangsanschluss des NOR-Gatters
NOR mit der Bitleitung BL1 verbunden. Da die Eingangsanschlüsse des
NOR-Gatters NOR
mit den Knoten /QN2 und /QN1 verbunden sind, die auf niedrigem bzw.
hohem Logikpegel liegen, geht der Ausgang des NOR-Gatters NOR auf
niedrigen Logikpegel. Dadurch wird die ausgewählte Bitleitung BL1 über das NOR-Gatter
und den Transistor MN10 auf einen Massespannungspegel, d.h. eine
Programmierspannung gesetzt. Anschließend wird an eine ausgewählte Wortleitung,
mit der eine ausgewählte
Speicherzelle verbunden ist, eine hohe Spannung angelegt. Nach Ablauf
einer gewissen Zeitdauer wird ein Programmierprüfvorgang durchgeführt, um
zu überprüfen, ob
die ausgewählte
Speicherzelle von der Schwellenspannung eines Löschzustands, z.B. –3 V bis –2 V, auf
eine gewünschte
Schwellenspannung von z.B. 0,4 V bis 0,8 V programmiert wurde.
-
Wenn
ein Abtastvorgang für
die Programmierprüfung
durchgeführt
wird, werden die Signale SLT und BLLVL jeweils auf niedrigem Logikpegel
gehalten. Wenn die ausgewählte
Speicherzelle ausreichend programmiert ist, verbleibt die Bitleitung
BL1 als Resultat des Abtastvorgangs auf einer Speisespannung. Wenn
die ausgewählte
Bitleitung BL1 und der Knoten QN2 der Zwischenspeicherschaltung
LT2 auf einem Speisespannungspegel gehalten werden, werden die Transistoren
MN3 und MN4 leitend geschaltet. In diesem Zustand wird, wenn das
Zwischenspeicheraktivierungssignal ϕV1 in einer Programmierprüfperiode
des ersten Programmierzyklus (A) gepulst wird, der Logikzustand
des Knotens QN1 der Zwischenspeicherschaltung LT1 von "1" in "0" invertiert.
-
Andererseits
wird, wenn die ausgewählte Speicherzelle
nicht ausreichend programmiert wurde, die Bitleitung BL1 als Resultat
eines Abtastvorgangs auf einem Massespannungspegel gehal ten. Da
die ausgewählte
Bitleitung BL1 und der Knoten QN2 der Zwischenspeicherschaltung
LT2 auf niedrigem bzw. hohem Logikpegel liegen, werden der Transistor
MN3 sperrend und der Transistor MN4 leitend geschaltet. In diesem
Zustand wird der Logikzustand des Knotens QN1 der Zwischenspeicherschaltung
LT1 nicht invertiert, obwohl das Zwischenspeicheraktivierungssignal ϕV1
in einer Programmierprüfperiode
des ersten Programmierzyklus (A) gepulst wurde. Die Programmier-
und Prüfvorgänge, die
sich auf die Zwischenspeicherschaltung LT1 beziehen, werden mit
einer vorgegebenen Programmierfrequenz oder so lange wiederholt,
bis die ausgewählte
Speicherzelle ausreichend programmiert wurde.
-
Nach
Abschluss des ersten Programmierzyklus (A) werden die Zwischenspeicherzustände Q2 und
Q1 der Zwischenspeicherschaltungen LT2 und LT1 von "11" in "10" geändert. Dies
hat zur Folge, dass die ausgewählte
Speicherzelle im zweiten und dritten Programmierzyklus (B und C)
gegen Programmierung gesperrt ist, wie oben erläutert. Dadurch weist die ausgewählte Speicherzelle
nach Durchführung
des ersten bis dritten Programmierzyklus eine Schwellenspannungsverteilung
von 0,4 V bis 0,8 V auf, wie in den 9C und 9D illustriert.
-
Ein
dritter Fall betrifft den Programmier- und Programmierprüfvorgang
für die
Daten "01". Nachdem der Datenwert "01" in die Zwischenspeicherschaltungen
LT2 und LT1 geladen wurde, beginnt der erste Programmierzyklus (A)
damit, dass das Signal SLT von niedrigem auf hohen Logikpegel übergeht. Der
NMOS-Transistor MN10 wird in Abhängigkeit vom Übergang
des Signals SLT von niedrigem auf hohen Pegel leitend geschaltet,
so dass der Ausgangsanschluss des NOR-Gatters NOR über den NMOS-Transistor
BLST1 mit der ausgewählten
Bitleitung BL1 verbunden wird. Da die Knoten /QN2 und /QN1 der Zwischenspeicherschaltungen
LT2 und LT1 auf hohem bzw. niedrigem Logikpegel liegen, liegt die ausgewählte Bitleitung
BL1 auf einem Massespannungspegel. Danach wird an die ausgewählte Wortleitung
eine hohe Spannung angelegt, so dass die ausgewählte Speicherzelle bis zu einer
gewünschten Schwellenspannung,
z.B. 0,4 V bis 0,8 V, von der Schwellenspannung eines Löschzustands
aus, z.B. –3
V bis –2
V, programmiert wird.
-
Da
der Knoten QN1 der Zwischenspeicherschaltung LT1 auf hohem Logikpegel
liegt, wird die ausgewählte
Speicherzelle in einem Programmierprüfvorgang, der in einem ersten
Programmierzyklus (A) durchgeführt
wird, als eine ausreichend programmierte Zelle beurteilt, was z.B.
durch eine herkömmliche,
nicht gezeigte Gut/Schlecht-Beurteilungsschaltung erfolgen kann.
Der Programmierprüfvorgang des
ersten Programmierzyklus (A) wird daher nicht durchgeführt. Nach
Abschluss des ersten Programmierzyklus (A) weist die ausgewählte Speicherzelle eine
Schwellenspannung von 0,4 V bis 0,8 V auf, wie in den 10A und 10B illustriert.
-
Wenn
der zweite, mit dem Datenwert "01" verknüpfte Programmierzyklus
(B) beginnt, wird der NMOS-Transistor MN10 in Abhängigkeit
vom Übergang
des Signals SLT von niedrigem auf hohen Pegel leitend geschaltet.
Dadurch wird der Ausgangsanschluss des NOR-Gatters NOR über den NMOS-Transistor
BLST1 mit der Bitleitung BL1 verbunden. Der Ausgang des NOR-Gatters
geht dann auf niedrigen Pegel, da die Eingangsanschlüsse des NOR-Gatters
NOR mit dem auf hohem bzw. niedrigem Logikpegel liegenden Knoten
/QN2 und /QN1 verbunden sind. Dadurch liegt die Bitleitung BL1 über das
NOR-Gatter NOR und den NMOS-Transistor MN10
auf einem Massespannungspegel. Nachdem an die ausgewählte Wortleitung
eine hohe Spannung angelegt wurde und eine gewisse Zeitdauer verstrichen
ist, wird ein Programmierprüfvorgang
durchgeführt,
um zu überprüfen, ob
die ausgewählte
Speicherzelle bis auf die gewünschte
Schwellenspannung von z.B. 1,6 V bis 2,0 V programmiert wurde. Wenn
ein Abtastvorgang zur Programmierprüfung durchgeführt wird,
gehen die Signale SLT und BLLVL auf niedrigen Pegel. Falls die ausgewählte Speicherzelle
ausreichend programmiert ist, liegt die Bitleitung BL1 als Resultat
des Abtastvorgangs auf einem Speisespannungspegel. Dies macht den NMOS-Transistor
MN1 leitend.
-
In
diesem Zustand wird, wenn das Zwischenspeicheraktivierungssignal ϕV2
in einer Programmierprüfperiode
des zweiten Programmierzyklus (B) gepulst wird, der Zwischenspeicherzustand
Q2 der Zwischenspeicherschaltung LT2 von "1" in "0" invertiert.
-
Andererseits
bleibt die Bitleitung BL1, wenn die ausgewählte Speicherzelle nicht ausreichend programmiert
wurde, weiterhin als Ergebnis des Abtastvorgangs auf niedrigem Logikpegel.
Da die Bitleitung BL1 auf niedrigem Logikpegel liegt, ist der NMOS-Transistor
MN1 sperrend geschaltet. In diesem Zustand wird der Zwischenspeicherzustand
Q2 der Zwischenspeicherschaltung LT2 nicht invertiert, obwohl das
Zwischenspeicheraktivierungssignal ϕV2 in der Programmierprüfperiode
des zweiten Programmierzyklus (B) gepulst wird. Der mit der Zwischenspeicherschaltung
LT2 verknüpfte
Programmier- und Prüfvorgang
wird mit einer vorgebbaren Programmierfrequenz oder so lange wiederholt,
bis die ausgewählte
Speicherzelle ausreichend programmiert wurde.
-
Nach
Abschluss des zweiten Programmierzyklus (B) werden die Zwischenspeicherzustände Q2 und
Q1 der Zwischenspeicherschaltungen LT2 und LT1 im dritten Programmierzyklus
(C) von "11" in "01" geändert, so
dass die ausgewählte
Speicherzelle gegen Programmierung gesperrt ist. Nach Durchführen des
mit dem Datenwert "01" verknüpften Programmierzyklussatzes
(A, B, C) besitzt daher die ausgewählte Speicherzelle eine Schwellenspannungsverteilung
von 1,6 V bis 2,0 V, wie in den 10A und 10B illustriert. Gemäß dem mit dem Datenwert "01" verknüpften Programmier-
und Programmierprüfvorgang,
wie in den 10A und 10B veranschaulicht,
wird die Schwellenspannung der ausgewählten Speicherzelle im ersten
Programmierzyklus (A) auf eine dem Datenwert "10" entsprechende Schwellenspannungsverteilung
von 0,4 V bis 0,8 V verschoben, um dann im zweiten Programmierzyklus (B)
auf eine dem Datenwert "01" entsprechende Schwellenspannungsverteilung
von 1,6 V bis 2,0 V verschoben zu werden. Dies bedeutet, dass erfindungsgemäß im Unterschied
zum Stand der Technik die ausgewählte
Speicherzelle über
eine dem Datenwert "10" entsprechende Schwellenspannungsverteilung
auf die gewünschte
Schwellenspannungsverteilung programmiert wird. Indem die Schwellenspannung
einer Speicherzelle sequentiell verschoben wird, wird verhindert,
dass sich die Programmierdauer verlängert und die Schwellenspannungsverteilung verbreitert.
Dadurch wird die Toleranz zwischen den Schwellenspannungsverteilungen
bezüglich "10" und denjenigen bezüglich "01" und "00" konstant gehalten.
-
Ein
vierter Fall betrifft den Programmier- und Programmierprüfvorgang
für die
Daten "00". Wenn die Daten "00" in die Zwischenspeicherschaltungen LT2
und LT1 geladen wurden und der erste Programmierzyklus (A) beginnt,
geht das Signal SLT von niedrigem auf hohen Logikpegel über, so
dass der NMOS-Transistor
MN10 leitend wird. Dies bewirkt, dass der Ausgangsanschluss des
NOR-Gatters NOR über
den NMOS-Transistor BLST1 mit der ausgewählten Bitleitung BL1 verbunden
wird. Da die Knoten /QN2 und /QN1 der Zwischenspeicherschaltungen
LT2 und LT1 alle auf hohem Logikpegel liegen, liegt die ausgewählte Bitleitung
BL1 auf Massespannungspegel. Danach wird an die ausgewählte Wortleitung
eine hohe Spannung angelegt. Nach Ablauf einer gewissen Zeitdauer
wird ein Programmierprüfvorgang
durchgeführt,
in welchem überprüft wird,
ob die ausgewählte
Speicherzelle von der Schwellenspannung eines Löschzustands, z.B. –3 V bis –2 V, auf
eine gewünschte
Schwellenspannung von z.B. 0,4 V bis 0,8 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung durchgeführt wird,
gehen die Signale SLT und BLLVL auf niedrigem Pegel. Wenn die ausgewählte Speicherzelle
nicht ausreichend programmiert wurde, bleibt die Bitleitung BL1
als Resultat des Abtastvorgangs weiterhin auf einem niedrigen Logikpegel.
Da die Bitleitung BL1 und der Knoten QN2 der Zwischenspeicherschaltung
LT2 beide auf niedrigem Logikpegel liegen, sind die NMOS-Transistoren
MN3 und MN4 sperrend geschaltet. Daher wird der Zwischenspeicherzustand
Q1 der Zwischenspeicherschaltung LT1 nicht invertiert, obwohl das
Zwischenspeicheraktivierungssignal in der Programmierprüfperiode
des ersten Programmierzyklus (A) gepulst wird, wie in 8 illustriert.
Der mit der Zwischenspeicherschaltung LT1 verknüpfte Programmier- und Prüfvorgang
wird mit einer vorgebbaren Programmierfrequenz oder so lange wiederholt,
bis die ausgewählte
Speicherzelle ausreichend programmiert ist. Nach Abschluss des ersten
Programmierzyklus (A) besitzt die ausgewählte Speicherzelle eine zum Datenwert "10" gehörige Schwellenspannungsverteilung
von 0,4 V bis 0,8 V, wie in den 10C und 10D illustriert.
-
Bei
Beginn des zweiten Programmierzyklus (B) wird der NMOS-Transistor MN10 in
Abhängigkeit vom Übergang
des Signals SLT von niedrigem auf hohen Pegel leitend geschaltet.
Ebenso wie im ersten Programmierzyklus A geht der Ausgang des NOR-Gatters NOR auf niedrigen
Pegel, da die Eingangsanschlüsse
des NOR-Gatters NOR mit den Knoten /QN2 und /QN1 verbunden sind,
die beide auf hohem Logikpegel liegen. Dadurch liegt die Bitleitung BL1 über das
NOR-Gatter NOR und den NMOS-Transistor
MN10 auf Massespannungspegel. Nach Anlegen einer hohen Spannung
an die ausgewählte
Wortleitung und Verstreichen einer gewissen Zeitdauer wird ein Programmierprüfvorgang
ausgeführt,
um zu überprüfen, ob
die ausgewählte
Speicherzelle bis zu einer gewünschten
Schwellenspannung von z.B. 1,6 V bis 2,0 V programmiert wurde.
-
Bei
Durchführung
eines Abtastvorgangs zur Programmierprüfung gehen die Signale SLT
und BLLVL auf niedrigen Pegel. Wenn die ausgewählte Speicherzelle nicht ausreichend
programmiert wurde, bleibt die Bitleitung BL1 als Resultat des Abtastvorgangs
weiterhin auf niedrigem Logikpegel. Wenn die Bitleitung BL1 auf
niedrigem Logikpegel liegt, ist der NMOS-Transistor MN1 sperrend
geschaltet. In diesem Zustand wird der Logikzustand Q2 der Zwischenspeicherschaltung
LT2 nicht invertiert, obwohl das Zwischenspeicheraktivierungssignal ϕV2
in der Programmierprüfperiode
des zweiten Programmierzyklus (B) gepulst wird. Der mit der Zwischenspeicherschaltung
LT2 verknüpfte Programmier-
und Prüfvorgang
wird mit einer vorgebbaren Programmierfrequenz oder so lange wiederholt,
bis die ausgewählte
Speicherzelle ausreichend programmiert ist.
-
Andererseits
liegt die Bitleitung, wenn die ausgewählte Speicherzelle ausreichend
programmiert wurde, auf Speisespannungspegel, so dass der NMOS-Transistor
MN1 leitend geschaltet ist. Wenn dann das Zwischenspeicheraktivierungssignal ϕV2 in
einer Programmierprüfperiode
des zweiten Programmierzyklus (B) gepulst wird, wird der Zwischenspeicherzustand
Q2 der Zwischenspeicherschaltung LT2 von "1" in "0" invertiert. Dies bedeutet, dass nach Abschluss
des zweiten Programmierzyklus (B) die Zwischenspeicherzustände Q2 und
Q1 der Zwischenspeicherschaltungen LT2 und LT1 von "10" in "00" geändert sind,
so dass die ausgewählte
Speicherzelle eine Schwellenspannungsverteilung von 1,6 V bis 2,0
V besitzt, wie in den 10C und 10D illustriert.
-
Wenn
schließlich
der dritte Programmierzyklus (C) beginnt, wird der NMOS-Transistor
MN10 in Abhängigkeit
vom Übergang
des Signals SLT von niedrigem auf hohen Pegel leitend geschaltet.
Da die Eingangsanschlüsse
des NOR-Gatters mit den Knoten /QN2 und /QN1 verbunden sind, die
auf niedrigem bzw. hohem Pegel liegen, geht der Ausgang des NOR-Gatters
auf niedrigen Pegel. Dadurch liegt die Bitleitung BL1 über das
NOR-Gatter NOR und den NMOS-Transistor NM10 auf Massespannungspegel. Nachdem
an die ausgewählte
Wortleitung eine hohe Spannung angelegt wurde und eine gewisse Zeitdauer
verstrichen ist, wird ein Programmierprüfvorgang durchgeführt, um
zu überprüfen, ob
die ausgewählte Speicherzelle
bis auf eine gewünschte
Schwellenspannung von z.B. 2,8 V bis 3,2 V programmiert wurde.
-
Wenn
ein Abtastvorgang zur Programmierprüfung durchgeführt wird,
gehen die Signale SLT und BLLVL auf niedrigen Pegel. Wenn die ausgewählte Speicherzelle
nicht ausreichend programmiert ist, bleibt die Bitleitung BL1 weiterhin
auf niedrigem Logikpegel. Dies hat zur Folge, dass der NMOS-Transistor
MN1 sperrend geschaltet ist. In diesem Zustand wird der Logikzustand
Q1 der Zwischenspeicherschaltung LT1 nicht invertiert, obwohl das
Zwischenspeicheraktivierungssignal ϕV1 in der Programmierprüfperiode
des dritten Programmierzyklus (C) gepulst wird. Der mit der Zwischenspeicherschaltung
LT1 verknüpfte
Programmier- und Prüfvorgang
wird mit einer vorgebbaren Programmierfrequenz oder so lange wiederholt,
bis die ausgewählte Speicherzelle
ausreichend programmiert ist.
-
Im
Fall, dass die ausgewählte
Speicherzelle ausreichend programmiert ist, liegt die Bitleitung
BL1 auf Speisespannungspegel, so dass der NMOS-Transistor MN3 leitend
geschaltet ist. Da sich der Logikzustand des Knotens QN2 im vorangegangenen
Programmierzyklus (B) von "1" auf "0" geändert
hat, ist auch der NMOS-Transistor MN4 leitend geschaltet. In diesem
Zustand wird der Zwischenspeicherzustand Q1 der Zwischenspeicherschaltung LT1
von "1" in "0" invertiert, wenn das Zwischenspeicheraktivierungssignal ϕV1
in einer Programmierprüfperiode
des dritten Programmierzyklus (C) gepulst wird. Dadurch werden nach
Abschluss des dritten Programmierzyklus (C) die Zwischenspeicherzustände Q2 und
Q1 der Zwischenspeicherschaltungen LT2 und LT1 von "10" auf "00" geändert, so
dass die ausgewählte
Speicherzelle eine Schwellenspannungsverteilung von 2,8 V bis 3,2
V aufweist, wie in den 10C und 10D illustriert.
-
Wie
oben beschrieben, wird bei Programmierung einer ausgewählten Zelle
von einer Schwellenspannung eines gelöschten Zustands auf eine Soll-Schwellenspannung
die ausgewählte
Zelle sequentiell über
Schwellenspannungen programmiert, die zwischen der Schwellenspannung
des gelöschten
Zustands und der Soll-Schwellenspannung liegen. Dadurch wird beim
erfindungsgemäßen Speicherbauelement
verhindert, dass sich die Programmierdauer verlängert und die Soll-Schwellenspannungsverteilung
verbreitert. Als Ergebnis hiervon kann die Tole ranz zwischen Schwellenspannungsverteilungen
konstant gehalten werden.
-
Das
erfindungsgemäße Speicherbauelement
kann als Masken-ROM, EPROM oder EEPROM realisiert und alternativ
auch so ausgelegt sein, dass Daten von drei oder mehr Bit pro Zelle
gespeichert werden. Das erfindungsgemäße Speicherbauelement lässt sich
ebenso für
eine Technik verwenden, bei der eine Speicherzelle von einer höheren auf
eine niedrigere Schwellenspannung programmiert wird.