DE112016000654T5 - Mehrzustands-Programmierung für nichtflüchtigen Speicher - Google Patents

Mehrzustands-Programmierung für nichtflüchtigen Speicher Download PDF

Info

Publication number
DE112016000654T5
DE112016000654T5 DE112016000654.3T DE112016000654T DE112016000654T5 DE 112016000654 T5 DE112016000654 T5 DE 112016000654T5 DE 112016000654 T DE112016000654 T DE 112016000654T DE 112016000654 T5 DE112016000654 T5 DE 112016000654T5
Authority
DE
Germany
Prior art keywords
programming
memory
memory cells
programmed
bitline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016000654.3T
Other languages
English (en)
Inventor
Yen-Lung Li
Tai-Yuan Tseng
Raul-Adrian Cernea
Jong Hak Yuh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112016000654T5 publication Critical patent/DE112016000654T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5622Concurrent multilevel programming of more than one cell

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

Es wird ein Verfahren zum Programmieren eines nichtflüchtigen Speichers geschaffen. Das Verfahren enthält ein Programmieren von Speicherzellen für gerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände für jeden der Zwischendatenzustände. Das Verfahren enthält zudem ein Programmieren von Speicherzellen für ungerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf die mehreren Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen auf die mehreren Zieldatenzustände für jeden der Zwischendatenzustände. Für jede Speicherzelle wird die entsprechende Bitleitung auf eine erste Bitleitungsvorspannung vorgespannt, wenn die Speicherzelle an der Programmierung gehindert werden soll, und auf eine von mehreren Programmierungs-Bitleitungsvorspannungen vorgespannt, wenn die Speicherzelle auf einen endgültigen Zustand programmiert werden soll.

