-
Die
Erfindung betrifft ein Speicherprogrammierverfahren nach dem Oberbegriff
des Anspruchs 1 und ein entsprechend programmierbares Halbleiterspeicherbauelement.
-
Neuere
Entwicklungen bei Speicheranwendungen, wie z.B. Massenspeicher,
Codespeicher und andere Multimedianwendungen, erfordern eine ansteigende
Anzahl von Speicherbauelementen mit hoher Dichte. Massenspeicheranwendungen
umfassen Speicherkarten, z.B. für
tragbare Computer, Festkörperspeicher,
z.B. widerstandsfähige
und/oder zuverlässige
Speicherplatten, digitale Kameras zum Aufnehmen von stehenden oder
bewegten Bildern und Ton, und Sprach- oder Audiorekorder für Aufnahmen mit
quasi CD-Tonqualität.
Codespeicheranwendungen umfassen BIOS-Anwendungen (Basic-Input/Output-System-Anwendungen) und
Netzwerkanwendungen wie z.B. Speicher in einem Personalcomputer
(PC) und anderen Endgeräten,
in Netzverbindern (Routern) und Knotenpunkten (Hubs), in Telekommunikationsanwendungen,
wie z.B. Vermittlungen, und in Mobiltelefonanwendungen, wie z.B.
Codes und/oder Daten, sowie Anwendungen in anderen tragbaren elektronischen
Informationsgeräten,
wie z.B. Codes und/oder Daten für
persönliche
digitale Assistenten (PDAs), Palm-Betriebssysteme (POS) und persönliche Kommunikationsassistenten (PCAs).
-
In
der Regel benutzen Massenspeicheranwendungen kostengünstigere
Speicher mit einer höheren
Dichte und/oder einer besseren Programmier-/Löschzykluslebensdauer, während Codespeicheranwendungen
einen schnelleren direkten Zugriff aufweisen und/oder intern ausführbar sind
(XIP).
-
Bekannte
Speicher umfassen dynamische Speicher mit direktem Zugriff (DRAM),
statische Speicher mit direktem Zugriff (SRAM) und nichtflüchtige Speicher
(NVM). Nichtflüchtige
Speicher umfassen maskierte Nur-Lesespeicher
(ROM), löschbare, programmierbare
Nur-Lesespeicher (EPROM), elektrisch löschbare, programmierbare Nur-Lesespeicher (EEPROM),
Flashspeicher, z.B. flash-löschbare
EEPROMs, und ferroelektrische Speicher. Nichtflüchtige Speicher verlieren keine
Daten, wenn die Versorgungsspannung fehlt, erlauben aber normalerweise keinen
wahlfreien Zugriff und sind im Allgemeinen langsamer als flüchtige Speicher.
-
Flashspeicher
können
aus einer Kombination von löschbaren,
programmierbaren Nur-Lesespeichern (EPROM) und elektrisch löschbaren,
programmierbaren Nur-Lesespeichern (EEPROM) aufgebaut sein, und
zwar als NAND- oder NOR-Flashspeicher. Lösch- und Programmiervorgänge können in
einem Flashspeicher durch Anlegen von verschiedenen Spannungen an
jede Flashspeicherzelle ausgeführt werden.
-
NAND-Flashspeicher
umfassen eine Kette von in Reihe geschalteten Zellen, z.B. kann
eine Kette aus 16 Zellen bestehen. Die Kette weist einen oder mehrere
Kettenauswahltransistoren auf. NAND-Flashspeicher besitzen einen
relativ kleinen „An-Zellenstrom" und daher eine relativ langsame Abtastzeit,
z.B. 10ms bis 25ms, und führen
einen Lesevorgang durch gleichzeitiges Abtasten von Seiteneinheiten,
z.B. 512 Bytes, und Zwischenspeichern in Seitenpuffern aus. NAND-Flashspeicher
können
Daten mit einer relativ hohen Geschwindigkeit, z.B. 50ns, aus einem
Seitenpufferspeicher auslesen.
-
NAND-Flashspeicher
können
Programmier- und/oder Löschvorgänge durch
einen Tunnelvorgang ausführen,
z.B. durch Fowler-Nordheim-Tunneln (F-N-Tunneln).
Ein Programmiervorgang kann einen relativ schnellen seriellen Datenladevorgang
in einen Seitenpuffer umfassen, z.B. 50ns, durch welchen Zellen
gleichzeitig programmiert werden, beispielsweise 512 Bytes. Ein
Löschvorgang
kann in Blockeinheiten erfolgen, wobei eine Anzahl von Seiten, z.B. 32
Seiten mit 16k-Bytes Zellen, gleichzeitig gelöscht werden.
-
Ein
zuverlässiger
F-N-Tunnelvorgang kann bei ungefähr
10mV/cm ausgeführt
werden, woraus ein niedriger Energieverbrauch, eine niedrigere Temperaturabhängigkeit,
einheitlichere Programmier-/Löschvorgänge und/oder
einfachere Bauelement-/Spannungsskalierungen resultieren können.
-
NAND-Flashprogrammiervorgänge können eine
Kopplung zwischen einem Gate und einem Kanal verwerten. Eine zu
programmierende Zelle kann beispielsweise eine höhere Spannungsdifferenz zwischen
dem Gate und dem Kanal als eine nicht zu programmierende Zelle aufweisen.
Zudem können NAND-Flashprogrammiervorgänge eine
Schwellwertspannungsverteilung benutzen, wie sie in einem Beispiel
aus 1 ersichtlich ist. 1 zeigt das Verhältnis zwischen
einer Wortleitungsspannung Vword, z.B. 0V,
einer Lesespannung Vread und einer Zellenspannungsverteilung
Vth einer unprogrammierten oder gelöschten Zelle und einer programmierten
Zelle. In 1 repräsentiert
die y-Richtung die Schwellwertspannung der Speicherzelle und die x-Richtung
reprä sentiert
die Anzahl der Zellen mit einer bestimmten Schwellwertspannung.
-
Herkömmlich wird
eine Zellenspannungsverteilung Vth durch eine Inkrementschrittimpulsprogrammierung
(ISPP) gesteuert. Beispielhafte ISPPs sind in 2A und 2B dargestellt. 2A zeigt ein Ausführungsbeispiel
einer bekannten ISPP, bei welcher die Pulsweite und die Amplitude
gleich bleiben. Wie aus 2A ersichtlich
ist, wird eine Spannung V0 von beispielsweise
18V während
einer Programmierperiode von beispielsweise 30μs angelegt und eine andere Spannung
V1 von beispielsweise 1,2V wird während einer
Verifizierperiode von beispielsweise 5μs angelegt. 2B zeigt ein anderes Ausführungsbeispiel
einer bekannten ISPP, bei welcher die Pulsweite gleich bleibt und
die Amplitude variiert wird. Wie aus 2B ersichtlich
ist, wird eine Spannung V0 von beispielsweise
15V während
einer ersten Programmierperiode von beispielsweise 30μs angelegt
und um beispielsweise 0,5V bei jeder nachfolgenden Programmierperiode
erhöht,
bis eine Endspannung von beispielsweise 19V erreicht wird. Eine andere
Spannung V1 von beispielsweise 1,2V wird während jeder
Verifizierperiode von beispielsweise 5μs angelegt. In den 2A und 2B beträgt die Gesamtdauer ungefähr 250μs. Die Variation
der Zellenspannung Vth und die Zyklenanzahl gemäß 2B ist in vorteilhafter Weise kleiner
als in 2A.
-
3 zeigt ein aus dem Stand
der Technik bekanntes Überprogrammierungsproblem.
Ist die Zellenschwellwertspannung Vth höher als die Lesespannung Vread, dann wird ein Lesevorgang für eine NAND-Zellenkette eventuell
nicht richtig ausgeführt. Es
gibt bekannte Verfahren, welche während einer ISPP eine Überprogrammierung
verhindern.
-
Bekannte
Verfahren benutzen zudem ein Flagsignal oder eine andere Markierung,
um anzuzeigen, dass ein normaler Zellenprogrammiervorgang ordnungsgemäß beendet
wurde, aufgrund der relativ langen Pro grammierzeit von ungefähr 250μs, wie oben
angegeben, vor allem auch für NAND-Flashspeicher.
Während
dieser relativ langen Programmierzeit kann ein Abschaltvorgang oder
eine andere ähnliche
Unterbrechung auftreten. Das Flagsignal oder die andere Markierung
werden benutzt, um zu bestätigen,
dass der Programmiervorgang abgeschlossen ist. 4A zeigt ein Beispiel, in welchem das
Flagsignal oder die andere Markierung, z.B. eine Bestätigungsmarkierung,
abgeschlossen wurde, und 4B zeigt
ein Beispiel, in welchem die normale Programmierung und/oder das
Flagsignal oder die andere Markierung nicht abgeschlossen wurde.
-
Bei
bekannten Verfahren, in welchen normale Zellenprogrammiervorgänge ausgeführt werden, wird
eine Feststellung getroffen, ob der Vorgang abgeschlossen ist, und
wenn dies der Fall ist, wird das Flagsignal oder die andere Markierung
geschrieben. Das Flagsignal oder die andere Markierung kann in einen
Ersatzzellenbereich des Speichers geschrieben werden.
-
5A zeigt eine bekannte normale
Zellenprogrammierung und Bestätigung
der Zellenprogrammierung sowie eine bekannte normale Dauer der Zellenprogrammierung
und Bestätigung
der Zellenprogrammierung. Wie aus 5A ersichtlich
ist, umfasst die bekannte normale Dauer der Zellenprogrammierung
und Bestätigung
der Zellenprogrammierung Zyklen aus einer Programmierperiode und einer
Verifizierungsperiode. 5B zeigt
ein Beispiel einer Speicherposition, in welche gemäß dem Stand der
Technik die bekannte normale Zellenprogrammierung und Bestätigung der
Zellenprogrammierung geschrieben werden können. Wie aus 5B ersichtlich, gilt für das Schreiben
der Zellenprogrammierung:
1 Seite/1 Programmierungszeit = 512
Byte/1 Programmierungszeit = 4k Bit/250μs (200μs ~ 300μs) = 16,4 Bit/1 μs.
-
Für das Schreiben
der Bestätigungsmarkierung
gilt:
1 Bit/1 Programmierungszeit = 1 Bit/250μs = 0,004 Bit/1 μs.
-
Aus
den obigen Ausführungen
ergibt sich, dass bei diesen herkömmlichen Techniken das Schreiben
der Bestätigungsmarkierung
deutlich weniger effizient als das Schreiben der Zellenprogrammierung
ist.
-
Es
ist Aufgabe der Erfindung, ein Programmierverfahren mit gegenüber dem
oben erwähnten Stand
der Technik reduzierter Programmierungszeit anzugeben und ein Halbleiterspeicherbauelement zur
Verfügung
zu stellen, welches einen Flashspeicher mit einer dementsprechend
reduzierten Programmierungszeit umfasst.
-
Die
Erfindung löst
diese Aufgabe durch ein Programmierverfahren mit den Merkmalen des
Patentanspruchs 1 und durch ein Halbleiterspeicherbauelement mit
den Merkmalen des Patentanspruchs 25 oder 37.
-
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
Diagramm zur Darstellung von Zusammenhängen zwischen einer Wortleitungsspannung
Vword, einer Lesespannung Vread und
einer Zellenspannungsverteilung Vth einer unprogrammierten oder
gelöschten
Zelle und einer programmierten Zelle,
-
2A und 2B jeweils
ein Diagramm eines Beispiels einer Inkrementschrittimpulsprogrammierung
(ISPP),
-
3 ein
Diagramm zur Darstellung eines bekannten Überprogrammierungsproblems,
-
4A ein
Diagramm zur Darstellung eines Programmierbeispiels, bei welchem
eine Bestätigungsmarkierung
erfolgreich abgeschlossen wird,
-
4B ein
Diagramm zur Darstellung eines Programmierbeispiels, bei welchem
eine Bestätigungsmarkierung
nicht erfolgreich abgeschlossen wird,
-
5A ein
Diagramm zur Darstellung einer bekannten normalen Zellenprogrammierung
und Bestätigung
der Zellenprogrammierung und der hierzu benötigten Zeitdauern,
-
5B eine
schematische Darstellung einer Speicherposition, in welche die bekannte
normale Zellenprogrammierung und die bekannte Bestätigung der
Zellenprogrammierung geschrieben werden können,
-
6A, 6B und 6C jeweils
ein Diagramm zur Darstellung von verschiedenen Programmierverfahren
für ein
Flagsignal, ein Steuerflagsignal, eine Markierung, eine Steuermarkierung
oder für eine
andere Steuerinformation und für
Zellendaten gemäß der Erfindung,
-
7A und 7B Diagramme
zum Vergleich eines herkömmlichen
Programmierverfahrens und eines erfindungsgemäßen Programmierverfahrens,
-
8A und 8B jeweils
ein Flussdiagramm von Ausführungsbeispielen
des erfindungsgemäßen Programmierverfahrens,
-
9A bis 9D jeweils
ein Diagramm zur Darstellung einer Anwendung von zwei verschiedenen
Programmierverfahren in erfindungsgemäßen Ausführungsbeispielen,
-
10A bis 10D jeweils
ein Blockdiagramm zur Darstellung eines Speicherzellenfelds und
Belegungen desselben für
erfindungsgemäße Ausführungsbeispiele,
-
11A ein Blockdiagramm eines Hauptspeicherfelds
und eines Ersatzspeicherfelds in einem erfindungsgemäßen Ausführungsbeispiel,
-
11B ein Flussdiagramm eines Schreibvorgangs in
ein NAND-Flashspeicherzellenfeld
in einem erfindungsgemäßen Ausführungsbeispiel,
-
12A und 12B jeweils
ein Flussdiagramm eines gegenüber 8A und 8B allgemeineren
erfindungsgemäßen Verfahrensbeispiels,
-
13 ein
Blockschaltbild eines erfindungsgemäßen Halbleiterspeicherbauelements,
-
14A ein Blockschaltbild eines Ausführungsbeispiels
eines Wortleitungsspannungsgenerators des Halbleiterspeicherbauelements
aus 13,
-
14B ein Schaltbild eines Ausführungsbeispiels eines Spannungsteilers
des Wortleitungsspannungsgenerators aus 14A,
-
14C ein Schaltbild eines Ausführungsbeispiels eines Komparators
des Wortleitungsspannungsgenerators aus 14A und
-
15A und 15B jeweils
ein Zeitablaufdiagramm von dualen Programmierungsvorgängen gemäß der Erfindung.
-
Die 6A, 6B und 6C zeigen
die Anwendung von verschiedenen Programmierverfahren für ein Flagsignal,
ein Steuerflagsignal, eine Markierung, eine Steuermarkierung oder
für andere Steuerinformationen
und für
Zellendaten in erfindungsgemäßen Ausführungsformen.
Wie aus 6A ersichtlich ist, kann das
Programmierverfahren für
Zellendaten mit einer relativ niedrigen Anfangsspannung beginnen,
z.B. mit Vpgm1, und kann mehrere ansteigende Schrittimpulse umfassen,
beispielsweise vier inkrementale Impulse, wie in 6A dargestellt
ist. Im Gegensatz dazu kann, wie aus den 6B und 6C ersichtlich
ist, das Programmierverfahren für
ein Flagsignal, ein Steuerflag, eine Markierung, eine Steuermarkierung
oder für
eine andere Steuerinformation mit einer relativ hohen Anfangsspannung
beginnen, z.B. gemäß 6B mit
Vpgm4 oder gemäß 6C mit
Vpgm5, und weniger ansteigende Schrittimpulse umfassen, beispielsweise
gemäß 6B einen
ansteigenden Impuls oder gemäß 6C keinen
ansteigenden Impuls. Das Programmierverfahren für Zellendaten kann als normales oder
langsameres Programmierverfahren charakterisiert werden und das
Programmierverfahren für
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder für
die andere Steuerinformation kann als schnelleres Programmierverfahren
charakterisiert werden, da das Programmierverfahren für die Zellendaten
eine längere
Programmierungszeit aufweist und das Programmierverfahren für das Flagsignal,
das Steuerflagsignal, die Markierung, die Steuermarkierung oder
die andere Steuerinformation eine kürzere Programmierungszeit aufweist,
wie aus den 6A bis 6C ersichtlich
ist.
-
In
einem Ausführungsbeispiel
können
das in 6A dargestellte Programmierverfahren
als vollständige
ISPP, das in 6B dargestellte Programmierverfahren
als Teil-ISPP und das in 6C dargestellte
Programmierverfahren als Einzelschuss-Programmierverfahren implementiert
sein. Die vollständige
ISPP kann die Programmierungszeit verlängern, die Zellenspannungsverteilung
Vth reduzieren oder minimieren und/oder eine Überprogrammierung reduzieren
oder verhindern. Die Teil-ISPP und das Einzelschuss-Programmierverfahren
können
die Programmierungszeit verkürzen,
die Verteilung der Zellenschwellwertspannung Vth erhöhen, die
Speichereffizienz verschlechtern und/oder die Möglichkeit der Überprogrammierung
erhöhen.
In alternativen Ausführungsformen
kann die Teil-ISPP und/oder das Einzelschuss-Programmierverfahren auch für Zellendaten
verwendet werden.
-
Die 7A und 7B zeigen
einen Vergleich eines herkömmlichen
Programmierverfahrens (7A) und eines erfindungsgemäßen Programmierverfahrens
(7B). Wie aus den 7A und 7B ersichtlich
ist, ist die normale Zellenprogrammierungszeit für beide Verfahren gleich, wenn
beide Verfahren als vollständige
ISPP implementiert sind. Gemäß der Erfindung
kann jedoch die Dauer der Bestätigung
der Zellenprogrammierung und dadurch die Gesamtprogrammierungszeit
durch die Anwendung eines Einzelschuss-Programmierverfahrens verkürzt werden,
bei welchem die Spannung des einmaligen Impulses gleich der Spannung
des bei der vorhergehenden vollständigen ISPP zuletzt angelegten
Impulses ist.
-
Die 8A und 8B zeigen
jeweils ein Flussdiagramm von Realisierungen des erfindungsgemäßen Programmierverfahrens. 8A zeigt
speziell ein Programmierverfahren für die Zellendaten und 8B zeigt
ein Programmierverfahren für
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation.
-
Wie
aus 8A ersichtlich ist, umfasst das gezeigte Beispiel
des Programmierverfahrens für Zellendaten
einen Schritt S210, in welchem ein Befehl, wie z.B. ein sequentieller
Dateneingabebefehl, empfangen wird, und einen Schritt S220, in welchem Adressen
empfangen werden. Im Schritt S230 werden die zu programmierenden
Daten geladen und im Schritt S240 wird ein Programmierbefehl empfangen. Im
Schritt S250 führt
das Verfahren einen Programmiervorgang mit einer Wortleitungsspannung
mit einem Pegel Vpgm1 aus. Im Schritt S260 führt das Verfahren einen Verifizierungsvorgang
aus. Ist die Überprüfung durch
den Verifizierungsvorgang im Schritt S270 erfolgreich, dann wird
das Verfahren beendet. Ist die Überprüfung nicht
erfolgreich, dann wird zum Schritt S280 verzweigt, in welchem die
Wortleitungsspannung um ein Inkrement ΔV erhöht wird, wonach zum Schritt
S250 zurückgekehrt
wird, um den Programmiervorgang mit der neuen Wortleitungsspannung
zu wiederholen.
-
Wie
aus 8B ersichtlich ist, umfasst das gezeigte Beispiel
des Programmierverfahrens für
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation einen Schritt S610, in welchem
ein Befehl, wie z.B. ein sequentieller Dateneingabebefehl, empfangen wird,
und einen Schritt S620, in welchem Adressen empfangen werden. Im
Schritt S630 werden die zu programmierenden Daten geladen und im
Schritt S640 wird der Programmierbefehl empfangen. Im Schritt S650
führt das
Verfahren einen Programmiervorgang mit einer Wortleitungsspannung
mit einem Pegel Vpgm4 aus. Im Schritt S660 führt das Verfahren einen Verifizierungsvorgang
aus. Ist die Überprüfung durch
den Verifizierungsvorgang im Schritt S670 erfolgreich, dann wird
das Verfahren beendet. Ist die Überprüfung nicht
erfolgreich, dann wird zum Schritt S680 verzweigt, in welchem die
Wortleitungsspannung um ein Inkrement ΔV erhöht wird und anschließend zum
Schritt S650 verzweigt wird, um den Programmiervorgang mit der neuen
Wortleitungsspannung zu wiederholen.
-
Die 9A bis 9D zeigen
eine Anwendung von zwei oder mehr verschiedenen Programmierverfahren
gemäß der Erfindung. 9A zeigt
im Wesentlichen eine Kombination der Ausführungsformen aus den 6A und 6B. 9B zeigt
im Wesentlichen eine Kombination der Ausführungsformen der 6A und 6C.
Bei den Ausführungsformen
gemäß den 9C und 9D wird
die Spannung basierend auf einer Anfangsspannung erhöht. Wie
aus 9C ersichtlich ist, ist in diesem Beispiel die
Anfangsspannung der zweiten Programmierung gleich der letzten Spannung
der ersten Programmierung und wird konstant gehalten. In 9D unterscheidet
sich die Anfangsspannung der zweiten Programmierung beispielsweise
von der letzten oder vorletzten Spannung der ersten Programmierung
um einen Wert von ±a
bzw. ±α, wie gezeigt,
wobei die Spannungsdifferenz a bzw. α eine fest vorgegebene Spannung
sein kann oder auf irgendeiner der vorherigen Spannungen basieren
kann, beispielsweise auf der letzten oder auf der vorletzten Spannung
der ersten Programmierung.
-
Die 10A bis 10D zeigen
jeweils ein Speicherzellenfeld für
ein erfindungsgemäßes Ausführungsbeispiel. 10A zeigt das gesamte Speicherzellenfeld und die 10B bis 10D zeigen drei
Beispiele, wie das Flagsignal, das Steuerflagsignal, die Markierung,
die Steuermarkierung oder die andere Steuerinformation in ein Hauptspeicherzellenfeld
und/oder ein Ersatzspeicherzellenfeld dieses beispielhaften Speicherzellenfelds
gemäß der Erfindung
geschrieben werden.
-
Wie
aus 10A ersichtlich, wird das Speicherzellenfeld
von einer Steuerschaltung, einer Schreib-/Leseschaltung und/oder
einem X-Decoder gesteuert. Diese Komponenten sind z.B. als Hardware
aus dem Stand der Technik bekannt. Das Speicherzellenfeld kann zwei
oder mehr Feldbereiche umfassen. 10A zeigt,
dass das Speicherzellenfeld in die sem Beispiel einen Bereich 110A mit
niedrigerer Schreibgeschwindigkeit und einen Bereich 110B mit
höherer
Schreibgeschwindigkeit umfasst.
-
Bei
einem Ausführungsbeispiel
ist der Bereich 110A mit der niedrigeren Schreibgeschwindigkeit
als Hauptspeicherzellenfeld ausgeführt und kann mit einer normalen
oder niedrigeren Programmiergeschwindigkeit und/oder durch eine
vollständige
ISPP beschrieben werden, wobei er vorzugsweise keine Überprogrammierungen
erlaubt. Bei einem Ausführungsbeispiel
ist der Bereich 110B mit der höheren Schreibgeschwindigkeit
als Ersatzspeicherzellenfeld ausgeführt und kann mit einer höheren Programmiergeschwindigkeit,
durch eine reduzierte ISPP und/oder durch eine Einzelschuss-Programmierung beschrieben
werden, wobei eine Überprogrammierung
zugelassen wird.
-
Wie
aus 10B ersichtlich ist, wird in
einem Ausführungsbeispiel
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung oder
die andere Steuerinformation vollständig in den Bereich 110B mit
der höheren
Schreibgeschwindigkeit geschrieben, wie durch einen schraffierten
Bereich in 10B dargestellt. Wie aus 10C ersichtlich ist, werden in einem anderen Ausführungsbeispiel
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation vollständig in den Bereich 110A mit
der niedrigeren Schreibgeschwindigkeit geschrieben, wie durch einen
schraffierten Bereich in 10C dargestellt.
Wie aus 10D ersichtlich ist, wird in
einem weiteren Ausführungsbeispiel
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation in aufeinanderfolgende Bereiche 110A mit
der niedrigeren Schreibgeschwindigkeit geschrieben, wie durch schraffierte
Bereiche in 10D dargestellt. Zudem sind
noch weitere, nicht dargestellte Ausführungsbeispiele möglich. So
kann das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation bei spielsweise in aufeinanderfolgende
Bereiche 110B mit der höheren
Schreibgeschwindigkeit geschrieben werden.
-
11A zeigt ein erfindungsgemäßes Ausführungsbeispiel eines Hauptspeicherfelds
und eines Ersatzspeicherfelds eines NAND-Flashspeicherzellenfelds, entsprechend
den 10A bis 10D. Wie
aus 11A ersichtlich ist, umfasst
das NAND-Flashspeicherzellenfeld eine Mehrzahl von Blöcken. Auf
jeden Block kann über
eine Zeilenauswahleinheit und eine Spaltenauswahleinheit zugegriffen
werden. Die Zeilenauswahl erfolgt über eine Wortleitung WL und
die Spaltenauswahl erfolgt über eine
Bitleitung BL. Jeder Block kann in zwei oder mehr Gruppen aufgeteilt
werden, einen Hauptzellenbereich, welcher als Hauptspeicher wirkt,
und einen Ersatzzellenblock für
Steuerflagsignale und/oder zur Redundanz. Programmiervorgänge können in
Seiteneinheiten ausgeführt
werden, welche einer Einheit von Zellen entsprechen, die zusammen
mit einer gemeinsamen Wortleitung WL verbunden sind.
-
11B zeigt ein Flussdiagramm eines Schreibvorgangs
in ein derartiges NAND-Flashspeicherzellenfeld gemäß der Erfindung.
Das Verfahren empfängt
in einem Schritt 10 Daten und eine Adresse und gibt im
Schritt 30 die Wortleitung WL frei. Im Schritt 50 werden
die empfangenen Daten unter Anwendung einer niedrigeren Programmiergeschwindigkeit
in Hauptblockspeicherzellen programmiert und im Schritt 70 wird
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation unter Anwendung einer höheren Programmiergeschwindigkeit
in die durch Freigabe der Wortleitung WL ausgewählte Speicherzelle programmiert.
Im Schritt 90 kann die Wortleitung WL gewechselt werden
und der Ablauf kehrt dann zum Schritt 30 zurück, um die
nächste
Wortleitung freizugeben.
-
Die 12A und 12B zeigen
jeweils ein Flussdiagramm eines allgemeineren Ausführungsbeispiels
der erfindungsgemäßen Verfahren
von 8A und 8B. 12A zeigt ein Flussdiagramm eines erfindungsgemäßen Verfahrens
zur Durchführung
eines Programmiervorgangs mit niedrigerer Geschwindigkeit, die von
einem Programmiervorgang mit höherer
Geschwindigkeit gefolgt wird, wenn die korrekte Durchführung der
Programmierung mit niedrigerer Geschwindigkeit bestätigt wird. 12B zeigt ein Flussdiagramm eines erfindungsgemäßen Verfahrens
zum Empfangen und Schreiben von ersten Daten in einen ersten Speicherbereich
durch Anwenden eines ersten Programmierverfahrens und zum Empfangen
und Schreiben von zweiten Daten in einen zweiten Speicherbereich
durch Anwenden eines zweiten Programmierverfahrens, wenn eine korrekte
Ausführung des
ersten Programmierverfahrens bestätigt wird.
-
Wie
aus 12A ersichtlich ist, umfasst
das Verfahren im Schritt 120 eine Ausführung einer Programmierung
mit niedrigerer Geschwindigkeit. Im Schritt 140 wird das
Ergebnis der Programmierung mit niedrigerer Geschwindigkeit überprüft, um beispielsweise
zu bestimmen, ob die Programmierung mit niedrigerer Geschwindigkeit
korrekt und/oder vollständig
ausgeführt
wurde. Im Schritt 160 wird eine Programmierung mit höherer Geschwindigkeit
ausgeführt,
wenn im Schritt 140 festgestellt wurde, dass die Programmierung
mit niedrigerer Geschwindigkeit korrekt und/oder vollständig ausgeführt wurde.
-
Wie
aus 12B ersichtlich ist, umfasst
ein anderes Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
einen Schritt 130, in welchem in einen ersten Speicherbereich
zu schreibende Daten empfangen werden. Im Schritt 150 werden
die Daten beispielsweise durch Anwendung eines ersten Programmierverfahrens
in den ersten Speicherbereich geschrieben. Im Schritt 170 werden
in einen zweiten Speicherbereich zu schreibende Daten empfangen, wenn
im Schritt 150 festgestellt wird, dass das Schreiben in
den ersten Speicherbereich korrekt und/oder vollständig ausgeführt wurde.
Im Schritt 190 werden die Daten beispiels weise durch Anwendung
eines zweiten Programmierverfahrens in den zweiten Speicherbereich
geschrieben.
-
Wie
oben im Zusammenhang mit 12B ausgeführt ist,
kann das erste Programmierverfahren einen normalen oder langsameren
Programmiervorgang für
normale Daten umfassen, das zweite Programmierverfahren kann einen
schnelleren Programmiervorgang für
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung
oder die andere Steuerinformation umfassen, der erste Speicherbereich
kann ein Hauptblock eines Speicherzellenfelds sein und/oder der
zweite Speicherbereich kann ein Ersatzblock des Speicherzellenfelds sein.
-
13 zeigt
ein Ausführungsbeispiel
eines erfindungsgemäßen Halbleiterspeicherbauelements 100,
das ein Speicherzellenfeld 110 und einen Speichertreiber 140 umfasst.
Wie aus den 10A bis 10D ersichtlich
ist, umfasst das Speicherzellenfeld 110 einen Bereich 110A mit
niedrigerer Schreibgeschwindigkeit und einen Bereich 110B mit
höherer Schreibgeschwindigkeit.
Wie oben ausgeführt,
kann der Bereich 110A mit niedrigerer Schreibgeschwindigkeit
ein Hauptzellenspeicherfeld sein, welches durch eine normale oder
durch eine Programmierung mit niedrigerer Geschwindigkeit bzw. mit
einer vollständigen
ISPP beschrieben wird und/oder keine Überprogrammierung erlaubt.
Wie oben ebenfalls ausgeführt,
kann der Bereich 110B mit höherer Schreibgeschwindigkeit
ein Ersatzzellenspeicherfeld sein, welches mit höherer Programmiergeschwindigkeit
bzw. mit einer reduzierten ISPP beschrieben wird und/oder mit einer
Einschuss-Programmierung beschrieben wird und/oder eine Überprogrammierung erlaubt.
-
Beim
gezeigten Ausführungsbeispiel
umfasst der Speichertreiber 140 einen X-Decoder oder Zeilendecoder 141 zum
Steuern der Zeilen und einen Y-Decoder oder Spaltendecoder mit einem
Seitenpuffer 142, einem Y-Gate 143 und einem Din/Dout-Puffer 143 zur
Spaltensteuerung.
-
Das
Halbleiterspeicherbauelement 100 kann eine Gesamtsteuerschaltung
umfassen, welche eine Programmiersteuerung 120, einen Wortleitungsspannungsgenerator 146 und
eine Programmierungsabschlussschaltung (P/F-Schaltung) 145 umfasst.
Die Programmiersteuerung 120 umfasst ein Statusregister,
welches die Übersicht über abgeschlossene
Vorgänge
behält.
Ein Ausführungsbeispiel
des Wortleitungsspannungsgenerators 146 ist in 14A dargestellt.
-
Die
in 14A gezeigte Realisierung des Wortleitungsspannungsgenerators 146 umfasst
eine Signalsteuerlogik 200, einen Oszillator 210,
einen Referenzspannungsgenerator 220, einen Spannungsteiler 230,
einen Komparator 240 und eine Ladungspumpe 250.
Wie aus 14A ersichtlich ist, versorgt
die Signalsteuerlogik 200 den Spannungsteiler 230 mit
einem Schrittsignal STEP_CNT[5:0). Der Spannungsteiler 230 erzeugt
ein Signal Vdvd mit einem variablen Pegel, welches gemeinsam mit
einem Referenzsignal Vref vom Referenzspannungsgenerator 220 an
den Komparator 240 angelegt wird. Der Komparator 240 vergleicht
die Spannungen Vdvd und Vref und stellt das Ergebnis COMP des Vergleichs
der Ladungspumpe 250 zum Erzeugen der gewünschten
Spannung Vpgm zur Verfügung. Die
Spannung Vpgm kann über
den X-Decoder 141 an
das Speicherzellenfeld 110 angelegt werden.
-
14B zeigt eine mögliche Implementierung des
Spannungsteilers 230 aus 14A mit
einer Transistorlogik mit NMOS- und PMOS-Transistoren, um basierend
auf dem von der Signalsteuerlogik 200 erzeugten Schrittsignal
STEP_CNTL[5:0] Spannungen mit ansteigenden Stufen zu erzeugen, wie die
Spannungen Vpgm1 bis Vpgm gemäß den 6A bis 6C und 9A bis 9D
-
14C zeigt eine mögliche Realisierung des Komparators 240 aus 14A. Wie dargestellt ist, vergleicht der Komparator 240 die
Spannung Vdvd vom Spannungsteiler 230 und die Spannung Vref
vom Referenz spannungsgenerator 220 gesteuert von einem
Signal OSC vom Oszillator 210 und gibt das Vergleichsergebnis
COMP an die Ladungspumpe 250 aus.
-
Die 15A und 15B zeigen
jeweils ein Zeitablaufdiagramm von dualen Programmierungsvorgängen gemäß der Erfindung.
Wie aus 15A ersichtlich ist, werden
zuerst normale Zellendaten mit einem normalen oder langsameren Programmiervorgang
geschrieben. Wie dargestellt ist, kann dies das Laden der normalen
Zellendaten, Schreiben der Adresse für die normalen Zellendaten,
Schreiben der normalen Zellendaten und Ausführen des normalen oder langsameren
Programmiervorgangs umfassen. Wie dargestellt ist, kann darauf das
Laden des Flagsignals, des Steuerflagsignals, der Markierung, der Steuermarkierung
oder der anderen Steuerinformation, das Schreiben des Flagsignals,
des Steuerflagsignals, der Markierung, der Steuermarkierung oder der
anderen Steuerinformation und das Ausführen des schnelleren Programmiervorgangs
folgen.
-
Im
Ausführungsbeispiel
gemäß 15A sind die Vorgänge getrennt und zwei getrennte
Befehle werden benutzt, um den normalen oder langsameren Programmiervorgang
(10h) und den schnelleren Programmiervorgang (20h) auszuführen. Ein Vorteil
dieser Anordnung besteht in der Flexibilität, welche durch die getrennte
Ausführung
der normalen oder langsameren und der schnelleren Programmierung
ermöglicht
wird.
-
Wie
aus 15B ersichtlich ist, werden
bei diesem Beispiel zuerst die normalen Zellendaten mit einem normalen
oder langsameren Programmiervorgang geschrieben. Wie dargestellt
ist, kann dies das Laden der normalen Zellendaten (Laden), Schreiben der
Adresse für
die normalen Zellendaten (Adresse schreiben) und Schreiben der normalen
Zellendaten (Daten schreiben) umfassen. Wie weiter dargestellt ist,
kann darauf das Laden des Flagsignals, des Steuerflagsignals, der
Markierung, der Steuermarkierung oder der anderen Steuerinformation,
das Schreiben der Adresse für
das Flagsignal, das Steuerflagsignal, die Markierung, die Steuermarkierung oder
die andere Steuerinformation (Adresse schreiben) und das Schreiben
des Flagsignals, des Steuerflagsignals, der Markierung, der Steuermarkierung oder
der anderen Steuerinformation (Daten schreiben) folgen.
-
Im
Ausführungsbeispiel
gemäß 15B werden der normale oder langsamere Programmiervorgang
und der schnellere Programmiervorgang gleichzeitig mit einem gemeinsamen
Befehl (10h/20h) ausgeführt
(beide Programme). Ein Vorteil dieser Anordnung besteht darin, dass
die Gesamtprogrammierzeit verkürzt
wird.
-
Erfindungsgemäße Ausführungsformen
umfassen folglich Halbleiterbauelemente allgemein sowie nichtflüchtige Speicher,
Flashspeicher, NAND- oder NOR-Flashspeicher im besonderen. Die Erfindung
ist für
Zellen mit Einfachpegel (SLC) und/oder auf Zellen mit Mehrfachpegel
(MLC), für
Massenspeicheranwendungen und/oder Codespeicheranwendungen einsetzbar.
-
Erfindungsgemäße Ausführungsformen
beziehen sich auf ein Flagsignal, ein Steuerflagsignal, eine Markierung,
eine Steuermarkierung oder ein Bestätigungsflagsignal als Beispiele
für mögliche Steuerinformationen,
welche mit einem anderen Schreibverfahren als normale Daten und/oder
einem schnelleren Schreibverfahren als normale Daten geschrieben
werden.
-
Bei
den beschriebenen Ausführungsbeispielen
wird eine Wortleitungsspannung inkrementiert, beispielsweise vier
Mal, es können
aber auch andere bekannte Techniken bzw. eine beliebige andere Anzahl
von Wortleitungsspannungsinkrementen angewendet werden. Die beschriebene
Wortleitungsspannung umfasst eine Programmierspannung und eine Verifizierspannung,
es können
jedoch auch andere Spannungen benutzt werden. Während die erfindungsgemäßen Ausführungsbeispiele
unter Bezugnahme auf beispielhafte Spannungen und Zeitspannen beschrieben
sind, können
die beschriebenen Spannungen und Zeitspannen variiert werden, ohne den
Gegenstand der Erfindung zu verlassen.
-
So
kann die ansteigende Schrittimpulsprogrammierung (ISPP) beispielsweise
mit einer Anfangsspannung VL und N Programmierschritten
umgesetzt werden, wobei N eine ganze Zahl ist. Die Programmierung
mit höherer
Geschwindigkeit umfasst beispielsweise eine reduzierte ansteigende
Stufenimpulsprogrammierung (ISPP) mit einer Anfangsspannung VH, wobei VH > VL ist,
und mit M Programmierschritten, wobei M eine ganze Zahl ist, mit
1 < M < N. Alternativ kann
die Anfangsspannung VH kleiner oder gleich
VL sein. Die Anfangsspannung VH der Programmierung
mit höherer
Geschwindigkeit kann z.B. einen festen Wert aufweisen und/oder von
der letzten Spannung VL der Programmierung
mit niedrigerer Geschwindigkeit abhängig sein.