-
HINTERGRUND DER ERFINDUNG
-
Die vorliegende Erfindung betrifft Flash-Speichervorrichtungen, und insbesondere ein Programmierverfahren, welches ein Störphänomen ohne Erhöhung einer Programmiergeschwindigkeit verhindern kann.
-
In letzter Zeit gab es eine anwachsende Forderung nach Halbleiterspeichervorrichtungen, welche elektrisch programmierbar und löschbar sind, und welche Daten zurückhalten können, ohne dass die Daten verloren gehen, auch wenn eine Energieversorgung ausgeschaltet ist. Weiterhin wurde zur Entwicklung von Speichervorrichtungen mit großer Kapazität, die zur Speicherung von großen Datenmengen geeignet sind, eine Hochintegrationstechnik einer Speicherzelle entwickelt. Zu diesem Zweck ist eine Flash-Speichervorrichtung vom NAND-Typ vorgeschlagen worden, in welcher eine Vielzahl von Speicherzellen in Reihe zur Bildung eines Strings verbunden sind, und eine Vielzahl der Strings ein Speicherzellenarray bilden.
-
Die
DE 10 2006 030 758 A1 beschreibt ein nicht-flüchtiges Speicherelement, einen Flash-Speicher und ein Verfahren zum Programmieren eines Flash-Speicherelements zur Verwendung in der Speichertechnik. Das dort beschriebene Verfahren zum Programmieren eines Flash-Speicherelements mit einer Mehrzahl von Speicherzellen beinhaltet: Ausführen eines ersten Programmiermodus mit einer Programmier- und Prüfschleife unter Verwendung einer ersten Programmierspannung und einer ersten Prüfzeit, bis wenigstens eine ordnungsgemäße Zelle erzeugt wurde; und Ausführen eines zweiten Programmiermodus mit einer Programmier- und Prüfschleife unter Verwendung einer zweiten Programmierspannung und einer zweiten Prüfzeit nach dem Erzeugen der ordnungsgemäßen Zelle, wobei der zweite Programmiermodus eine Prüfoperation für die ordnungsgemäße Zelle fortsetzt.
-
Im Allgemeinen weist eine Flash-Speicherzelle ein Gate auf, in welchem ein Tunnelisolationslayer, ein Floating-Gate, ein dielektrischer Layer und ein Steuer-Gate auf einem Halbleitersubstrat stapelförmig aufgebaut sind, und ein Verbindungsbereich durch das Halbleitersubstrat an beiden Seiten des Gates gebildet ist. Die Flash-Speicherzelle wird programmiert, wenn heiße Elektronen in das Floating-Gate injiziert werden, und sie wird gelöscht, wenn die injizierten Elektronen durch ein F-N-Tunneln abgeführt werden.
-
Ausführlicher, in dem Fall eines NOR-Typ-Flash wird der Programmiervorgang der Flash-Speicherzelle in einem Zustand durchgeführt, in welchem ein Source-Bereich einer Speicherzelle und das Halbleitersubstrat, das heißt ein Bulk-Bereich, geerdet bzw. mit Masse verbunden sind, das Steuer-Gate mit einer positiven hohen Spannung (das heißt eine Programmierspannung Vpp) (zum Beispiel 15 V bis 20 V) beaufschlagt wird, und eine Spannung (zum Beispiel 5 bis 6 V) zum Programmieren auf den Drain-Anschluss der Speicherzelle aufgebracht wird. In dem Fall eines NAND-Typ-Flash wird der Programmiervorgang der Flash-Speicherzelle in einem Zustand durchgeführt, in welchem eine positive Spannung auf eine Drain-Auswahlleitung eines Zellenarrays eines Stringaufbaus aufgebracht wird, mit dem eine Vielzahl von Speicherzellen verbunden ist, eine Spannung von 0 V auf eine Source-Auswahlleitung des Zellenarrays des Stringaufbaus aufgebracht wird, und 0 V auf eine Bitleitung und auf das Substrat aufgebracht werden, und eine Programmierspannung von 15 V bis 20 V an eine Wortleitung angelegt wird.
-
1 ist ein Schaltplan eines Zellenarrays einer allgemeinen Flash-Speichervorrichtung.
-
Erste bis sechzehnte Zellen c1 bis c16, ein String-Auswahltransistor d und ein Source-Auswahltransistor s sind in Reihe zu einem ersten String st1 verbunden. Die erste Zelle c1 weist eine Drain auf, welche mit einer ersten Bitleitung b1 durch den String-Auswahltransistor d verbunden ist, und die sechzehnte Zelle c16 weist eine Source auf, welche mit einer gemeinsamen Sourceleitung s1 durch den Source-Auswahltransistor s verbunden ist. Ein zweiter String st2 weist den gleichen Aufbau wie derjenige des ersten Strings st1 auf. Die Gates von Zellen, welche in der gleichen Längsrichtung (eine vertikale Richtung der Bitleitung) vorhanden sind, sind an korrespondierende Wortleitungen angeschlossen. Obwohl in der Zeichnung nicht illustriert, bildet die Vielzahl von Strings einen Flash-Speicher.
-
Für einen Programmiervorgang wird eine ausgewählte Bitleitung mit Massespannung 0 V beaufschlagt, und die nicht ausgewählten Bitleitungen werden mit Versorgungsspannung Vcc verbunden. Weiterhin wird eine ausgewählte Wortleitung mit einer Programmierspannung Vpgm (zum Beispiel 18 V) beaufschlagt, eine Drain-Auswahlleitung DSL1 wird mit Versorgungsspannung (zum Beispiel 4,5 V) beaufschlagt, und auf eine Source-Auswahlleitung SSL1 wird Massespannung 0 V angelegt. Die nicht ausgewählten Wortleitungen werden auch mit einer Durchgangsspannung Vpass (zum Beispiel 10 V) beaufschlagt. Ausgewählte Zellen werden unter diesen Spannungsbedingungen individuell programmiert.
-
In dem Programmierverfahren der Flash-Speichervorrichtung sind Schwellenspannungsverteilungen der Programmierzellen von Bedeutung. Eine Programmierzelle mit einer Schwellenspannung, welche zu hoch ist, kann sich bei einer speziellen Lesespannung Vread ausschalten. Somit kann es einen Fall geben, in welchem eine Bypass-Funktion nicht durchgeführt werden kann. Obiges Phänomen tritt auf Grund einer Zelle mit einer sehr hohen Programmiergeschwindigkeit in der gleichen Programmierspannung auf. Deshalb werden, um dieses Phänomen zu verhindern, Schwellenspannungsverteilungen von Speicherzellen mittels eines Incremental-Step-Pulse-Program-(ISPP-)Verfahrens gesteuert, bei welchem der Programmiervorgang bei einer relativ niedrigen Programmierspannung in dem Fall einer Zelle mit einer schnellen Programmiergeschwindigkeit und bei einer relativ hohen Programmierspannung in dem Fall einer Zelle mit einer langsamen Programmiergeschwindigkeit durchgeführt wird.
-
Die Programmiergeschwindigkeit von Zellen in der Speichervorrichtung kann jedoch von der Prozessvariation abhängig sein, wie beispielsweise von der Stärke des Tunnelisolationslayers, welcher die Programmiergeschwindigkeit beeinflusst. Dementsprechend beginnt eine Startvorspannung bei dem ISPP-Verfahren bei einer sehr niedrigen Spannung, um alle diese Prozessvariationen mit einzuschließen. Mit anderen Worten, wenn eine gesamte Programmiergeschwindigkeit auf Grund von Prozessvariation hoch ist, beginnt die Startvorspannung am Anfang mit einem niedrigen Wert. In dem Fall einer Zelle mit einer langsameren Programmiergeschwindigkeit muss die Programmierspannung erhöht werden.
-
2 illustriert einen Programmiervorgang, der unter Verwendung eines Incremental-Step-Pulse-Program-(ISPP-)Vorgangs durchgeführt wird. Die x-Achse gibt die Anzahl von durchgeführten Programmierzyklen bzw. -durchläufen an, und die y-Achse zeigt den Prozentsatz der Zellen, welche korrekt programmiert worden sind. Alle Speicherzellen sind nach acht Programmierzyklen programmiert.
-
Bei dem ISPP-Verfahren wie in 2 gezeigt wird eine gesamte Programmiervorgangszeit erhöht. Wenn zum Beispiel eine Startvorspannung bei einer niedrigen Spannung 1,5 V beginnt, wird eine Programmierzykluszahl korrespondierend zu 1,5 V erhöht. Wenn Vstep 0,3 V beträgt und ein Programmierzyklus 50 μs lang ist, wird die Programmiervorgangszeit um soviel wie ungefähr 250 μs erhöht. Ein Programmierstörphänomen, bei welchem eine zellenblockierte Zelle einer oberflächlichen Programmierung unterzogen wird und eine Löschzelle ihre Eigenschaften verliert, wird ebenfalls generiert. Die Endvorspannung des Programmiervorgangs wird für den Zweck einer Zelle mit einer langsamen Programmiergeschwindigkeit eingestellt. Dementsprechend kann ein Problem auftreten, bei welchem eine Zelle mit einer schnellen Programmiergeschwindigkeit Löschzelleneigenschaften auch bei der gleichen Endspannung verliert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Dementsprechend betrifft die vorliegende Erfindung ein Programmierverfahren einer Flash-Speichervorrichtung, bei welchem es eine Programmiervorgangsgeschwindigkeit verbessern und ein Störphänomen verhindern kann, ohne die Programmiergeschwindigkeit zu erhöhen, indem die Programmierzykluszahl ohne Variation in der Schwellenspannung gleichmäßig beibehalten wird.
-
In einem Aspekt stellt die vorliegende Erfindung ein Verfahrem zum Festlegen einer Endvorspannung in Incremental-Step-Pulse bereit, wobei es die folgenden Verfahrensschritte aufweist: Aufbringen einer ersten Programmierspannung auf ausgewählte Speicherzellen zum Messen einer ersten Schwellenspannung der Speicherzellen; Aufbringen einer zweiten Programmierspannung auf die Speicherzellen zum Messen einer zweiten Schwellenspannung der Speicherzellen, wobei die zweite Programmierspannung festgelegt wird, indem die erste Programmierspannung zu einer Differenz zwischen einer niedrigsten Schwellenspannung der ersten Schwellenspannung und einer mittleren der ersten Schwellenspannung hinzuaddiert wird; wiederholtes Aufbringen einer neuen Programmierspannung auf die Speicherzellen zum Messen einer neuen Schwellenspannung der Speicherzellen, bis die neue Schwellenspannung der Speicherzellen höher ist als eine Prüfspannung, wobei die neue Programmierspannung erhöht wird, indem die zweite Programmierspannung zu einer Differenz zwischen einer niedrigsten Schwellenspannung einer Schwellenspannung, welche im vorhergehenden Verfahrensschritt gemessen wird, und einer mittleren Schwellenspannung der ersten Schwellenspannung hinzuaddiert wird; und Verfeinern der neuen Programmierspannung, wenn eine niedrigste Schwellenspannung der neuen Schwellenspannung der Speicherzellen höher ist als die Prüfspannung, als Endvorspannung.
-
In einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren zum Programmieren einer Flash-Speichervorrichtung bereit, welches die folgenden Verfahrensschritte aufweist: Aufbringen einer ersten Programmierspannung auf ausgewählte Speicherzellen zum Messen einer ersten Schwellenspannung der Speicherzellen; Aufbringen einer zweiten Programmierspannung auf die Speicherzellen zum Messen einer zweiten Schwellenspannung der Speicherzellen, wobei die zweite Programmierspannung festgelegt wird, indem die erste Programmierspannung zu einer Differenz zwischen einer niedrigsten Schwellenspannung der ersten Schwellenspannung und einer mittleren Schwellenspannung der ersten Schwellenspannung hinzuaddiert wird; wiederholtes Aufbringen einer neuen Programmierspannung auf die Speicherzellen zum Messen einer neuen Schwellenspannung der Speicherzellen, bis die neue Schwellenspannung der Speicherzellen höher ist als eine Prüfspannung, wobei die neue Programmierspannung erhöht wird, indem die zweite Programmierspannung zu einer Differenz zwischen einer niedrigsten Schwellenspannung einer Schwellenspannung, welche in einem vorhergehenden Verfahrensschritt gemessen wird, und einer mittleren Schwellenspannung der ersten Schwellenspannung hinzuaddiert wird; Festlegen der neuen Programmierspannung, wenn eine niedrigste Schwellenspannung der neuen Schwellenspannung der Speicherzellen höher ist als die Prüfspannung als eine Endvorspannung in einem inkrementalen Stufenimpuls bzw. Incremental-Step-Pulse; und Aufbringen des Incremental-Step-Pulse auf eine Wortleitung des Flash-Speichers.
-
In noch einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren zum Festlegen einer Startvorspannung in Incremental-Step-Pulse bereit, welches die folgenden Verfahrensschritte aufweist: Aufbringen einer ersten Programmierspannung auf ausgewählte Speicherzellen zum Messen einer ersten Schwellenspannung der Speicherzellen; Aufbringen einer zweiten Programmierspannung auf die Speicherzellen zum Messen einer zweiten Schwellenspannung der Speicherzellen, wobei die zweite Programmierspannung festgelegt wird, indem eine Differenz zwischen einer höchsten Schwellenspannung der ersten Schwellenspannung und einer mittleren Schwellenspannung der ersten Schwellenspannung von der ersten Programmierspannung subtrahiert wird; wiederholtes Aufbringen einer neuen Programmierspannung auf die Speicherzellen zum Messen einer neuen Schwellenspannung der Speicherzellen, bis die neue Schwellenspannung der Speicherzellen höher ist als eine Prüfspannung, wobei die neue Programmierspannung vermindert wird, indem eine Differenz zwischen einer höchsten Schwellenspannung der Schwellenspannungen, welche in einem vorhergehenden Schritt gemessen worden sind, und einer mittleren Schwellenspannung der ersten Schwellenspannung von der zweiten Programmierspannung subtrahiert wird; und Festlegen einer Spannung, welche durch Subtrahieren einer Differenzspannung zwischen einer mittleren Schwellenspannung der neuen Schwellenspannung und einer mittleren Schwellenspannung der ersten Schwellenspannung von der neuen Programmierspannung erlangt wird, wenn eine niedrigste Schwellenspannung der neuen Schwellenspannung der Speicherzellen höher ist als die Prüfspannung als Startvorspannung.
-
In einem noch weiteren Aspekt stellt die Erfindung ein Verfahren zum Programmieren einer Flash-Speichervorrichtung bereit, welches die folgenden Verfahrensschritte aufweist: Aufbringen einer ersten Programmierspannung auf ausgewählte Speicherzellen zum Messen einer ersten Schwellenspannung der Speicherzellen; Aufbringen einer zweiten Programmierspannung auf die Speicherzellen zum Messen einer zweiten Schwellenspannung der Speicherzellen, wobei die zweite Programmierspannung festgelegt wird, indem eine Differenz zwischen einer höchsten Schwellenspannung der ersten Schwellenspannung und einer mittleren Schwellenspannung der ersten Schwellenspannung von der ersten Programmierspannung subtrahiert wird; wiederholtes Aufbringen einer neuen Programmierspannung auf die Speicherzellen zum Messen einer neuen Schwellenspannung der Speicherzellen, bis die neue Schwellenspannung der Speicherzellen höher ist als eine Prüfspannung, wobei die neue Programmierspannung vermindert wird, indem eine Differenz zwischen einer höchsten Schwellenspannung der Schwellenspannungen, welche in einem vorhergehenden Schritt gemessen worden sind, und einer mittleren Schwellenspannung der ersten Schwellenspannung von der zweiten Programmierspannung subtrahiert wird; Festlegen einer Spannung, welche durch Subtrahieren einer Differenzspannung zwischen einer mittleren Schwellenspannung der neuen Schwellenspannung und einer mittleren Schwellenspannung der ersten Schwellenspannung von der neuen Programmierspannung erlangt wird, wenn eine niedrigste Schwellenspannung der neuen Schwellenspannung der Speicherzellen höher ist als die Prüfspannung als Startvorspannung in einem Incremental-Step-Pulse; und Aufbringen des Incremental-Step-Pulse auf eine Wortleitung des Flash-Speichers.
-
In noch einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren zum Festlegen einer Startvorspannung in Incremental-Step-Pulse bereit, welches die folgenden Verfahrensschritte aufweist: Einstellen einer ersten Startvorspannung und einer ersten Endvorspannung; Aufbringen einer Programmierspannung auf ausgewählte Speicherzellen zum Programmieren der ausgewählten Speicherzellen, wobei die Programmierspannung stufenweise von der ersten Startspannung an erhöht wird und angehalten wird, wenn eine Schwellenspannung der Speicherzelle höher ist als eine Prüfspannung; Ermitteln einer Spannungsdifferenz zwischen der Endvorspannung und der Programmierspannung, wenn die Schwellenspannung der Speicherzellen höher ist als die Prüfspannung; und Festlegen einer neuen Startvorspannung durch Subtrahieren der Spannungsdifferenz von der Startvorspannung.
-
In noch einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren zum Programmieren eines Flash-Speichers bereit, welches die folgenden Verfahrensschritte aufweist: Einstellen einer ersten Startvorspannung und einer ersten Endvorspannung; Aufbringen einer Programmierspannung auf ausgewählte Speicherzellen zum Programmieren der ausgewählten Speicherzellen, wobei die Programmierspannung stufenweise von der ersten Startspannung an erhöht wird und angehalten wird, wenn eine Schwellenspannung der Speicherzelle höher ist als eine Prüfspannung; Ermitteln einer Spannungsdifferenz zwischen der Endvorspannung und der Programmierspannung, wenn die Schwellenspannung der Speicherzelle höher ist als die Prüfspannung; Festlegen einer neuen Startvorspannung in einem Incremental-Step-Pulse durch Subtrahieren der Spannungsdifferenz von der Startvorspannung, und Aufbringen des Incremental-Step-Pulse auf eine Wortleitung des Flash-Speichers.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Schaltplan eines Zellenarrays einer allgemeinen Flash-Speichervorrichtung;
-
2 ist eine grafische Darstellung, welche eine Programmierzykluszahl eines herkömmlichen ISPP-Programmierverfahrens illustriert;
-
3 ist ein Flussdiagram, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer ersten Ausführung der vorliegenden Erfindung illustriert;
-
4A und 4B sind eine Ansicht, welche Schwellenspannungsverteilungen zeigt, die das Programmierverfahren der Flash-Speichervorrichtung gemäß der vorliegenden Erfindung illustrieren;
-
5 ist eine grafische Darstellung, welche eine Programmierzykluszahl gemäß einer ersten Ausführung der vorliegenden Erfindung illustriert;
-
6 ist ein Flussdiagramm, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer zweiten Ausführung der vorliegenden Erfindung illustriert; und
-
7 ist ein Flussdiagramm, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer dritten Ausführung der vorliegenden Erfindung illustriert.
-
BESCHREIBUNG VON SPEZIFISCHEN AUSFÜHRUNGEN
-
3 ist ein Flussdiagram, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer ersten Ausführung der vorliegenden Erfindung illustriert. Das Flussdiagramm illustriert ein Verfahren, welches verwendet wird, um eine Endvorspannung für einen ISPP-Vorgang einzustellen. Die erste Ausführung der vorliegenden Erfindung betrifft einen Fall, in welchem Flash-Speicherzellen langsame Zellen sind.
-
4A und 4B illustrieren Schwellenspannungsverteilungen einer Speichervorrichtung gemäß der vorliegenden Erfindung.
-
Mit Bezugnahme auf 3 und 4A wird bei Verfahrensschritt 110 ein erster Programmierschritt ausgeführt. In dieser Umsetzung wird der Programmierschritt mit allen Speicherzellen einer Flash-Speichervorrichtung ausgeführt. Der erste Programmierschritt weist ein Aufbringen einer ersten Programmierspannung auf Wortleitungen ausgewählter Speicherzellen auf. Die Drain-Auswahlleitung DSL1 wird mit einer Versorgungsspannung (zum Beispiel 4,5 V) beaufschlagt, und an die Source-Auswahlleitung SSL1 wird Massespannung 0 V angelegt. Nicht ausgewählte Wortleitungen werden mit der Durchgangsspannung Vpass (zum Beispiel 10 V) beaufschlagt. In diesem Fall wird auf ausgewählte Bitleitungen Massespannung 0 V aufgebracht, und an nicht ausgewählte Bitleitungen wird Versorgungsspannung Vcc angelegt.
-
Im Verfahrensschritt 120 wird eine Schwellenspannungsabtastung vorgenommen, um die Schwellenspannung der Speicherzellen zu messen, welche in dem ersten Programmierschritt 110 programmiert worden sind. Eine Schwellenspannungsverteilung 180 dieser Speicherzellen wird erhalten (siehe 4A). Wie im Stand der Technik bekannt ist, wird die Schwellenspannung einer Speicherzelle üblicherweise eher in Begriffen einer Zellenspannungsverteilung als ein einzelner Schwellenspannungswert dargestellt. Die Spannungsverteilung 180 wird erhalten, indem jede Zellenschwellenspannungsverteilung als ein einzelner Wert dargestellt wird. In der vorliegenden Ausführung wird der Maximalwert der Zellenschwellenspannungsverteilung als der einzelne Schwellenwert für eine Zelle benutzt.
-
Mindestens zwei Werte werden aus der Schwellenspannungsverteilung 180 (Verfahrensschritt 125) ausgewählt: ein mittlerer Schwellenspannungswert Vt1 und ein niedriger Schwellenspannungswert Va1. Der mittlere Schwellenspannungswert Vt1 ist der größte Wert der Spannungsverteilung 180 in der vorliegenden Ausführung. Das heißt, der mittlere Wert Vt1 ist der häufigste Schwellenspannungswert für die Zellen in der Speichervorrichtung. Der niedrige Schwellenspannungswert Va1 ist der niedrigste Wert in der Spannungsverteilung 180. In einer anderen Realisierung können die mittleren und niedrigen Werte Vt1 und Va1 unterschiedliche Werte aufweisen so lange der erste größer ist als der letztere.
-
Im Verfahrensschritt 130 wird ein zweiter Programmiervorgang mit den Speicherzellen ausgeführt, indem eine zweite Programmierspannung Vp2 verwendet wird. Die zweite Programmierspannung wird in der vorliegenden Ausführung wie folgt festgelegt: Vp2 = Vp1 + (Vt1 – Va), wobei die Spannungsdifferenz Vt1 – Va zu der ersten Programmierspannung Vp1 hinzuaddiert wird.
-
Nach dem zweiten Programmiervorgang werden die Schwellenspannungen der Speicherzellen, welche programmiert worden sind, gemessen (Verfahrensschritt 132). Die zweite Programmierspannung bewirkt, dass die Spannungsverteilung 180 nach rechts verschoben wird, um eine Spannungsverteilung 182 (siehe 4A) zu bestimmen. Die Spannungsverteilung 182 legt einen mittleren Wert Vt2 und einen niedrigen Wert Va2 fest.
-
Im Verfahrensschritt 134 wird eine Festlegung getroffen, ob der niedrige Wert Va2 gleich einer Prüfspannung Vprüf oder größer als diese ist oder nicht. Die Prüfspannung Vprüf kann in dem Bereich von 3,4 bis 3,8 V liegen, aber kann in einem unterschiedlichen Bereich in Abhängigkeit von der Ausführung liegen. Wenn der niedrige Wert Va2 gleich der Prüfspannung Vprüf oder größer als diese ist, zeigt dies dann an, dass die zweite Programmierspannung hoch genug ist, um die Speicherzellen korrekt zu programmieren. Deshalb wird die zweite Programmierspannung Vp2 benutzt, um die Endvorspannung des ISPP-Vorgangs einzustellen (Verfahrensschritt 140). Die Endvorspannung wird dadurch bestimmt, indem die Differenz von Vt2 – Vt1 zu der zweiten Programmierspannung Vp2 hinzuaddiert wird: VEndvorspannung = Vp2 + (Vt2 – Vt1). Die Endvorspannung kann also festgelegt werden als: Vpn = Vp(n-1) + (Vt(n-1) – Vt(n-2)), wobei Vpn die Endvorspannung ist. Wenn die zweite Programmierspannung ausreicht, um die Speicherzellen korrekt zu programmieren, wird eine Programmierspannung, die höher als die zweite Programmierspannung ist, nicht benötigt. Ein Einstellen einer höheren Programmierspannung als die Endvorspannung würde unnötigerweise in einer längeren Programmierzeit resultieren.
-
Andererseits wird, wenn der niedrige Wert Va2 kleiner als die Prüfspannung Vprüf festgelegt wird, eine höhere Programmierspannung für die Endvorspannung für den ISPP-Vorgang gewünscht. Eine dritte Programmierspannung wird festgelegt, indem ein ähnliches Verfahren wie das für die zweite Programmierspannung Vp2 gebrauchte verwendet wird (Verfahrensschritt 136). Die dritte Programmierspannung Vp3 wird zu Vp3 = Vp2 + (Vt1 – Va2) festgelegt, wobei Va2 ein niedriger Wert der Spannungsverteilung 182 ist. Allgemeiner gesagt, der Verfahrensschritt 136 bestimmt die nächste Programmierspannung Vpn = Vp(n-1) + (Vt1 – Va(n-1)), wobei sich n auf die Häufigkeit bezieht, mit welcher die Programmierspannung erhöht worden ist.
-
Verfahrensschritte 130 bis 136 werden wiederholt, bis der niedrige Wert Van der Spannungsverteilung gleich oder größer als die Prüfspannung Vprüf wird.
-
Sobald die Endvorspannung für den ISPP-Vorgang eingestellt worden ist, wird ein erster Löschvorgang mit allen Speicherzellen in der Vorrichtung durchgeführt, um die Speicherzellen zu „reinigen”, welche während der obigen Verfahrensschritte zum Einstellen der Endvorspannung programmiert worden sind.
-
Danach ist die Speichervorrichtung für die Anwendung des ISPP-Vorgangs bereit. Zu diesem Zeitpunkt kann eine Startvorspannung für das ISPP zusätzlich zu der Endvorspannung ebenfalls eingestellt werden.
-
Das Verfahren zum Einstellen der Endvorspannung des ISPP-Vorgangs gemäß der ersten Ausführung der vorliegenden Erfindung wird unten ausführlicher erläutert.
-
Zuerst wird eine erste Programmierspannung für den ISPP-Vorgang bestimmt. Die erste Programmierspannung kann zu 17 V festgelegt werden, welche ausreichend hoch ist, um eine bestimmte Prozentzahl der Speicherzellen in einem Programmierzyklus zu programmieren, aber niedriger ist als die Endvorsspannung.
-
Da die erste Programmierspannung (oder erste ISPP-Spannung) für einen ISPP-Vorgang auf die Wortleitung einer ausgewählten Seite aufgebracht wird, werden Speicherzellen der ausgewählten Seite programmiert.
-
Die Schwellenspannung der Speicherzellen wird dann geprüft, indem die Wortleitungen mit einer Prüfspannung beaufschlagt werden. Dann wird festgelegt, ob die Speicherzellen korrekt programmiert worden sind, in Abhängigkeit davon, ob die Schwellenspannung höher ist als die Prüfspannung. Wenn als Ergebnis der Festlegung die Speicherzellen als nicht korrekt programmiert bestimmt werden, wird die erste ISPP-Spannung durch eine spezifische Stufenspannung (zum Beispiel 0,3 V) erhöht. Der Programmiervorgang wird unter Verwendung einer zweiten Programmierspannung (oder zweiten ISPP-Spannung) für den ISPP-Vorgang ausgeführt. Der Programmiervorgang wird wiederholt, bis die ISPP-Spannung bis zu der Endvorspannung des ISPP-Vorgangs angewachsen ist und die Speicherzellen unter Verwendung der Endvorspannung programmiert worden sind.
-
Mit Bezug auf 5 wird bei dem ISPP-Programmierverfahren der vorliegenden Erfindung die Programmierzykluszahl gleichmäßig so häufig wie die Zykluszahl angibt ausgeführt, welche unabhängig von einer Variation in der Schwellenspannung des Programmierens eingestellt wird. Es ist daher möglich die Programmierzeit zu verkürzen. Das heißt, die Endvorspannung und Startvorspannung des ISPP werden so genau eingestellt, dass eine Schrittzahl des ISPP-Programmierens vermindert wird.
-
6 ist ein Flussdiagramm, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer zweiten Ausführung der vorliegenden Erfindung illustriert. Die zweite Ausführung der vorliegenden Erfindung bezieht sich auf ein Beispiel, wenn Flash-Speicherzellen schnelle Zellen sind.
-
Das Flussdiagramm betrifft ein Einstellen der Startvorspannung für einen ISPP-Vorgang. In Verfahrensschritt 210 wird ein erster Programmiervorgang mit allen Zellen einer Flash-Speichervorrichtung ausgeführt. Wortleitungen, die mit ausgewählten Speicherzellen verbunden sind, werden mit der ersten Programmierspannung Vp1 beaufschlagt. Die Drain-Auswahlleitung DSL1 wird an die Versorgungsspannung (zum Beispiel 4,5 V) angelegt, und die Source-Auswahlleitung SSL1 wird mit Massespannung 0 V beaufschlagt. Nicht ausgewählte Wortleitungen werden mit Durchgangsspannung Vpass (zum Beispiel 10 V) beaufschlagt. In diesem Fall wird auf ausgewählte Bitleitungen Massespannung 0 V aufgebracht, und nicht ausgewählte Bitleitungen werden mit Versorgungsspannung Vcc beaufschlagt.
-
Die Schwellenspannung der im Verfahrensschritt 210 programmierten Speicherzellen wird gemessen, um die Schwellenspannungsverteilung 180 (siehe 4A) der Speichervorrichtung zu erhalten (Verfahrensschritt 220). Wie dem Fachmann bekannt ist, wird die Schwellenspannung einer Speicherzelle üblicherweise eher als eine Zellenspannungsverteilung als ein einzelner Schwellenspannungswert dargestellt. Die Spannungsverteilung 180 (oder Vorrichtungsspannungsverteilung) wird erhalten, indem jede Zellenschwellenspannungsverteilung als ein einzelner Spannungswert dargestellt wird. In der vorliegenden Ausführung ist der Signalspannungswert der maximale Wert der Zellenschwellenspannungsverteilung.
-
Mindestens zwei Werte werden aus der Schwellenspannungsverteilung 180 ausgewählt (Verfahrensschritt 225): ein mittlerer Schwellenspannungswert Vt1 und ein hoher Schwellenspannungswert Vc1. Der mittlere Schwellenspannungswert Vt1 ist der maximale Wert der Spannungsverteilung 180 in der vorliegenden Ausführung. Das heißt, der mittlere Wert Vt1 ist der häufigste Schwellenspannungswert für die Zellen in der Speichervorrichtung. Der hohe Schwellenspannungswert Vc1 ist der höchste Wert in der Spannungsverteilung 180. In einer weiteren Implementierung können die mittleren und hohen Werte Vt1 und Vc1 unterschiedliche Werte aufweisen so lange der erste kleiner ist als der letztere.
-
Im Verfahrensschritt 230 wird ein zweiter Programmiervorgang unter Verwendung einer zweiten Programmierspannung Vp2 ausgeführt. Die zweite Programmierspannung wird zu Vp2 = Vp1 – (Vc1 – Vt1) festgelegt, wobei die Spannungsdifferenz Vc1 – Vt1 von der ersten Programmierspannung Vp1 subtrahiert wird.
-
Mit Bezugnahme auf 4B werden die Schwellenspannungen der Speicherzellen nach dem zweiten Programmiervorgang gemessen (Verfahrensschritt 232). Die Spannungsverteilung verschiebt sich nach links, und eine Spannungsverteilung 182 wird festgelegt. Die Spannungsverteilung 182 legt einen mittleren Wert Vt2 und einen hohen Wert Vc2 fest.
-
Im Verfahrensschritt 234 wird eine Festlegung getroffen, ob der niedrige Wert Va2 gleich oder größer wie eine Prüfspannung Vprüf ist oder nicht. Die Prüfspannung Vprüf kann in dem Bereich von 3,4 bis 3,8 V liegen, aber kann in einem unterschiedlichen Bereich in Abhängigkeit von der Implementierung liegen. Wenn der niedrige Wert Va2 gleich der Prüfspannung Vprüf oder größer als diese ist, zeigt dies an, dass die zweite Programmierspannung hoch genug ist, um die Speicherzellen korrekt zu programmieren.
-
Wenn der niedrige Wert Va2 kleiner ist als die Prüfspannung Vprüf, dann wird eine dritte Programmierspannung erzeugt (Verfahrensschritt 236). Die dritte Programmierspannung wird unter Verwendung der folgenden Gleichung erlangt: Vpn = Vp(n-1) – (Vc(n-1) – Vt1), wobei die Vpn die dritte Programmierspannung (oder die nächste Programmierspannung) ist, Vc(n-1) die höchste Schwellenspannung in der Spannungsverteilung ist, die mit Vp(n-1) verbunden ist, und Vt1 der Maximalwert der mit Vp(n-1) verbundenen Spannungsverteilung. Verfahrensschritte 230 bis 236 werden wiederholt, bis der niedrige Wert Van gleich wie oder größer als die Prüfspannung Vprüf ist.
-
Wenn die niedrigste Schwellenspannung Va2 gleich wie oder größer als die Prüfspannung Vprüf ist, wird eine Startvorspannung unter Verwendung der Programmierspannung, die zuletzt im Verfahrensschritt 230 verwendet wurde, eingestellt (Verfahrensschritt 240). Die Startvorspannung wird durch die folgende Gleichung erlangt: Vstart = Vpn – (Vtn-1 – Vt1), wobei Vstart die Startvorspannung ist, Vpn die zur korrekten Programmierung der Speicherzellen benutzte Programmierspannung ist, und Vtn der mit einer mit Vpn verbundenen Schwellenspannungsverteilung verbundene größte Wert ist. Wenn die zweite Programmierspanung zum korrekten Programmieren der Speicherzellen verwendet worden ist, ist Vpn die zweite Programmierspannung, Vt2 der größte Wert der Spannungsverteilung 182 und Vt1 der größte Wert der Spannungsverteilung 180. Wenn zum Beispiel die zweite Programmierspannung Vp2 ausreichend war, um zu bewirken, dass Va2 gleich wie oder größer als die Prüfspannung Vprüf ist, dann wird die Startvorspannung Vstart festgelegt zu Vstart = Vp2 – (Vt2 – Vt1). Die Startvorspannung wird für den ISPP-Vorgang verwendet.
-
Ein Löschvorgang wird danach ausgeführt, um die Speicherzellen zu löschen, welche von den oben durchgeführten Programmiervorgängen programmiert worden sind, um die Startvorspannung für den ISPP-Vorgang einzustellen.
-
Der ISPP-Vorgang wird dann unter Verwendung der Startvorspannung durchgeführt, welche gemäß dem obigen Verfahren eingestellt worden ist. Zuerst wird eine Startvorspannung (zum Beispiel Vstart = Vp2 – (Vt2 – Vt1)) eingestellt. Eine Endvorspannung wird eingestellt. Die Startvorspannung kann auch als Endvorspannung eingestellt werden.
-
Die Startvorspannung wird als die erste ISPP-Spannung auf die Wortleitung einer ausgewählten Seite zum Programmieren der Speicherzellen der ausgewählten Seite aufgebracht.
-
Danach werden die Schwellenspannungen der Speicherzellen geprüft, indem die Wortleitungen mit einer Prüfspannung beaufschlagt werden. Die Speicherzellen sind korrekt programmiert, wenn ihre Schwellenspannungen höher als die Prüfspannung sind. Wenn die Schwellenspannung von irgendwelchen der Speicherzellen niedriger als die Prüfspannung ist, wird das Programmieren als nicht korrekt ausgeführt erachtet. Die erste ISPP-Spannung wird um einen bestimmten Betrag (zum Beispiel 0,3 V) erhöht, wodurch eine zweite ISPP-Spannung erlangt wird. Die ausgewählten Speicherzellen werden unter Verwendung der zweiten ISPP-Spannung erneut programmiert. Der ISPP-Spannungsanhebungsvorgang und der Programmiervorgang werden wiederholt, bis die ISPP-Spannung gleich der Endvorspannung ist.
-
7 ist ein Flussdiagramm, welches ein Programmierverfahren einer Flash-Speichervorrichtung gemäß einer dritten Ausführung der vorliegenden Erfindung illustriert. Das Flussdiagramm stellt ein Verfahren zum Einstellen einer Startvorspannung für den ISPP-Vorgang dar.
-
Im Verfahrensschritt 310 wird eine Endvorspannung Vend eines ISPP-Vorgangs eingestellt. Die Endvorspannung Vend beträgt in der vorliegenden Ausführung 20 V, kann aber einen anderen Wert aufweisen. Eine anfängliche Startvorspannung Vstart wird ebenfalls eingestellt. Die Startvorspannung Vstart beträgt 15 V in der vorliegenden Ausführung, kann aber einen unterschiedlichen Wert aufweisen.
-
Im Verfahrensschritt 320 werden ausgewählte Speicherzellen programmiert. Eine Spannung, die niedriger als die Endvorspannung Vend ist, wird als eine Programmiervorspannung Vp ausgewählt. Die Programmiervorspannung Vp ist niedriger als die Spannung, bei welcher eine Änderung in der Schwellenspannung in Abhängigkeit einer Prozessvariation von der Endvorspannung Vend abgezogen wird. Die Programmiervorspannung Vp ist ein Wert, welcher die entsprechend einer Prozessbedingung beim Herstellungsprozess der Vorrichtung geänderte Schwellenspannung subtrahiert von der Endvorspannung Vend ist.
-
Während des obigen Programmierverfahrensschritts werden Wortleitungen der ausgewählten Speicherzellen mit der Programmierspannung Vp beaufschlagt. Die Drain-Auswahlleitung DSL1 wird an Versorgungsspannung (zum Beispiel 4,5 V) angelegt. Die Source-Auswahlleitung SSL1 wird mit Massespannung 0 V beaufschlagt. Nicht ausgewählte Wortleitungen werden an Durchgangsspannung Vpass (zum Beispiel 10 V) angeschlossen. In diesem Fall können ausgewählte Bitleitungen mit Massespannung beaufschlagt werden, und an nicht ausgewählten Bitleitungen kann die Versorgungsspannung Vcc angelegt werden.
-
Die Schwellenspannung Vt der ausgewählten/programmierten Speicherzellen werden geprüft (Verfahrensschritt 322). Wenn die Schwellenspannung Vt nicht höher als eine Prüfspannung Vprüf ist (Verfahrensschritt 324) wird die Programmiervorspannung um einen bestimmten Betrag, zum Beispiel 0,3 V, erhöht (Verfahrensschritt 326). Der erhöhte Spannungsbetrag ist nicht auf 0,3 V beschränkt. Er kann innerhalb eines Bereiches von 0,1 V bis 1 V unter Berücksichtigung der Anzahl der wiederholten Programmiervorgänge und Variation in der Schwellenspannung in Abhängigkeit von Prozessvariation liegen.
-
Wenn die Schwellenspannung Vt größer ist als die Prüfspannung Vprüf (das heißt, das Programmieren wurde als korrekt ausgeführt festgelegt), dann wird die Programmiervorspannung Vp zum Bestimmen einer neuen Startvorspannung Vstart(neu) benutzt (Verfahrensschritt 330), wobei Vstart(neu) = Vstart – (Vend – Vp) gilt. Die neue Startvorspannung Vstart(neu) wird erhalten, indem die Spannungsdifferenz Vend – Vp von der anfänglichen Startvorspannung Vstart, die im Verfahrensschritt 310 eingestellt worden ist, subtrahiert wird. Wenn zum Beispiel die anfängliche Startvorspannung Vstart im Verfahrensschritt 310 auf 15 V eingestellt wird, und die Differenz zwischen Vend und Vp 2 V beträgt, dann wird die neue Startvorspannung Vstart(neu) auf 13 V eingestellt.
-
Sobald die neue Startvorspannung Vstart(neu) eingestellt worden ist, werden die Speicherzellen gelöscht, um die Speichervorrichtung zu säubern bzw. zu leeren und die oben durchgeführten Programmierungen zum Einstellen der Startvorspannungen rückgängig zu machen.
-
Der ISPP-Vorgang gemäß einer dritten Ausführung der vorliegenden Erfindung wird unten beschrieben. Als erster Verfahrensschritt beim Programmieren wird eine neue Startvorspannung Vstart(neu) als eine erste ISPP-Spannung auf die Wortleitung der zum Programmieren ausgewählten Speicherzellen aufgebracht.
-
Die Schwellenspannung der Speicherzellen wird geprüft, indem die Wortleitungen mit einer Prüfspannung beaufschlagt werden. Wenn sich die Speicherzellen nicht einschalten, dann werden die Speicherzellen als korrekt programmiert festgelegt, das heißt, die Schwellenspannung ist höher als die Prüfspannung. Wenn sich irgendeine der Speicherzellen einschaltet, wird festgelegt, dass die Speicherzellen nicht korrekt programmiert worden sind. Die erste ISPP-Spannung wird um einen vorgegebenen Betrag (zum Beispiel 0,3 V) erhöht, um eine zweite ISPP-Spannung zu erhalten. Die Speicherzellen werden erneut programmiert, wobei die zweite ISPP-Spannung verwendet wird. Die Speicherzellen werden erneut programmiert bis die Speicherzellen als korrekt programmiert geprüft worden sind, oder bis die ISPP-Spannung bis zur Endvorspannung angehoben worden ist.
-
Wie oben beschrieben ist, wird gemäß der vorliegenden Erfindung eine Startvorspannung entsprechend den Schwellenspannungsverteilungen von Speicherzellen eingestellt. Ein Phänomen eines schwachen Programmierens, das in Zellen mit einer schnellen Programmiergeschwindigkeit gemäß einer einzigen Programmiergeschwindigkeit der Speicherzellen auftritt, kann verhindert werden. Es ist deshalb möglich, ein Störphänomen einer Vorrichtung zu verhindern.
-
Weiterhin werden Schwellenspannungsverteilungen einer programmierten Speichervorrichtung unter Verwendung einer spezifischen Programmierspannung gemessen, eine Schwellenspannung mit einem mittleren Wert der Schwellenspannungsverteilungen wird als repräsentative Schwellenspannung eingestellt, und ein Programmiervorgang wird wiederholt durchgeführt, bis die niedrige Schwellenspannung höher als die Prüfspannung ist, während die Programmierspannung so viel geändert wird, wie eine Differenz mit der niedrigsten Schwellenspannung. Zu diesem Zeitpunkt wird eine Endvorspannung des ISPP-Programmiervorgangs eingestellt, indem die Differenz zwischen der Schwellenspannung und der repräsentativen Schwellenspannung einer geänderten Programmierspannung hinzuaddiert oder von ihr subtrahiert wird. Somit kann die Programmierzykluszahl ungeachtet einer Variation in der Schwellenspannung gleichmäßig beibehalten werden. Es ist deshalb möglich, die Programmiervorgangszeit zu erhöhen.
-
Obwohl die vorangehende Beschreibung mit Bezug auf die spezifischen Ausführungen gemacht worden ist, ist es selbstverständlich, dass Änderungen und Modifikationen des vorliegenden Patents von dem Fachmann ausgeführt werden können, ohne den Sinn und Rahmen des vorliegenden Patents und der beigefügten Ansprüche zu verlassen.