Description

  • Hintergrund
  • Die Verwendung von Halbleiterspeichern in verschiedenen elektronischen Vorrichtungen wie Mobilfunktelefonen, digitalen Kameras, persönlichen digitalen Assistenten, medizinischer Elektronik, mobilen Rechenvorrichtungen und nichtmobilen Rechenvorrichtungen ist weit verbreitet. Ein Halbleiterspeicher kann einen nichtflüchtigen Speicher oder einen flüchtigen Speicher enthalten. Ein nichtflüchtiger Speicher ermöglicht es, Information selbst dann zu speichern und zu erhalten, wenn der nichtflüchtige Speicher nicht mit einer Energiequelle (z. B. einer Batterie) verbunden ist. Beispiele für nichtflüchtigen Speicher enthalten Flash-Speicher (z. B. Flash-Speicher vom NAND-Typ und NOR-Typ) und elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM).
  • Ein Ladungseinfangmaterial kann in nichtflüchtigen Speichervorrichtungen verwendet werden, um eine Ladung zu speichern, die einen Datenzustand repräsentiert. Das Ladungseinfangmaterial kann vertikal in einer gestapelten dreidimensionalen Speicherstruktur (3D-Speicherstruktur) angeordnet sein. Ein Beispiel für eine 3D-Speicherstruktur ist die bitkostenskalierbare Architektur (BiCS-Architektur), die einen Stapel von alternierenden leitfähigen und dielektrischen Schichten enthält. Ein Speicherloch wird in dem Stapel ausgebildet und anschließend wird ein NAND-Strang ausgebildet, indem das Speicherloch mit Materialien einschließlich einer Ladungseinfangschicht gefüllt wird, um eine vertikale Spalte von Speicherzellen zu erzeugen. Ein gerader NAND-Strang erstreckt sich in einem Speicherloch. Steuergates der Speicherzellen werden durch die leitfähigen Schichten bereitgestellt.
  • Einige nichtflüchtige Speichervorrichtungen werden verwendet, um zwei Ladungsspannen zu speichern, und daher kann die Speicherzelle zwischen zwei Spannen von Schwellenspannungen programmiert/gelöscht werden, die zwei Datenzuständen entsprechen: einem gelöschten Zustand (z. B. Daten ”1”) und einem programmierten Zustand (z. B. Daten ”0”). Eine solche Vorrichtung wird als binäre oder Zweizustands-Vorrichtung bezeichnet.
  • Ein nichtflüchtiger Mehrzustands-Speicher (oder Mehrniveau-Speicher) wird implementiert, indem mehrere, unterscheidbare zulässige Spannen von Schwellenspannungen identifiziert werden. Jede einzelne Spanne von Schwellenspannungen entspricht einem Datenzustand, dem ein vorbestimmter Wert für den Satz von Datenbits zugeordnet ist. Die spezifische Beziehung zwischen den in die Speicherzelle programmierten Daten und den Spannen der Schwellenspannungen hängt von dem für die Speicherzellen verwendeten Datencodierungsschema ab. Beispielsweise beschreiben das US-Patent Nr. 6222762 und die US-Patentveröffentlichung Nr. 2004/0255090 verschiedene Datencodierungsschemata für Mehrzustands-Flash-Speicherzellen. Obwohl der nichtflüchtige Mehrzustands-Speicher mehr Daten speichern kann als der nichtflüchtige binäre Speicher, kann der Prozess zum Programmieren und Verifizieren der Programmierung für den nichtflüchtigen Mehrzustands-Speicher länger dauern.
  • Kurzbeschreibung der Zeichnungen
  • Gleichbezifferte Elemente beziehen sich in den verschiedenen Figuren auf gemeinsame Komponenten.
  • 1 ist eine perspektivische Ansicht einer gestapelten nichtflüchtigen 3D-Speichervorrichtung.
  • 2 ist ein funktionales Blockdiagramm einer Speichervorrichtung 200, die ein Beispiel der gestapelten nichtflüchtigen 3D-Speichervorrichtung von 1 ist.
  • 3A ist ein Blockdiagramm, das Softwaremodule zum Programmieren einer oder mehrerer Prozessoren in einem Controller darstellt.
  • 3B ist ein Blockdiagramm, das Softwaremodule zum Programmieren einer Zustandsmaschine oder eines anderen Prozessors auf einem Speicherchip darstellt.
  • 4A ist ein Blockdiagramm einer Speicherstruktur mit zwei Ebenen.
  • 4B ist eine Draufsicht eines Abschnitts eines Speicherzellenblocks.
  • 4C ist eine Querschnittsansicht eines Abschnitts eines Speicherzellenblocks.
  • 4D ist eine Ansicht der Auswahlgateschichten und Wortleitungsschichten.
  • 4E ist eine Querschnittsansicht einer vertikalen Spalte von Speicherzellen.
  • 5 ist eine schematische Ansicht eines Erfassungsverstärkers.
  • 6 ist ein Zeitdiagramm, das das Verhalten bestimmter Signale, die in dem Erfassungsverstärker von 5 dargestellt sind, beschreibt.
  • 7 ist ein Ablaufdiagramm, das eine Ausführungsform des Betriebs der Schaltung von 5 beschreibt.
  • 8A und 8B zeigen Schwellenspannungsverteilungen.
  • 9A, 9B und 9C zeigen Schwellenspannungsverteilungen.
  • 10 ist ein Ablaufdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren beschreibt.
  • 11 zeigt einen beispielhaften Programmierprozess.
  • 12 ist eine schematische Darstellung eines Erfassungsverstärkers.
  • 13A13E sind Zeitdiagramme, die das Verhalten bestimmter Signale, die in dem Erfassungsverstärker von 12 dargestellt sind, beschreiben.
  • Genaue Beschreibung
  • Verfahren und Vorrichtungen zum gleichzeitigen Programmieren von Speicherzellen von Zwischenzuständen in Zieldatenzustände werden geschaffen. Ein beispielhaftes Verfahren enthält ein Programmieren von Speicherzellen für gerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand in mehrere Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen in mehrere Zieldatenzustände für jeden der Zwischendatenzustände. Das Verfahren enthält zudem ein Programmieren von Speicherzellen für ungerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf die mehreren Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen auf die mehreren Zieldatenzustände für jeden der Zwischendatenzustände.
  • Die folgende Erörterung stellt Einzelheiten eines Beispiels einer geeigneten Struktur für eine Speichervorrichtung, die die vorgeschlagene Technologie umsetzen kann, bereit.
  • 1 ist eine perspektivische Ansicht einer gestapelten nichtflüchtigen dreidimensionalen Speichervorrichtung (3D-Speichervorrichtung) 100, die ein Substrat 102 enthält. Auf und über dem Substrat 102 sind Beispielblöcke BLK0 und BLK1 von Speicherzellen (nichtflüchtigen Speicherelementen). Ebenfalls auf dem Substrat 102 ist ein Peripherbereich 104 mit Unterstützungsschaltungen zur Verwendung durch die Blöcke BLK0 und BLK1. Das Substrat 102 kann auch Schaltungen unter den Blöcken tragen, zusammen mit einer oder mehreren unteren Metallschichten, die in Leitungsbahnen strukturiert sind, um Signale der Schaltungen zu übertragen.
  • Die Blöcke BLK0 und BLK1 sind in einem Zwischenbereich 106 der Speichervorrichtung 100 ausgebildet. In einem oberen Bereich 108 der Speichervorrichtung 100 sind eine oder mehrere obere Metallschichten in Leitungsbahnen strukturiert, um Signale der Schaltungen zu übertragen. Jeder der Blöcke BLK0 und BLK1 enthält einen gestapelten Bereich von Speicherzellen, in dem alternierende Ebenen des Stapels Wortleitungen repräsentieren. Obwohl die zwei Blöcke BLK0 und BLK1 als Beispiel dargestellt sind, können zusätzliche Blöcke verwendet werden, die sich in der x- und/oder y-Richtung erstrecken.
  • In einer Beispielumsetzung repräsentiert die Länge der Ebene in der x-Richtung eine Richtung, in der sich Signalbahne für Wortleitungen erstrecken (eine Wortleitungs- oder SGD-Leitungsrichtung), und die Breite der Ebene in der y-Richtung repräsentieren eine Richtung, in der sich Signalbahnen für Bitleitungen erstrecken (eine Bitleitungsrichtung). Die z-Richtung repräsentiert eine Höhe der Speichervorrichtung.
  • 2 ist ein funktionales Blockdiagramm einer beispielhaften Speichervorrichtung 200, die ein Beispiel der gestapelten nichtflüchtigen 3D-Speichervorrichtung 100 von 1 ist. Die in 2 dargestellten Komponenten sind elektrische Schaltungen. Die Speichervorrichtung 200 enthält einen oder mehrere Speicherchips 202. Jeder Speicherchip 202 enthält eine dreidimensionale Speicherstruktur 204 von Speicherzellen (wie beispielsweise ein 3D-Array von Speicherzellen), eine Steuerschaltungsanordnung 206 und Lese-/Schreibschaltungen 208. In anderen Ausführungsformen kann ein zweidimensionales Array von Speicherzellen verwendet werden.
  • Die Speicherstruktur 204 ist durch Wortleitungen über einen Zeilendecodierer 210 und durch Bitleitungen über einen Spaltendecodierer 212 adressierbar. Die Lese-/Schreibschaltungen 208 enthalten mehrere Erfassungsblöcke SB1, SB2, SBp (eine Erfassungsschaltungsanordnung) und ermöglichen es, eine Seite von Speicherzellen parallel zu lesen oder zu programmieren. In manchen Systemen ist ein Controller 214 in derselben Speichervorrichtung 200 (z. B. einer entfernbaren Speicherkarte) wie der eine oder die mehreren Speicherchips 202 enthalten. In anderen Systemen kann der Controller 214 jedoch von dem Speicherchip 202 getrennt sein.
  • In einigen Ausführungsformen wird ein Controller 214 mit mehreren Speicherchips 202 kommunizieren. In anderen Ausführungsformen weist jeder Speicherchip 202 seinen eigenen Controller auf. Befehle und Daten werden zwischen einem Host 216 und dem Controller 214 über einen Datenbus 218 und zwischen dem Controller 214 und dem einen oder mehreren Speicherchip 202 über Leitungen 220 übermittelt. In einer Ausführungsform enthält der Speicherchip 202 einen Satz von Eingabe- und/oder Ausgabestiften (I/O-Stiften), die mit den Leitungen 220 verbunden sind.
  • Die Speicherstruktur 204 kann eine oder mehrere Arrays von Speicherzellen einschließlich eines 3D-Arrays enthalten. Die Speicherstruktur 204 kann eine monolithische dreidimensionale Speicherstruktur enthalten, in der mehrere Speicherebenen über (und nicht in) einem einzigen Substrat wie beispielsweise einem Wafer ohne dazwischentretende Substrate ausgebildet sind. Die Speicherstruktur 204 kann jeden Typ von nichtflüchtigem Speicher enthalten, der monolithisch in einer oder mehreren physischen Ebenen von Arrays von Speicherzellen mit einem aktiven Bereich, der über einem Siliziumsubstrat angeordnet ist, ausgebildet ist. Die Speicherstruktur 204 kann in einer nichtflüchtigen Speichervorrichtung mit einer Schaltungsanordnung, die dem Betrieb der Speicherzellen zugeordnet ist, liegen, unabhängig davon, ob die zugeordnete Schaltungsanordnung über oder innerhalb des Substrats liegt.
  • Die Steuerschaltungsanordnung 206 arbeiten mit den Lese-/Schreibschaltungen 208 zusammen, um Speicheroperationen (z. B. Löschen, Programmieren, Lesen und andere) in der Speicherstruktur 204 durchzuführen und enthält eine Zustandsmaschine 222, einen chipinternen Adressdecodierer 224 und ein Leistungssteuermodul 226. Die Zustandsmaschine 222 stellt eine Steuerung der Speicheroperationen auf Chipebene bereit. Ein Code-und-Parameter-Speicher 228 kann zum Speichern von Betriebsparametern und -software vorgesehen sein. In einer Ausführungsform ist die Zustandsmaschine 222 durch die Software programmierbar, die in dem Code-und-Parameter-Speicher 228 gespeichert ist. In anderen Ausführungsformen verwendet die Zustandsmaschine 222 keine Software und ist vollständig in Hardware (z. B. elektronischen Schaltungen) implementiert.
  • Der chipinterne Adressdecodierer 224 stellt eine Adressschnittstelle zwischen den Adressen, die von dem Host 216 oder dem Speichercontroller 214 verwendet werden, und der Hardwareadresse, die durch die Decodierer 210 und 212 verwendet wird, bereit. Das Leistungssteuermodul 226 steuert die Leistung und Spannungen, die an die Wortleitungen und Bitleitungen während Speicheroperationen geliefert werden. Das Leistungsmodul 226 kann Treiber für Wortleitungsschichten (unten erörtert) in einer 3D-Konfiguration, Auswahltransistoren (z. B. SGS- und SGD-Transistoren, die unten beschrieben sind) und Sourceleitungen enthalten. Das Leistungssteuermodul 226 kann Ladepumpen zum Erzeugen von Spannungen enthalten. Die Erfassungsblöcke SB1, SB2, ..., SBp enthalten Bitleitungstreiber. Ein SGS-Transistor ist ein Auswahlgatetransistor an einem Source-Ende eines NAND-Strangs und ein SGD-Transistor ist ein Auswahlgatetransistor an einem Drain-Ende eines NAND-Strangs.
  • Jegliche oder jede Kombination aus Steuerschaltungsanordnung 206, Zustandsmaschine 222, Decodierer 224/210/212, Code-und-Parameter-Speicher 228, Leistungssteuermodul 226, Erfassungsblöcken SB1, SB2, ..., SBp, Lese-/Schreibschaltungen 208 und Controller 214 kann als eine oder mehrere Schaltungen betrachtet werden, die die hierin beschriebenen Funktionen durchführen.
  • Der (chipinterne oder chipexterne) Controller 214 kann Speichervorrichtungen (Speicher) wie beispielsweise einen ROM 214a und einen RAM 214b und einen Prozessor 214c enthalten. Die Speichervorrichtungen ROM 214a und RAM 214b enthalten Code wie beispielsweise einen Satz von Befehlen und der Prozessor 214c ist betreibbar, um den Satz von Befehlen auszuführen, um die hierin beschriebene Funktionalität bereitzustellen. Alternativ oder zusätzlich kann der Prozessor 214c auf Code aus einer Speichervorrichtung in der Speicherstruktur 204 wie beispielsweise einen reservierten Bereich von Speicherzellen, der mit einer oder mehreren Wortleitungen verbunden ist, zugreifen.
  • Mehrere Speicherelemente in der Speicherstruktur 204 können so ausgelegt sein, dass sie in Reihe geschaltet sind, oder so, dass auf jedes Element individuell zugegriffen werden kann. Als nicht beschränkendes Beispiel enthalten Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Flash-Speicher) typischerweise Speicherelemente, die in Reihe geschaltet sind. Ein NAND-Strang ist ein Beispiel für einen Satz von in Reihe geschalteten Speicherzellen und Auswahlgatetransistoren.
  • Ein NAND-Flash-Speicherarray kann so ausgelegt sein, dass das Array aus mehreren NAND-Strängen besteht, von denen ein NAND-Strang aus mehreren Speicherzellen besteht, die sich eine einzelne Bitleitung teilen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so ausgelegt sein, dass auf jedes Element einzeln zugegriffen werden kann, z. B. als NOR-Speicherarray. NAND- und NOR-Speicherkonfigurationen sind beispielhaft, und Speicherzellen können anderweitig ausgelegt sein.
  • Die Speicherzellen können in der einzelnen Speichervorrichtungsebene in einem geordneten Array angeordnet sein, beispielsweise in mehreren Zeilen und/oder Spalten. Jedoch können die Speicherelemente in nicht-regulären oder nicht-orthogonalen Konfigurationen oder in Strukturen, die nicht als Arrays betrachtet werden, angeordnet sein.
  • Ein dreidimensionales Speicherarray ist so angeordnet, dass Speicherzellen mehrere Ebenen oder mehrere Speichervorrichtungsniveaus einnehmen, wodurch eine Struktur in drei Dimensionen (d. h. in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht zu der Hauptfläche des Substrats ist und die x- und y-Richtungen im Wesentlichen parallel dazu sind) gebildet wird.
  • Als nicht beschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als weiteres nicht beschränkendes Beispiel kann ein dreidimensionales Speicherarray als mehrere vertikale Spalten (z. B. Spalten, die sich im Wesentlichen senkrecht zu der Hauptfläche des Substrats erstrecken, d. h. in der y-Richtung) angeordnet sein, wobei jede Spalte mehrere Speicherzellen aufweist. Die vertikalen Spalten können in einer zweidimensionalen Konfiguration, z. B. in einer x-y-Ebene, angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherzellen mit Speicherzellen auf mehreren vertikal gestapelten Speicherebenen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können auch ein dreidimensionales Speicherarray darstellen.
  • Als nicht beschränkendes Beispiel können in einem dreidimensionalen NAND-Speicherarray die Speicherelemente miteinander gekoppelt sein, um einen vertikalen NAND-Strang zu bilden, der mehrere horizontale Speichervorrichtungsebenen überspannt. Es sind andere dreidimensionale Konfigurationen denkbar, in denen einige NAND-Stränge Speicherelemente in einer einzelnen Speicherebene enthalten und andere Stränge Speicherelemente, die sich über mehrere Speicherebenen erstrecken, enthalten. Dreidimensionale Speicherarrays können auch in einer NOR-Konfiguration und in einer ReRAM-Konfiguration ausgebildet sein.
  • Fachleute werden erkennen, dass diese Technologie nicht auf eine einzelne spezifische Speicherstruktur beschränkt ist, sondern viele relevante Speicherstrukturen innerhalb des Gedankens und Umfangs der Technologie, wie diese hierin beschrieben sind und von Fachleuten verstanden werden, abdeckt.
  • 3A ist ein Blockdiagramm, das Softwaremodule zum Programmieren eines oder mehrerer Prozessoren in dem Controller 214 von 2 darstellt. 3A zeigt ein Lesemodul 300, ein Programmiermodul 302 und ein Löschmodul 304, die in dem ROM 214a gespeichert sind. Diese Softwaremodule können auch in dem RAM oder dem Speicherchip 202 gespeichert sein. Das Lesemodul 300 enthält Software, die den einen oder die mehreren Prozessoren 214c programmiert, um Leseoperationen durchzuführen. Das Programmiermodul 302 enthält Software, die den einen oder die mehreren Prozessoren 214c programmiert, um Programmieroperationen durchzuführen (einschließlich der Verifikation der Programmierung). Das Löschmodul 304 enthält Software, die den einen oder die mehreren Prozessoren 214c programmiert, um Löschoperationen durchzuführen. Basierend auf der Software befiehlt der Controller 214 dem Speicherchip 202, Speicheroperationen durchzuführen.
  • 3B ist ein Blockdiagramm, das Softwaremodule zum Programmieren der Zustandsmaschine 222 von 2 (oder eines anderen Prozessors auf dem Speicherchip 202) darstellt. 3B zeigt ein Lesemodul 310, ein Programmiermodul 312 und ein Löschmodul 314, die in dem Code-und-Parameter-Speicher 228 gespeichert sind. Diese Softwaremodule können auch in dem RAM oder in der Speicherstruktur 204 von 2 gespeichert sein. Das Lesemodul 310 enthält Software, die die Zustandsmaschine 222 programmiert, um Leseoperationen durchzuführen. Das Programmiermodul 302 enthält Software, die die Zustandsmaschine 222 programmiert, um Programmieroperationen durchzuführen (einschließlich der Verifikation der Programmierung). Das Löschmodul 304 enthält Software, die die Zustandsmaschine 222 programmiert, um Löschoperationen durchzuführen. Alternativ kann die Zustandsmaschine 222 (die eine elektronische Schaltung ist) vollständig mit Hardware implementiert sein, so dass keine Software benötigt wird, um diese Funktionen auszuführen.
  • 4A ist ein Blockdiagramm, das eine beispielhafte Organisation der Speicherstruktur 204 erläutert, die in zwei Ebenen 402 und 404 unterteilt ist. Jede Ebene ist dann in M Blöcke unterteilt. In einem Beispiel weist jede Ebene etwa 2000 Blöcke auf. Es können jedoch auch andere Zahlen von Blöcken und Ebenen verwendet werden.
  • 4B4E zeigen eine beispielhafte 3D-NAND-Struktur. 4B ist ein Blockdiagramm, das eine Draufsicht eines Abschnitts eines Blocks aus der Speicherstruktur 204 darstellt. Der Abschnitt des Blocks, der in 4B dargestellt ist, entspricht einem Abschnitt 406 in Block 2 von 4A. Der in 4B dargestellte Block erstreckt sich in Richtung eines Pfeils 408 und in Richtung eines Pfeils 410. In einer Ausführungsform weist das Speicherarray 48 Schichten auf. Andere Ausführungsformen weisen weniger oder mehr als 48 Schichten auf. Jedoch zeigt 4B nur die oberste Schicht.
  • 4B zeigt mehrere Kreise, die die vertikalen Spalten darstellen. Jede der vertikalen Spalten enthält mehrere Auswahltransistoren und mehrere Speicherzellen. In einer Ausführungsform implementiert jede vertikale Spalte einen NAND-Strang. Weitere Einzelheiten der vertikalen Spalten sind unten angegeben. Weil sich der in 4B dargestellte Block in Richtung des Pfeils 408 und in Richtung des Pfeils 410 erstreckt, enthält der Block mehr vertikale Spalten als in 4B dargestellt.
  • 4B zeigt zudem einen Satz von Bitleitungen 412. 4B zeigt vierundzwanzig Bitleitungen, da nur ein Abschnitt des Blocks dargestellt ist. In anderen Ausführungsformen sind mehr als vierundzwanzig Bitleitungen mit vertikalen Spalten des Blocks verbunden. Jeder der Kreise, die vertikale Spalten repräsentieren, weist ein ”x” auf, um seine Verbindung zu einer Bitleitung anzuzeigen.
  • Der in 4B dargestellte Block enthält einen Satz von lokalen Zwischenverbindungen 414, 416, 418, 420 und 422, die die verschiedenen Schichten mit einer Sourceleitung unterhalb der vertikalen Spalten verbinden. Die lokalen Zwischenverbindungen 414, 416, 418, 420 und 422 dienen auch dazu, jede Schicht des Blocks in vier Bereiche aufzuteilen. Beispielsweise ist der in 4B dargestellte Block in Bereiche 424, 426, 428 und 430 unterteilt.
  • In den Schichten des Blocks, die Speicherzellen implementieren, werden die vier Bereiche als Wortleitungsfinger bezeichnet, die durch die lokalen Zwischenverbindungen getrennt sind. In einer Ausführungsform verbinden sich die Wortleitungsfinger auf einer gemeinsamen Ebene eines Blocks an dem Ende des Blocks, um eine einzelne Wortleitung zu bilden. In einer weiteren Ausführungsform sind die Wortleitungsfinger auf der gleichen Ebene nicht miteinander verbunden.
  • In einer beispielhaften Implementierung ist eine Bitleitung in jedem der Bereiche 424, 426, 428 und 430 nur mit einer vertikalen Spalte verbunden. In dieser Implementierung hat jeder Block sechzehn Zeilen aktiver Spalten und jede Bitleitung ist in jedem Block mit vier Zeilen verbunden. In einer Ausführungsform sind alle vier Zeilen, die mit einer gemeinsamen Bitleitung verbunden sind, mit derselben Wortleitung verbunden (über verschiedene Wortleitungsfinger auf der gleichen Ebene, die miteinander verbunden sind). Daher verwendet das System die Sourceauswahlleitungen und die Drainauswahlleitungen, um eine (oder eine andere Untermenge) der vier zu wählen, die einer Speicheroperation unterzogen werden soll (Programmieren, Verifizieren, Lesen und/oder Löschen).
  • Obwohl 4B zeigt jeden Bereich mit vier Zeilen von vertikalen Spalten, vier Bereichen und sechzehn Zeilen von vertikalen Spalten in einem Block zeigt, sind diese genauen Zahlen eine beispielhafte Implementierung. Andere Ausführungsformen können mehr oder weniger Bereiche pro Block, mehr oder weniger Zeilen von vertikalen Spalten pro Bereich und mehr oder weniger Zeilen von vertikalen Spalten pro Block enthalten.
  • 4B zeigt zudem, dass die vertikalen Spalten gestaffelt sind. In anderen Ausführungsformen können verschiedene Muster zur Staffelung verwendet werden. In einigen Ausführungsformen sind die vertikalen Spalten nicht gestaffelt.
  • 4C zeigt einen Abschnitt einer Ausführungsform einer dreidimensionalen Speicherstruktur 204, die eine Querschnittsansicht entlang der Linie AA von 4B zeigt. Diese Querschnittsansicht durchschneidet die vertikalen Spalten 432 und 434 und den Bereich 426 (siehe 4B). Die Struktur von 4C enthält zwei Drainauswahlschichten (SGD1 und SGD1), zwei Sourceauswahlschichten (SGS1 und SGS2), vier Dummy-Wortleitungsschichten (DWLL1a, DWLL1b, DWLL2a und DWLL2b) und zweiundzwanzig Wortleitungsschichten (WLL0–WLL31) zum Verbinden mit Datenspeicherzellen. Andere Ausführungsformen können mehr oder weniger als zwei Drainauswahlschichten, mehr oder weniger als zwei Sourceauswahlschichten, mehr oder weniger als vier Dummy-Wortleitungsschichten und mehr oder weniger als zweiunddreißig Wortleitungsschichten implementieren.
  • Vertikale Spalten 432 und 434 sind dargestellt, die durch die Drainauswahlschichten, die Sourceauswahlschichten, die Dummy-Wortleitungsschichten und die Wortleitungsschichten ragen. In einer Ausführungsform enthält jede der vertikalen Spalten 432 und 434 einen NAND-Strang. Die vertikalen Spalten 432 und 434 und die nachfolgend aufgeführten Schichten sind über dem Substrat 102, einem Isolierfilm 436 auf dem Substrat 102 und einer Sourceleitung SL auf dem Isolierfilm 436 angeordnet. Die vertikale Spalte 432 ist über einen Verbinder 440 mit der Bitleitung 438 verbunden. Lokale Zwischenverbindungen 416 und 418 sind ebenfalls dargestellt.
  • Zur Erleichterung der Bezugnahme werden Drainauswahlschichten (SGD1 und SGD1), Sourceauswahlschichten (SGS1 und SGS2), Dummy-Wortleitungsschichten (DWLL1a, DWLL1b, DWLL2a und DWLL2b) und Wortleitungsschichten (WLL0–WLL31) gemeinsam als die leitfähigen Schichten bezeichnet. In einer Ausführungsform sind die leitfähigen Schichten aus einer Kombination von TiN und Wolfram hergestellt. In anderen Ausführungsformen können andere Materialien wie etwa dotiertes Polysilicium, ein Metall wie etwa Wolfram oder Metallsilicid verwendet werden, um die leitfähigen Schichten zu bilden. In einigen Ausführungsformen können verschiedene leitfähige Schichten aus verschiedenen Materialien gebildet sein.
  • Zwischen leitfähigen Schichten liegen die dielektrischen Schichten DL0–DL19. Beispielsweise liegen die dielektrischen Schichten DL10 oberhalb der Wortleitungsschicht WLL26 und unterhalb der Wortleitungsschicht WLL27. In einer Ausführungsform sind die dielektrischen Schichten aus SiO2 hergestellt.
  • In anderen Ausführungsformen können andere dielektrische Materialien verwendet werden, um die dielektrischen Schichten zu bilden.
  • Die Wortleitungsschicht WLL0–WLL31 ist mit Speicherzellen (auch als Datenspeicherzellen bezeichnet) verbunden. Die Dummy-Wortleitungsschichten DWLL1a, DWLL1b, DWLL2a und DWLL2b sind mit Dummy-Speicherzellen verbunden. Eine Dummy-Speicherzelle, die auch als Nicht-Daten-Speicherzelle bezeichnet wird, speichert keine Anwenderdaten, während eine Datenspeicherzelle berechtigt ist, Anwenderdaten zu speichern. Somit können Datenspeicherzellen programmiert werden. Die Drainauswahlschichten SGD1 und SGD1 werden verwendet, um NAND-Stränge von Bitleitungen elektrisch zu verbinden und zu trennen. Die Sourceauswahlschichten SGS1 und SGS2 werden verwendet, um NAND-Stränge von der Sourceleitung SL elektrisch zu verbinden und zu trennen.
  • 4D zeigt eine perspektivische Ansicht der leitfähigen Schichten (SGD1, SGD1, SGS1, SGS2, DWLL1a, DWLL1b, DWLL2a, DWLL2b und WLL0–WLL31) für den Block, der teilweise in 4C dargestellt ist. Wie oben unter Bezugnahme auf 4B erwähnt teilen lokale Zwischenverbindungen 414, 416, 418, 420 und 422 jede leitfähige Schicht in vier Bereiche auf. Beispielsweise ist die Drainauswahlgateschicht SGD1 (die obere Schicht) in Bereiche 424, 426, 428 und 430 unterteilt. In ähnlicher Weise ist die Wortleitungsschicht WLL31 in Bereiche 442, 444, 446 und 448 unterteilt. Für Wortleitungsschichten (WLL0–WLL31) werden die Bereiche als Wortleitungsfinger bezeichnet; beispielsweise ist die Wortleitungsschicht WLL31 in Wortleitungsfinger 442, 444, 446 und 448 unterteilt.
  • 4E zeigt eine Querschnittsansicht des Bereichs 450 von 4C, der einen Abschnitt der vertikalen Spalte 432 enthält. In einer Ausführungsform sind die vertikalen Spalten rund und enthalten vier Schichten. In anderen Ausführungsformen können jedoch mehr oder weniger als vier Schichten enthalten sein und andere Formen können verwendet werden. In einer Ausführungsform enthält die vertikale Spalte 432 eine innere Kernschicht 452, die aus einem Dielektrikum wie SiO2 hergestellt ist. Andere Materialien können ebenfalls verwendet werden. Der innere Kern 452 ist von dem vertikalen Polysiliziumkanal 454 umgeben. Andere Materialien als Polysilizium können ebenfalls verwendet werden. Es ist zu beachten, dass der vertikale Polysiliziumkanal 454 mit der Bitleitung verbunden ist. Der vertikale Polysiliziumkanal 454 ist von einem Tunneldielektrikum 456 umgeben. In einer Ausführungsform weist das Tunneldielektrikum 456 eine Oxid-Nitrid-Oxid-Struktur (ONO-Struktur) auf. Das Tunneldielektrikum 456 ist von der Ladungseinfangschicht 458, beispielsweise einem Siliziumnitrid nach spezieller Formel, das die Einfangdichte erhöht, umgeben.
  • 4E zeigt dielektrische Schichten DLL11, DLL12, DLL13, DLL14 und DLL15 sowie die Wortleitungsschichten WLL27, WLL28, WLL29, WLL30 und WLL31. Jede der Wortleitungsschichten enthält einen Wortleitungsbereich 460, der von einer Aluminiumoxidschicht 462 umgeben ist, die von einer Sperroxidschicht (SiO2-Schicht) umgeben ist. Die physikalische Wechselwirkung der Wortleitungsschichten mit der vertikalen Spalte bildet die Speicherzellen. Somit enthält eine Speicherzelle in einer Ausführungsform den vertikalen Polysiliziumkanal 454, das Tunneldielektrikum 456, die Ladungseinfangschicht 458, die Sperroxidschicht 464, die Aluminiumoxidschicht 462 und den Wortleitungsbereich 460.
  • Beispielsweise enthalten die Wortleitungsschicht WLL31 und ein Abschnitt der vertikalen Spalte 432 eine Speicherzelle MCI. Die Wortleitungsschicht WLL30 und ein Abschnitt der vertikalen Spalte 432 enthalten eine Speicherzelle MC2. Die Wortleitungsschicht WLL29 und ein Abschnitt der vertikalen Spalte 432 enthalten eine Speicherzelle MC3. Die Wortleitungsschicht WLL28 und ein Abschnitt der vertikalen Spalte 432 enthalten eine Speicherzelle MC4. Die Wortleitungsschicht WLL27 und ein Abschnitt der vertikalen Spalte 432 enthalten eine Speicherzelle MC5. In anderen Architekturen kann eine Speicherzelle eine andere Struktur aufweisen; jedoch wäre die Speicherzelle immer noch die Speichereinheit.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Abschnitt der Ladungseinfangschicht 458, der der Speicherzelle zugeordnet ist, gespeichert. Diese Elektronen werden als Antwort auf eine geeignete Spannung an dem Wortleitungsbereich 460 aus dem vertikalen Polysiliziumkanal 454 durch die Tunnelschicht 458 in die Ladungseinfangschicht 458 gezogen. Die Schwellenspannung (Vth) einer Speicherzelle wächst proportional zu der Menge an gespeicherter Ladung. Während einer Löschoperation kehren die Elektronen zu dem Kanal zurück oder Löcher rekombinieren mit Elektronen.
  • In einer Ausführungsform werden Speicherzellen durch Anheben des Kanals auf eine Löschspannung Vera (z. B. 20–24 Volt) für eine ausreichende Zeitdauer und Verbinden der Wortleitungen eines ausgewählten Blocks mit Masse, während die Source- und Bitleitungen schweben, gelöscht. In Blöcken, die nicht zum Löschen ausgewählt sind, schweben Wortleitungen. Aufgrund der kapazitiven Kopplung werden die nicht ausgewählten Wortleitungen, Bitleitungen, Auswahlleitungen und die gemeinsame Sourceleitung ebenfalls um einen signifikanten Bruchteil der Löschspannung Vera angehoben, wodurch die Löschung von Blöcken, die nicht ausgewählt sind, erschwert wird.
  • 5 ist eine schematische Darstellung, die eine Erfassungsverstärkerschaltung 500 darstellt. Jeder Erfassungsblock SB1, SB2, SBp (2) enthält mehrere Erfassungsverstärkerschaltungen. Wie unten beschrieben lädt die Erfassungsverstärkerschaltung 500 einen Kondensator (oder eine andere Ladungsspeichervorrichtung) auf einen Vorladungsbetrag vor, entlädt den Kondensator durch die Speicherzelle für eine Tastzeit und erfasst die Spannung an dem Kondensator nach der Tastzeit. Die Erfassungsspannung gibt an, ob die Speicherzelle den zu erfassenden Strom geleitet hat, was angibt, ob die Schwellenspannung der Speicherzelle größer oder kleiner als eine Schwellenspannung ist, auf die getestet wird (die der Steuergatespannung entspricht).
  • Wenn die Schwellenspannung der Speicherzelle größer als die getestete Schwellenspannung ist, dann wird die Speicherzelle während einer Verifizierungsoperation die Programmierung entsprechend basierend auf den hier beschriebenen Prozessen abschließen. Die Erfassungsverstärkerschaltung 500 enthält einen Transistor 502, der mit der Bitleitung verbunden ist. Der Transistor 502 empfängt das Signal BLC an seinem Gate und wird als Spannungsklemme verwendet. Die Gatespannung BLC wird mit einer konstanten Spannung, die gleich der gewünschten Bitleitungsspannung plus der Schwellenspannung des Transistors 502 ist, vorgespannt. Die Funktion des Transistors 502 besteht daher darin, während einer Erfassungsoperation (während des Lesens oder Verifizierens) eine konstante Bitleitungsspannung auch dann aufrechtzuerhalten, wenn sich die Stromstärke durch die Bitleitung ändert.
  • Der Transistor 502 ist mit Transistoren 504 und 506 verbunden. Der Transistor 504 ist mit einem Kondensator 508 an dem mit SEN markierten Knoten verbunden. Der Zweck des Transistors 504 besteht darin, den Kondensator 508 mit der Bitleitung zu verbinden und den Kondensator 508 von der Bitleitung zu trennen, so dass der Kondensator 508 in selektiver Kommunikation mit der Bitleitung steht. Mit anderen Worten reguliert der Transistor 504 die Tastzeit. Das heißt, während der Transistor 504 eingeschaltet ist, kann der Kondensator 508 durch die Bitleitung entladen werden, und wenn der Transistor 504 ausgeschaltet ist, kann der Kondensator 508 nicht durch die Bitleitung entladen werden.
  • Der SEN-Knoten ist auch mit einem Transistor 510 und einem Transistor 512 verbunden. Der Transistor 510 ist mit Transistoren 506, 514 und 516 verbunden. Der Transistor 516 ist zudem mit einem Transistor 518 verbunden. Die Transistoren 516 und 518 sind PMOS-Transistoren, während die anderen Transistoren der Erfassungsverstärkerschaltung 500 NMOS-Transistoren sind. Die Transistoren 510, 516 und 518 stellen einen Vorladungsweg zu dem Kondensator 508 bereit. Eine Spannung (z. B. Vdd oder eine andere Spannung) ist an die Source des Transistors 518 angelegt. Durch geeignete Vorspannung der Transistoren 510, 516 und 518 kann die an die die Source des Transistors 518 angelegt Spannung verwendet werden, um den Kondensator 508 vorzuladen. Nach dem Vorladen kann der Kondensator 508 durch die Bitleitung über den Transistor 504 entladen werden (vorausgesetzt, der Transistor 502 leitet).
  • Wechselrichter 530 und 532 bilden eine Zwischenspeicherschaltung. Der Ausgang des Wechselrichters 532 ist mit dem Eingang des Wechselrichters 530 verbunden und der Ausgang des Wechselrichters 530 ist mit dem Eingang des Wechselrichters 532 sowie den Transistoren 518 und 520 verbunden. Der Eingang des Wechselrichters 532 wird Vdd empfangen und die beiden Wechselrichter 530, 532 werden als Zwischenspeicher zum Speichern von Vdd fungieren. Der Eingang des Wechselrichters 532 kann auch mit einem anderen Wert verbunden sein. Die Transistoren 514 und 520 liefern einen Weg zum Vermitteln der von den Wechselrichtern 530 und 532 gespeicherten Daten an den Transistor 512. Der Transistor 520 empfängt das Signal FCO an seinem Gate. Der Transistor 514 empfängt das Signal STRO an seinem Gate. Durch Anheben oder Absenken von FCO und STRO wird ein Weg zwischen den Wechselrichtern 530, 532 und dem Transistor (Erfassungsschalter) 512 bereitgestellt. Das Gate des Transistors 512 ist mit dem Kondensator 508, dem Transistor 504 und dem Transistor 510 an dem Knoten SEN verbunden. Das andere Ende des Kondensators 508 ist mit dem Signal CLK verbunden.
  • Wie oben diskutiert wird der Kondensator 508 über die Transistoren 510, 516 und 518 vorgeladen. Dies erhöht die Spannung an dem SEN-Knoten auf einen Vorladungsspannungspegel (Vpre). Wenn der Transistor 504 eingeschaltet wird, kann sich der Kondensator 508 durch die Bitleitung und die ausgewählte Speicherzelle entladen, wenn die Schwellenspannung der Speicherzelle unter dem zu testenden Spannungspegel liegt. Wenn sich der Kondensator 508 entladen kann, wird die Spannung an dem Kondensator (an dem SEN-Knoten) abnehmen.
  • Die Vorladungsspannung (Vpre) an dem SEN-Knoten ist größer als die Schwellenspannung des Transistors 512. Daher ist der Transistor 512 vor der Tastzeit eingeschaltet (leitend). Da der Transistor 512 während der Tastzeit eingeschaltet ist, sollte der Transistor 514 ausgeschaltet sein. Wenn sich der Kondensator während der Tastzeit nicht entlädt, bleibt die Spannung an dem SEN-Knoten oberhalb der Schwellenspannung des Transistors 512 und die Ladung an den Wechselrichtern 530, 532 kann in das CLK-Signal hinein entladen werden, wenn STRO den Transistor 514 einschaltet.
  • Wenn sich der Kondensator während der Tastzeit ausreichend entlädt, dann sinkt die Spannung an dem SEN-Knoten unter die Schwellenspannung des Transistors 512, wodurch der Transistor 512 ausgeschaltet wird und verhindert wird, dass die in den Wechselrichtern 530, 532 gespeicherten Daten (z. B. Vdd) durch CLK entladen werden. So Wird ein Test, ob die Wechselrichter 530, 532 ihre Ladung oder Entladung beibehalten, das Ergebnis des Verifizierungsprozesses angeben. In einer Ausführungsform kann das Ergebnis an einem Knoten A über einen Transistor 534 (Datenausgabe) durch Einschalten des Gate-Signals NCO des Transistors 534 gelesen werden.
  • Der Vorladungspegel des Kondensators 508 (und somit die Vorladungsspannung an dem Knoten SEN) ist durch den durch den Transistor 510 fließenden Strom begrenzt. Der Strom, der den Transistor 510 fließt, ist durch die Gatespannung H00 begrenzt. Daher ist die Vorladungsspannung an dem Knoten SEN durch die Spannung H00 abzüglich der Schwellenspannung des Transistors 510 begrenzt. Mit dieser Anordnung kann das System die Vorladungsspannung an dem Knoten SEN durch Regeln von H00 regulieren. Eine größere Spannung bei H00 führt zu einer größeren Spannung an dem SEN-Knoten beim Vorladen. Eine niedrigere Spannung bei H00 führt zu einer niedrigeren Spannung an dem SEN-Knoten beim Vorladen.
  • Wenn das System eine Lese- oder Verifizierungsoperation durchführt (beide sind Erfassungsoperationen), kann die an das Steuergate der Zelle angelegte Spannung bewirken, dass der Kanal (der mit der Bitleitung verbunden ist) der Zelle leitet. Wenn dies geschieht, wird ein Kondensator durch den Kanal entladen, wobei die Spannung bei der Entladung sinkt.
  • 6 ist ein Zeitdiagramm, das das Verhalten verschiedener Signale von 5 erläutert. Das Signal BLC ist bei Vbl + Vsrc + Vth, wobei Vbl die Spannung der Bitleitung, Vsrc die Spannung der Sourceleitung und Vth die Schwellenspannung des Transistors 502 ist. Das Signal FLA beginnt mit Vss bei t0 und geht bei t6 zu Vdd über. Wenn das Signal FLA bei Vss liegt, wird der Vorladungsweg durch den Transistor 510 reguliert.
  • Bei t0 wird die Spannung von H00 von Masse auf einen Vorladungspegel erhöht. Das Anheben der Spannung bei H00 schaltet den Transistor 510 ein und öffnet den Vorladungsweg. Die Größe der Spannung bei H00 ist festgelegt. 6 zeigt, dass H00 aus Vhoo übergeht. Das Signal H00 bleibt bis zu einem Zeitpunkt t1 auf der Vorladungsspannung (Vhoo). Während H00 hoch ist, schaltet sich der Transistor 510 ein und der Kondensator 512 wird zwischen t0 und t1 vorgeladen, wie es durch die Spannung bei SEN dargestellt ist. Zu dem Zeitpunkt t1 wird H00 auf Vss heruntergefahren und die Vorladung abgeschlossen.
  • Das Signal X00 wird verwendet, um zu ermöglichen, dass der Kondensator 512 mit der Bitleitung in Verbindung steht, so dass sich der Kondensator durch die Bitleitung und die ausgewählte Speicherzelle entladen kann. Zu einem Zeitpunkt t3 wird X00 auf Vblc angehoben, wobei Vblc die Spannung des Signals BLC ist (oben diskutiert). Zu einem Zeitpunkt t4 wird die Spannung bei X00 auf Vss abgesenkt. Zwischen den Zeitpunkten t3 und t4, was als Tastzeit bekannt ist, steht der Kondensator 512 mit der Bitleitung in Verbindung, um ein Entladen durch die Bitleitung und die ausgewählte Speicherzelle (abhängig von der Schwellenspannung der ausgewählten Speicherzelle) zu ermöglichen. Das Signal CLK wird zu dem Zeitpunkt t2 auf Vblc angehoben und zu einem Zeitpunkt t5 wieder auf Vss abgesenkt, um jegliche Konfliktbedingungen in der Schaltung zu verhindern und eine ordnungsgemäße Entladung des Kondensators 512 zu ermöglichen.
  • Wie oben diskutiert wird der Kondensator 512 (und der SEN-Knoten), da H00 zwischen t0 und t1 angehoben wird, zwischen t0 und t1 aufgeladen (die Vorladung). Dies ist in 6 mit dem Laden des SEN-Knotens von Vss auf Vpre dargestellt. Die durchgezogene Linie für Vpre stellt eine beispielhafte Vorladung des Knotens SEN (und des Kondensators 512) als Antwort darauf, dass Vh00 an das Gate des Transistors 506 angelegt wird, dar.
  • Wenn X00 bei t3 angehoben wird, kann der Kondensator 512 anfänglich die Bitleitung vorladen und dann durch die Bitleitung entladen werden (falls die Schwellenspannung auf dem geeigneten Pegel liegt). Wie in 6 zwischen t3 und t4 dargestellt wird die Spannung an dem SEN-Knoten von Vpre auf Vpost_con abgebaut, wenn die Speicherzelle eingeschaltet wird (leitet), weil die Schwellenspannung der Speicherzelle kleiner oder gleich der Spannung ist, die an ihr Steuergate angelegt ist. Wenn die Schwellenspannung für die zu testende Speicherzelle höher als die an ihrem Steuergate angelegte Spannung ist, wird der Kondensator 508 nicht entladen und die Spannung bleibt bei Vpre. Die Zeitspanne zwischen t3 und t4 ist die Tastzeit und kann wie oben beschrieben angepasst werden.
  • 6 zeigt, dass das Signal FCO bei t7 auf Vdd angehoben wird und bei t9 auf Vss abgesenkt wird. Das Signal STRO wird bei t8 auf Vdd angehoben und bei t9 abgesenkt. Zwischen den Zeitpunkten t8 und t9 gibt es einen Weg zwischen den Wechselrichtern 530, 532 und dem Transistor 512. Wenn die Spannung an dem Knoten SEN größer als die Schwellenspannung des Transistors 512 ist, dann gibt es einen Weg von den Wechselrichtern 530, 532 zu CLK und die Daten an den Wechselrichtern 530, 532 werden durch das Signal CLK und durch den Transistor 512 abgebaut.
  • Wenn die Spannung an dem Knoten SEN niedriger als die Schwellenspannung des Transistors 512 ist (beispielsweise wenn der Kondensator entladen wird), wird der Transistor 512 ausgeschaltet und die von den Wechselrichtern 530, 532 gespeicherte Spannung wird nicht zu CLK abgeführt. 6 zeigt den Spannungspegel an dem Knoten A bei Vdd. Wenn die Spannung des Kondensators nicht abgebaut wird (z. B. aufgrund dessen, dass unzureichender Strom fließt, weil die Schwellenspannung der ausgewählten Speicherzelle größer als die zu testende Spannung ist), dann bleibt der Transistor 512 eingeschaltet und die Spannung an dem Knoten A wird auf Vss abgebaut (wie es durch die gestrichelte Linie dargestellt ist).
  • Wenn sich die Spannung des Kondensators abbaut (z. B. aufgrund dessen dass ausreichend Strom fließt, weil die Schwellenspannung der ausgewählten Speicherzelle unterhalb der zu testenden Spannung liegt), wird der Transistor 512 ausgeschaltet und die Spannung an dem Knoten A wird auf Vdd bleiben (wie es durch die durchgezogene Linie dargestellt ist). Der Ausgang des Knotens A wird dem Datenausgabesignal über den Transistor 534 zugeführt, indem Vdd an das Signal NCO angelegt wird.
  • 7 ist ein Ablaufdiagramm, das eine Einzeltastungs-Erfassungsoperation beschreibt, die gemäß dem Zeitdiagramm von 6 durchgeführt wird. In Schritt 702 wird die geeignete Verifizierungsreferenzspannung (z. B. Vv, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 oder Vv7 – siehe 8A) an die ausgewählte Wortleitung angelegt. Die ausgewählte Wortleitung ist mit den Speicherzellen, die programmiert und verifiziert werden, verbunden. Die mit den Speicherzellen, die programmiert und verifiziert werden, verbundenen Bitleitungen werden auf einen vorgegebenen Vorladungspegel geladen.
  • In Schritt 704 werden alle SEN-Knoten vorgeladen. In Schritt 706 können die Bitleitungen beispielsweise durch Entladen des Kondensators 508 entladen werden (siehe t5–t6 von 6). Nach einer vorbestimmten Zeitspanne, die als ”Tastzeit” oder ”Integrationszeit” bezeichnet wird, wird die Spannung des Kondensators 508 (oder des SEN-Knotens) in Schritt 708 wie oben beschrieben abgetastet, um zu sehen, ob die jeweilige(n) Speicherzelle(n) geleitetet haben. Wie oben beschrieben wird der Verifizierungsprozess gleichzeitig für Tausende von Speicherzellen durchgeführt, die mit derselben Wortleitung und verschiedenen Bitleitungen verbunden sind.
  • An dem Ende eines erfolgreichen Programmiervorgangs (mit Verifizierung) sollten die Schwellenspannungen der Speicherzellen je nachdem innerhalb einer oder mehrerer Verteilungen von Schwellenspannungen für programmierte Speicherzellen oder innerhalb einer Verteilung von Schwellenspannungen für gelöschte Speicherzellen liegen. 8A veranschaulicht beispielhafte Schwellenspannungsverteilungen für ein Speicherzellenarray, wenn jede Speicherzelle vier Datenbits speichert. Andere Ausführungsformen können jedoch andere Datenkapazitäten pro Speicherzelle (z. B. ein, zwei, drei oder fünf Datenbits pro Speicherzelle) verwenden.
  • 8A zeigt sechzehn Schwellenspannungsverteilungen (die sechzehn Datenzuständen entsprechen). Die erste Schwellenspannungsverteilung (der erste Datenzustand) S0 repräsentiert Speicherzellen, die gelöscht sind. Die anderen fünfzehn Schwellenspannungsverteilungen (Datenzustände) S1–S15 repräsentieren Speicherzellen, die programmiert sind. Jede Schwellenspannungsverteilung (jeder Datenzustand) entspricht vorgegebenen Werten für den Satz von Datenbits.
  • Die spezifische Beziehung zwischen den in die Speicherzelle programmierten Daten und den Schwellenspannungspegeln der Speicherzelle hängt von dem für die Zellen übernommenen Datencodierungsschema ab. In einer Ausführungsform werden den Schwellenspannungsbereichen unter Verwendung einer Gray-Code-Zuordnung Datenwerte zugewiesen, so dass dann, wenn die Schwellenspannung eines Floating-Gates fälschlicherweise in den benachbarten physikalischen Zustand verschoben wird, nur ein Bit betroffen ist. Es ist zu beachten, dass der Zustand N – 1 für den Zustand N ein benachbarter niedrigerer Datenzustand ist. Beispielsweise ist der Zustand 7 ein benachbarter niedrigerer Datenzustand für den Zustand 8.
  • 8A zeigt zudem fünfzehn Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7, Vr8, Vr9, Vr10, Vr11, Vr12, Vr13, Vr14 und Vr15 zum Lesen von Daten aus Speicherzellen. Durch Testen, ob die Schwellenspannung einer gegebenen Speicherzelle oberhalb oder unterhalb der fünfzehn Lesereferenzspannungen liegt, kann das System bestimmen, in welchem Datenzustand (d. h. S0, S1, S2, S3, ...) die Speicherzelle ist.
  • 8A zeigt zudem fünfzehn Verifizierungsreferenzspannungen Vvl, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7, Vv8, Vv9, Vv10, Vv11, Vv12, Vv13, Vv14 und Vv15. Beim Programmieren von Speicherzellen in den Datenzustand Si wird das System testen, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vvi ist. Wenn beispielsweise Speicherzellen in den Datenzustand S1 programmiert werden, testet das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv1 ist. Beim Programmieren von Speicherzellen in den Datenzustand S2 prüft das System, ob die Speicherzellen Schwellenspannungen aufweisen, die größer oder gleich Vv2 sind, und so weiter.
  • In einer Ausführungsform, die als Vollsequenzprogrammierung bekannt ist, können Speicherzellen aus dem gelöschten Datenzustand S0 direkt in einen der programmierten Datenzustände S1–S15 programmiert werden. Zum Beispiel kann eine Population von Speicherzellen, die programmiert werden sollen, zuerst gelöscht werden, so dass alle Speicherzellen in der Population in dem gelöschten Datenzustand S0 sind. Dann wird eine Programmieroperation verwendet, um Speicherzellen direkt in die Datenzustände S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14 und/oder S15 zu programmieren.
  • Während beispielsweise einige Speicherzellen von dem Datenzustand S0 in den Datenzustand S1 programmiert werden, werden andere Speicherzellen von dem Datenzustand S0 in den Datenzustand S2 und/oder von dem Datenzustand S0 in den Datenzustand S3 programmiert und so weiter. Die Pfeile von 8A repräsentieren die Vollsequenzprogrammierung.
  • 8B veranschaulicht, dass eine weitere Ausführungsform von Schwellenspannungsverteilungen, die den Datenzuständen S0–S15 entsprechen, sich teilweise überlappen können, da eine Fehlerkorrektur einen bestimmten Prozentsatz von fehlerhaften Speicherzellen verarbeiten kann. Aufgrund der Größe der Zeichnung sind die Verweise auf die Datenzustände so abgekürzt, dass 0 anstelle von S0 verwendet wird, 1 wird anstelle von S1 verwendet wird, 2 anstelle von S2 verwendet wird und so weiter.
  • 9A–C beschreiben einen dreistufigen Programmierprozess zum Programmieren von Daten in Speicherzellen, die vier Datenbits speichern. Vor dem Programmieren werden alle Speicherzellen für einen Block auf eine gelöschte Schwellenspannungsverteilung gelöscht. Beispielsweise zeigt 9A einen Block von Speicherzellen, die in einer gelöschten Schwellenspannungsverteilung E (dargestellt mit einer gestrichelten Linie) beginnen. In einigen Ausführungsformen liegt die gelöschte Schwellenspannung E unter null Volt. In anderen Ausführungsformen liegt die gelöschte Schwellenspannungsverteilung E über null Volt oder teilweise über null Volt.
  • In dieser Ausführungsform enthält der Programmierprozess drei Phasen. Während der ersten Phase der Programmierung werden Speicherzellen, deren Ziele (aufgrund der in diesen Speicherzellen zu speichernden Daten) Datenzustände S4, S5, S6 oder S7 sind, auf einen Zwischenzustand IM0 programmiert. Speicherzellen, deren Ziele Datenzustände S8, S9, S10 oder S11 sind, werden auf einen Zwischenzustand FM1 programmiert. Speicherzellen, deren Ziele Datenzustände S12, S13, S14 oder S15 sind, werden auf einen Zwischenzustand FM2 programmiert. Speicherzellen, deren Ziele die Datenzustände S0, S1, S2 oder S3 sind, verbleiben in der gelöschten Schwellenspannungsverteilung E. Die erste Phase ist in 9A graphisch dargestellt.
  • Während der zweiten Phase des Programmierprozesses werden Speicherzellen, die sich in der gelöschten Schwellenspannungsverteilung E befinden, auf ihre Zieldatenzustände programmiert. Beispielsweise werden Speicherzellen, die auf den Datenzustand S3 programmiert werden sollen, aus der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S3 programmiert, Speicherzellen, die auf den Datenzustand S2 programmiert werden sollen, von der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S2 programmiert, Speicherzellen, die auf den Datenzustand S1 programmiert werden sollen, von der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S1 programmiert, und Speicherzellen, die in dem Datenzustand S0 sein sollen, werden während der zweiten Phase des Programmierprozesses nicht programmiert. Somit wird die gelöschte Schwellenspannungsverteilung E zu dem Datenzustand S0.
  • Außerdem werden während der zweiten Phase Speicherzellen von dem Zwischenzustand IM0 auf verschiedene Datenzustände S4–S7 programmiert. Beispielsweise werden Speicherzellen, die auf den Datenzustand S7 programmiert werden sollen, von dem Zwischenzustand IM0 auf den Datenzustand S7 programmiert, Speicherzellen, die in dem Datenzustand S6 sein sollen, von dem Zwischenzustand IM0 auf den Datenzustand S6 programmiert, Speicherzellen, die auf den Datenzustand S5 programmiert werden sollen, von dem Zwischenzustand IM0 auf den Datenzustand S5 programmiert und Speicherzellen, die auf den Datenzustand S4 programmiert werden sollen, von dem Zwischenzustand IM0 auf den Datenzustand S4 programmiert.
  • Speicherzellen werden auch von dem Zwischenzustand FM1 auf verschiedene Datenzustände S8–S11 programmiert. Beispielsweise werden Speicherzellen, die auf den Datenzustand S11 programmiert werden sollen, von dem Zwischenzustand IM1 auf den Datenzustand S11 programmiert, Speicherzellen, die in dem Datenzustand S10 sein sollen, von dem Zwischenzustand IM1 auf den Datenzustand S10 programmiert, Speicherzellen, die auf den Datenzustand S9 programmiert werden sollen, von dem Zwischenzustand IM1 auf den Datenzustand S9 programmiert und Speicherzellen, die auf den Datenzustand S8 programmiert werden sollen, von dem Zwischenzustand IM1 auf den Datenzustand S8 programmiert.
  • Speicherzellen werden auch von dem Zwischenzustand IM2 auf verschiedene Datenzustände S12–S15 programmiert. Beispielsweise werden Speicherzellen, die auf den Datenzustand S15 programmiert werden sollen, von dem Zwischenzustand IM2 auf den Datenzustand S15 programmiert, Speicherzellen, die in dem Datenzustand S14 sein sollen, von dem Zwischenzustand IM2 auf den Datenzustand S14 programmiert, Speicherzellen, die auf den Datenzustand S13 programmiert werden sollen, von dem Zwischenzustand IM2 auf den Datenzustand S13 programmiert und Speicherzellen, die auf den Datenzustand S12 programmiert werden sollen, von dem Zwischenzustand IM2 auf den Datenzustand S12 programmiert. Diese zweite Phase der Programmierung ist in 9B dargestellt.
  • Wie in 9B zu sehen ist überlappen die Datenzustände S1–15 an dem Ende der zweiten Phase der Programmierung mit benachbarten Datenzuständen. Beispielsweise überlappt der Datenzustand S1 mit dem Datenzustand S2, der Datenzustand S2 mit den Datenzuständen S1 und S3, der Datenzustand S3 mit den Datenzuständen S2 und S4, der Datenzustand S4 mit den Datenzuständen S3 und S5, der Datenzustand S5 mit den Datenzuständen S4 und S6 und der Datenzustand S6 mit den Datenzuständen S5 und S7 und so weiter. In einigen Ausführungsformen überlappen sich alle oder einige der Datenzustände nicht.
  • In der dritten Phase der Programmierung werden alle Datenzustände S1–S15 verschmälert, so dass sie nicht mehr mit benachbarten Zuständen überlappen. Dies ist in 9C graphisch dargestellt. In einigen Ausführungsformen ist der Datenzustand S0 breiter als die Datenzustände S1–S15.
  • 10 ist ein Ablaufdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren von Speicherzellen, die mit einer gemeinsamen Wortleitung verbunden sind, auf ein oder mehrere Ziele (z. B. Datenzustände oder Schwellenspannungsbereiche) beschreibt. Der Prozess von 10 kann einmal oder mehrmals durchgeführt werden, um Daten in einen Satz von Speicherzellen zu programmieren. Beispielsweise kann der Prozess von 10 verwendet werden, um Speicherzellen von S0 in der Vollsequenzprogrammierung von 8A auf irgendeinen von S1–S15 zu programmieren. Der Prozess von 10 kann zum Programmieren von Speicherzellen für irgendeine der drei Phasen von 9A–C verwendet werden.
  • Beim Programmieren einer Flash-Speichervorrichtung wie beispielsweise einer NAND-Flash-Speichervorrichtung wird typischerweise eine Programmierspannung Vpgm an die Wortleitung der Speicherzelle angelegt und die Bitleitung wird mit Masse verbunden. Elektronen aus dem Kanal werden in das schwebende Gate eingespeist. Wenn sich Elektronen in dem schwebenden Gate ansammeln, wird das schwebende Gate negativ geladen und die Schwellenspannung der Speicherzelle wird erhöht, so dass sich die Speicherzelle in einem programmierten Zustand befindet.
  • Typischerweise wird die Programmierspannung, die während einer Programmieroperation an das Steuergate angelegt wird, als eine Reihe von Programmierungsimpulsen angelegt. Zwischen den Programmierungsimpulsen liegt ein Satz von Verifizierungsimpulsen, um eine Verifizierung durchzuführen. In vielen Implementierungen wird die Größe der Programmierungsimpulse bei jedem nachfolgenden Impuls um eine vorbestimmte Schrittweite erhöht.
  • In Schritt 1000 von 10 wird die Programmierungsspannung Vpgm auf die Startgröße (z. B. –12–16 V oder einen anderen geeigneten Pegel) initialisiert und ein Programmierungszähler PC, der durch die Zustandsmaschine 222 (2) gepflegt wird, wird auf 1 initialisiert. In Schritt 1002 wird ein Programmierungsimpuls des Programmierungssignals Vpgm an die ausgewählte Wortleitung (die zur Programmierung ausgewählte Wortleitung) angelegt. In einer Ausführungsform sind alle aus der Gruppe von Speicherzellen, die gleichzeitig programmiert werden, mit der gleichen Wortleitung (der ausgewählten Wortleitung) verbunden. Die nicht ausgewählten Wortleitungen empfangen eine oder mehrere Verstärkungsspannungen (z. B. –7–11 Volt), um in dem Stand der Technik bekannte Verstärkungsschemata durchzuführen.
  • In einer Ausführungsform wird dann, wenn eine Speicherzelle programmiert werden soll, die entsprechende Bitleitung mit Masse verbunden. Wenn andererseits die Speicherzelle bei ihrer gegenwärtigen Schwellenspannung verbleiben soll, dann wird die entsprechende Bitleitung mit Vdd (z. B. 2,2 V) verbunden, um die Programmierung zu verhindern. Dies hindert die an die Bitleitung gekoppelte Zelle an der weiteren Programmierung an dann, wenn sie auf ihrer Wortleitung Programmierungsimpulsen ausgesetzt ist.
  • In Schritt 1002 wird der Programmierungsimpuls gleichzeitig an alle mit der ausgewählten Wortleitung verbundenen Speicherzellen angelegt, so dass alle mit der ausgewählten Wortleitung verbundenen Speicherzellen gleichzeitig programmiert werden. Das heißt, dass sie werden zur gleichen Zeit oder während überlappenden Zeiten programmiert (beide Fälle werden gleichzeitig betrachtet). Auf diese Weise werden alle mit der ausgewählten Wortleitung verbundenen Speicherzellen gleichzeitig eine Änderung ihrer Schwellenspannung aufweisen, es sei denn, sie wurden von der Programmierung ausgeschlossen.
  • In Schritt 1004 werden die entsprechenden Speicherzellen unter Verwendung des angemessenen Satzes von Zielpegeln verifiziert, um eine oder mehrere Verifizierungsoperationen auszuführen. In einer Ausführungsform wird der Verifizierungsprozess durch Anwenden eines Testens, ob die Schwellenspannungen der zur Programmierung ausgewählten Speicherzellen die angemessene Verifizierungsreferenzspannung (z. B. Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7) erreicht haben, durchgeführt.
  • Im Schritt 1006 wird eine Bestimmung vorgenommen, ob alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (Bestanden). Wenn ja, ist der Programmierungsprozess abgeschlossen und erfolgreich, weil alle ausgewählten Speicherzellen auf ihre Zielzustände programmiert sind und verifiziert sind. In Schritt 1008 wird ein Status von ”Bestanden” gemeldet. Wenn in 1006 eine Bestimmung vorgenommen wird, dass nicht alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (Gescheitert), geht der Programmierungsprozess zu Schritt 1010 über.
  • In Schritt 1010 zählt das System die Anzahl von Speicherzellen, die ihre jeweilige Zielschwellenspannungsverteilung noch nicht erreicht haben. Das heißt, dass das System die Anzahl der Speicherzellen zählt, die in dem Verifizierungsprozess gescheitert sind. Diese Zählung kann durch die Zustandsmaschine, den Controller oder eine andere Logik erfolgen. In einer Implementierung speichert jeder der Erfassungsblöcke den Status (Bestanden/Gescheitert) ihrer jeweiligen Zellen. In einer Ausführungsform gibt es eine Gesamtzahl, die die Gesamtzahl der momentan programmierten Speicherzellen widerspiegelt, die in dem letzten Verifizierungsschritt gescheitert sind. In einer weiteren Ausführungsform erfolgen für jeden Datenzustand getrennte Zählungen.
  • In Schritt 1012 wird eine Bestimmung vorgenommen, ob die Zählung von Schritt 1010 kleiner oder gleich einer vorbestimmten Grenze ist. In einer Ausführungsform ist die vorbestimmte Grenze die Anzahl von Bits, die durch ECC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden kann. Wenn die Anzahl der gescheiterten Zellen kleiner oder gleich der vorbestimmten Grenze ist, kann der Programmierprozess enden und in Schritt 1008 wird ein Status von ”Bestanden” gemeldet. In dieser Situation wurden genügend Speicherzellen korrekt programmiert, so dass die wenigen verbleibenden Speicherzellen, die nicht vollständig programmiert wurden, mit ECC während des Leseprozesses korrigiert werden können. In einigen Ausführungsformen zählt der Schritt 1010 die Anzahl der gescheiterten Zellen für jeden Sektor, jeden Zieldatenzustand oder eine andere Einheit, und diese Zählungen werden in Schritt 1012 einzeln oder gemeinsam mit einer Schwelle verglichen.
  • In einer weiteren Ausführungsform kann die vorbestimmte Grenze kleiner als die Anzahl von Bits sein, die durch ECC während eines Leseprozesses korrigiert werden kann, so dass zukünftige Fehler ermöglicht werden. Wenn weniger als alle Speicherzellen für eine Seite programmiert werden oder eine Zählung für nur einen Datenzustand (oder weniger als alle Zustände) verglichen wird, dann kann die vorgegebene Grenze ein Anteil (pro rata oder nicht pro rata) der Anzahl der Bits, die durch ECC während eines Leseprozesses für die Seite der Speicherzellen korrigiert werden können, sein. In einigen Ausführungsformen ist die Grenze nicht vorgegeben. Stattdessen ändert sie sich aufgrund der Anzahl der bereits gezählten Fehler für die Seite, der Anzahl der durchgeführten Programmzyklen oder anderer Kriterien.
  • Wenn die Anzahl der gescheiterten Speicherzellen nicht kleiner als die vorbestimmte Grenze ist, geht der Programmierungsprozess in Schritt 1014 weiter und der Programmierungszähler PC wird im Vergleich mit dem Programmierungsgrenzwert (PL) geprüft. Beispiele für Programmierungsgrenzwerte sind 20 und 30; jedoch können andere Werte verwendet werden. Ist der Programmierungszähler PC nicht kleiner als der Programmierungsgrenzwert PL, so gilt der Programmprozess als gescheitert und in Schritt 1018 wird ein Status ”Gescheitert” gemeldet. Ist der Programmierungszähler PC kleiner als der Programmierungsgrenzwert PL, fährt der Prozess in Schritt 1016 fort und währenddessen wird der Programmierungszähler PC um 1 inkrementiert und die Programmierspannung Vpgm auf die nächste Größe erhöht.
  • Beispielsweise hat der nächste Impuls eine Größe, die um eine Schrittweite (z. B. eine Schrittweite von 0,1–0,4 Volt) größer als die des vorhergehenden Impulses ist. Nach Schritt 1016 kehrt der Prozess zu Schritt 1002 zurück und ein weiterer Programmimpuls wird an die ausgewählte Wortleitung angelegt.
  • In der oben beschriebenen Ausführungsform werden zwei unterschiedliche Bitleitungsvorspannungen verwendet: eine erste Bitleitungsvorspannung (z. B. Vdd) dann, wenn der entsprechende Speicher an der Programmierung gehindert werden soll, und eine zweite Bitleitungsvorspannung (z. B. 0 V) dann, wenn eine entsprechende Speicherzelle programmiert werden soll. Somit wird bei solch einem Bitleitungsvorspannungsschema für alle Speicherzellen, die programmiert werden, unabhängig von dem Zielzustand der Speicherzelle eine einzige Bitleitungsvorspannung (z. B. 0 V) verwendet.
  • In einer weiteren Ausführungsform werden mehr als zwei Bitleitungsvorspannungen verwendet: eine erste Bitleitungsvorspannung (z. B. Vdd) dann, wenn die entsprechende Speicherzelle an der Programmierung gehindert werden soll, und mehrere Programmierungs-Bitleitungsvorspannungen für entsprechende Speicherzellen, die programmiert werden. Insbesondere wird dann, wenn eine Speicherzelle programmiert werden soll, die entsprechende Bitleitung basierend auf dem Zieldatenzustand der zu programmierenden Speicherzelle vorgespannt.
  • 11 beschreibt einen beispielhaften Programmierprozess, der mehrere Programmierungs-Bitleitungsvorspannungen für die gleichzeitige Programmierung entsprechender Speicherzellen verwendet. In dem dargestellten Beispiel wird ein Programmierprozess zum Programmieren von Daten in Speicherzellen, die vier Datenbits speichern, beschrieben. Vor dem Programmieren werden alle Speicherzellen für einen Block auf eine gelöschte Schwellenspannungsverteilung gelöscht. Beispielsweise beginnt ein Block von Speicherzellen in einer gelöschten Schwellenspannungsverteilung E (dargestellt mit einer gestrichelten Linie). In einigen Ausführungsformen liegt die gelöschte Schwellenspannung E unter null Volt. In anderen Ausführungsformen liegt die gelöschte Schwellenspannungsverteilung E über null Volt oder teilweise über null Volt.
  • Der Programmierungsprozess enthält zwei Phasen. Während der ersten Programmierungsphase werden die Speicherzellen, deren Ziele (aufgrund der in diesen Speicherzellen zu speichernden Daten) die Datenzustände S4, S5, S6 oder S7 sind, auf einen Zwischenzustand IM0 programmiert. Die Speicherzellen, deren Ziele die Datenzustände S8, S9, S10 oder SI1 sind, werden auf einen Zwischenzustand IM1 programmiert. Die Speicherzellen, deren Ziele die Datenzustände S12, S13, S14 oder S15 sind, werden auf einen Zwischenzustand IM2 programmiert. Die Speicherzellen, deren Ziele die Datenzustände S0, S1, S2 oder S3 sind, bleiben in der gelöschten Schwellenspannungsverteilung E.
  • Während der zweiten Programmierungsphase werden Speicherzellen gleichzeitig aus dem Zwischenzustand oder dem gelöschten Zustand auf die Zieldatenzustände programmiert ist und die entsprechende Bitleitung wird basierend auf dem Zieldatenzustand der Speicherzelle, die programmiert wird, vorgespannt, wie es in Tabelle 1 dargelegt ist:
    Tabelle 1
    Zielzustand Programmierungs-Bitleitungsvorspannung
    S3, S7, S11, S15 Vbl1
    S2, S6, S10, S14 Vbl2
    S1, S5, S9, S13 Vbl3
    S4, S8, S12 Vbl4
  • Somit werden in diesem Beispiel vier Programmierungs-Bitleitungsvorspannungen (Vbl1, Vbl2, Vbl3 und Vbl4) für entsprechende Speicherzellen, die programmiert werden und vier Datenbits speichern, verwendet.
  • Unter erneuter Bezugnahme auf 11 werden Speicherzellen von dem Zwischenzustand IM2 auf verschiedene Datenzuständen S12–S15 programmiert, wobei die entsprechende Bitleitung basierend auf dem Zieldatenzustand vorgespannt wird. Beispielsweise werden Speicherzellen, die auf den Datenzustand S15 programmiert werden sollen, unter Verwendung einer ersten Programmierungs-Bitleitungsvorspannung Vbl1 (z. B. 0 V) von dem Zwischenzustand IM2 auf den Datenzustand S15 programmiert, Speicherzellen, die auf den Datenzustand S14 programmiert werden sollen, unter Verwendung einer zweiten Programmierungs-Bitleitungsvorspannung Vbl2 (z. B. 0,4 V) von dem Zwischenzustand IM2 auf den Datenzustand S14 programmiert, Speicherzellen, die auf den Datenzustand S13 programmiert werden sollen, unter Verwendung einer dritten Programmierungs-Bitleitungsvorspannung Vbl3 (z. B. 0,8 V) von dem Zwischenzustand IM2 auf den Datenzustand S13 programmiert und Speicherzellen, die auf den Datenzustand S12 programmiert werden sollen, unter Verwendung einer vierten Programmierungs-Bitleitungsvorspannung Vbl4 (z. B. 1,2 V) von dem Zwischenzustand IM2 auf den Datenzustand S12 programmiert. Die erste Programmierungs-Bitleitungsvorspannung Vbl1, die zweite Programmierungs-Bitleitungsvorspannung Vbl2, die dritte Programmierungs-Bitleitungsvorspannung Vbl3 und die vierte Programmierungs-Bitleitungsvorspannung Vbl4 können andere Werte als die oben aufgeführten und in 11 gezeigten Beispielwerte aufweisen.
  • Speicherzellen werden auch gleichzeitig von dem Zwischenzustand IM1 auf verschiedene Datenzustände S8–S11 programmiert, wobei die entsprechende Bitleitung basierend auf dem Zieldatenzustand vorgespannt wird. Beispielsweise werden Speicherzellen, die auf den Datenzustand S11 programmiert werden sollen, unter Verwendung der ersten Programmierungs-Bitleitungsvorspannung Vbl1 von dem Zwischenzustand IM1 auf den Datenzustand S11 programmiert, Speicherzellen, die auf den Datenzustand S10 programmiert werden sollen, unter Verwendung der zweiten Programmierungs-Bitleitungsvorspannung Vbl2 von dem Zwischenzustand IM1 auf den Datenzustand S10 programmiert, Speicherzellen, die auf den Datenzustand S9 programmiert werden sollen, unter Verwendung der dritten Programmierungs-Bitleitungsvorspannung Vbl3 von dem Zwischenzustand IM1 auf den Datenzustand S9 programmiert, und Speicherzellen, die auf den Datenzustand S8 programmiert werden sollen, unter Verwendung der vierten Programmierungs-Bitleitungsvorspannung Vbl4 von dem Zwischenzustand IM1 auf den Datenzustand S8 programmiert.
  • Speicherzellen werden auch gleichzeitig von dem Zwischenzustand IM0 auf verschiedene Datenzustände S4–S7 programmiert, wobei die entsprechende Bitleitung basierend auf dem Zieldatenzustand vorgespannt wird. Beispielsweise werden Speicherzellen, die auf den Datenzustand S7 programmiert werden sollen, unter Verwendung der ersten Programmierungs-Bitleitungsvorspannung Vbl1 von dem Zwischenzustand IM0 auf den Datenzustand S7 programmiert, Speicherzellen, die auf den Datenzustand S6 programmiert werden sollen, unter Verwendung der zweiten Programmierungs-Bitleitungsvorspannung Vbl2 von dem Zwischenzustand IM0 auf den Datenzustand S6 programmiert, Speicherzellen, die auf den Datenzustand S5 programmiert werden sollen, unter Verwendung der dritten Programmierungs-Bitleitungsvorspannung Vbl3 von dem Zwischenzustand IM0 auf den Datenzustand S5 programmiert, und Speicherzellen, die auf den Datenzustand S4 programmiert werden sollen, unter Verwendung der vierten Programmierungs-Bitleitungsvorspannung Vbl4 von dem Zwischenzustand IM0 auf den Datenzustand S4 programmiert.
  • Speicherzellen werden auch gleichzeitig von der gelöschten Schwellenspannungsverteilung E auf verschiedene Datenzustände S1–S3 programmiert, wobei die entsprechende Bitleitung basierend auf dem Zieldatenzustand vorgespannt wird. Beispielsweise werden Speicherzellen, die auf den Datenzustand S3 programmiert werden sollen, unter Verwendung der ersten Programmierbitleitungsvorspannung Vbl1 von der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S3 programmiert, Speicherzellen, die auf den Datenzustand S2 programmiert werden sollen, unter Verwendung der zweiten Programmierbitleitungsvorspannung Vbl2 von der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S2 programmiert, Speicherzellen, die auf den Datenzustand S1 programmiert werden sollen, unter Verwendung der dritten Programmierbitleitungsvorspannung Vbl3 von der gelöschten Schwellenspannungsverteilung E auf den Datenzustand S1 programmiert, und Speicherzellen, die in dem Datenzustand S0 sein sollen, werden während der zweiten Phase des Programmierprozesses nicht programmiert. Somit wird die gelöschte Schwellenspannungsverteilung E zu dem Datenzustand S0.
  • Wie aus 11 ersichtlich entspricht die bei der Programmierung verwendete Bitleitungsvorspannung der Spannungsdifferenz zwischen der Zwischenzustandsverteilung und der Zielzustandsverteilung. Das heißt, dass die Datenzustände S15, S11, S7 und S3 haben die größte Spannungsdifferenz zu den Zwischenzustandsverteilungen IM2, IM1, IM0 und E haben und unter Verwendung der ersten Programmierungs-Bitleitungsvorspannung Vbl1 programmiert werden. Ebenso haben die Datenzustände S14, S10, S6 und S2 eine erste niedrigere Spannungsdifferenz zu den Zwischenzustandsverteilungen IM2, IM1, IM0 und E und werden unter Verwendung der zweiten Programmierungs-Bitleitungsvorspannung Vbl2 programmiert. Ähnlich haben die Datenzustände S13, S9, S5 und S1 eine zweite niedrigere Spannungsdifferenz zu den Zwischenzustandsverteilungen IM2, IM1, IM0 und E und werden unter Verwendung der dritten Programmierungs-Bitleitungsvorspannung Vbl3 programmiert. Schließlich haben die Datenzustände S12, S8 und S4 eine dritte niedrigere Spannungsdifferenz zu den Zwischenzustandsverteilungen IM2, IM1, IM0 und E und werden unter Verwendung der vierten Programmierungs-Bitleitungsvorspannung Vbl4 programmiert.
  • Um die Kopplung zwischen Bitleitungen zu reduzieren, sollten gerade Speicherzellen getrennt von ungeraden Speicherzellen programmiert werden.
  • Obwohl 11 einen zweiphasigen Programmierungsprozess zum Programmieren von Daten in Speicherzellen, die vier Datenbits speichern, beschreibt, können ähnliche Mehrbitleitungs-Vorspannungstechniken zum Programmieren von Daten in Speicherzellen, die mehr oder weniger als vier Datenbits speichern, verwendet werden. Darüber hinaus können, obwohl 11 einen Programmierungsprozess beschreibt, der vier Programmierungs-Bitleitungsvorspannungen verwendet, mehr oder weniger als vier Programmierungs-Bitleitungsvorspannungen verwendet werden. Darüber hinaus können, obwohl 11 einen zweiphasigen Programmierungsprozess beschreibt, ähnliche Mehrbitleitungs-Vorspannungstechniken für Programmierungsprozesse, die mehr als zwei Phasen verwenden, verwendet werden.
  • Bei der in 11 beschriebenen Ausführungsform werden fünf verschiedene Bitleitungsvorspannungen verwendet: eine Sperr-Bitleitungsvorspannung (z. B. Vdd), wenn der entsprechende Speicher von der Programmierung ausgenommen werden soll, und vier Programmierungs-Bitleitungsvorspannungen für entsprechende Speicherzellen, die programmiert werden, wobei die Programmierungs-Bitleitungsvorspannungen auf dem Zieldatenzustand der Speicherzelle, die programmiert wird, basieren.
  • 12 ist eine schematische Darstellung, die eine Erfassungsverstärkerschaltung 1200 darstellt, die basierend auf dem Zieldatenzustand der Speicherzelle, die programmiert wird, eine Sperr-Bitleitungsvorspannung und mehrere Programmierungs-Bitleitungsvorspannungen liefert.
  • Die Erfassungsverstärkerschaltung 1200 enthält einen Transistor 1202, der mit der Bitleitung und einem COM-Knoten verbunden ist. Der Transistor 1202 empfängt ein Signal BLC an seinem Gate und verbindet oder trennt die Bitleitung auf der Basis des Spannungspegels des Signals BLC mit/von dem COM-Knoten. Wenn das Signal BLC HOCH ist (z. B. Vdd), ist ein Transistor 1202 eingeschaltet und die Bitleitung lädt das Spannungspotential des COM-Knotens auf. Wenn das Signal BLC NIEDRIG ist (z. B. 0 V), ist ein Transistor 1202 ausgeschaltet und die Bitleitung ist schwebend.
  • Der Transistor 1202 ist ein n-Kanal-Transistor, der an dem COM-Knoten mit n-Kanal-Transistoren 1204 und 1206 verbunden ist. Der Transistor 1204 empfängt ein Signal BLY an seinem Gate und verbindet oder trennt den COM-Knoten auf der Basis des Spannungspegels des Signals BLY mit/von dem COMY-Knoten. Wenn das Signal BLY HOCH ist, ist der Transistor 1204 eingeschaltet und der COM-Knoten ist mit dem COMY-Knoten verbunden. Wenn das Signal BLY NIEDRIG ist, ist der Transistor 1204 ausgeschaltet und der COM-Knoten ist von dem COMY-Knoten getrennt.
  • Der Transistor 1206 empfängt ein Signal XXL an seinem Gate und verbindet oder trennt den COM-Knoten auf der Basis des Spannungspegels des Signals XXL mit/von dem SEN-Knoten. Wenn das Signal XXL HOCH ist, ist der Transistor 1206 eingeschaltet und der COM-Knoten ist mit dem SEN-Knoten verbunden. Wenn das Signal XXL NIEDRIG ist, ist der Transistor 1206 ausgeschaltet und der COM-Knoten ist von dem SEN-Knoten getrennt.
  • Der Transistor 1204 ist an dem COMY-Knoten mit einem p-Kanal-Transistor 1208 und einem n-Kanal-Transistor 1210 verbunden. Der Transistor 1208 empfängt ein Signal OSP an seinem Gate und ist mit dem Signal Vdd über einen p-Kanal-Transistor 1212 gekoppelt, der ein Signal INV an seinem Gate empfängt. Der Transistor 1210 empfängt ein Signal GRS an seinem Gate und ist an dem Knoten Vx mit dem Sourceanschluss des n-Kanal-Transistors 1214 gekoppelt, der ein Signal INV an seinem Gate empfängt und dessen Drainanschluss mit dem Signal SGND gekoppelt ist.
  • Wenn die Signale INV, OSP und XXL NIEDRIG sind und die Signale BLY und BLC HOCH sind, sind die Transistoren 1202, 1204, 1208 und 1212 eingeschaltet, die Transistoren 1206 und 1214 ausgeschaltet und die Bitleitung wird auf Vdd (z. B. 2,2 V), die Sperr-Bitleitungsvorspannung, geladen. Andere Werte von Vdd können verwendet werden.
  • Wenn die Signale INV, GRS, BLY und BLC HOCH sind, das Signal XXL NIEDRIG ist und das Signal SGND = Vss (z. B. 0 V) ist, sind die Transistoren 1202, 1204, 1210 und 1214 eingeschaltet, die Transistoren 1206 und 1212 sind ausgeschaltet und die Bitleitung wird auf Vss, die erste Programmierungs-Bitleitungsvorspannung Vbl1, geladen.
  • Der Transistor 1206 ist an dem SEN-Knoten mit n-Kanal-Transistoren 1216, 1218, 1220 und 1222 und mit einem p-Kanal-Transistor 1224 verbunden. Der Transistor 1216 hat einen Drainanschluss, der mit dem SEN-Knoten gekoppelt ist, und einen Gateanschluss, der mit Vss gekoppelt ist, und ist ausgeschaltet. Der Transistor 1218 hat einen Gateanschluss, der mit dem SEN-Knoten gekoppelt ist, und einen Sourceanschluss, der mit Vss gekoppelt ist. Der Transistor 1220 hat einen Drainanschluss, der mit einem Source-Anschluss des Transistors 122 verbunden ist, einen Gateanschluss, der mit einem Signal LSL gekoppelt ist, und einen Sourceanschluss, der mit einem Drainanschluss eines n-Kanal-Transistors 1226 gekoppelt ist. Der Transistor 1226 hat einen Gateanschluss, der mit einem Signal LBUS gekoppelt ist, und einen Sourceanschluss, der mit Vss gekoppelt ist.
  • Der Transistor 1224 hat einen Sourceanschluss, der mit Vdd gekoppelt ist, einen Gateanschluss, der mit dem SEN-Knoten gekoppelt ist, und einen Drainanschluss, der mit einem Sourceanschluss eines p-Kanal-Transistors 1228 gekoppelt ist. Der Transistor 1228 hat einen Gate-Anschluss, der mit einem Signal VG1 gekoppelt ist, und einen Drainanschluss, der mit einem Drainanschluss eines n-Kanal-Transistors 1230 gekoppelt ist. Der Transistor 1230 hat einen Gateanschluss, der mit einem Signal VG2 gekoppelt ist, und einen Sourceanschluss, der mit einem Drainanschluss des Transistors 1218 gekoppelt ist.
  • Der Transistor 1222 hat einen Gateanschluss, der mit einem Signal VG3 gekoppelt ist, und einen Drainanschluss, der mit einem Drainanschluss eines p-Kanal-Transistors 1232 gekoppelt ist. Der Transistor 1232 hat einen Gateanschluss, der mit dem Signal LBUS gekoppelt ist, und einen Sourceanschluss, der mit Vdd gekoppelt ist.
  • Wenn die Signale BLC, XXL, LSL, LBUS und VG1 HOCH sind und die Signale BLY, VG2 und VG3 NIEDRIG sind, sind die Transistoren 1202, 1206, 1220 und 1226 eingeschaltet, die Transistoren 1204, 122 und 1228 sind ausgeschaltet, der SEN-Knoten ist mit Vss verbunden und die Bitleitung wird auf Vss, die erste Programmierungs-Bitleitungsvorspannung Vbl1, geladen.
  • Ein n-Kanal-Transistor 1234 hat einen Drainanschluss, der mit dem Signal LBUS gekoppelt ist, einen Gateanschluss, der mit dem Signal BLCM gekoppelt ist, und einen Sourceanschluss, der an dem Knoten INV mit einem Gateanschluss eines n-Kanal-Transistors 1236 gekoppelt ist. Ein parasitärer Kondensator Cp ist zwischen den Knoten INV und Vss gekoppelt und hat einen Wert von etwa 10 fF. Der Transistor 1236 hat einen Drainanschluss, der mit einem Drainanschluss des Transistors 1216 gekoppelt ist, und einen Sourceanschluss, der mit Vss gekoppelt ist.
  • Ein n-Kanal-Transistor 1238 hat einen Drainanschluss, der mit dem Drainanschluss des Transistors 1228 gekoppelt ist, einen Gateanschluss, der mit Vss gekoppelt ist, und einen Sourceanschluss, der mit einem Sourceanschluss des Transistors 1222 gekoppelt ist. Der Transistor 1238 ist ausgeschaltet.
  • Wenn LBUS HOCH ist und das Signal BLCM mindestens um eine Schwellenspannung höher als der Knoten INV ist, gilt für den Knoten INV: INV = BLCM – Vt (1) wobei Vt die Schwellenspannung des Transistors 1234 ist.
  • In einer Ausführungsform kann das Signal BLCM folgende Werte aufweisen: V2 = Vbl2 + 2 × Vt, V3 = Vbl3 + 2 × Vt und V4 = Vbl4 + 2 × Vt, wobei Vbl2, Vbl3 und Vbl4 die zweite Programmierbitleitungsvorspannung, dritte Programmierbitleitungsvorspannung und vierte Programmierbitleitungsvorspannung (oben beschrieben) sind und Vt die Schwellenspannung von Transistor 1234 ist. Für jeden der BLCM-Werte V2, V3 und V4 hat INV entsprechende Werte V2A = Vbl2 + Vt, V3A = Vbl3 + Vt und V4A = Vbl4 + Vt. In einer Ausführungsform ist Vbl2 = 0,4 V, Vbl3 = 0,8 V und Vbl4 = 1,2 V, obwohl andere Werte verwendet werden können.
  • Wenn die Signale BLC, BLY, OSP und GRS HOCH sind, das Signal XXL NIEDRIG ist und das Signal SGND = Vdd ist, sind die Transistoren 1202, 1204 und 1210 eingeschaltet und die Transistoren 1206 und 1208 ausgeschaltet. Wenn das Signal TNV gemäß Gleichung (1) festgelegt ist und wenn der Transistor 1214 eine Schwellenspannung Vt aufweist, ist die Spannung an dem Knoten Vx gegeben durch: Vx = INV – Vt = BLCM – 2 × Vt (2)
  • Dementsprechend können die Spannung und der Knoten Vx die folgenden Werte aufweisen: Vbl2, Vbl3 und Vbl4, und können basierend auf dem Wert des Signals BLCM ausgewählt werden. Da die Transistoren 1202, 1204 und 1210 eingeschaltet sind, wird die Bitleitung basierend auf dem Wert von BLCM auf die zweite Programmierungs-Bitleitungsvorspannung Vbl2, die dritte Programmierungs-Bitleitungsvorspannung Vbl3 und die vierte Programmierungs-Bitleitungsvorspannung Vbl4 aufgeladen.
  • Der Erfassungsverstärker 1200 enthält zudem Datenzwischenspeicher ADL, BDL, CDL und DDL, die mit LBUS gekoppelt sind. Die Datenzwischenspeicher ADL, BDL, CDL und DDL speichern die zu programmierenden Daten in die Speicherzelle. Für eine Speicherzelle, die vier Datenbits speichert, werden vier Datenzwischenspeicher verwendet, für eine Speicherzelle, die drei Datenbits speichert, werden drei Datenzwischenspeicher verwendet und so weiter. Der Wert des Signals LBUS wird auf Basis der in den Datenzwischenspeichern ADL, BDL, CDL und DDL gespeicherten Daten konfiguriert.
  • 13A13E sind Zeitdiagramme, die verschiedene Signale von 12 beschreiben. 13A beschreibt Signale zum Vorspannen einer Bitleitung mit einer Sperr-Bitleitungsvorspannung (z. B. Vdd), 13B beschreibt Signale zum Vorspannen einer Bitleitung mit der vierten Programmierungs-Bitleitungsvorspannung Vbl4 (z. B. 1,2 V), 13C beschreibt Signale zum Vorspannen einer Bitleitung mit der dritten Programmierungs-Bitleitungsvorspannung Vbl3 (z. B. 0,8 V), 13D beschreibt Signale zum Vorspannen einer Bitleitung mit der zweiten Programmierungs-Bitleitungsvorspannung Vbl2 (z. B. 0,4 V) und 13E beschreibt Signale zum Vorspannen einer Bitleitung mit der ersten Programmierungs-Bitleitungsvorspannung Vbl1 (z. B. 0 V).
  • Unter Bezugnahme auf 12 und 13A ist der SEN-Knoten vor dem Zeitpunkt t0 schwebend, VG1 ist bei Vdd (HOCH), und alle anderen Signale sind bei Vss (NIEDRIG). Von t0 bis t1 gehen BLC und BLY auf HOCH, INV, OSP und XXL sind NIEDRIG, die Transistoren 1202, 1204, 1208 und 1212 sind eingeschaltet und die Transistoren 1206 und 1214 sind ausgeschaltet. Somit lädt die Bitleitung durch die Transistoren 1202, 1204, 1208 und 1212 auf die Sperr-Bitleitungsspannung Vdd. Von t2 bis t3 gehen BLC und BLY auf NIEDRIG und schalten die Transistoren 1202 und 1204 aus, wodurch die Bitleitung schwebend ist. Gleichzeitig geht OSP auf HOCH über und schaltet den Transistor 1208 aus. LBUS wird basierend auf dem Datenwert in den Datenzwischenspeichern ADL, BDL, CDL und DDL gesteuert. INV und LBUS bleiben NIEDRIG und halten die Transistoren 1214 und 1226 ausgeschaltet. Somit bleibt die Bitleitung für den Rest des Zeitraums schwebend.
  • Unter Bezugnahme auf 12 und 13B ist der SEN-Knoten vor der Zeit t0 schwebend, INV und VG1 sind auf Vdd (HOCH), und alle anderen Signale sind auf Vss (NIEDRIG). Von t0 bis t1 gehen BLC, BLY und GRS auf HOCH über, XXL ist NIEDRIG, die Transistoren 1202, 1204, 1210 und 1214 werden eingeschaltet, die Transistoren 1206 und 1212 sind ausgeschaltet und SGND = Vss. Somit wird die Bitleitung durch die Transistoren 1202, 1204, 1210 und 1214 auf Vss gezogen. Von t2 bis t3 gehen BLC, BLY und GRS auf NIEDRIG über und OSP und BLCM gehen auf HOCH über, die Transistoren 1202, 1204, 1208, 1210 und 1214 werden ausgeschaltet und der Transistor 1234 eingeschaltet, wodurch INV auf NIEDRIG gezogen wird. Bei t3 wird LBUS, das auf der Basis des Datenwerts in den Datenzwischenspeichern ADL, BDL, CDL und DDL gesteuert wird, als auch LSL HOCH, wodurch die Transistoren 1220 und 1226 eingeschaltet werden und der SEN-Knoten auf Vss gezogen wird. Von t3 bis t4 steigt BLCM auf V4. INV steigt auf V4A und wird dann als Ergebnis des Ausschaltens des Transistors 1234, wenn BLCM unter INV abfällt, schwebend. Von t7 bis t8 steigt SGND auf Vdd. Bei t8 geht LBUS aus NIEDRIG über, wodurch der Transistor 1226 ausgeschaltet wird und der SEN-Knoten schwebend wird. Von t8 bis t9 gehen BLC, BLY und GRS auf HOCH über, wodurch die Transistoren 1202, 1204 und 1210 eingeschaltet werden. Somit lädt die Bitleitung durch die Transistoren 1202, 1204 und 1210 auf die vierte Programmierungs-Bitleitungsvorspannung Vbl4, die an dem Knoten Vx vorhanden ist. Die Bitleitung bleibt für den Rest der Zeitspanne auf der vierten Programmierungs-Bitleitungsvorspannung Vbl4 angesteuert.
  • Unter Bezugnahme auf 12 und 13C ist der SEN-Knoten vor der Zeit t0 schwebend, INV und VG1 sind auf Vdd (HOCH) und alle anderen Signale sind auf Vss (NIEDRIG). Von t0 bis t1 gehen BLC, BLY und GRS auf HOCH über, XXL ist NIEDRIG, die Transistoren 1202, 1204, 1210 und 1214 schalten sich ein, die Transistoren 1206 und 1212 sind ausgeschaltet und SGND = Vss. Somit wird die Bitleitung durch die Transistoren 1202, 1204, 1210 und 1214 auf Vss gezogen. Von t2 bis t3 gehen BLC, BLY und GRS auf NIEDRIG über und OSP und BLCM gehen auf HOCH über, wodurch die Transistoren 1202, 1204, 1208, 1210 und 1214 ausgeschaltet werden und der Transistor 1234 eingeschaltet wird und INV auf NIEDRIG gezogen wird. Bei t3 gehen LSL und VG3 auf HOCH über. LBUS ist NIEDRIG, so dass die Transistoren 1222 und 1232 eingeschaltet werden und der SEN-Knoten auf Vdd gezogen wird. Bei t5 geht LBUS, das basierend auf dem Datenwert in den Datenzwischenspeichern ADL, BDL, CDL und DDL gesteuert wird, auf HOCH über, wodurch der Transistor 1232 ausgeschaltet wird und der Transistor 1226 eingeschaltet wird. Der Transistor 1220 schaltet sich ebenfalls eine und zieht den SEN-Knoten auf Vss. Von t5 bis t6 steigt BLCM auf V3. INV steigt auf V3A und wird dann als Ergebnis des Ausschaltens des Transistors 1234, wenn der BLCM unter INV fällt, schwebend. Von t7 bis t8 steigt SGND auf Vdd. Bei t8 geht LBUS auf NIEDRIG über, wodurch der Transistor 1226 ausgeschaltet wird und der SEN-Knoten schwebend wird. Von t8 bis t9 gehen BLC, BLY und GRS auf HOCH über, wodurch die Transistoren 1202, 1204 und 1210 eingeschaltet werden. Somit lädt die Bitleitung durch die Transistoren 1202, 1204 und 1210 auf die dritte Programmierungs-Bitleitungsvorspannung Vbl3, die an dem Knoten Vx vorhanden ist. Die Bitleitung bleibt für den Rest der Zweitspanne auf der dritten Programmierungs-Bitleitungsvorspannung Vbl3 angesteuert.
  • Unter Bezugnahme auf 12 und 13D ist der SEN-Knoten vor der Zeit t0 schwebend, INV und VG1 sind auf Vdd (HOCH) und alle anderen Signale sind auf Vss (NIEDRIG). Von t0 bis t1 gehen BLC, BLY und GRS auf HOCH über, XXL ist NIEDRIG, die Transistoren 1202, 1204, 1210 und 1214 schalten sich ein, die Transistoren 1206 und 1212 sind ausgeschaltet und SGND = Vss. Somit wird die Bitleitung durch die Transistoren 1202, 1204, 1210 und 1214 auf Vss gezogen. Von t2 bis t3 gehen BLC, BLY und GRS auf NIEDRIG über und OSP und BLCM gehen auf HOCH über, wodurch die Transistoren 1202, 1204, 1208, 1210 und 1214 ausgeschaltet werden und der Transistor 1234 eingeschaltet wird und INV auf NIEDRIG gezogen wird. Bei t3 gehen LSL und VG3 auf HOCH über. LBUS ist NIEDRIG, so dass sich die Transistoren 1222 und 1232 einschalten und der SEN-Knoten auf Vdd gezogen wird. Bei t7 geht LBUS, der basierend auf dem Datenwert in den Datenzwischenspeichern ADL, BDL, CDL und DDL gesteuert wird, auf HOCH über, wodurch der Transistor 1232 ausgeschaltet wird und der Transistor 1226 eingeschaltet wird. Der Transistor 1220 schaltet sich ebenfalls ein und zieht den SEN-Knoten auf Vss. Von t7 bis t8 steigt BLCM auf V2. INV steigt auf V2A und wird dann als Ergebnis des Ausschaltens des Transistors 1234, wenn der BLCM unter INV fällt, schwebend. Von t7 bis t8 steigt SGND auf Vdd. Bei t8 geht LBUS auf NIEDRIG über, wodurch der Transistor 1226 ausgeschaltet wird und der SEN-Knoten schwebend wird. Von t8 bis t9 gehen BLC, BLY und GRS auf HOCH über, wodurch die Transistoren 1202, 1204 und 1210 eingeschaltet werden. Somit lädt die Bitleitung durch die Transistoren 1202, 1204 und 1210 auf die zweite Programmierungs-Bitleitungsvorspannung Vbl2, die an dem Knoten Vx vorhanden ist. Die Bitleitung bleibt für den Rest der Zeitspanne auf der zweiten Programmierungs-Bitleitungsvorspannung Vbl2 angesteuert.
  • Unter Bezugnahme auf 12 und 13E ist der SEN-Knoten vor der Zeit t0 schwebend, INV und VG1 sind auf Vdd (HOCH) und alle anderen Signale sind auf Vss (NIEDRIG). Von t0 bis t1 gehen BLC, BLY und GRS auf HOCH über, XXL ist NIEDRIG, die Transistoren 1202, 1204, 1210 und 1214 schalten sich ein, die Transistoren 1206 und 1212 sind ausgeschaltet und SGND = Vss. Somit wird die Bitleitung durch die Transistoren 1202, 1204, 1210 und 1214 auf Vss gezogen. Von t2 bis t3 gehen BLC, BLY und GRS auf NIEDRIG über und OSP und BLCM gehen auf HOCH über, wodurch die Transistoren 1202, 1204, 1208, 1210 und 1214 ausgeschaltet werden und der Transistor 1234 eingeschaltet wird und INV auf NIEDRIG gezogen wird. Bei t3 gehen LSL und VG3 auf HOCH über. LBUS ist NIEDRIG, so dass sich die Transistoren 1222 und 1232 einschalten und der SEN-Knoten auf Vdd gezogen wird. Bei t8 wird LBUS, das basierend auf dem Datenwert in den Datenzwischenspeichern ADL, BDL, CDL und DDL gesteuert wird, auf HOCH über, wodurch der Transistor 1232 ausgeschaltet wird und der Transistor 1226 eingeschaltet wird. Der Transistor 1220 schaltet sich ebenfalls ein und zieht den SEN-Knoten auf Vss. Von t8 bis t9 gehen BLC und XXL auf HOCH über, wodurch die Transistoren 1220 und 1226 eingeschaltet werden. Somit wird die Bitleitung durch die Transistoren 1202, 1206, 1220 und 1226 auf Vss, die erste Programmierungs-Bitleitungsvorspannung Vbl1, gezogen. Die Bitleitung bleibt für den Rest der Zeitspanne auf die erste Programmierungs-Bitleitungsvorspannung Vbl1 gezogen.
  • Eine Ausführungsform enthält ein Verfahren zum Programmieren eines nichtflüchtigen Speichers. Das Verfahren enthält ein Programmieren von Speicherzellen für gerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände und ein gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände für jeden der Zwischendatenzustände. Das Verfahren enthält ebenfalls ein Programmieren von Speicherzellen für ungerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände und ein gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände für jeden Zwischendatenzustand.
  • Eine Ausführungsform enthält einen nichtflüchtigen Speicher, der einen Controller enthält, der dazu ausgelegt ist, Speicherzellen zu programmieren. Der Controller programmiert Speicherzellen für gerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände für jeden Zwischendatenzustand. Der Controller programmiert Speicherzellen für ungerade Bitleitungen durch Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände und gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände für jeden Zwischendatenzustand.
  • Eine Ausführungsform enthält einen Erfassungsverstärker für einen nichtflüchtigen Speicher, der mehrere Speicherzellen enthält, wobei jede Speicherzelle eine entsprechende Bitleitung enthält. Der Erfassungsverstärker enthält eine Schaltungsanordnung, die dazu ausgelegt ist, jede Bitleitung basierend auf Zieldatenzuständen der entsprechenden Speicherzellen, die programmiert werden, vorzuspannen.
  • Für die Zwecke dieses Dokuments sollte beachtet werden, dass die Abmessungen der verschiedenen Merkmale, die in den Figuren gezeigt sind, nicht notwendigerweise maßstabsgetreu sind.
  • Für die Zwecke dieses Dokuments kann eine Bezugnahme in der Patentschrift auf ”eine Ausführungsform”, ”eine einzelne Ausführungsform” oder ”eine weitere Ausführungsform” verwendet werden, um verschiedene Ausführungsformen derselben Ausführungsform zu beschreiben.
  • Für die Zwecke dieses Dokuments kann eine Verbindung eine direkte Verbindung oder eine indirekte Verbindung (z. B. über eine oder mehrere andere Teile) sein. In manchen Fällen kann, wenn ein Element als mit einem anderen Element verbunden oder gekoppelt bezeichnet wird, das Element direkt mit dem anderen Element verbunden sein oder indirekt über dazwischenliegende Elemente mit dem anderen Element verbunden sein. Wenn ein Element als direkt mit einem anderen Element verbunden bezeichnet wird, dann sind keine dazwischenliegenden Elemente zwischen dem Element und dem anderen Element vorhanden. Zwei Vorrichtungen stehen ”in Kommunikation”, wenn sie direkt oder indirekt so verbunden sind, dass sie elektrische Signale untereinander austauschen können.
  • Für die Zwecke dieses Dokuments kann der Begriff ”basierend auf” wie ”zumindest in Teilen basierend auf” verstanden werden.
  • Für die Zwecke dieses Dokuments kann ohne zusätzlichen Kontext die Verwendung von numerischen Begriffen wie beispielsweise ein ”erstes” Objekt, ein ”zweites” Objekt und ein ”drittes” Objekt nicht eine Reihenfolge von Objekten implizieren, sondern kann stattdessen zu Identifikationszwecken zum Identifizieren verschiedener Objekte verwendet werden.
  • Für die Zwecke dieses Dokuments kann der Begriff ”Satz” von Objekten sich auf einen ”Satz” von einem oder mehreren Objekten beziehen.
  • Die vorangegangene genaue Beschreibung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder auf die genau offengelegte Form beschränkt sein. Viele Abwandlungen und Variationen sind im Hinblick auf die obigen Lehren möglich. Die beschriebenen Ausführungsformen wurden ausgewählt, um die Prinzipien der vorgeschlagenen Technologie und ihrer praktischen Anwendung am besten zu erklären und es dadurch anderen Fachleuten zu ermöglichen, sie in verschiedenen Ausführungsformen und mit verschiedenen Abwandlungen, wie sie für den speziellen in Betracht gezogenen Gebrauch geeignet sind, am besten einzusetzen. Der Geltungsbereich soll durch die hierzu beigefügten Ansprüche definiert sein.

