-
Die
Erfindung bezieht sich auf ein Verfahren zum Programmieren einer
Mehrzahl von Speicherzellen und auf einen zugehörigen nichtflüchtigen Speicher.
-
Moderne
Rechnersysteme umfassen häufig nichtflüchtige Halbleiterspeicherbauelemente
zum Speichern von Daten. Populäre
Typen von nichtflüchtigen
Halbleiterspeicherbauelementen sind Flashspeicherbauelemente. 1 zeigt
schematisch einen Ausschnitt aus einem herkömmlichen Flashspeicherbauelement 900 mit
einem Feld 100 von Flashspeicherzellen 10. Jede
Flashspeicherzelle 10 kann beispielsweise als Feldeffekttransistor
FET ausgeführt
sein. Die Flashspeicherzelle 10 umfasst ein Gate 11,
ein floatendes Gate 21, eine Source 31 und eine
Drain 41. Das Gate 11 arbeitet in Reaktion auf eine
Wortleitung, z. B. auf Wortleitungen W/L0, W/L1,..., W/L1023. Die
Source 31 ist mit einer Ab tastleitung S/L gekoppelt. Die
Drain 41 arbeitet in Reaktion auf korrespondierende Bitleitungen
B/L0, B/L1,..., B/L511.
-
Die
Flashspeicherzelle 10 wird durch Anlegen von variierenden
Spannungen über
die jeweilige Wortleitung W/L0, W/L1,..., W/L1023 an das Gate 11 und
durch Vergleichen einer Schwellwertspannung Vt, eines Drainstroms
Id und/oder von im floatenden Gate 21 gespeicherten Ladungen
mit einer Referenzspeicherzelle programmiert, verifiziert und gelesen. Die
Programmierung umfasst das Anlegen einer Programmierspannung an
das Gate 11, um Daten in das Speicherzellenfeld 100 durch
Verändern
der im floatenden Gate 21 gespeicherten Ladung zu programmieren
bzw. zu speichern, was eine korrespondierende Veränderung
der Schwellwertspannung Vt, des Drainstroms Id und/oder der gespeicherten
Ladung verursacht. Die Verifizierung prüft eine erfolgreiche Programmierung
des Feldes 100 und folgt in der Regel auf den Programmiervorgang.
Das Lesen umfasst das Lesen der Daten aus dem programmierten Speicherzellenfeld 100.
-
Flashspeicherzellen
können
je nach Auslegung einzelne Datenbits oder mehrere Datenbits speichern.
Wie aus 2A ersichtlich ist, können Flashspeicherzellen
für Einzelbits
einen Zustand 1 bzw. einen Zustand 0 aufweisen, was einen hohen
logischen Zustand bzw. einen niedrigen logischen Zustand anzeigt.
Der Zustand 1 ist im Diagramm von 2A eine
Glockenkurve, welche durch Schwellwertspannungen V1 und V2 definiert
ist, so dass die meisten Speicherzellen, welche auf den Zustand
1 programmiert sind, einen Schwellwert zwischen den Spannungswerten
V1 und V2 aufweisen. Analog ist der Zustand 0 eine Glockenkurve,
welche durch Schwellwertspannungen V3 und V4 definiert ist, so dass
die meisten Speicherzellen, welche auf den Zustand 0 programmiert
sind, einen Schwellwert zwischen den Spannungswerten V3 und V4 aufweisen. Der
Bereich zwischen den Zuständen
1 und 0 wird als Trennungsbereich bezeichnet. Eine Referenzspannung
Vref liegt ty pischerweise im Trennungsbereich zwischen dem Zustand
1 und dem Zustand 0. Theoretisch sind Trennungsbereiche nicht erforderlich,
sie dienen jedoch dazu, gut zwischen den Zuständen unterscheiden zu können, d.
h. hier zwischen den Zuständen
1 und 0.
-
Wie
aus 2B ersichtlich ist, weisen Mehrbit-Speicherzellen
im Gegensatz zu Einzelbit-Speicherzellen eine Mehrzahl von Zuständen auf,
z. B. Zustände
11, 10, 01 und 00. Flashspeicherzellen, welche mehrere Datenbits
speichern, sind wünschenswert,
da die Bitkosten wesentlich reduziert werden. So kann beispielsweise
die Speicherzellendichte verdoppelt werden, ohne dass dies von einer Erhöhung der
Anzahl von Einzelchips begleitet ist, wenn vier Datenzustände oder
Pegel in einer Einzelzelle implementiert werden.
-
Der
Zustand 11 ist im Diagramm von 2B eine
Glockenkurve, welche durch Schwellwertspannungen V1 und V2 definiert
ist, so dass die meisten Speicherzellen, welche auf den Zustand
11 programmiert sind, einen Schwellwert zwischen den Spannungswerten
V1 und V2 aufweisen. Der Zustand 10 ist eine Glockenkurve, welche
durch Schwellwertspannungen V3 und V4 definiert ist, so dass die meisten
Speicherzellen, welche auf den Zustand 10 programmiert sind, einen
Schwellwert zwischen den Spannungswerten V3 und V4 aufweisen. Der
Zustand 01 ist eine Glockenkurve, welche durch Schwellwertspannungen
V5 und V6 definiert ist, so dass die meisten Speicherzellen, welche
auf den Zustand 01 programmiert sind, einen Schwellwert zwischen
den Spannungswerten V5 und V6 aufweisen. Der Zustand 00 ist eine
Glockenkurve, welche durch die Schwellwertspannungen V7 und V8 definiert
ist, so dass die meisten Speicherzellen, welche auf den Zustand
00 programmiert sind, einen Schwellwert zwischen den Spannungswerten
V7 und V8 aufweisen. Trennbereiche existieren zwischen den Zuständen und
definieren Referenzspannungen Vref_low, Vref_medium und Vref_high.
Die Referenzspannung Vref_low liegt zwischen den Spannungen V2 und
V3 der Zu stände
11 und 10. Die Referenzspannung Vref_medium liegt zwischen den Spannungen
V4 und V5 der Zustände
10 und 01. Die Referenzspannung Vref_high liegt zwischen den Spannungen
V6 und V7 der Zustände
01 und 00.
-
Ein
Flashspeicherbauelement der oben erläuterten Art ist z. B. auch
in der Patentschrift
US 5.982.667 offenbart.
-
Mehrbit-Speicherzellen
erfordern eine präzise
Steuerung der Schwellwertspannung. Die typischerweise höhere Verifizierungsspannung
resultiert in relativ engen Zustandsverteilungen und breiten Trennungsbereichen
bei der Verifizierungsspannung. Wird aber später eine niedrigere Lesespannung
angelegt, dann verbreitern sich die Zustandsverteilungen und die
Trennungsbereiche verschmälern
sich als Ergebnis der variierenden gm-Verteilungen der Speicherzellen.
Dies erhöht
die Gefahr von Lesefehlern, d. h. die Wahrscheinlichkeit, dass eine
Zelle nach Programmieren, Verifizieren, ob sie im richtigen Zustand
ist, und anschließendem
Lesen in einem anderen Zustand ist.
-
Es
ist Aufgabe der Erfindung, ein Verfahren zum Programmieren einer
Mehrzahl von Speicherzellen und einen nichtflüchtigen Speicher anzugeben,
mit denen sich die oben erwähnten
Schwierigkeiten des Standes der Technik wenigstens teilweise beheben
lassen.
-
Die
Erfindung löst
diese Aufgabe durch ein Verfahren zum Programmieren einer Mehrzahl
von Speicherzellen mit den Merkmalen des Patentanspruchs 1 und durch
einen nichtflüchtigen
Speicher mit den Merkmalen des Patentanspruchs 6.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie die zu deren besserem Verständnis oben erläuterten
herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
schematisches, ausschnittweise Blockdiagramm eines herkömmlichen
Flashspeicherzellenfeldes,
-
2A bis 2B Zustandsverteilungsdiagramme über der
Zellenschwellwertspannung für Einzelbit-Speicherzellen
bzw. Mehrbit-Speicherzellen entsprechender Flashspeicher,
-
3 ein
Flussdiagramm eines herkömmlichen
Programmierverfahrens für
Mehrbit-Speicherzellen,
-
4 ein
schematisches Diagramm von Schreib-/Lesespannungen über der
Zeit für
verschiedene herkömmliche
Verifizier- und Programmiervorgänge
von Mehrbit-Speicherzellen aus 2B,
-
5 ein
schematisches Diagramm des Zellenstroms über der Schwellwertspannung
in Zusammenhang mit 4 für die herkömmlichen Mehrbit-Speicherzellen
aus 2B,
-
6 ein
Zustandsverteilungsdiagramm über
dem Zellenstrom für
herkömmliche
Mehrbit-Speicherzellen,
-
7 ein
schematisches Diagramm des Zellenstroms über Schreib-/Lesespannungen
in Zusammenhang mit 6,
-
8 ein
Zustandsverteilungsdiagramm über
der Schwellwertspannung für
Mehrbit-Speicherzellen gemäß den 6 und 7,
-
9 ein
schematisches, ausschnittweises Blockdiagramm eines erfindungsgemäßen Mehrpegel-Speicherbauelements,
-
10 ein
Zustandsverteilungsdiagramm über
der Schwellwertspannung für
erfindungsgemäße Mehrbit-Speicherzellen,
-
11 ein
Zustandsverteilungsdiagramm entsprechend 10, jedoch
nach einem speziellen Prozess zur Lesetoleranzerhöhung,
-
12 ein
Flussdiagramm zur Veranschaulichung einer erfindungsgemäßen Vorgehensweise und
-
13 ein
schematisches Diagramm von Schreib-/Lesespannungen über der
Zeit für
verschiedene Verifizier- und Programmiervorgänge der Mehrbit-Speicherzellen
aus 9 bzw. 10.
-
3 zeigt
ein Flussdiagramm eines herkömmlichen
Programmierverfahrens 300 für Mehrbit-Speicherzellen. Wie
aus den 1 und 3 ersichtlich
ist, umfasst das Verfahren 300 im Schritt 302 ein
Empfangen eines Programmierbefehls und von Daten, wodurch das Speicherbauelement
angewiesen wird, die Daten in das Speicherzellenfeld 100 zu programmieren
bzw. zu speichern. Eine Programmierwortleitungsspannung (Programmier-W/L-Spannung)
wird in Reaktion auf den Programmierbefehl an das Gate 11 angelegt,
wodurch entsprechend den Daten die im floatenden Gate 21 gespeicherte
Ladung verändert
wird. Im Schritt 304 verifiziert das Verfahren 300 durch
Anlegen einer festen Verifizierungsspannung an das Gate 11 und
durch Vergleichen der Schwellwertspannung Vt, des Drainstroms Id
und/oder der im floatenden Gate 21 gespeicherten Ladung
mit einer Referenzspeicherzelle eine erfolgreiche Programmierung.
-
Wenn
der Verifizierungsvorgang im Schritt 306 nicht bestanden
wird, erhöht
das Verfahren 300 schrittweise die Programmier-W/L-Spannung
im Schritt 308, empfängt
den Programmierbefehl und die Daten im Schritt 310 und
verifiziert im Schritt 304 erneut die richtige Zellenprogrammierung.
Die im floatenden Gate gespeicherte Ladung erhöht sich mit jedem Anlegen der
Programmier-W/L-Spannung. Das bedeutet, dass die im floatenden Gate 21 gespeicherte
Ladung proportional zu Größe, Dauer
und Anzahl der Anwendungen der Programmier-W/L-Spannung ist. Das Verfahren 300 wiederholt
die Schritte 304, 306, 308 und 310,
bis es im Schritt 312 nach der Verifizierung einer erfolgreichen Programmierung
des Bauelements im Schritt 306 beendet wird. Im Verfahren 300 folgt
die Verifizierung im Schritt 304 jeweils der Programmierung
in den Schritten 302 und 310.
-
4 zeigt
ein entsprechendes schematisches Diagramm von W/L-Spannungen über der Zeit.
Wie aus den 1 und 4 ersichtlich
ist, werden die Speicherzellen 10 durch Verwenden einer
Programmier-W/L-Spannung
programmiert und dann durch Verwenden einer Verifizier-W/L-Spannung verifiziert.
Die Programmier-W/L-Spannung nimmt mit dem Zustand zu. Das bedeutet,
dass die Programmier-W/L-Spannung am niedrigsten ist, wenn die Speicherzelle 10 in
den Zustand 11 programmiert wird und progressiv zunimmt, wenn die Speicherzelle 10 in
den Zustand 10, 01 bzw. 00 programmiert wird. Die Verifizier-W/L-Spannung bleibt hingegen
auf dem gleichen Pegel, um die Zustände 11, 10, 01 und 00 beispielsweise
anhand des Stroms durch die Speicherzelle zu verifizieren. Es ist
erforderlich, jeden Zustand einschließlich des Zustandes 00 zu verifizieren.
-
5 zeigt
ein Diagramm eines Zellen- oder Drainstroms über der Schwellwertspannung.
Wie aus den 1 und 3 bis 5 ersichtlich
ist, programmiert das Verfahren 300 aufeinanderfolgend eine
Mehrzahl von Speicherzellen durch abwechselndes Anlegen der progressiv
ansteigenden Programmier-W/L-Spannung und der Verifizier-W/L-Spannung
an die ausgewählten
Speicherzellen. Mit dem Verifizieren einer Speicherzelle, d. h. dass
die Zellenprogrammierung bestätigt
wird, wird die Auswahl der betreffenden Speicherzelle aufgehoben.
Die Verifizier-W/L-Spannung
muss höher
als die Lesespannung sein, da auch der höchste Zustand 00 verifiziert
werden muss. Dies erfordert eine Verifizier-W/L-Spannung, die höher als die höchste Schwellwertspannung
im Zustand 00 ist.
-
Der
Zustand 00 wird über
einen Rückschluss gelesen.
Das bedeutet, dass auf den Zustand 00 geschlossen wird, wenn durch
Lesen festgestellt wird, dass die Speicherzelle nicht in einem der
Zustände 11,
01 und 10 ist. Daher braucht die Lesespannung nur auf die höchste Schwellwertspannung
des nächst höchsten Zustandes
ansteigen, d. h. des Zustandes 01. Die Lesewortleitungsspannung
(Lese-W/L-Spannung)
ist daher typischerweise kleiner als die Verifizier-W/L-Spannung.
-
6 zeigt
ein Diagramm der Zustandsverteilung über dem Zellenstrom mit drei
Speicherzellen A, B und C, welche alle einen Zellenstromwert Ia
aufweisen. 7 zeigt ein schematisches Diagramm des
Zellenstroms über
der Wortleitungsspannung für die
Zellen A, B und C. 8 zeigt ein Diagramm der Zustandsverteilung über der
Zellenschwellwertspannung. Wie aus den 6 bis 8 ersichtlich
ist, kann es sein, dass verschiedene Speicherzellen, z. B. die Speicherzellen
A, B und C, identische Zellenströme
Ia für
eine gleiche Verifizier-W/L-Spannung aufweisen. Da aber die Lesewortleitungsspannung typischerweise
niedriger als die Verifizierwortleitungsspannung ist, sind die Lesezellenströme I_A, I_B,
I_C für die
Speicherzellen A, B und C wegen der Schwankung in den gm-Verteilungen der
Speicherzellen niedriger und/oder voneinander verschieden. Diese
Differenz resultiert in aufgeweiteten Zustandsspannungsbereichen
und schmäler
werdenden Trennungsbereichen zwischen den Zustandsspannungsbereichen,
wie aus 8 ersichtlich ist. Daher verschlechtert
die typischerweise im Vergleich zur Verifizierwortleitungsspannung
niedrigere Lesewortleitungsspannung die Lesegenauigkeit.
-
9 zeigt
ausschnittweise ein erfindungsgemäßes Mehrpegel-Speicherbauelement 900 mit einem
Feld 100 von Flashspeicherzellen 10. Jede Flashspeicherzelle 10 kann
beispielsweise als Feldeffekttransistor FET ausgeführt sein.
Die Flashspeicherzelle 10 umfasst ein Gate 11,
ein floatendes Gate 21, eine Source 31 und eine
Drain 41. Die Source 31 ist mit einer Abtastleitung
S/L gekoppelt. Die Drain 41 arbeitet in Reaktion auf korrespondierende
Bitleitungen B/L0, B/L1,..., B/L511. Das Gate 11 arbeitet
in Reaktion auf eine jeweilige Wortleitung W/L0, W/L1,..., W/L1023.
Die Wortleitungen W/L0, W/L1,..., W/L1023 sind mit einer Steuerschaltung 50 gekoppelt.
Die Steuerschaltung 50 erzeugt oder stellt in anderer Weise
den Wortleitungen W/L0, W/L1,..., W/L1023 Spannungssignale oder
Spannungsimpulse zur Verfügung,
wie nachfolgend genauer beschrieben wird. Die Steuerschaltung 50 kann
als Software, Hardware oder durch andere dem Fachmann bekannte Mittel
implementiert werden.
-
Die 10 und 11 zeigen
Diagramme von spannungsabhängig
aufgetragenen Zustandsverteilungsbereichen gemäß der Erfindung. Eine erfindungsgemäße Ausführungsform
beinhaltet die Maßnahme,
die Lesewortleitungsspannung im Wesentlichen gleich der Verifizierwortleitungsspannung zu
machen, wie in den 10 und 11 dargestellt ist.
Dadurch werden die Spannungszustandsbereiche schmaler und die Trennungsbereiche
zwischen den Zuständen
11 und 10 sowie zwischen den Zu ständen 10 und 01 aufgeweitet,
wodurch die Lesegenauigkeit verbessert wird. Dadurch, dass die Lesespannung
und die Verifizierungsspannung gleich sind, ergibt sich aber zwischen
den Zuständen
01 und 00 nur eine relativ kleine Lesetoleranz, wenn keine weiteren
Maßnahmen
getroffen werden, wie aus den 10 und 11 ersichtlich
ist, siehe insbesondere die gestrichelte Kennlinie in 11.
-
11 zeigt
die Zustandskurven für
die Zustände
11, 10, 01 und 00 als schmale Glockenkurven mit breiten Trennungsbereichen
dazwischen, wenn die Lesewortleitungsspannung und die Verifizierwortleitungsspannung
im Wesentlichen gleich sind. Dies steht im Kontrast zu den entsprechenden,
in 8 dargestellten Zustandskurven im herkömmlichen Fall,
bei dem die von der Verifizierwortleitungsspannung verschiedene
Lesewortleitungsspannung in breiteren Zustandskurven mit schmaleren
Trennungsbereichen dazwischen resultiert, wodurch die Lesegenauigkeit
verschlechtert wird.
-
Durch
das Gleichsetzen der Lesewortleitungsspannung und der Verifizierwortleitungsspannung
kann die Lesespannungstoleranz zwischen den Zuständen 01 und 00 kleiner werden,
wie aus den 10 und 11 ersichtlich
ist, da die Lese-Nerifizierwortleitungsspannung gerade oberhalb
der Schwellwertspannung liegt, welche erforderlich ist, um die Transistoren
für den
Zustand 01 leitend zu schalten. Es sei daran erinnert, dass der
Zustand 00 durch Rückschluss
gelesen wird. Das bedeutet, dass auf den Zustand 00 rückgeschlossen
wird, wenn ausgelesen wird, dass die Speicherzelle sich nicht in
den Zuständen
11, 10 und 01 befindet und daher kein Stromfluss in assoziierten
Speicherzellen detektiert wird.
-
Um
die Lesespannungstoleranz zwischen den Zuständen 01 und 00 zu verbessern
und dennoch die Lesewortleitungsspannung gleich der Verifizierwortleitungsspannung
zu halten, umfasst die Erfindung eine Pro grammierung von Speicherzellen ohne
zwischenzeitliche Verifizierungsvorgänge, wie nachfolgend unter
Bezugnahme auf 12 beschrieben wird. Dadurch
wird die im Speichergate 21 gespeicherte Ladung proportional
ohne zwischenzeitlichen Verifizierungsvorgang erhöht. Durch
die Erhöhung
der im Speichergate 21 gespeicherten Ladung wird die Kennlinie
für den
Zustand 00 auf die rechte Seite der Lese-/Verifizierwortleitungsspannung
verschoben, wie aus 11 ersichtlich ist, wodurch
die Lesetoleranz erhöht
wird, während
die Lesegenauigkeit dadurch erhöht
wird, dass die Lesewortleitungsspannung gleich der Verifizierwortleitungsspannung
ist.
-
12 zeigt
ein Flussdiagramm einer entsprechenden erfindungsgemäßen Vorgehensweise. Wie
aus 12 ersichtlich ist, umfasst diese Vorgehensweise
ein Verfahren 1100, welches das Verfahren 300 aus 3 beinhaltet,
das durch einen Flagsetzprozess 1102 und einen Schleifenprozess 1104 modifiziert
ist. Nach der Programmierung im Schritt 302 führt das
Verfahren 1100 den Flagsetzprozess 1102 aus. Das
Verfahren bestimmt hierbei im Schritt 1106, ob die Speicherzelle
Daten mit dem Zustand 00 enthält.
Befindet sich die Speicherzelle im Zustand 00, dann setzt das Verfahren
im Schritt 1108 ein Flag, d. h. ein Markierbit, auf den
Wert 1. Verifiziert das Verfahren 1100 im Schritt 306 die
Programmierung der Speicherzelle, dann wird der Schleifenprozess 1104 ausgeführt. Das
Verfahren 1100 überprüft hierbei
im Schritt 1110, ob das Flag auf den Wert 1 gesetzt ist
oder auf dem Ursprungswert 0 liegt. Ist das Flag nicht auf den Wert
1 gesetzt, dann wird das Verfahren 1100 mit dem Schritt 312 beendet.
Wird im Schritt 1110 festgestellt, dass das Flag auf den
Wert 1 gesetzt ist, weil die Speicherzelle auf den Zustand 00 programmiert
ist, dann wird im Schritt 1112 ein Zähler COUNT auf Null gesetzt.
Das Verfahren 1100 erhöht
schrittweise die Wortleitungsspannung im Schritt 1114,
programmiert die Speicherzelle im Schritt 1116 und erhöht im Schritt 1120 den
Zählerstand
um 1, bis er im Schritt 1118 einen vorbestimmten Grenzwert
erreicht, z. B. 10, der program mierbar, d. h. einstellbar
sein kann. Erreicht der Zählerstand im
Schritt 1118 den vorbestimmten Grenzwert, dann wird die
Programmierung im Schritt 312 beendet. Durch das Ausführen des
Schleifenprozesses 1104 verschiebt das Verfahren effektiv
den Zustand 00 des Spannungsbereichs in 11 nach
rechts, wie oben beschrieben ist.
-
13 zeigt
ein Diagramm der Wortleitungsspannung über der Zeit. Wie aus den 12 und 13 ersichtlich
ist, umfasst das Verfahren 1100 den Schleifenprozess 1104,
welcher die Speicherzelle im Schritt 1116 programmiert
und den Zählerstand im
Schritt 1120 solange erhöht, bis der Zählerstand im
Schritt 1118 den vorbestimmten Grenzwert erreicht, z. B. 10,
der programmierbar bzw. einstellbar ausgeführt werden kann. Erreicht der
Zählerstand
im Schritt 1118 den vorbestimmten Grenzwert, dann wird
die Programmierung in Schritt 312 beendet.