-
Die
Erfindung betrifft ein Flashspeicherbauelement und ein Programmierverfahren
hierfür.
-
Es
existiert ein zunehmender Bedarf an nichtflüchtigen Halbleiterspeicherbauelementen, welche
ohne Notwendigkeit eines Datenauffrischungsvorgangs für im Bauelement
gespeicherte Daten programmiert und gelöscht werden können. Der
allgemeine Trend in der gesamten Halbleiterspeicherbauelemententwicklung
ist durch eine zunehmende Speicherkapazität und einen höheren Integrationsgrad
charakterisiert. Ein NAND-Flashspeicherbauelement ist ein Beispiel
eines nichtflüchtigen
Halbleiterspeicherbauelements, welches eine große Speicherkapazität und einen
hohen Integrationsgrad zur Verfügung
stellt. Da das NAND-Flashspeicherbauelement gespeicherte Daten auch
dann behält,
wenn das Bauelement nicht mit Energie versorgt wird, ist es in elektronischen
Geräten
wie tragbaren Endgeräten,
tragbaren Computern usw. weit verbreitet, welche von einer plötzlichen
Unterbrechung der Energieversorgung betroffen werden können.
-
Herkömmliche
NAND-Flashspeicherbauelemente umfassen typischerweise elektrisch
lösch- und
programmierbare Nurlesespeicherzellen, welche als Flash-EEPROM-Zellen
bezeichnet werden. Allgemein umfasst eine Flash-EEPROM-Zelle einen
Zellentransistor, welcher aus einem Halbleitersubstrat oder einem
Volumenmaterial (Bulk) eines ersten Leitungstyps, z. B. p-leitend,
und aus Source- und Drainbereichen eines zweiten Leitungstyps, z.
B. n-leitend, gebildet wird. Der Sourcebereich und der Drainbereich
sind durch einen Kanalbereich voneinander getrennt und ein floatendes
Gate ist über
dem Kanalbereich ausgebildet. Das floatende Gate speichert Elektronen
und steuert die Gatefunktion für
den Zellentransistor.
-
Ein
herkömmliches
Speicherzellenfeld, das Flash-EEPROM-Zellen umfasst, welche die
oben beschriebene Struktur aufweisen und nachfolgend auch einfach
als Speicherzellen bezeichnet werden, ist in 1 dargestellt.
Es sei angemerkt, dass in der vorliegenden Beschreibung eine Schicht
oder ein Element, die bzw. das als „auf” oder „über” einem anderen Element oder
einer anderen Schicht liegend bezeichnet ist, direkt auf dem anderen
Element oder der anderen Schicht angeordnet sein kann oder Zwischenelemente
oder Zwischenschichten vorhanden sein können.
-
Unter
Bezugnahme auf 1 umfasst ein Speicherzellenfeld 1 oder
ein Speicherblock eine Mehrzahl von Zellenketten 10 oder
NAND-Ketten, welche mit je einer Bitleitung BL0 bis BLn – 1 korrespondieren.
Jede Zellenkette 10 umfasst einen Kettenauswahltransistor
SST als ersten Auswahltransistor, einen Masseauswahltransistor GST
als zweiten Auswahltransistor und eine Mehrzahl von Speicherzellen
M(x)0 bis M(x)(m – 1),
wobei x eine Zahl zwischen 0 und (n – 1) ist. Der Kettenauswahltransistor SST
umfasst eine Drain, die mit einer korrespondierenden Bitleitung
verbunden ist, und ein Gate, welches mit einer Kettenauswahlleitung SSL
verbunden ist. Der Masseauswahltransistor GST umfasst eine Source,
welche mit einer gemeinsamen Sourceleitung CSL verbunden ist, und
ein Gate, welches mit einer Masseauswahlleitung GSL verbunden ist.
Die Speicherzellen M(x)0 bis M(x)(m – 1) sind in Reihe zwischen
einer Source des Kettenauswahltransistors SST und einer Drain des
Masseauswahltransistors GST eingeschleift und jeweils mit einer
korrespondierenden Wortleitung WL0 bis WLm – 1 verbunden. Die Wortleitungen
WL0 bis WLm – 1,
die Kettenauswahlleitung SSL und die Masseauswahlleitung GSL werden
durch eine nicht dargestellte Zeilenauswahlschaltung getrieben.
-
Um
die Speicherzellen einer ausgewählten Zeile
oder Wortleitung des NAND-Flashspeicherbauelements zu programmieren,
werden die Speicherzellen in dem Speicherblock oder dem Speicherzellenfeld
zuerst gelöscht,
um jeder Speicherzelle eine Schwellwertspannung zu geben, welche
kleiner als 0 V ist. Nach dem Löschen
der Speicherzellen werden Programmierdaten in eine Seitenpufferschaltung
des NAND-Flashspeicherbauelements
geladen und dann erzeugt eine Pumpschaltung eine relativ hohe Spannung
für den
Programmiervorgang, d. h. es wird beispielsweise eine Passierspannung
und eine Programmierspannung an die Wortleitungen angelegt. Anschließend werden
die geladenen Daten durch eine Iteration von Programmierschleifen
in die Speicherzellen einer ausgewählten Wortleitung programmiert.
Jede Programmierschleife umfasst ein Bitleitungsaufbauintervall,
ein Programmierintervall, ein Entlade-/Erholungsintervall und ein
Verifizierungsintervall.
-
Während des
Bitleitungsaufbauintervalls werden die Bitleitungen BL0 bis BL(n – 1) gemäß den geladenen
Programmierdaten auf eine Versorgungsspannung oder eine Massespannung
aufgeladen. Das bedeutet, dass eine Bitleitung, welche mit einer zu
programmierenden Speicherzelle verbunden ist, auf die Massespannung
geladen wird, und eine Bit leitung, welche mit einer für die Programmierung
gesperrten, d. h. nicht zu programmierenden Speicherzelle, verbunden
ist, wird auf die Versorgungsspannung geladen. Innerhalb des Programmierintervalls wird
die Programmierspannung an eine ausgewählte Wortleitung angelegt und
die Passierspannung wird an die nicht ausgewählten Wortleitungen angelegt. Für Speicherzellen,
welche mit Bitleitungen verbunden sind, die auf die Massespannung
geladen sind, wird eine Vorspannungsbedingung erfüllt, welche zum
Auslösen
von F-N-Tunneln ausreichend ist, so dass aus dem Bulk Elektronen
in die floatenden Gates der Speicherzellen injiziert werden. Andererseits
ist es allgemein bekannt, dass Speicherzellen, welche mit Bitleitungen
verbunden sind, die auf die Versorgungsspannung geladen sind, für die Programmierung
gesperrt sind. Die Spannungen auf den Bitleitungen und den Wortleitungen
werden während des
Entladeintervalls entladen, das als Erholungsintervall wirkt, und
während
des Verifizierungsintervalls wird bestimmt, ob Speicherzellen eine
Sollschwellwertspannung aufweisen.
-
Der
oben beschriebene Programmiervorgang wird in der Patentschrift
US 6.353.555 offenbart.
Ein Programmiersperrverfahren wird in den Patenschriften
US 5.677.873 und
US 5.991.202 offenbart.
-
Gemäß der obigen
Beschreibung wird die Programmierspannung während eines Programmierintervalls,
d. h. einer Programmierungsausführungszeit,
an eine ausgewählte
Wortleitung angelegt. Das Anlegen der Programmierspannung an eine
ausgewählte
Wortleitung wird während
des Programmierintervalls ausgeführt,
das einen großen
Teil einer Programmierschleifendauer, d. h. der Zeitspanne, welche
zur Ausführung
einer Programmierschleife erforderlich ist, in Anspruch nimmt. Allgemein
wird die Länge
des Programmierintervalls in Übereinstimmung
mit einer Verzögerungszeit
eines RC-Glieds (RC-Verzögerungszeit)
und einer Programmierspannungswiederherstellungszeit bestimmt, welche
jeweils nachfolgend beschrieben werden.
-
Für jede Speicherzelle
einer ausgewählten Wortleitung
variiert die Zeitspanne, welche erforderlich ist, um die Steuergatespannung
der Speicherzelle auf die Programmierspannung zu setzen, in Abhängigkeit
vom Abstand der Speicherzelle von der Zeilenauswahlschaltung des
NAND-Flashspeicherbauelements.
Das bedeutet unter Bezugnahme auf 1, dass
die Zeitspanne, welche erforderlich ist, um die Steuergatespannung
einer Zelle A zu setzen, welche relativ nahe an der Zeilenauswahlschaltung angeordnet
ist, kürzer
als die Zeitspanne ist, welche erforderlich ist, um die Steuergatespannung
einer Zelle B zu setzen, welche relativ weit entfernt von der Zeilenauswahlschaltung
angeordnet ist, da die Steuergateaufladung und eine korrespondierende
Signallaufzeit für
die Zelle B länger
dauern als für
die Zelle A. Das bedeutet, dass verschiedene RC-Verzögerungsperioden
zwischen den Speicherzellen A und B vorhanden sind, welche mit der
gleichen Wortleitung verbunden sind.
-
Wenn
eine Programmierspannung an eine ausgewählte Wortleitung angelegt wird,
fällt die
angelegte Spannung durch den Ladeprozess der ausgewählten Wortleitung
unter eine Sollspannung ab. Eine Generatorschaltung für hohe Spannung
bringt die angelegte Programmierspannung wieder auf die Sollspannung.
Die Zeitspanne, welche zur Wiederherstellung der reduzierten Programmierspannung auf
die Sollspannung erforderlich ist, wird als Programmierspannungswiederherstellungs-
oder Programmierspannungserholzeit bezeichnet.
-
Leider
variieren die Programmierspannungswiederherstellungszeit und die
RC-Verzögerungszeit mit
Prozess-, Spannungs- und Umgebungsbedingungen. Aus diesem Grund
werden diese Zeiten so gesetzt, dass sie an die schlechtesten Bedingungen angepasst
sind, d. h. an die Be dingungen, welche die längste Programmierspannungswiederherstellungszeit
und die längste
RC-Verzögerungszeit
verursachen. Das bedeutet, dass eine Toleranz zur Programmierausführungszeit
addiert wird, um diese an die schlechtesten Bedingungen anzupassen.
-
Um
den kontinuierlichen Bedarf an Hochgeschwindigkeitsspeichern zu
erfüllen,
ist es vorteilhaft, die Programmierschleifendauer und somit die
Gesamtprogrammierdauer zu reduzieren.
-
In
der Patentschrift
US 6.147.906 sind
ein Flashspeicherbauelement und ein zugehöriges Programmierverfahren
offenbart, bei denen zur Optimierung der Programmierdauer eine das
Speicherbauelement steuernde Zustandsmaschine vom Ausgangssignal
eines Komparators gesteuert wird, der eine Wortleitungsprogrammierspannung
mit einer Bitleitungsfreigabespannung vergleicht und dadurch anzeigt,
wenn ein vorgegebener Spannungspegel erreicht ist.
-
Es
ist Aufgabe der Erfindung, ein Flashspeicherbauelement und ein zugehöriges Programmierverfahren
anzugeben, welche eine gegenüber dem
oben erwähnten
Stand der Technik reduzierte Gesamtprogrammierdauer aufweisen.
-
Die
Erfindung löst
diese Aufgabe durch ein Flashspeicherbauelement mit den Merkmalen
des Patentanspruchs 1 oder 15 und durch ein Programmierverfahren
mit den Merkmalen des Patentanspruchs 16.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie das zu deren besserem Verständnis oben erläuterte,
herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Schaltbild einer herkömmlichen Speicherzellenfeldstruktur,
-
2 ein
Blockdiagramm eines erfindungsgemäßen Flashspeicherbauelements,
-
3 ein
Blockdiagramm eines für
das Flashspeicherbauelement von 2 geeigneten
Generators für
hohe Spannung gemäß der Erfindung,
-
4 ein
Schaltbild einer für
das Flashspeicherbauelement von 2 geeigneten
Schaltung zur Erzeugung eines Programmierungsausführungsendesignals
gemäß der Erfindung,
-
5A und 5B Zeitablaufdiagramme eines
beispielhaften Programmiervorgangs für ein Flashspeicherbauelement
gemäß der Erfindung
und
-
6 ein
Blockdiagramm eines weiteren erfindungsgemäßen Flashspeicherbauelements.
-
Unter
Bezugnahme auf 2 umfasst ein dort gezeigtes,
erfindungsgemäßes Flashspeicherbauelement 100 ein
Speicherzellenfeid 110, das einen oder mehrere Speicherblöcke aufweist.
Jeder Speicherblock kann beispielsweise auf die gleiche Weise wie
der in 1 dargestellte Speicherblock konfiguriert sein.
Eine Zeilendecoderschaltung 120 wählt eine der Wortleitungen
im Speicherzellenfeld 110 aus. Während eines Programmiervorgangs
versorgt die Zeilenauswahlschaltung 120 die ausgewählte Wortleitung
mit einer Programmierspannung Vpgm und die nicht ausgewählten Wortleitungen
mit einer Passierspannung Vpass. Zudem speichert eine Seitenpufferschaltung 130 während des
Programmiervorgangs Programmierdaten, die von einer Spaltenauswahlschaltung 140 zur
Verfügung
gestellt werden, und lädt
jede Bitleitung gemäß den gespeicherten
Daten mit einer vorbestimmten Spannung, beispielsweise mit einer
Versorgungsspannung oder einer Massespannung. Zusätzlich tastet
die Seitenpufferschaltung 130 während Lesevorgängen und
Leseverifizierungsvorgängen
in Speicherzellen einer ausgewählten
Wortleitung gespeicherte Daten ab. Wäh rend eines Lesevorgangs werden
die abgetasteten Daten in der Seitenpufferschaltung 130 über die Spaltenauswahlschaltung 140 an
eine externe Einheit übertragen.
Während
eines Leseverifizierungsvorgangs werden die abgetasteten Daten in
der Seitenpufferschaltung 130 einer Bestanden/Nichtbestanden-Überprüfungsschaltung 150 zur
Verfügung gestellt,
welche bestimmt, ob die über
die Spaltenauswahlschaltung 140 übertragenen Datenwerte korrekt
sind.
-
Eine
Steuerlogik 160 ist so ausgeführt, dass sie den gesamten
Betrieb des Flashspeicherbauelements 100 steuert. Die Steuerlogik 160 ist
beispielsweise so ausgeführt,
dass sie Programmierschleifen steuert, die jeweils ein Bitleitungsaufbauintervall,
ein Programmierintervall, ein Entlade-/Erholungsintervall und ein
Verifizierungsintervall umfassen. Während eines Programmiervorgangs
erzeugt die Steuerlogik 160 ein Pumpfreigabesignal PUMP_EN,
wenn sie einen Programmierbefehl CMD von einem externen Gerät empfängt. Während des
Programmierintervalls einer Programmierschleife erzeugt die Steuerlogik 160 ein
Steuersignal VPGM_EN und die Programmierspannung wird gemäß dem Steuersignal VPGM_EN
an eine ausgewählte
Wortleitung angelegt. Zudem erzeugt die Steuerlogik 160 vor
dem Programmierintervall einer Programmierschleife ein Steuersignal
VPASS_EN als Flagsignal und die Passierspannung wird gemäß dem Steuersignal VPASS_EN
an ausgewählte
und nicht ausgewählte Wortleitungen
angelegt.
-
Wenn
in der vorliegenden Beschreibung gesagt wird, dass ein Signal, „während” eines
Intervalls erzeugt oder aktiviert wird, kann es an irgendeinem Zeitpunkt,
einschließlich
eines Startpunkts des Intervalls, innerhalb des Intervalls erzeugt
oder aktiviert werden oder mehrfach innerhalb des Intervalls erzeugt
oder aktiviert werden.
-
Eine
Generatorschaltung 170 für hohe Spannung erzeugt die
Programmierspannung Vpgm und die Passierspannung Vpass gemäß dem Pumpfreigabesignal
PUMP_EN mit einem bekannten Ladungspumpverfahren. Wenn die Programmierspannung
Vpgm und die Passierspannung Vpass ihre entsprechenden Sollwerte
erreicht haben, wird der Pumpvorgang der Generatorschaltung 170 für hohe Spannung
angehalten. Die Generatorschaltung 170 für hohe Spannung
verbleibt jedoch in einem aktiven Zustand. Wenn die Programmierspannung
Vpgm während
eines Programmierintervalls unter die Sollspannung abfällt, nimmt
die Generatorschaltung 170 für hohe Spannung den Pumpvorgang
wieder auf, so dass die Programmierspannung Vpgm wieder auf den
Sollwert gebracht wird. Wenn die Programmierspannung Vpgm wieder
auf den Sollwert gebracht wurde, deaktiviert die Generatorschaltung 170 für hohe Spannung
ein Taktfreigabesignal CLK_EN, indem sie es z. B. auf einen niedrigen
logischen Pegel setzt, welches ein Flagsignal ist und als Programmierspannungswiederherstellungssignal wirkt.
Die Deaktivierung des Taktfreigabesignals CLK_EN zeigt an, dass
die Programmierspannung Vpgm wieder auf ihren Sollwert gebracht
wurde. Während
jeder Programmierschleife erzeugt ein Programmierungsausführungsendesignalgenerator 180 gemäß dem von
der Generatorschaltung 170 für hohe Spannung zur Verfügung gestellten Programmierspannungswiederherstellungssignal CLK_EN
ein Programmierungsausführungsendesignal
PGM_EXE_END. Wenn das Programmierungsausführungsendesignal PGM_EXE_END
erzeugt wird, schließt
die Steuerlogik 160 das aktuelle Programmierintervall ab
und initiiert sequentiell Entlade- und Leseverifizierungsvorgänge.
-
Wie
durch die obige Beschreibung deutlich wird, ist eine Programmierungsausführungszeit,
welche mit dem Programmierintervall einer jeden Programmierschleife
korrespondiert, keine feste Zeitspanne, die gemäß den oben beschriebenen Bedingungen,
z. B. Programmierspannungswiederherstellungszeit und RC-Verzögerungszeit,
bestimmt wird, sondern die automatisch und effizient gemäß Programmierspannungswiederherstellungsinformationen
bestimmt wird. Daher ist es möglich,
das Programmierintervall durch Entfernen der Toleranz, die nicht
immer erforderlich ist, und durch die automatische Bestimmung der
Programmierspannungswiederherstellungszeit und der RC-Verzögerungszeit
für jedes
Programmierintervall zu verkürzen,
wodurch die Gesamtprogrammierungsdauer reduziert wird. Zusätzlich wird
durch die Reduzierung der Länge
des Programmierintervalls die Belastung der Speicherzellen durch
die Programmierspannung und die Passierspannung abgeschwächt.
-
3 veranschaulicht
ein mögliches
Ausführungsbeispiel
der Generatorschaltung 170 für hohe Spannung aus 2 gemäß der Erfindung.
Unter Bezugnahme auf 3 umfasst die Generatorschaltung 170 für hohe Spannung
eine Pumpschaltung 172, einen Spannungsteiler 174,
einen Komparator 176 und einen Takttreiber 178.
Die Pumpschaltung 172 erzeugt eine relativ hohe Spannung
für die Programmierspannung
Vpgm gemäß einem Pumptaktsignal
PUMP_CLK. Der Spannungsteiler 174 teilt die Programmierspannung
Vpgm, um eine geteilte Spannung Vdiv zu erzeugen. Der Komparator 176 arbeitet
gemäß dem Pumpfreigabesignal PUMP_EN
und vergleicht die geteilte Spannung mit einer Referenzspannung.
Der Komparator 176 aktiviert das als Programmierspannungswiederherstellungssignal
wirkende Taktfreigabesignal CLK_EN, indem er es z. B. auf einen
hohen logischen Pegel setzt, wenn die geteilte Spannung Vdiv niedriger
als die Referenzspannung ist, d. h. wenn die Programmierspannung
Vpgm niedriger als die Sollspannung ist. Der Komparator 176 deaktiviert
das Takffreigabesignal CLK_EN, wenn die geteilte Spannung Vdiv größer oder
gleich der Referenzspannung ist, d. h. wenn die Programmierspannung
Vpgm die Sollspannung erreicht hat. Der Takttreiber 178 gibt
selektiv gemäß dem Taktfreigabesignal
CLK_EN ein Taktsignal CLK als Pumptaktsignal PUMP_CLK aus, z. B.
wenn das Taktfreigabesignal CLK_EN einen hohen logischen Pegel aufweist.
Wenn dies der Fall ist, führt
die Pumpschaltung 172 gemäß dem Pumptaktsignal PUMP_CLK
einen Pumpvorgang aus. Wenn das Taktfreigabesignal CLK_EN einen
niedrigen logischen Pegel aufweist, verhindert der Takttreiber 178, dass
das Taktsignal CLK ausgegeben wird. Wenn dies der Fall ist, führt die
Pumpschaltung 172 keinen Pumpvorgang aus.
-
Wenn
das Pumpfreigabesignal PUMP_EN aktiviert ist, erzeugt die Generatorschaltung 170 für hohe Spannung
die Programmierspannung Vpgm so, dass diese die Sollspannung erreicht.
Das Pumpfreigabesignal PUMP_EN wird zu Beginn eines Programmierbetriebsmodus
aktiviert und am Ende des Programmierbetriebsmodus deaktiviert.
Wenn die Programmierspannung Vpgm die Sollspannung erreicht hat,
wird das Taktfreigabesignal CLK_EN, welches als Programmierspannungswiederherstellungssignal
wirkt, gemäß dem Vergleichsergebnis des
Komparators 176 gesperrt. Wenn die Programmierspannung
Vpgm während
eines Programmierintervalls an eine ausgewählte Wortleitung angelegt wird,
fällt die
Programmierspannung Vpgm unter die Sollspannung ab, d. h. sie bricht
ein. Da die Programmierspannung Vpgm abfällt, wird das Taktfreigabesignal
CLK_EN wieder aktiviert. Dies ermöglicht, dass die Programmierspannung
Vpgm durch den Pumpbetrieb der Pumpe 172 wieder auf die
Sollspannung gebracht wird. Dies bedeutet, dass ein Aktivierungs-/Deaktivierungsschritt
des Taktfreigabesignals CLK_EN wenigstens einmal innerhalb eines
Programmierintervalls einer jeden Programmierschleife auftritt.
Die Deaktivierung des Taktfreigabesignals CLK_EN tritt insbesondere
dann auf, wenn die Programmierspannung Vpgm wieder auf die Sollspannung
gebracht wurde. Wie aus 3 ersichtlich ist, wird das
Taktfreigabesignal CLK_EN dem Programmierungsausführungsendesignalgenerator 180 als
Programmierspannungswiederherstellungsinformation zur Verfügung gestellt.
-
4 veranschaulicht
eine vorteilhafte Realisierung der Programmierungsausführungsendesignalgeneratorschaltung 180 aus 2 der
Erfindung. Wie aus 4 ersichtlich ist, umfasst der Programmierungsaus führungsendesignalgenerator 180 in
diesem Beispiel einen Einbruchsignalgenerator 182, einen
Wiederherstellungssignalgenerator 184, einen ersten Endesignalgenerator 186,
einen zweiten Endesignalgenerator 188 und einen Decoder 190.
-
Der
Einbruchsignalgenerator 182 erzeugt gemäß dem Steuersignal VPGM_EN
und dem Takffreigabesignal CLK_EN ein Einbruchsignal VPGM_DIP. Die
Programmierspannung Vpgm wird gemäß dem Steuersignal VPGM_EN
an eine ausgewählte
Wortleitung angelegt, und das Takffreigabesignal CLK_EN wirkt als
Programmierspannungswiederherstellungssignal. Der Einbruchsignalgenerator 182 umfasst
ein NAND-Gatter 201,
ein NOR-Gatter 203, Inverter 202 und 204 und
ein D-Flip-Flop 205, die
wie in 4 dargestellt miteinander verschaltet sind.
-
Der
Wiederherstellungssignalgenerator 184 erzeugt gemäß dem Steuersignal
VPGM_EN, dem Takffreigabesignal CLK_EN, welches als Programmierspannungswiederherstellungssignal wirkt,
und dem Einbruchsignal VPGM_DIP ein Wiederherstellungssignal VPGM_REC.
Der Wiederherstellungssignalgenerator 184 umfasst NAND-Gatter 207 und 209,
ein NOR-Gatter 211, Inverter 206, 208, 210 und 212 und
ein D-Flip-Flop 213, welche wie in 4 dargestellt
miteinander verschaltet sind.
-
Der
erste Endesignalgenerator 186 umfasst einen Zähler und
erzeugt gemäß dem Wiederherstellungssignal
VPGM_REC ein erstes Endesignal END1. Der zweite Endesignalgenerator 188 umfasst einen
Zähler
und erzeugt gemäß dem Steuersignal VPGM_EN
ein zweites Endesignal END2. Der Decoder 190 umfasst ein
NOR-Gatter 214 und einen Inverter 215 und erzeugt
das Programmierungsausführungsendesignal
PGM_EXE_END, wenn das erste Endesignal END1 oder das zweite Endesignal
END2 aktiviert ist.
-
Die
D-Flip-Flops 205 und 213 werden jeweils zurückgesetzt,
d. h. auf einen niedrigen logischen Pegel gesetzt, wenn das Flashspeicherbauelement anfänglich mit
Energie versorgt wird und wenn das Ende einer jeweiligen Programmierschleife
erreicht ist. Das bedeutet, dass die Ausgangssignale der D-Flip-Flops 205 und 213 jeweils
zu diesen Zeitpunkten auf niedrigen logischen Pegel gesetzt werden. Die
D-Flip-Flops 205 und 213 arbeiten in Synchronisation
mit einem Taktsignal LCLK, siehe die 5A und 5B.
-
Wie
oben ausgeführt,
wird das Taktfreigabesignal CLK_EN deaktiviert, wenn die Programmierspannung
Vpgm ihren Sollwert erreicht. Bevor das Speicherbauelement in eine
Programmierschleife eintritt, weist das Steuersignal VPGM_EN einen niedrigen
logischen Pegel auf. Wenn das Steuersignal VPGM_EN einen hohen logischen
Pegel aufweist, wird die Programmierspannung Vpgm an eine ausgewählte Wortleitung
angelegt. Gemäß diesen Bedingungen,
d. h. das Signal VPGM_EN hat hohen logischen Pegel und das Signal
CLK_EN hat niedrigen logischen Pegel, behalten die Ausgabesignale VPGM_DIP
und VPGM_REC des D-Flip-Flops 205 des
D-Flip-Flops 213 jeweils ihre Rücksetzpegel.
-
Der
zweite Endesignalgenerator 188 beginnt zu zählen, wenn
das Steuersignal VPGM_EN aktiviert wird. In diesem Ausführungsbeispiel
erzeugt der zweite Endesignalgenerator 188 das zweite Endsignal
END2, wenn das Steuersignal VPGM_EN aktiviert ist und eine Zeitspanne
von z. B. 14 μs
abgelaufen ist, nachdem das Steuersignal VPGM_EN aktiviert wurde.
Obwohl das Steuersignal VPGM_EN einen hohen logischen Pegel aufweist
und ein Eingang des NAND-Gatters 207 einen hohen logischen
Pegel aufweist, bleibt das Wiederherstellungssignal VPGM_REC auf
einem niedrigen logischen Pegel, d. h. auf dem Rücksetzpegel, da das Ausgangssignal des
D-Flip-Flops 205, d. h. das Einbruchsignal VPGM_DIP, einen
niedrigen logischen Pegel aufweist.
-
Wenn
das Steuersignal VPGM_EN einen hohen logischen Pegel aufweist, wird
die Programmierspannung Vpgm an eine ausgewählte Wortleitung angelegt.
Hierbei fällt
die Programmierspannung Vpgm aufgrund der Aufladung der Wortleitung unter
die Sollspannung ab. Wenn die Programmierspannung Vpgm unter die
Sollspannung abfällt, aktiviert
die Generatorschaltung 170 für hohe Spannung das Takffreigabesignal
CLK_EN. Ein Eingangssignal des NAND-Gatters 209 im Wiederherstellungssignalgenerator 184 wechselt
von einem hohen logischen Pegel auf einen niedrigen logischen Pegel gemäß dem Übergang
des Taktfreigabesignals CLK_EN von einem niedrigen logischen Pegel
auf einen hohen logischen Pegel. Gleichzeitig aktiviert der Einbruchsignalgenerator 182 in
Reaktion auf die Aktivierung des Taktfreigabesignals CLK_EN das
Einbruchsignal VPGM_DIP, da das Steuersignal VPGM_EN einen hohen
logischen Pegel aufweist. Das Einbruchsignal VPGM_DIP bleibt auf
seinem hohen logischen Pegel, bis die Programmierschleife beendet
ist oder bis das Verifizierungsintervall der Programmierschleife
beginnt. Da eines der Eingangssignale des NAND-Gatters 209 einen
hohen logischen Pegel aufweist und das andere einen niedrigen logischen
Pegel aufweist, bleibt das Ausgangssignal VPGM_REC des Wiederherstellungssignalgenerators 184 auf
seinem niedrigen logischen Pegel.
-
Wenn
die Programmierspannung Vpgm gemäß dem Pumpvorgang
der Pumpe 172 ihren Sollwert erreicht hat, wechselt das
Takffreigabesignal CLK_EN vom hohen logischen Pegel auf niedrigen logischen
Pegel. Dies gibt das Ausgangssignal des NAND-Gatters 209 im
Wiederherstellungssignalgenerator 184 frei, um vom niedrigen
logischen Pegel auf hohen logischen Pegel zu wechseln. Hierbei wechselt
das Ausgangssignal VPGM_REC des Wiederherstellungssignalgenerators 184 vom
niedrigen logischen Pegel auf hohen logischen Pegel. Wenn das Steuersignal
VPGM_REC auf hohen logischen Pegel wechselt, beginnt der erste Endesignalgenerator 186 zu
zählen.
In diesem Ausführungsbeispiel
aktiviert der erste Endesignalgenerator 186 das erste Endesignal END1,
wenn eine erste Zeitspanne von z. B. 2 μs nach dem Wechsel des Wiederherstellungssignals
VPGM_REC auf den hohen logischen Pegel abgelaufen ist. Der Decoder 190 kann
das erste oder zweite Endesignal END1 oder END2 als Programmierungsausführungsendesignal
PGM_EXE_END ausgeben, d. h. jeweils das Endesignal, das einen hohen
logischen Pegel aufweist.
-
In
diesem Ausführungsbeispiel
wird die Länge
der zweiten Zeitspanne, welche vom zweiten Endesignalgenerator 188 verwendet
wird, gemäß den oben
beschriebenen schlechtesten Bedingungen bestimmt. Daher wird typischerweise
das erste Endesignal END1 vor dem zweiten Endesignal END2 aktiviert,
nachdem das Steuersignal VPGM_EN aktiviert ist. Das zweite Endesignal
END2 ist ein Signal, welche einen Abschluss einer Programmierschleife
erzwingt, wenn die Programmierschleife aufgrund von unvorhersehbaren
Fehlfunktionen der Generatorschaltung 170 für hohe Spannung
und/oder des Programmierungsausführungsendesignalgenerators 180 nicht
schon vorher durch das erste Endesignal END1 abgeschlossen wurde.
-
Die 5A und 5B zeigen
in Zeitablaufdiagrammen einen beispielhaften Programmiervorgang
für ein
erfindungsgemäßes Flashspeicherbauelement.
Der beispielhafte Programmiervorgang wird nachfolgend unter Bezugnahme
auf die 2, 5A und 5B im
Detail beschrieben. In den 5A und 5B sind
jeweils das Timing, das mit dem Programmierintervall einer Programmierschleife korrespondiert,
und eine Zeitspanne kurz vor dem Programmierintervall dargestellt.
-
Um
Speicherzellen einer ausgewählten
Zeile oder Wortleitung zu programmieren, werden zuerst Programmierdaten über die
Spaltenauswahlschaltung 140 in die Seitenpufferschaltung 130 geladen. Wenn
die Programmierdaten geladen sind, programmiert das Flashspeicherbauelement 100 in
Reaktion auf die Eingabe eines Programmierbefehls CMD die geladenen
Daten in die Speicherzellen. Dieser Prozess wird nachfolgend im
Detail beschrieben.
-
In
Reaktion auf den Programmierbefehl CMD erzeugt die Steuerlogik 160 das
Pumpfreigabesignal PUMP_EN. Gemäß dem Pumpfreigabesignal PUMP_EN
bereitet die Generatorschaltung 170 hohe Spannungen vor,
wie die Programmierspannung und die Passierspannung, welche während des
Programmiervorgangs an Wortleitungen angelegt werden. Wenn die hohen
Spannungen vorbereitet sind, führt die
Steuerlogik 160 eine erste Programmierschleife aus. Während eines
Bitleitungsaufbauintervalls der Programmierschleife werden die Bitleitungen
BL0 bis BL(n – 1) über die
Seitenpufferschaltung 130 gemäß den geladenen Daten und gesteuert
von der Steuerlogik 160 auf die Versorgungsspannung oder
die Massespannung geladen.
-
Wenn
ein Programmierintervall vor dem Beginn steht, aktiviert die Steuerlogik 160 das
Steuersignal VPASS_EN, bevor das Programmierintervall anfängt, und
die Zeilenauswahlschaltung 120 versorgt Wortleitungen mit
der Passierspannung Vpass von der Generatorschaltung 170 für hohe Spannung
gemäß dem aktivierten
Steuersignal VPASS_EN. Nach Ablauf einer Zeitspanne deaktiviert
die Steuerlogik 160 das Steuersignal VPASS_EN und aktiviert gleichzeitig
das Steuersignal VPGM_EN, und das Programmierintervall beginnt.
Die Zeilenauswahlschaltung 120 versorgt eine ausgewählte Wortleitung mit
der Programmierspannung Vpgm von der Generatorschaltung 170 für hohe Spannung
gemäß dem aktivierten
Steuersignal VPGM_EN. Der zweite Endesignalgenerator 188 aus 4 beginnt
zu zählen, wenn
das Steuersignal VPGM_EN aktiviert wird. Wenn die Programmierspannung
Vpgm an die ausgewählte
Wortleitung angelegt wird, bricht die Programmierspannung Vpgm ein,
wie in den 5A und 5B dargestellt
ist. Das bedeutet, dass die Programmierspannung Vpgm unter ihre
Sollspannung abfällt.
-
Wenn
die Programmierspannung Vpgm unter die Sollspannung abfällt, aktiviert
die Generatorschaltung 170 für hohe Spannung das Takffreigabesignal
CLK_EN, welches als Programmierspannungswiederherstellungssignal
wirkt. Unter Bezugnahme auf 4 wechselt
ein Eingangssignal des NAND-Gatters 209 im Wiederherstellungssignalgenerator 184 auf
einen niedrigen logischen Pegel gemäß der Aktivierung des Taktfreigabesignals CLK_EN.
Zu diesem Zeitpunkt aktiviert der Einbruchsignalgenerator 182 in
Reaktion auf die Aktivierung des Taktfreigabesignals CLK_EN das
Einbruchsignal VPGM_DIP, da das Steuersignal VPGM_EN einen hohen
logischen Pegel aufweist. Das Einbruchsignal VPGM_DIP bleibt auf
seinem hohen logischen Pegel, bis die Programmierschleife abgeschlossen
ist oder bis ein Verifizierungsintervall der Programmierschleife
beginnt. Da ein Eingangssignal des NAND-Gatters 209 einen
hohen logischen Pegel aufweist, und das andere Eingangssignal einen
niedrigen logischen Pegel aufweist, behält das Ausgangssignal VPGM_REC
des Wiederherstellungssignalgenerators 184 den niedrigen
logischen Pegel bei.
-
5A zeigt
ein Programmierintervall, in dem das Programmierungsausführungsendesignal PGM_EXE_END
nach Ablauf der ersten Zeitspanne seit dem Übergang des Wiederherstellungssignals VPGM_REC
auf hohen logischen Pegel auf hohen logischen Pegel wechselt. Wenn
die Programmierspannung Vpgm gemäß dem Pumpvorgang
der Pumpschaltung 172 ihren Sollwert erreicht, wechselt das
Takffreigabesignal CLK_EN vom hohen logischen Pegel auf den niedrigen
logischen Pegel. Unter Bezugnahme auf 4 ermöglicht dies,
dass eine Ausgabe des NAND-Gatters 209 des Wiederherstellungssignalgenerators 184 vom
niedrigen logischen Pegel auf den hohen logischen Pegel wechselt. Wenn
dies auftritt, wechselt die Ausgabe VPGM_REC des Wiederherstellungssignalgenerators 184 auf
hohen logischen Pegel. Wenn das Steuersignal VPGM_REC auf hohen
logischen Pegel wechselt, beginnt der erste Endesignalgenerator 186 zu
zählen.
In diesem Ausführungs beispiel
aktiviert der erste Endesignalgenerator 186 das erste Endesignal
END1, wenn die erste Zeitspanne von z. B. 2 μs nach dem Wechsel des Wiederherstellungssignals VPGM_REC
auf den hohen logischen Pegel abgelaufen ist. Der Decoder 190 gibt
dann das erste Endesignal END1 als Programmierungsausführungsendesignal
PGM_EXE_END aus. Wenn das Programmierungsausführungsendesignal PGM_EXE_END auf
den hohen logischen Pegel wechselt, schließt die Steuerlogik 160 das
Programmierintervall ab und führt
sequentiell ein Entladeintervall und ein Verifizierungsintervall
aus. Die Vorgänge
des Entladeintervalls und des Verifizierungsintervalls sind allgemein bekannt,
so dass auf eine detaillierte Beschreibung dieser Intervalle verzichtet
werden kann.
-
5B zeigt
ein Programmierintervall, in dem das Programmierungsausführungsendesignal PGM_EXE_END
nach Ablauf der zweiten Zeitspanne seit dem Übergang des Steuersignals VPGM_EN auf
hohen logischen Pegel auf einen hohen logischen Pegel wechselt.
Nach Ablauf der zweiten Zeitspanne von z. B. 14 μs nach Aktivierung des Steuersignals VPGM_EN
wird, wenn das erste Endesignal END1 nicht schon aktiviert und dadurch
das Programmierintervall abgeschlossen wurde, das zweite Endesignal
END2 durch den zweiten Endesignalgenerator 188 aktiviert.
Das zweite Endesignal END2 wird über den
Decoder als Programmierungsausführungsendesignal
PGM_EXE_END ausgegeben. Analog schließt die Steuerlogik 160 das
Programmierintervall ab und führt
sequentiell ein Entladeintervall und ein Verifizierungsintervall
aus, wenn das Programmierungsausführungsendesignal PGM_EXE_END aktiviert
wird.
-
Gemäß der beispielhaften
Ausführungsform des
erfindungsgemäßen Flashspeicherbauelements wird
die Länge
eines Programmierintervalls automatisch in Abhängigkeit vom Taktfreigabesignal
bestimmt, welches als Programmierspannungswiederherstellungsinformation
wirkt. Die Er findung ist aber nicht auf diese Ausführungsform
beschränkt.
Wie beispielsweise aus 6 ersichtlich ist, ist ein Ende einer
Wortleitung mit der Zeilenauswahlschaltung 120 verbunden,
und am anderen Ende der Wortleitung wird durch einen Programmierungsausführungsendesignalgenerator 180' bestimmt, ob
die Spannung auf der Wortleitung die Programmierspannung Vpgm erreicht.
Die detektierte Information wird als das Programmierspannungswiederherstellungssignal
verwendet und der Programmierungsausführungsendesignalgenerator 180' erzeugt das Programmierungsausführungsendesignal PGM_EXE_END
gemäß dem Programmierspannungswiederherstellungssignal.
Der Programmierungsausführungsendesignalgenerator 180' umfasst den
in 4 dargestellten zweiten Endesignalgenerator 188.
Wie im vorher beschriebenen Ausführungsbeispiel
schließt
die Steuerlogik 160 das aktuelle Programmierintervall ab,
wenn das Programmierungsausführungsendesignal PGM_EXE_END
erzeugt wird. Wie im vorher beschriebenen Ausführungsbeispiel ermöglicht das
erfindungsgemäße Flashspeicherbauelement
gemäß 6 außerdem,
dass ein Programmierintervall effizient festgelegt wird und die
Belastung der Speicherzellen durch die Programmierspannung und die
Passierspannung abgeschwächt
wird.
-
In
den oben beschriebenen Ausführungsbeispielen
ist eine Programmierausführungszeit,
welche mit einem Programmierintervall einer jeden Programmierschleife
korrespondiert, keine feste Zeitspanne, die abhängig von den oben beschriebenen
Bedingungen, wie Programmierspannungswiederherstellungszeit und
RC-Verzögerungszeit,
bestimmt wird. Vielmehr wird sie automatisch und effizient in Abhängigkeit
von Programmierspannungswiederherstellungsinformationen bestimmt.
Daher ist es möglich, die
Programmierausführungsdauer,
d. h. die Länge des
Programmierintervalls, durch Entfernen der Toleranz, die nicht immer
erforderlich ist, und durch die automatische Bestimmung der Programmierspannungswiederherstellungszeit
und der RC-Verzögerungszeit
für jedes
Programmierintervall zu verkürzen,
wodurch die Gesamtprogram mierungszeit reduziert wird. Zusätzlich wird
durch die Reduzierung der Programmierausführungsdauer, d. h. der Länge des Programmierintervalls,
die Belastung der Speicherzellen durch die Programmierspannung und
die Passierspannung abgeschwächt.