Claims (15)

  1. Verfahren zum Programmieren eines nichtflüchtigen Speichers, wobei das Verfahren enthält: Programmieren von Speicherzellen für gerade Bitleitungen durch: Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände; und für jeden der Zwischendatenzustände: gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände; und Programmieren von Speicherzellen für ungerade Bitleitungen durch: Programmieren der Speicherzellen aus einem gelöschten Zustand auf die mehreren Zwischendatenzustände; und für jeden der Zwischendatenzustände: gleichzeitiges Programmieren der Speicherzellen auf die mehreren Zieldatenzustände.
  2. Verfahren nach Anspruch 1, wobei jede der Speicherzellen mit einer entsprechenden Bitleitung gekoppelt ist; und die entsprechende Bitleitung für jede Speicherzelle auf eine erste Bitleitungsvorspannung vorgespannt wird, wenn die Speicherzelle an der Programmierung gehindert werden soll, und auf eine von mehreren Programmierungs-Bitleitungsvorspannungen vorgespannt wird, wenn die Speicherzelle auf einen endgültigen Zustand programmiert werden soll.
  3. Verfahren nach Anspruch 2, wobei die entsprechende Bitleitung basierend auf dem Zieldatenzustand der Speicherzelle, die programmiert wird, vorgespannt wird.
  4. Verfahren nach einem der Ansprüche 2–3, wobei eine Anzahl von Programmierungs-Bitleitungsvorspannungen gleich einer Anzahl von Datenzuständen ist, die in jeder Speicherzelle gespeichert werden können.
  5. Verfahren nach einem der Ansprüche 2–4, wobei die entsprechende Bitleitungsvorspannung auf einer Spannungsdifferenz zwischen der Zwischenzustandsverteilung und der Zielzustandsverteilung basiert.
  6. Verfahren nach einem der Ansprüche 2–5, wobei die mehreren Programmierungs-Bitleitungsvorspannungen vier Programmierungs-Bitleitungsvorspannungen enthalten.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der nichtflüchtige Speicher einen zweidimensionalen oder einen dreidimensionalen nichtflüchtigen Speicher enthält.
  8. Nichtflüchtiger Speicher, der enthält: einen Controller, der zu Folgendem ausgelegt ist: Programmieren von Speicherzellen für gerade Bitleitungen durch: Programmieren der Speicherzellen aus einem gelöschten Zustand auf mehrere Zwischendatenzustände; und für jeden der Zwischendatenzustände: gleichzeitiges Programmieren der Speicherzellen auf mehrere Zieldatenzustände; und Programmieren von Speicherzellen für ungerade Bitleitungen durch: Programmieren der Speicherzellen aus einem gelöschten Zustand auf die mehreren Zwischendatenzustände; und für jeden der Zwischendatenzustände: gleichzeitiges Programmieren der Speicherzellen auf die mehreren Zieldatenzustände.
  9. Nichtflüchtiger Speicher nach Anspruch 8, wobei jede der Speicherzellen mit einer entsprechenden Bitleitung gekoppelt ist; und der nichtflüchtige Speicher ferner einen Erfassungsverstärker aufweist, der mit dem Controller gekoppelt ist, wobei der Erfassungsverstärker dazu ausgelegt ist, mehrere Bitleitungsvorspannungen bereitzustellen.
  10. Nichtflüchtiger Speicher nach Anspruch 9, wobei der Erfassungsverstärker für jede Speicherzelle die entsprechende Bitleitung auf eine erste Bitleitungsvorspannung vorspannt, wenn die Speicherzelle an der Programmierung gehindert werden soll, und die Speicherzelle auf eine von mehreren Programmierungs-Bitleitungsvorspannungen vorspannt, wenn die Speicherzelle auf einen endgültigen Zustand programmiert werden soll.
  11. Nichtflüchtiger Speicher nach Anspruch 10, wobei der Erfassungsverstärker die entsprechende Bitleitung basierend auf dem Zieldatenzustand der Speicherzelle, die programmiert wird, vorspannt.
  12. Nichtflüchtiger Speicher nach einem der Ansprüche 10–11, wobei eine Anzahl von Programmierungs-Bitleitungsvorspannungen gleich einer Anzahl von Datenzuständen ist, die in jeder Speicherzelle gespeichert werden können.
  13. Nichtflüchtiger Speicher nach einem der Ansprüche 10–12, wobei der Erfassungsverstärker die entsprechende Bitleitung auf der Basis einer Spannungsdifferenz zwischen der Zwischenzustandsverteilung und der Zielzustandsverteilung vorspannt.
  14. Nichtflüchtiger Speicher nach einem der Ansprüche 10–13, wobei die mehreren Programmierungs-Bitleitungsvorspannungen vier Programmierungs-Bitleitungsvorspannungen enthalten.
  15. Nichtflüchtiger Speicher nach einem der Ansprüche 8–14, wobei der nichtflüchtige Speicher einen zweidimensionalen oder einen dreidimensionalen nichtflüchtigen Speicher enthält.
DE112016000654.3T 2015-05-28 2016-05-23 Mehrzustands-Programmierung für nichtflüchtigen Speicher Pending DE112016000654T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562167428P 2015-05-28 2015-05-28
US62/167,428 2015-05-28
US14/929,156 US9595317B2 (en) 2015-05-28 2015-10-30 Multi-state programming for non-volatile memory
US14/929,156 2015-10-30
PCT/US2016/033704 WO2016191339A1 (en) 2015-05-28 2016-05-23 Multi-state programming for non-volatile memory

Publications (1)

Publication Number Publication Date
DE112016000654T5 true DE112016000654T5 (de) 2017-12-28

Family

ID=56098413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016000654.3T Pending DE112016000654T5 (de) 2015-05-28 2016-05-23 Mehrzustands-Programmierung für nichtflüchtigen Speicher

Country Status (6)

Country Link
US (1) US9595317B2 (de)
JP (1) JP2018513516A (de)
KR (1) KR101904233B1 (de)
CN (1) CN107408410B (de)
DE (1) DE112016000654T5 (de)
WO (1) WO2016191339A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366739B2 (en) 2017-06-20 2019-07-30 Sandisk Technologies Llc State dependent sense circuits and sense operations for storage devices
US10366729B2 (en) 2017-06-22 2019-07-30 Sandisk Technologies Llc Sense circuit with two-step clock signal for consecutive sensing
US10037810B1 (en) 2017-06-27 2018-07-31 Sandisk Technologies Llc Method and apparatus for coupling up a voltage-setting transistor for a control line in a programming operation
US10510383B2 (en) 2017-10-03 2019-12-17 Sandisk Technologies Llc State dependent sense circuits and pre-charge operations for storage devices
US10438636B2 (en) * 2017-12-07 2019-10-08 Advanced Micro Devices, Inc. Capacitive structure for memory write assist
KR102509640B1 (ko) 2018-06-15 2023-03-16 삼성전자주식회사 페이지 버퍼 및 이를 포함하는 메모리 장치
US11004484B2 (en) 2018-06-15 2021-05-11 Samsung Electronics Co., Ltd. Page buffer and memory device including the same
US10811109B2 (en) 2018-12-27 2020-10-20 Sandisk Technologies Llc Multi-pass programming process for memory device which omits verify test in first program pass
KR20200129239A (ko) 2019-05-07 2020-11-18 삼성전자주식회사 페이지 버퍼, 이를 포함하는 메모리 장치
US11049578B1 (en) * 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JP2000251485A (ja) * 1999-02-26 2000-09-14 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
US6714457B1 (en) 2001-09-19 2004-03-30 Aplus Flash Technology, Inc. Parallel channel programming scheme for MLC flash memory
US7630237B2 (en) * 2003-02-06 2009-12-08 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
JP4836548B2 (ja) * 2005-11-11 2011-12-14 株式会社東芝 半導体集積回路装置
US7696035B2 (en) * 2006-11-13 2010-04-13 Sandisk Corporation Method for fabricating non-volatile memory with boost structures
US7616500B2 (en) * 2007-02-20 2009-11-10 Sandisk Corporation Non-volatile storage apparatus with multiple pass write sequence
CN101689400B (zh) * 2007-02-20 2013-07-03 桑迪士克科技公司 基于阈值电压分布的动态检验
US7599224B2 (en) * 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
EP2308053A1 (de) * 2008-07-01 2011-04-13 LSI Corporation Verfahren und vorrichtungen zur schreibseitigen minderung von störungen zwischen zellen in flash-speichern
CN102203877B (zh) * 2008-09-30 2016-07-06 Lsi公司 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置
KR20100043935A (ko) * 2008-10-21 2010-04-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8279675B2 (en) 2008-11-19 2012-10-02 Hynix Semiconductor Inc. Nonvolatile memory device and method of programming the same
JP2010218623A (ja) * 2009-03-17 2010-09-30 Toshiba Corp 不揮発性半導体記憶装置
KR101662277B1 (ko) * 2010-05-12 2016-10-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8274838B2 (en) * 2010-07-19 2012-09-25 Sandisk Technologies Inc. Programming non-volatile memory with bit line voltage step up
KR101772578B1 (ko) * 2011-04-19 2017-08-30 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US8582381B2 (en) * 2012-02-23 2013-11-12 SanDisk Technologies, Inc. Temperature based compensation during verify operations for non-volatile storage
KR101927212B1 (ko) * 2012-05-09 2019-03-07 삼성전자주식회사 비휘발성 메모리 장치의 프로그래밍 방법
US9053819B2 (en) 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
US9135989B2 (en) * 2012-09-06 2015-09-15 Sandisk Technologies Inc. Write data preservation for non-volatile storage

Also Published As

Publication number Publication date
US20160351254A1 (en) 2016-12-01
CN107408410A (zh) 2017-11-28
KR101904233B1 (ko) 2018-10-05
US9595317B2 (en) 2017-03-14
JP2018513516A (ja) 2018-05-24
KR20170126895A (ko) 2017-11-20
CN107408410B (zh) 2021-01-26
WO2016191339A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE112017004208B4 (de) 3d-nand mit teilblocklöschen
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE602004008490T2 (de) Programmierung mit verstärktem substrat/tub für flash-speicher
DE112015003834B4 (de) Abtasten mehrerer referenzpegel in nichtflüchtigen speicherelementen
DE19880311B3 (de) Nichtflüchtige Speicherstruktur
DE112019000164T5 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE102018123918A1 (de) Zustandsabhängige Abtastschaltungen und Vorladevorgänge für Speichervorrichtungen
DE102015105858A1 (de) Halbleitervorrichtungen mit Peripherieschaltungsbereich und einem ersten und einem zweiten Speicherbereich, sowie zugehörige Programmierverfahren
DE102018105623A1 (de) Zustandsabhängige Abtastschaltungen und Abtastoperationen für Speichervorrichtungen
DE112019000157T5 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE112016003568B4 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE112019005518T5 (de) Mehrzustandsprogrammierung in einer speichervorrichtung mit schleifenabhängiger bitleitungsspannung während der verifizierung
DE112004002851B4 (de) Halbleitervorrichtung und Programmierverfahren
DE112020000174T5 (de) Adaptive vpass für 3d-flash-speicher mit paarkettenstruktur
DE112019000159T5 (de) Ramp-down-abtastung zwischen programmspannung und prüfspannung in einer speichervorrichtung
DE102015117496A1 (de) Steuerung der zeitbereich-anstiegsquote für die löschsperre im flash-speicher
DE60003451T2 (de) Wortleitungssignale einer flashspeicher bleiben überall auf dem chip verlustfrei
DE102022102593A1 (de) Speicherprogrammierung mit selektiv übersprungenen verifizierungsimpulsen zur leistungsverbesserung
DE102019200314A1 (de) Schreibunterstützung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE