DE102018105685A1 - Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet - Google Patents

Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet Download PDF

Info

Publication number
DE102018105685A1
DE102018105685A1 DE102018105685.0A DE102018105685A DE102018105685A1 DE 102018105685 A1 DE102018105685 A1 DE 102018105685A1 DE 102018105685 A DE102018105685 A DE 102018105685A DE 102018105685 A1 DE102018105685 A1 DE 102018105685A1
Authority
DE
Germany
Prior art keywords
memory cells
programming
level
voltage
memory
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
DE102018105685.0A
Other languages
English (en)
Inventor
Deepanshu Dutta
Xiaochang Miao
Muhammad Masuduzzaman
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 DE102018105685A1 publication Critical patent/DE102018105685A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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
    • 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/08Address circuits; Decoders; Word-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
    • 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/26Sensing 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • 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)
  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

Mehr-Zustands-Programmierung von nichtflüchtigen Speicherzellen, wobei Zellen, die auf verschiedene Targetzustände programmiert werden, gleichzeitig programmiert werden, wird durch Modulieren der Programmiergeschwindigkeit jedes Zustands unter Verwendung eines gesteuerten Betrages von Zustands-abhängigem schwachem Boosting in ihren jeweiligen Kanälen durchgeführt. In einem Beispiel wird das Kanal-Boosting durch Verwenden einer Multi-Treppen-Wortleitungsrampe in Verbindung mit dem Anheben der Spannung auf Bitleitungen zu einer Zeit basierend auf dem Targetzustand der entsprechenden Speicherzelle gesteuert.

Description

  • Halbleiterspeicher wird vielfältig in verschiedenen elektronischen Vorrichtungen wie Funktelefonen, Digitalkameras, Personal Digital Assistants, medizinischer Elektronik, mobilen Berechnungsvorrichtungen und nichtmobilen Berechnungsvorrichtungen verwendet. Halbleiterspeicher kann nichtflüchtigen Speicher oder flüchtigen Speicher aufweisen. Ein nichtflüchtiger Speicher erlaubt einer Information, gespeichert und behalten zu werden, auch wenn der nichtflüchtigen Speicher nicht mit einer Energiequelle (z.B. einer Batterie) verbunden ist. Beispiele von nichtflüchtigem Speicher schließen Flash-Speicher (z.B. NAND-Typ und NOR-Typ-Flash-Speicher) und Electrically Erasable Programmable Read-Only-Memory (EEPROM) ein.
  • 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 dreidimensionalen (3D) gestapelten Speicherstruktur angeordnet sein. Ein Beispiel einer 3D-Speicherstruktur ist die Bit-Cost-Scalable (BiCD) Architektur, die einen Stapel von alternierenden leitenden und dielektrischen Schichten aufweist. Ein Speicherloch wird in dem Stapel ausgebildet und eine NAND-Kette wird dann durch Füllen des Speicherloches mit Materialien einschließlich einer Ladungseinfangschicht gebildet, um eine vertikale Spalte von Speicherzellen zu erzeugen. Eine gerade NAND-Kette erstreckt sich in einem Speicherloch. Steuer-Gates der Speicherzellen werden von den leitenden Schichten bereitgestellt.
  • Einige nichtflüchtige Speichervorrichtungen werden verwendet, um zwei Bereiche von Ladungen zu speichern und daher kann die Speicherzelle zwischen zwei Bereichen von Schwellwertspannungen, die zwei Datenzuständen entsprechen, programmiert/gelöscht werden: einem gelöschten Zustand (z.B. Daten „1“) und einem programmierten Zustand (z.B. Daten „0“). Solche eine Vorrichtung wird als eine binäre oder Zwei-Zustands-Vorrichtung bezeichnet.
  • Ein Multi-Zustands-nichtflüchtiger Speicher wird durch Identifizierten von mehreren unterschiedenen erlaubten Bereichen von Schwellwertspannungen implementiert. Jeder unterschiedene Bereich von Schwellwertspannungen entspricht einem Datenzustand, dem ein vorbestimmter Wert für den Satz von Daten-Bits zugewiesen ist. Die spezifische Beziehung zwischen den Daten, die in die Speicherzelle programmiert werden und den Bereichen von Schwellwertspannungen hängt von dem Datenkodierschema ab, das für die Speicherzellen übernommen wird. Zum Beispiel beschreiben US-Patentanmeldung Nr. 6222762 und US-Patentanmeldung Nr. 2004/0255090 beide verschiedene Datenkodierschemata für Multi-Zustands-Flash-Speicherzellen.
  • Eine Programmieroperation für nichtflüchtigen Speicher umfasst typischerweise das Anwenden von Portionen des Programmierens und Verifizierens des Programmierens nach jeder Portion des Programmierens. Während Multi-Zustands-nichtflüchtiger Speicher mehr Datenzustände speichern kann als binärer nichtflüchtiger Speicher kann der Prozess des Programmierens und Verifizierens des Programmierens länger für Multi-Zustands-nichtflüchtigen Speicher dauern.
  • Figurenliste
  • Gleich nummerierte Elemente beziehen sich auf gemeinsame Komponenten in den verschiedenen Figuren.
    • 1 ist eine perspektivische Ansicht einer 3D-gestapelten nichtflüchtigen Speichervorrichtung.
    • 2 ist ein funktionales Blockdiagramm einer Speichervorrichtung wie z.B. der gestapelten nichtflüchtigen Speichervorrichtung 100 aus 1.
    • 3A ist ein Blockdiagramm, das Software-Module zum Programmieren eines oder mehrerer Prozessoren in einer Steuereinheit darstellt.
    • 3B ist ein Blockdiagramm, das Software-Module zum Programmieren einer Zustandsmaschine oder eines anderen Prozessors auf einem Speicherchip darstellt.
    • 3C ist ein Blockdiagramm eines individuellen Erfassungsblocks.
    • 4A ist ein Blockdiagramm einer Speicherstruktur mit zwei Ebenen.
    • 4B stellt eine Draufsicht eines Abschnitts eines Blockes von Speicherzellen dar.
    • 4C stellt eine Querschnittsansicht eines Abschnitts eines Blockes von Speicherzellen dar.
    • 4D stellt eine Ansicht der Auswahl-Gate-Schichten und Wortleitungsschichten dar.
    • 4E ist eine Querschnittsansicht einer vertikalen Spalte von Speicherzellen.
    • 4F ist ein Schema von einer Mehrzahl von NAND-Ketten.
    • 5 ist ein schematisches Diagramm eines Erfassungsverstärkers.
    • 6 ist ein Timing-Diagramm, das das Verhalten von bestimmten Signalen beschreibt, die in dem Erfassungsverstärker aus 5 dargestellt sind.
    • 7 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren beschreibt.
    • 8 und 9 stellen Schwellwertspannungsverteilungen dar.
    • 10 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren beschreibt.
    • 11 und 12 stellen Multi-Zustands-Programmierung (verschiedene Zustände, die gleichzeitig programmieren) dar, wobei die Programm-aktivierten Zellen für sämtliche Target-Zustände ihre Kanäle ähnlich vorgespannt haben.
    • 13 gibt einige Beispiele von Kanal-Boosting-Werten und ihrer Entsprechung mit verschiedenen Target-Zuständen.
    • 14 ist eine Tabelle von Target-Zustand gegen die Programmschleifenanzahl, wenn Kanal-Boosting basierend auf dem Target-Zustand enthalten ist.
    • 15 ist ein Satz von Wellenformen, die einige Details des Vorspannens eines NAND-Speicher-Arrays darstellen, um das Kanalpotential in dem Beispiel eines einzelnen Zustands anzuheben.
    • 16 ist ein Satz von Wellenformen, die Details des Vorspannens eines NAND-Speicher-Arrays darstellen, um Kanalpotentiale getrennt für jeden Zustand des Programmierens von Speicherzellen anzuheben.
    • 17 zeigt, wie die Kanalspannungen der verschiedenen Target-Zustandszellen sich mit der Zeit für die Anordnung aus 16 ändern.
    • 18 ist ein Flussdiagramm, das Aspekte der beispielhaften Ausführungsformen zum Vorspannen des Arrays vor dem Anwenden des Programmierpulses darstellt.
    • 19 stellt eine alternative Ausführungsform dar, wobei ein Satz von unteren Target-Zuständen schwach als eine Gruppe geboostet werden.
    • 20 stellt eine Verwendung einer Programmierwellenform beim schwachen Boosten dar.
    • 21 stellt die Verwendung einer hochlaufenden Wellenform auf Wortleitungen und ein verschobenes Anheben der Bitleitungen, die den Zellen entsprechen, unter Verwendung von schwachem Boosten dar.
    • 22a-C, 23A und 23B stellen das Konzept der natural Vt compaction dar.
  • Detaillierte Beschreibung
  • Beim Multi-Zustands-Programmieren, wobei Speicherzellen gleichzeitig in mehrere Target-Zustände programmiert werden, stellt eine typische Programmieroperation für NAND-Speicher-Sätze die ausgewählten Bitleitungen auf Masse und die nichtausgewählten Bitleitungen auf eine Programmiersperrspannung ein; hebt die Wortleitungen von Masse zu Vpass an; und wendet dann den Programmierpuls auf die ausgewählte Wortleitung des vorgespannten Array an. Da sämtliche der Zellen bei etwa der gleichen Rate programmieren, bedeutet dies, dass die niedrigsten Zustände dies viel eher beenden können als die höchsten Zustände. Zum Beispiel kann in einer Vier-Bit-Pro-Zelle-Anordnung das Programmieren des untersten Zustandes nach etwa, sagen wir, einem Duzend Pulsen beendet werden, während der höchste Zustand bis zu etwas wie 40 Pulsen benötigen kann.
  • Die Techniken, die unten beschrieben sind, erlauben sämtlichen der Zellen, in etwas derselben Anzahl von Pulsen zu programmieren, unabhängig von dem Target-Zustand, so dass sie alle bei, sagen wir, -12 Pulsen fertig sind. Die wird vor dem Anwenden des Pulses auf die ausgewählte Wortleitung durch Verwenden einer Vorspannprozedur für den Array getan, wo der Kanal von jeder ausgewählten Speicherzelle um einen Betrag angehoben wird, der von ihrem Target-Zustand abhängt. Zum Beispiel wird eine Zelle, die zu einem niedrigen Target-Zustand wechselt, ihren Kanal mehr angehoben bekommen als eine Zelle, die zu einem höheren Target-Zustand wechselt, um dadurch den effektiven Puls der niedrigen Target-Zustands-Zelle zu reduzieren.
  • Anstatt Wortleitungen der NAND-Ketten direkt von Masse zu der Programm-Pass-Spannung (Vpass) zu übertragen, die für nichtausgewählte Wortleitungen verwendet wird, werden Wortleitungen anstelle dessen in einer Serie von Schritten (ein Schritt pro Target-Zustand in einer vollen Version) angehoben und dann wird jede Bitleitung zu einem Niveau angehoben, das ausreichend ist, um das Auswahl-Gate bei einem dieser Schritte abzuschalten. Der ausgewählte Schritt hängt von dem Target-Zustand der entsprechenden Zelle ab. Sobald das Auswahl-Gate abgeschaltet ist, wird der Kanal zum Floaten hinterlassen und wird wiederum durch die Wortleitungen bei den nachfolgenden Schritten zu Vpass hochgezogen: Je früher das Auswahl-Gate abgeschaltet wird, desto mehr wird der Kanal durch die verbleibenden Schritte hochgezogen und desto langsamer wird die Zelle relativ zu Zellen, dessen Auswahl-Gate bei späteren Schritten abgeschaltet wird, programmieren.
  • 1 ist eine perspektivische Ansicht einer dreidimensionalen (3D) gestapelten nichtflüchtigen Speichervorrichtung, die die Technologie, die hierin vorgeschlagen wird, implementieren kann. Die Speichervorrichtung 100 weist ein Substrat 101 auf. Auf und oberhalb des Substrates sind Beispielblöcke BLK0 und BLK1 von Speicherzellen (nichtflüchtige Speicherelemente). Auch ist auf dem Substrat 101 der periphere Bereich 104 mit Unterstützungsschaltkreisen für die Verwendung durch die Blöcke. Das Substrat 101 kann auch Schaltkreise unter Blöcken tragen, entlang mit einer oder mehreren unteren Metallschichten, die in leitenden Pfaden nachgebildet sind, um Signale der Schaltkreise zu tragen. Die Blöcke sind in einem dazwischenliegenden Bereich 102 der Speichervorrichtung ausgebildet. In einem oberen Bereich 103 der Speichervorrichtung sind eine oder mehrere obere Metallschichten in leitenden Pfaden ausgebildet, um Signale der Schaltkreise zu tragen. Jeder Block weist einen gestapelten Bereich von Speicherzellen auf, wobei alternierende Niveaus des Stapels Wortleitungen repräsentieren. Während zwei Blöcke als ein Beispiel dargestellt sind, können zusätzliche Blöcke verwendet werden, die sich in der x- und/oder y-Richtung erstrecken.
  • In einer Beispielimplementierung repräsentiert die Länge der Ebene in der x-Richtung eine Richtung, in der sich Signalpfade für Wortleitungen erstrecken (einer Wortleitung oder SGD-Leitungsrichtung), und die Breite der Ebene in der y-Richtung repräsentiert eine Richtung, in der Signalpfade für Bitleitungen sich erstrecken (eine Bitleitungsrichtung). Die z-Richtung repräsentiert eine Höhe der Speichervorrichtung.
  • 2 ist ein funktionales Blockdiagramm einer Beispielspeichervorrichtung wie z.B. der 3D-gestapelten nichtflüchtigen Speichervorrichtung 100 aus 1. Die Komponenten, die in 2 dargestellt sind, sind elektrische Schaltkreise. Die Speichervorrichtung 100 weist einen oder mehrere Speicherchips 108 auf. Jeder Speicherchip 108 weist eine dreidimensionale Speicherstruktur 126 von Speicherzellen (wie z.B. einen 3D-Array von Speicherzellen), eine Steuerschaltung 110 und Lese-/Schreibschaltkreise 128 auf. In anderen Ausführungsformen kann ein zweidimensionaler Array von Speicherzellen verwendet werden. Die Speicherstruktur 126 ist durch Wortleitungen über einen Reihendekoder 124 und durch Bitleitungen über einen Spaltendekoder 132 adressierbar. Die Lese- /Schreibschaltkreise 128 weisen mehrere Erfassungsblöcke SB1, SB2, ..., SBp 129 (Erfassungsschaltung) auf und erlauben einer Seite von Speicherzellen, parallel gelesen oder programmiert zu werden.
  • In manchen Systemen ist eine Steuereinheit 122 in derselben Speichervorrichtung 100 (z.B. einer entfernbaren Speicherkarte) als der eine oder die mehreren Speicherchips 108 vorgesehen. Jedoch kann die Steuereinheit in anderen Systemen von dem Speicherchip 108 getrennt werden. In manchen Ausführungsformen wird eine Steuereinheit 122 mit mehreren Speicherchips 108 kommunizieren. In anderen Ausführungsformen weist jeder Speicherchip 108 seine eigene Steuereinheit auf. Die Befehle und Daten werden zwischen dem Host 140 und der Steuereinheit 122 über einen Datenbus 120 übertragen und zwischen der Steuereinheit 122 und dem einen oder den mehreren Speicherchips 108 über Leitungen 118. In einer Ausführungsform weist der Speicherchip 108 einen Satz von Input- und/oder Output- (I/O) Pins auf, die die Leitungen 118 verbinden.
  • Die Speicherstruktur 126 kann einen oder mehrere Arrays von Speicherzellen einschließlich einen 3D-Array aufweisen. Die Speicherstruktur kann eine monolithische dreidimensionale Speicherstruktur aufweisen, in der mehrere Speicherniveaus oberhalb (und nicht in) eines einzelnen Substrates gebildet sind, wie z.B. einem Wafer, ohne dazwischenkommende Substrate. Die Speicherstruktur kann jeden Typ von nichtflüchtigem Speicher aufweisen, der monolithisch in einem oder mehreren Niveaus von Arrays von Speicherzellen mit einem aktiven Bereich, der oberhalb eines Siliziumstubstrates angeordnet ist, gebildet ist. Die Speicherstruktur kann in einer nichtflüchtigen Speichervorrichtung mit einer Schaltung vorliegen, die mit dem Betrieb der Speicherzellen assoziiert ist, ob die assoziierte Schaltung oberhalb oder innerhalb des Substrates ist.
  • Die Steuerschaltung 110 kooperiert mit den Lese-/Schreib-Schaltkreisen 128, um Speicheroperationen (z.B. löschen, programmieren, lesen und andere) auf der Speicherstruktur 126 durchzuführen und weist eine Zustandsmaschine 112, einen auf dem Chip befindlichen Adressdekoder 114 und ein Energiesteuermodul 116 auf. Die Zustandsmaschine 112 stellt eine Chip-Niveau-Steuerung von Speicheroperationen bereit. Ein Code- und Parameterspeicher 113 kann zum Speichern von Betriebsparametern und-software bereitgestellt werden. In einer Ausführungsform ist die Zustandsmaschine 112 durch die Software, die in dem Code- und Parameterspeicher 113 gespeichert ist, programmierbar. In anderen Ausführungsformen verwendet die Zustandsmaschine 112 keine Software und ist völlig in Hardware (z.B. Elektronikschaltkreisen) implementiert.
  • Der auf dem Chip befindliche Adressdekoder 114 stellt eine Adressschnittstelle zwischen Adressen, die von dem Host 140 oder der Speichersteuereinheit 122 verwendet werden, gegenüber der Hardwareadresse bereit, die von den Dekodern 124 und 132 verwendet werden. Das Energiesteuermodul 116 steuert die Energie und die Spannungen, die an die Wortleitungen und Bilteitungen während der Speicheroperationen geliefert werden. Es kann Treiber für Wortleitungsschichten (unten wird diskutiert, ob in einer 3D- oder 2D- Konfiguration), Auswahltransistoren (z.B. SGS- und SGD-Transistoren, die unten beschrieben werden) und Source-Leitungen aufweisen. Insbesondere kann das Energiesteuermodul die Wortleitungstreiber aufweisen, die als die Vorspann-Schaltung für die Wortleitungen in den verschiedenen Speicheroperationen, die unten beschrieben werden, dienen. Das Energiesteuermodul 116 kann Ladungspumpen zum Erzeugen von Spannungen aufweisen. Die Erfassungsblöcke weisen Bitleitungstreiber auf, einschließlich der Bitleitungstreiber, die als die Vorspann-Schaltung für die Bitleitungen in den verschiedenen Speicheroperationen dienen, die unten beschrieben werden. Ein SGS-Transistor ist ein Auswahl-Gate-Transistor an einem Source-Ende einer NAND-Kette und ein SGD-Transistor ist ein Auswahl-Gate-Transistor an einem Drain-Ende einer NAND-Kette.
  • Jede oder jede Kombination von einer Steuerschaltung 110, einer Zustandsmaschine 112, Dekodern 114/124/132, einem Code- und Parameterspeicher 1113, einem Energiesteuermodul 116, Erfassungsblöcken SB1, SB2, ..., SBp, Lese-/Schreib-Schaltkreisen 128, und einer Steuereinheit 122 können als Steuerschaltung betrachtet werden, die die Funktionen durchführt, die hierin beschrieben sind.
  • Die (auf dem Chip befindliche oder nicht auf dem Chip befindliche) Steuereinheit 122 kann Speichervorrichtungen (wie z.B. ROM 122a und RAM 122b), einen Prozessor 122c und eine Speicherschnittstelle 122d aufweisen. Die Speichervorrichtungen speichern Code wie z.B. einen Satz von Instruktionen und der Prozessor 122c ist betreibbar, um den Satz von Instruktionen auszuführen, um die Funktionalität, die hierin beschrieben ist, bereitzustellen. Alternativ oder zusätzlich kann der Prozessor 122c auf Code von einer Speichervorrichtung in der Speicherstruktur zugreifen, wie z.B. einem reservierten Bereich von Speicherzellen, der mit einer oder mehreren Wortleitungen verbunden ist. Die Speicherschnittstelle 122d, die in Kommunikation mit ROM 122a, RAM 122b und Prozessor 122c ist, ist ein elektrischer Schaltkreis, der eine elektrische Schnittstelle zwischen der Steuereinheit 122 und dem Speicherchip 108 bereitstellt. Zum Beispiel kann die Speicherschnittstelle 122d das Format oder das Timing von Signalen ändern, einen Puffer bereitstellen, von Stromstößen isolieren, I/O latchen, usw.
  • Mehrere Speicherelemente in der Speicherstruktur 126 können konfiguriert werden, so dass sie in Serie verbunden sind oder so dass auf jedes Element individuell zugegriffen werden kann. Als nichtbeschränkendes Beispiel weisen Flash-SpeicherVorrichtungen in einer NAND-Konfiguration (NAND-Flash-Speicher) typischerweise Speicherelemente auf, die in Serie verbunden sind. Eine NAND-Kette ist ein Beispiel von einem Satz von in Serie verbundenen Speicherzellen und Auswahl-Gate-Transistoren. Ein NAND-Flash-Speicher-Array kann so konfiguriert sein, dass der Array aus mehreren NAND-Ketten zusammengesetzt ist, von denen einen NAND-Kette aus mehreren Speicherzellen zusammengesetzt ist, die eine einzelne Bitleitung teilen und auf die als eine Gruppe zugegriffen wird. In einer Ausführungsform sind NAND-Ketten in Blöcken gruppiert. Innerhalb eines Blockes ist ein Ende jeder NAND-Kette mit einer von einer Mehrzahl von Bitleitungen verbunden und das andere Ende jeder NAND-Kette ist mit einer gemeinsamen Source-Leitung für sämtliche NAND-Ketten in dem Block verbunden. Alternativ können Speicherelemente konfiguriert sein, so dass auf jedes Element individuell zugegriffen werden kann, z. B. ein NOR-Speicher-Array. NAND- und NOR-Speicherkonfigurationen sind beispielhaft und Speicherzellen können auf andere Weise konfiguriert sein.
  • Die Speicherzellen können in dem einzelnen Speichervorrichtungsniveau in einem geordneten Array angeordnet sein, wie z.B. in einer Mehrzahl von Reihen und/oder Spalten. Jedoch können die Speicherelemente in nichtregulären oder nichtorthogonalen Konfigurationen oder in Strukturen, die nicht als Arrays betrachtet werden, angeordnet werden.
  • Ein dreidimensionaler Speicher-Array ist eingerichtet, so dass die Speicherzellen mehrere Ebenen oder mehrere Speichervorrichtungsniveaus besetzen, wodurch sie eine Struktur in drei Dimensionen bilden (d.h., in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht und die x- und y-Richtung im Wesentlichen parallel zu der Hauptoberfläche des Substrats sind).
  • Als ein nichtbeschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungsniveaus angeordnet sein. Als ein anderes nichtbeschränkendes Beispiel kann ein dreidimensionaler Speicher-Array als mehrere vertikale Spalten (z.B. Spalten, die sich im Wesentlichen senkrecht zu der Hauptoberfläche des Substrats erstrecken, d.h. in der y-Richtung) eingerichtet sein, wobei jede Spalte mehrere Speicherzellen aufweist. Die vertikalen Spalten können in einer zweidimensionalen Konfiguration angeordnet werden, z.B. in einer x-y-Ebene, was in einer dreidimensionalen Anordnung von Speicherzellen resultiert mit Speicherzellen auf mehreren vertikal gestapelten Speicherebenen. Andere Konfigurationen von Speicherelementen in drei Dimensionen können auch einen dreidimensionalen Speicher-Array konstituieren.
  • Als nichtbeschränkendes Beispiel können in einem dreidimensionalen NAND-Speicher-Array die Speicherelemente zusammengekoppelt werden, um eine vertikale NAND-Kette zu bilden, die mehrere horizontale Speichervorrichtungsniveaus überquert. Andere dreidimensionale Konfigurationen können vergegenwärtigt werden, wobei einige NAND-Ketten Speicherelemente in einem einzelnen Speicherniveau enthalten, während andere Ketten Speicherelemente enthalten, die mehrere Speicherniveaus überspannen. Dreidimensionale Speicher-Arrays können auch in einer NOR-Konfiguration und in einer ReRAM-Konfiguration konzipiert sein.
  • Die Technologie, die hierin beschrieben ist, kann auch mit Technologien zusätzlich zu dem Ladungseinfang- und Floating-Gate-Flash-Speicher, der oben beschrieben ist, verwendet werden. Zusätzlich zu dem Flash-Speicher (z.B. 2D- und 3D-NAND-Typ- und NOR-Typ-Flash-Speicher) weisen Beispiele von nichtflüchtigen Speicher ReRAM-Speicher, magnetoresistiven Speicher (z.B. MRAM) und Phasenänderungsspeicher (z.B: PCRAM) auf.
  • Ein Beispiel von ReRAM-Speicher weist reversible Widerstands-schaltende Elemente auf, die in Kreuzpunkt-Arrays angeordnet sein, auf die durch X-Leitungen und Y-Leitungen (z.B. Wortleitungen und Bitleitungen) zugegriffen wird. Das Programmieren kann durch eine Serie von Spannungspulsen (d.h. Programmiereinheiten) auf den Wortleitungen bereitgestellt werden. Die Speicherzellen können durch Anwenden einer genügend großen Spannung an den entsprechenden Bitleitungen blockiert werden, um ein ausreichendes Spannungsdifferential über der Speicherzelle zu verhindern.
  • In einer anderen Ausführungsform können die Speicherzellen leitende Brückenspeicherelemente aufweisen. Ein leitendes Brückenspeicherelement kann auch als eine programmierbare Metallisierungszelle bezeichnet werden. Ein leitendes Brückenspeicherelement kann als ein Zustandsänderungselement basierend auf der physikalischen Relokation von Ionen innerhalb eines festen Elektrolyten verwendet werden. In manchen Fällen kann ein leitendes Brückenspeicherelement zwei feste Metallelektroden aufweisen, von dem eins relativ inert (z.B. Wolfram) und das andere elektrochemisch aktiv (z.B. Silber oder Kupfer) ist, innerhalb eines dünnen Films von dem festen Elektrolyten zwischen den zwei Elektroden. Wenn die Temperatur zunimmt, nimmt die Mobilität der Ionen auch zu, was bewirkt, dass der Programmierschwellwert für die leitende Brückenspeicherzelle abnimmt. Daher kann das leitende Brückenspeicherelement einen weiten Bereich von Programmierschwellwerten über die Temperatur aufweisen. Das Anwenden von geeigneten Temperaturen (über diskrete Zeitdauer - Portionen) kann zum Programmieren verwendet werden. Ähnlich kann das Anpassen der Temperatur zum Sperren verwendet werden. In manchen Implementierungen werden Temperaturen durch das Anwenden von Spannungen und/oder Ladungen auf die Speicherzellen und/oder Umgebungskomponenten gesteuert.
  • Ein magnetoresistiver Speicher (MRAM) speichert Daten durch magnetische Speicherelemente. Die Elemente werden aus zwei ferromagnetischen Platten gebildet, von der jede eine Magnetisierung halten kann, getrennt durch eine dünne Isolierschicht. Eine der zwei Platten ist ein Permanentmagnet, der auf eine bestimmte Polarität eingestellt ist; die Magnetisierung der anderen Platte kann geändert werden, um mit der von einem externen Feld zusammenpasst, um Speicher zu speichern. Diese Konfiguration ist als ein Spin-Ventil bekannt und ist die einfachste Struktur für ein MRAM-Bit. Eine Speichervorrichtung wird aus einem Gitter von solchen Speicherzellen zusammengebaut. In einer Ausführungsform zum Programmieren liegt jede Speicherzelle zwischen einem Paar von Schreibleitungen, die bei rechten Winkeln zueinander angeordnet sind, parallel zu der Zelle, eine oberhalb und eine unterhalb der Zelle. Wenn Strom durch sie hindurchgeführt wird, wird ein induziertes magnetisches Feld erzeugt (d.h. die Programmierportion). Dieser Zugang setzt einen ziemlich umfangreichen Strom voraus, um das Feld zu erzeugen. Daher wird das Programmieren als eine Stromeinheit angewandt. Ein genügendes Reduzieren oder Entfernen des Stromes kann verwendet werden, um das Programmieren zu sperren.
  • Der Phasenänderungsspeicher (PCRAM) nutzt das einzigartige Verhalten von Chalcogenid-Glas aus. Eine Ausführungsform nutzt ein GeTe-Sb2Te3-Super-Gitter, um nichtthermale Phasenänderungen durch einfaches Ändern des Koordinations-Zustandes der Germanium-Atome mit einem Laserpuls (oder Lichtpuls von einer anderen Quelle) zu erreichen. Daher sind die Programmierportionen Laserpulse. Die Speicherzellen können durch Blocken der Speicherzellen vom Empfang des Lichtes gesperrt werden. Es wird bemerkt, dass die Verwendung von „Puls“ in diesem Dokument keinen Quadratpuls voraussetzt, sondern schließt eine (kontinuierliche oder nicht-kontinuierliche) Vibration oder einen Schallstoß, Strom, Spannungslicht oder eine andere Welle mit ein.
  • Ein durchschnittlicher Fachmann wird anerkennen, dass diese Technologie nicht auf eine einzelne spezifische Speicherstruktur beschränkt ist, sondern viele relevante Speicherstrukturen innerhalb des Geistes und des Umfangs der Technologie, wie sie hierin beschrieben ist und von einem durchschnittlichen Fachmann verstanden wird, abdeckt.
  • 3A ist ein Blockdiagramm, das Software-Module zum Programmieren eines oder mehrerer Prozessoren in der Steuereinheit 122 darstellt. 3A stellt das Lesemodul 150, das Programmiermodul 154, das Löschmodul 154 und das Kanal-Boosting-Modul 156 dar, die in ROM 122a gespeichert sind. Diese Software-Module können auch in RAM oder Speicher-Chips 108 gespeichert sein. Das Lesemodul 150 weist Software auf, die den/die Prozessor(en) 122C programmiert, um Leseoperationen durchzuführen. Das Programmiermodul 154 weist Software auf, die den/die Prozessor(en) 122C programmiert, Programmieroperationen durchzuführen (einschließlich Verifikation des Programmierens). Das Löschmodul 154 weist Software auf, die den/die Prozessor(en) programmiert, Löschoperationen durchzuführen. Das Kanal-Boosting-Modul 156 weist Software auf, die den/die Prozessor(en) 122c programmiert, das schwache Boosten des Kanals (z.B. bewirkt es, dass der Kanal der Speicherzellen programmiert wird, um einen Betrag abhängig von dem Targetzustand der Zellen geboostet zu werden), das unten beschrieben wird, durchzuführen. Basierend auf der Software weist die Steuereinheit 122 die Speicherchips 108 an, Speicheroperationen durchzuführen.
  • 3B ist ein Blockdiagramm, das Software-Module zum Programmieren der Zustandsmaschine 112 (oder eines anderen Prozessors auf dem Speicherchip 108) darstellt. 3B stellt dar, dass das Lesemodul 160, das Programmiermodul 162, das Löschmodul 164 und das Kanal-Boosting-Modul 166 im Code- und Parameterspeicher 113 gespeichert werden. Diese Software-Module können auch in RAM oder in der Speicherstruktur 126 gespeichert werden. Das Lesemodul 160 weist Software auf, die die Zustandsmaschine 112 programmiert, um Leseoperationen durchzuführen. Das Programmiermodul 152 weist Software auf, die die Zustandsmaschine 112 programmiert, um Programmieroperationen durchzuführen (einschließlich der Verifikation des Programmierens). Das Löschmodul 153 weist Software auf, die die Zustandsmaschine 112 programmiert, um Löschoperationen durchzuführen. Das Kanal-Boosting-Modul 166 weist Software auf, die die Zustandsmaschine 112 programmiert, um das schwache Boosten des Kanals durchzuführen (z.B. bewirken, dass der Kanal der Speicherzellen programmiert wird, um einen Betrag abhängig von dem Targetzustand der Zellen geboostet zu werden), das unten beschrieben wird. Alternativ kann die Zustandsmaschine 112 (die ein elektronischer Schaltkreis ist) vollständig mit Hardware implementiert werden, so dass keine Software gebraucht wird, um diese Funktionen durchzuführen.
  • 3C ist ein Blockdiagramm eines individuellen Erfassungsblocks 129, der in einen Kernabschnitt, als ein Erfassungsmodul 480 bezeichnet, und einen gemeinsamen Abschnitt 490 partitioniert ist. In einer Ausführungsform gibt es ein getrenntes Erfassungsmodul 480 für jede Bitleitung und einen gemeinsamen Abschnitt 490 für einen Satz von mehreren Erfassungsmodulen 480. In einem Beispiel wird ein Erfassungsblock einen gemeinsamen Abschnitt 490 und acht Erfassungsmodule 480 aufweisen. Jedes der Erfassungsmodule in einer Gruppe wird mit dem assoziierten gemeinsamen Abschnitt über einen Datenbus 423 kommunizieren.
  • Das Erfassungsmodul 480 weist eine Erfassungsschaltung 470 auf, die bestimmt, ob ein Leitungsstrom in einer verbundenen Bitleitung oberhalb oder unter einem vorbestimmten Niveau ist. In einigen Ausführungsformen weist das Erfassungsmodul 480 einen Schaltkreis auf, der allgemein als ein Erfassungsverstärker bezeichnet wird. Das Erfassungsmodul 480 weist auch einen Bitleitungs-Latch 482 auf, der verwendet wird, um eine Spannungsbedingung auf der verbundenen Bitleitung einzustellen. Zum Beispiel wird ein vorbestimmter Zustand, der in einem Bitleitungs-Latch 482 gelatcht ist, darin resultieren, dass die verbundene Bitleitung zu einer Zustands-bezeichnenden Programmsperre (z.B. Vdd) gezogen wird.
  • Der gemeinsame Abschnitt 490 weist einen Prozessor 492, einen Satz von Daten-Latches 494 und eine I/O-Schnittstelle 496, die zwischen dem Satz von Daten-Latches 494 und dem Daten-Bus 421 gekoppelt ist, auf. Der Prozessor 492 führt Berechnungen durch. Zum Beispiel ist eine seiner Funktionen, die Daten zu bestimmen, die in der erfassten Speicherzelle gespeichert sind und die bestimmten Daten in dem Satz von Daten-Latches zu speichern. Der Satz von Daten-Latches 494 wird verwendet, um Daten-Bits, die von dem Prozessor 492 während einer Leseoperation bestimmt werden, zu speichern. Er wird auch verwendet, um Daten-Bits zu speichern, die von dem Datenbus 421 während einer Programmoperation importiert werden. Die importierten Daten-Bits repräsentieren Schreibdaten, die dafür gedacht sind, in den Speicher programmiert zu werden. Die I/O-Schnittstelle 496 stellt eine Schnittstelle zwischen den Daten-Latches 494 und dem Datenbus 421 bereit.
  • Während des Lesens oder Erfassens ist der Betrieb des Systems unter der Steuerung der Zustandsmaschine 112, die steuert, die die Versorgung mit verschiedenen Spannungen gegenüber der adressierten Speicherzelle steuert. Wenn sie durch die verschiedenen vordefinierten Spannungen schreitet (die Lesereferenzspannungen oder die Verifikationsreferenzspannungen), die den verschiedenen Speicherzuständen entsprechen, die von dem Speicher unterstützt werden, kann das Erfassungsmodul 480 über eine dieser Spannungen stolpern und ein Output wird von dem Erfassungsmodul 480 gegenüber dem Prozessor 492 über den Bus 423 bereitgestellt. An jenem Punkt bestimmt der Prozessor 492 den resultierenden Speicherzustand durch Berücksichtigung der/des Stolperereignisse(s) des Erfassungsmoduls und der Information über die angewandte Steuer-Gate-Spannung von der Zustandsmaschine über die Input-Leitungen 493. Dann berechnet er eine binäre Kodierung für den Speicherzustand und speichert die resultierenden Daten-Bits in Daten-Latches 494. In einer anderen Ausführungsform des Kernabschnittes, dient der Bit-Leitungs-Latch 482 der doppelten Pflicht, sowohl als ein Latch zum Latchen des Outputs des Erfassungsmoduls 480 und auch als ein Bit-Leitungs-Latch wie oben beschrieben.
  • Es wird erwartet, dass einige Implementierungen mehrere Prozessoren 492 aufweisen werden. In einer Ausführungsform wird jeder Prozessor 492 eine Output-Leitung (nicht in 3C dargestellt) derart aufweisen, dass jede der Output-Leitungen mit einer Wired-OR-Leitung verdrahtet ist. In einigen Ausführungsformen werden die Output-Leitungen invertiert, bevor sie mit der Wired-OR-Leitung verbunden werden. Diese Konfiguration ermöglicht eine schnelle Bestimmung während des Programmverifikationsprozesses darüber, wann der Programmierprozess beendet ist, weil die Zustandsmaschine, die die Wired-OR-Leitung empfängt, bestimmen kann, wann sämtliche Bits, die programmiert werden, das gewünschte Niveau erreicht haben. Zum Beispiel, wenn jedes Bit sein gewünschtes Niveau erreicht hat, wird eine logische Null für das Bit zu der Wired-OR-Leitung gesendet (oder eine Daten-Eins wird invertiert). Wenn sämtliche Bits eine Daten-0 ausgeben (oder eine invertierte Daten-Eins), dann weiß die Maschine den Programmierprozess zu beenden. In Ausführungsformen, bei denen jeder Prozessor mit acht Erfassungsmodulen kommuniziert, kann die Zustandsmaschine (in einigen Ausführungsformen) einen Bedarf haben, die Wired-OR-Leitung acht mal zu lesen oder eine Logik wird zu dem Prozessor 492 hinzugefügt, um die Ergebnisse der assoziierten Bitleitungen derart zu akkumulieren, dass die Zustandsmaschine die Wired-OR-Leitung nur einmal lesen muss. In einigen Ausführungsformen, die viele Erfassungsmodule aufweisen, können die Wired-OR-Leitungen der vielen Erfassungsmodule in Sätzen von N Erfassungsmodulen gruppiert werden und die Gruppen können dann gruppiert werden, um einen Binärbaum zu bilden.
  • Während des Programmierens oder Verifizierens werden die Daten, die programmiert werden sollen, in dem Satz von Daten-Latches 494 von dem Datenbus 421 gespeichert. Die Programmieroperation, unter der Steuerung der Zustandsmaschine, umfasst eine Serie von Programmierspannungspulsen (mit zunehmenden Amplituden), die gleichzeitig auf die adressierten Speicherzellen angewandt werden, auf die die Speicherzellen zu derselben Zeit programmiert werden. Jeder Programmierpuls wird von einem Verifikationsprozess gefolgt, um zu bestimmen, ob die Speicherzelle zu dem gewünschten Zustand programmiert worden ist. Der Prozessor 492 beobachtet den verifizierten Speicherzustand relativ zu dem gewünschten Speicherzustand. Wenn die beiden übereinstimmen, stellt der Prozessor 492 den Bitleitungs-Latch 482 so ein, dass bewirkt wird, dass die Bitleitung zu einer Zustands-bestimmenden Programmiersperre gezogen wird. Dies sperrt die Speicherzelle, die mit der Bitleitung gekoppelt ist, von weiterem Programmieren, auch wenn sie an ihrem Steuer-Gate Programmierpulsen ausgesetzt ist. In anderen Ausführungsformen lädt der Prozessor ursprünglich den Bitleitungs-Latch 482 und die Erfassungsschaltung stellt ihn auf einen Sperrwert während des Verifikationsprozesses ein.
  • Der Daten-Latch-Stapel 494 enthält einen Stapel von Daten-Latches, die dem Erfassungsmodul entsprechen. In einer Ausführungsform gibt es drei (oder vier oder eine andere Anzahl) von Daten-Lachtes pro Erfassungsmodul 480. In einigen Implementierungen (aber nicht benötigt) werden die Daten-Latches als ein Schieberegister implementiert, so dass die parallelen Daten, die darin gespeichert sind, in serielle Daten für den Datenbus 421 konvertiert werden und umgekehrt. In einer bevorzugten Ausführungsform können sämtliche Daten-Latches, die dem Lese-/Schreib-Block der Speicherzellen entsprechen, miteinander verbunden werden, um ein Blockschieberegister zu bilden, so dass ein Block von Daten durch seriellen Transfer eingegeben oder ausgegeben werden kann. Insbesondere wird das Modul von Lese-/Schreibmodulen so eingerichtet, dass jeder von seinen Sätzen von Daten-Latches Daten in Sequenz in oder aus dem Datenbus hineinschieben oder herausschieben wird, als ob sie Teil von einem Schieberegister für den gesamten Lese-/Schreibblock sind.
  • 4A ist ein Blockdiagramm, das ein Beispiel von Organisation von Speicherstruktur 126 erklärt, die in zwei Ebenen 302 und 304 unterteilt ist. Jede Ebene wird dann in M Blöcke unterteilt. In einem Beispiel weist jede Ebene etwa 2000 Blöcke auf. Jedoch können auch verschiedene Zahlen von Blöcken und Ebenen verwendet werden.
  • Die 4B-4E stellen eine Beispiel-3D-NAND-Struktur dar. 4B ist ein Blockdiagramm, das eine Draufsicht eines Abschnittes von einem Block der Speicherstruktur 126 darstellt. Der Abschnitt des Blocks, der in 4B dargestellt ist, entspricht dem Abschnitt 306 in Block 2 von 4A. Wie aus 4B gesehen werden kann, erstreckt sich der Block, der in 4B dargestellt ist, in der Richtung des Pfeiles 330 und in der Richtung des Pfeiles 332. In einer Ausführungsform wird der Speicher-Array 48 Schichten aufweisen. Andere Ausführungsformen weisen weniger als oder mehr als 48 Schichten auf. Jedoch zeigt 4B nur die obere Schicht.
  • 4B stellt eine Mehrzahl von Kreisen dar, die die vertikalen Spalten repräsentieren. Jede der vertikalen Spalten weist mehrere Auswahl-Transistoren und mehrere Speicherzellen auf. In einer Ausführungsform implementiert jede vertikale Spalte eine NAND-Kette. Mehr Details der vertikalen Spalten werden unten bereitgestellt. Da der Block, der in 4B dargestellt ist, sich in der Richtung des Pfeiles 330 und in der Richtung des Pfeiles 332 erstreckt, weist der Block mehr vertikale Spalten auf, als in 4B dargestellt.
  • 4B stellt auch einen Satz von Bitleitungen 412 dar. 4B zeigt vierundzwanzig Bitleitungen, wie nur ein Abschnitt des Blockes dargestellt ist. Es wird erwogen, dass mehr als vierundzwanzig Bitleitungen mit vertikalen Spalten des Blockes verbunden sind. Jeder der Kreise, die vertikale Spalten repräsentieren, weist ein „x“ auf, um seine Verbindung zu einer Bitleitung anzugeben.
  • Der Block, der in 4B dargestellt ist, weist einen Satz von lokalen Verbindungen 402, 404, 406, 408 und 410 auf, die die verschiedenen Schichten mit einer Source-Leitung unter den vertikalen Spalten verbinden. Lokale Verbindungen 402, 404, 406, 408 und 410 dienen auch dazu, jede Schicht des Blockes in vier Bereiche zu unterteilen; zum Beispiel die obere Schicht, die in 4B dargestellt ist, wird in vier Bereiche 420, 430, 440 und 450 unterteilt. In den Schichten des Blockes, die die Speicherzellen implementieren, werden die vier Bereiche als Wortleitungsfinger bezeichnet, die von den lokalen Verbindungen getrennt werden. In einer Ausführungsform verbinden sich die Wortleitungsfinger auf einem gemeinsamen Niveau eines Blockes miteinander an dem Ende des Blockes, um eine einzelne Wortleitung zu bilden. In einer anderen Ausführungsform werden die Wortleitungsfinger auf demselben Niveau miteinander verbunden. In einer Beispielimplementierung verbindet sich eine Bitleitung nur mit einer vertikalen Spalte in jedem der Bereiche 420, 430, 440 und 450. In jener Implementierung weist jeder Block sechzehn Reihen von aktiven Spalten auf und jede Bitleitung verbindet sich mit vier Reihen in jedem Block. In einer Ausführungsform sind sämtliche von vier Reihen, die mit einer gemeinsamen Bitleitung verbunden sind, mit derselben Wortleitung verbunden (über verschiedene Wortleitungsfinger auf demselben Niveau, die miteinander verbunden sind); daher verwendet das System die Source-Seiten-Auswahl-Leitungen und die Drain-Seiten-Auswahl-Leitungen, um eine (oder einen anderen Untersatz) der vier auszuwählen, um einer Speicheroperation ausgesetzt zu werden (programmieren, verifizieren, lesen und/oder löschen).
  • Obwohl 4B jeden Bereich mit vier Reihen von vertikalen Spalten, vier Bereichen und sechzehn Reihen von vertikalen Spalten in einem Block zeigt, sind jene exakten Zahlen eine Beispielimplementierung. Andere Ausführungsformen können mehr oder weniger Bereiche pro Block, mehr oder weniger Reihen von vertikalen Spalten pro Bereich und mehr oder weniger Reihen von vertikalen Spalten pro Block aufweisen.
  • 4B zeigt auch, dass die vertikalen Spalten gestaffelt sind. In anderen Ausführungsformen können verschiedene Muster von Staffelung verwendet werden. In einigen Ausführungsformen sind die vertikalen Spalten nicht gestaffelt.
  • 4C stellt einen Abschnitt einer Ausführungsform von einer dreidimensionalen Speicherstruktur 126 dar, die eine Querschnittsansicht entlang der Linie AA aus 4B zeigt. Diese Querschnittsansicht schneidet durch vertikale Spalten 432 und 434 und den Bereich 430 (siehe 4B). Die Struktur aus 4C weist zwei Drain-Seiten-Auswahl-Schichten SGD1 und SGD1 auf; zwei Source-Seiten-Auswahl-Schichten SGS1 und SGS2; vier Dummy-Wortleitungs-Schichten DWLL1a, DWLL1b, DWLL2a und DWLL2b; und zweiunddreißig Wortleitungsschichten WLL0-WLL31 zum Verbinden mit den Datenspeicherzellen. Andere Ausführungsformen können mehr oder weniger als zwei Drain-Seiten-Auswahl-Schichten, mehr oder weniger als zwei Source-Seiten Auswahl-Schichten und mehr oder weniger als vier Dummy-Wortleitungsschichten und mehr oder weniger als zweiunddreißig Wortleitungsschichten implementieren. Die vertikalen Spalten 432 und 434 sind hervorstehend durch die Drain-Seiten-Auswahl-Schichten, Source-Seiten-Auswahl-Schichten, Dummy-Wort-Leitungsschichten und Wortleitungsschichten dargestellt. In einer Ausführungsform weist jede vertikale Spalte eine NAND-Kette auf. Unter den vertikalen Spalten und den Schichten, die unten gelistet sind, ist das Substrat 101, ein isolierender Film 454 auf dem Substrat und die Source-Leitung SL. Die NAND-Kette der vertikalen Spalte 432 weist ein Source-Ende an einem unteren Ende des Stapels und ein Drain-Ende an einem oberen Ende des Stapels auf. In Übereinstimmung mit 4B zeigt 4C, dass die vertikale Spalte 432 mit der Bitleitung 414 über das Verbindungsglied 415 verbunden ist. Lokale Verbindungen 404 und 406 werden auch dargestellt.
  • Zur Einfachheit der Bezugnahme werden die Drain-Seiten-Auswahl-Schichten SGD1 und SGD1; die Source-Seiten-Auswahl-Schichten SGS1 und SGS2; die Dummy-Wortleitungs-Schichten DWLL1a, DWLL1b, DWLL2a und DWLL2b; und die Wortleitungsschichten WLL0-WLL31 kollektiv als die leitenden Schichten bezeichnet. In einer Ausführungsform sind die leitenden Schichten aus einer Kombination von TiN und Wolfram hergestellt. In anderen Ausführungsformen können andere Materialien verwendet werden, um die leitenden Schichten zu bilden wie z.B. dotiertes Polysilizium, Metall wie z.B. Wolfram oder Metallsilizid. In einigen Ausführungsformen können verschiedene leitende Schichten aus verschiedenen Materialien gebildet werden. Zwischen leitenden Schichten sind dielektrische Schichten DL0-DL19. Zum Beispiel sind die dielektrischen Schichten DL10 oberhalb der Wortleitungsschicht WLL26 und unterhalb der Wortleitungsschicht WLL27. In einer Ausführungsform sind die dielektrischen Schichten aus SiO2 gemacht. In anderen Ausführungsformen können andere dielektrische Materialien verwendet werden, um die dielektrischen Schichten zu bilden.
  • Die Speicherzellen werden entlang vertikaler Spalten gebildet, die sich durch alternierende leitende und dielektrische Schichten in dem Stapel erstrecken. In einer Ausführungsform sind die Speicherzellen in NAND-Ketten angeordnet. Die Wortleitungsschicht WLL0-WLL31 verbinden sich mit Speicherzellen (auch Datenspeicherzellen genannt). Dummy-Wortleitungs-Schichten DWLL1a, DWLL1b, DWLL2a und DWLL2b verbinden sich mit Dummy-Speicherzellen. Eine Dummy-Speicherzelle, auch als eine Nicht-Daten-Speicherzelle bezeichnet, speichert keine Nutzerdaten, während eine Datenspeicherzelle geeignet ist, Nutzerdaten zu speichern. Daher können Datenspeicherzellen programmiert werden. Die Drain-Seiten-Auswahl-Schichten SGD1 und SGD1 werden verwendet, um elektrisch NAND-Ketten mit Bitleitungen zu verbinden und von ihnen zu lösen. Die Source-Seiten-Auswahl-Schichten SGS1 und SGS2 werden verwendet, um elektrisch NAND-Ketten mit Source-Leitungen SL zu verbinden und von ihnen zu lösen.
  • 4D stellt eine perspektivische Ansicht der leitenden Schichten (SGD1, SGD2, SGS1, SGS2; DWLL1a, DWLL1b, DWLL2a, DWLL2b und WLL0-WLL31) für den Block, der partiell in 4C dargestellt ist, dar. Wie oben bezüglich 4B erwähnt, unterteilen lokale Verbindungen 401, 404, 406, 408 und 410 jede leitende Schicht in vier Bereiche 420, 430, 440 und 450. Ähnlich ist die Wortleitungsschicht WLL31 in Bereiche 460, 462, 464 und 466 unterteilt. Für die Wortleitungsschichten (WLL0-WLL31) werden die Bereiche als Wortleitungsfinger bezeichnet; zum Beispiel ist Wortleitungsschicht WLL31 in Wortleitungsfinger 460, 462, 464 und 466 unterteilt. In einer Ausführungsform arbeitet jeder Wortleitungsfinger als getrennte Wortleitung. In einer anderen Ausführungsform sind die vier Wortleitungsfinger auf einem selben Niveau miteinander verbunden.
  • Die Drain-Seiten-Auswahl-Schicht SGD1 (Die obere Schicht) ist auch in Bereiche 420, 430, 440 und 450 unterteilt, die auch als Finger oder Auswahl-Leitungs-Finger bekannt sind. In einer Ausführungsform arbeitet jeder der Auswahl-Leitungs-Finger als eine getrennte Wortleitung; daher wird der Bereich 420 als Auswahl-Leitung SGD1/S0 (d.h. Auswahlleitung 0 der Drain-Seiten-Auswahlleitungsschicht 0) bezeichnet, der Bereich 430 wird als Auswahl-Leitung SGD1/S1 (d.h. Auswahl-Leitung 1 der Drain-Seiten-Auswahl-Schicht 0) bezeichnet, Bereich 440 wird als Auswahlleitung SGD1/S2 bezeichnet und Bereich 450 wird als Auswahl-Leitung SGD1/S3 bezeichnet. Ähnlich weist die Drain-Seiten-Auswahl-Schicht SGD2 vier Finger auf, die als Auswahl-Leitungen SGD2/S0, SGD2/S1, SGD2/S2 und SGD2/S3 arbeiten. Die Source-Seiten-Auswahl-Gate-Schicht SGS1 weist vier Finger auf, die als Auswahl-Leitungen SGS1/S0, SGS1/S1, SGS1/S2 und SGS1/S3 arbeiten. Die Source-Seiten-Auswahl-Schicht SGS2 weist vier Finger auf, die als Auswahl-Leitungen SGS2/S0, SGS2/S1; SGS2/S2 und SGS2/S3 arbeiten.
  • 4E stellt eine Querschnittsansicht des Bereiches 442 aus 4C dar, die einen Abschnitt der vertikalen Spalte 432 aufweist. In einer Ausführungsform sind die vertikalen Spalten rund und weisen vier Schichten auf, jedoch können in anderen Ausführungsformen mehr oder weniger als vier Schichten vorgesehen sein und andere Formen können verwendet werden. In einer Ausführungsform weist die vertikale Spalte 42 eine innere Kernschicht 4700 auf, die aus einem Dielektrikum wie z.B. SiO2 gemacht ist. Andere Materialien können auch verwendet werden. Es wird bemerkt, dass es der Kanal 471 ist, der sich mit der Bitleitung verbindet. Der Umgebungskanal 471 ist ein Tunneldielektrikum 472. In einer Ausführungsform weist das Tunneldielektrikum 472 eine ONO-Struktur auf. Das umgebende Tunneldielektrikum 472 ist eine Ladungseinfangschicht 473 wie z.B. ein speziell formuliertes Siliziumnitrid, das die Einfangdichte erhöht.
  • 4E stellt sowohl dielektrische Schichten DLL11, DLL12, DLL13, DLL14 und DLL15 als auch Wortleitungsschichten WLL27, WLL28, WLL29, WLL30 und WLL31 dar. Jede der Wortleitungsschichten weist einen Wortleitungsbereich 476 auf, der von einer Aluminiumoxidschicht 477 umgeben ist, die von einer Blockoxid- (SiO2) Schicht 478 umgeben ist. Die physikalische Interaktion der Wortleitungsschichten mit den vertikalen Spalten bildet die Speicherzellen. Daher weist eine Speicherzelle in einer Ausführungsform einen Kanal 471, ein Tunneldielektrikum 472, eine Ladungseinfangschicht 473, eine Blockoxidschicht 478, eine Aluminiumoxidschicht 477 und einen Wortleitungsbereich 476 auf. Zum Beispiel weisen die Wortleitungsschicht WLL31 und ein Abschnitt der vertikalen Spalte 432 eine Speicherzelle MC1 auf. Die Wortleitungsschicht WLL30 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC2 auf. Die Wortleitungsschicht WLL29 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC3 auf. Die Wortleitungsschicht WLL30 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC4 auf. Die Wortleitungsschicht WLL27 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC5 auf. In anderen Architekturen kann eine Speicherzelle eine andere Struktur aufweisen; jedoch würde die Speicherzelle immer noch die Speichereinheit sein.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Abschnitt der Ladungseinfangschicht 473 gespeichert, die mit der Speicherzelle assoziiert ist. Diese Elektronen werden in die Ladungseinfangschicht 473 von dem Kanal 471 durch die Tunnelschicht 473 in Reaktion auf eine geeignete Spannung auf Wortleitungsbereich 476 gezogen. Die Schwellwertspannung (Vth) einer Speicherzelle wird in Proportion zu dem Betrag der gespeicherten Ladung erhöht. Während einer Löschoperation kehren die Elektronen zu dem Kanal zurück oder Löcher rekombinieren mit Elektronen.
  • 4F ist ein Schaltkreisdiagramm, das eine Mehrzahl von verbundenen programmierbaren und löschbaren nichtflüchtigen Speicherzellen darstellt, die als vier NAND-Ketten angeordnet sind, die mit Bitleitung 414 und der gemeinsamen Source-Leitung SL verbunden sind. Die Auswahl-Leitungen SGD1/S0, SGD1/S1, SGD1/S2, SGD1/S3, SGD2/S0, SGD2/S1, SGD2/S2, SGD2/S3, SGS1/S0, SGS1/S1, sgs1/S2, SGS1/S3, SGS2/S0, SGS2/S1, SGS2/S2 und SGS2/S3 werden verwendet um die dargestellten NAND-Ketten auszuwählen oder zu deselektieren. In einer Ausführungsform gibt es zwei Auswahl-Leitungen (und daher zwei Auswahl-Gates) auf jeder Seite jeder NAND-Kette. Andere Ausführungsformen können mehr als zwei Auswahl-Leitungen (und zwei Auswahl-Gates) auf jeder Seite oder weniger als zwei Auswahl-Leitungen (und zwei Auswahl-Gates) auf jeder Seite der NAND-Ketten verwenden. In der Ausführungsform, die in 4F dargestellt ist, müssen, um eine NAND-Kette mit der Bitleitung zu verbinden, beide Auswahl-Gates angesteuert sein (über die zwei jeweiligen Auswahl-Leitungen) und um eine NAND-Kette mit der gemeinsamen Source-Leitung SL zu verbinden, müssen beide Auswahl-Gates angesteuert sein (über die zwei jeweiligen Auswahl-Leitungen).
  • 5 ist ein schematisches Diagramm, das einen Erfassungsverstärkerschaltkreis darstellt. Jeder Erfassungsblock SB1, SB2, ..., SBp (siehe 2) würde mehrere Erfassungsverstärkerschaltkreise aufweisen (z.B. Erfassungsschaltung 470). Wie unten beschrieben wird der Schaltkreis aus 5 einen Kondensator (oder eine andere Ladungsspeichervorrichtung) auf eine Vorladungsgröße vorladen, den Kondensator durch die Speicherzelle für eine Abtastzeit entladen und eine Spannung an dem Kondensator nach der Abtastzeit erfassen. Die Erfassungsspannung wird indikativ dafür sein, ob die Speicherzellen den Strom geleitet haben, nach dem sie erfasst werden, was indikativ dafür ist, ob die Schwellwertspannung der Speicherzelle größer als oder kleiner als die Schwellwertspannung ist, nach der sie getestet wird (entsprechend der Steuer-Gate-Spannung). Wenn die Schwellwertspannung der Speicherzelle größer als die Schwellwertspannung ist, die getestet wird, dann wird die Speiherzelle während eine Verifikationsoperation das Programmieren beenden wie es angemessen ist basierend auf den Prozessen, die hierin beschrieben sind. 5 zeigt Transistor 500, der mit der Bit-Leitung verbunden ist und Transistor 502. Der Transistor 500 empfängt das Signal-BLC an seinem Gate und wird verwendet, um sich mit der Bitleitung zu verbinden oder sie zu isolieren. Der Transistor 502 empfängt das Signal BLC an seinem Gate und wird als Spannungsklammer verwendet. Die Gate-Spannung BLC wird bei einer konstanten Spannung vorgespannt, die gleich zu der gewünschten Bit-Leitungs-Spannung plus der Schwellwertspannung des Transistors 502 ist. Die Funktion des Transistors 502 ist daher, eine konstante Bit-Leitungs-Spannung während einer Erfassungsoperation (während des Lesens oder Verifizierens) aufrechtzuerhalten, auch wenn der Strom durch die Bit-Leitung sich ändert.
  • Der Transistor 502 ist mit den Transistoren 504, 506 und 508 verbunden. Der Transistor 506 ist mit einem Kondensator 516 an dem Knoten verbunden, der mit SEN markiert ist. Der Zweck des Transistors 506 ist, den Kondensator 516 mit der Bit-Leitung zu verbinden und den Kondensator 516 von der Bit-Leitung zu lösen, so dass der Kondensator 516 in einer selektiven Kommunikation mit der Bit-Leitung ist. Mit anderen Worten reguliert der Transistor 506 die Abtast-Zeit. Das heißt, während der Transistor eingeschaltet ist, kann sich der Kondensator 516 durch die Bit-Leitung entladen und wenn der Transistor 506 ausgeschaltet ist, kann sich der Kondensator 516 nicht durch die Bit-Leitung entladen.
  • Der Knoten, an dem der Transistor 506 sich mit dem Kondensator 516 verbindet, ist auch mit dem Transistor 510 und dem Transistor 514 verbunden. Der Transistor 510 ist mit den Transistoren 508, 512 und 518 verbunden. Der Transistor 518 ist auch mit dem Transistor 520 verbunden. Die Transistoren 518 und 520 sind PMOS-Transistoren, während die anderen Transistoren aus 5 NMOS-Transistoren sind. Die Transistoren 510, 518 und 520 stellen einen Vor-Ladungs-Pfad gegenüber dem Kondensator 516 bereit. Eine Spannung (z.B. Vdd oder andere Spannung) wird auf die Quelle des Transistors 520 angewandt. Durch geeignetes Vorspannen der Transistoren 51ß, 518 und 520 kann die Spannung, die auf die Quelle des Transistors 520 angewandt wird, verwendet werden, um den Kondensator 516 vorzuladen. Nach dem Vor-Laden kann sich der Kondensator 516 durch die Bit-Leitung über den Transistor 506 entladen (angenommen, dass die Transistoren 500 und 502 leitend sind).
  • Der Schaltkreis aus 5 weist Inverter 530 und 532 auf, die einen Latch-Schaltkreis bilden. Der Output von Inverter 532 ist mit dem Input von Inverter 530 verbunden und der Output von Inverter 530 ist sowohl mit dem Input von Inverter 532 als auch mit Transistoren 520 und 522 verbunden. Der Input von Inverter 532 wird Vdd empfangen und die zwei Inverter 530, 532 werden als ein Latch agieren, um Vdd zu speichern. Der Input von Inverter 532 kann auch mit einem anderen Wert verbunden werden. Die Transistoren 512 und 522 stellen einen Pfad zum Kommunizieren der Daten, die durch Inverter 530 und 532 gespeichert sind, zum Transistor 514 bereit. Der Transistor 522 empfängt das Signal FCO an seinem Gate. Der Transistor 512 empfängt das Signal STRO an seinem Gate. Durch Anheben oder Senken von FCO und STRO wird ein Pfad zwischen den Invertern 530, 532 und dem Transistor (Erfassungsschalter) 514 bereitgestellt oder abgeschnitten. Das Gate des Transistors 514 ist verbunden mit dem Kondensator 516, dem Transistor 506 und dem Transistor 510 an dem Knoten-markierten SEN. Das andere Ende des Kondensators 516 ist mit dem Signal CLK verbunden.
  • Wie oben diskutiert, wird der Kondensator 516 über die Transistoren 510, 518 und 520 vor-geladen. Dies wird die Spannung an dem SEN-Knoten auf ein Vor-Ladungs-Spannungsniveau (Vpre) anheben. Wenn der Transistor 506 angeht, kann der Kondensator 516 seine Ladung durch die Bit-Leitung und die ausgewählte Speicherzelle entladen, wenn die Schwellwertspannung der Speicherzelle unterhalb des Spannungsniveaus ist, nach dem getestet wird. Wenn der Kondensator 516 in der Lage ist, sich zu entladen, dann wird die Spannung an dem Kondensator (an dem SEN-Knoten) abnehmen.
  • Die Vor-Ladungs-Spannung (Vpre) an dem SEN-Knoten ist größer als die Schwellwertspannung des Transistors 914; daher ist vor der Abtast-Zeit der Transistor 514 an (leitend). Da der Transistor 514 während der Abtast-Zeit an ist, dann sollte der Transistor 512 aus sein. Wenn der Kondensator sich während der Abtastzeit nicht enlädt, dann wird die Spannung an dem SEN-Knoten oberhalb der Schwellwertspannung des Transistors 514 bleiben und die Ladung an den Invertern 530, 532 kann in das CLK-Signal entladen werden, wenn STRO den Transistor 512 einschaltet. Wenn der Kondensator sich ausreichend während der Abtastzeit entlädt, dann wird sie Spannung an dem SEN-Knoten unterhalb der Schwellwertspannung des Transistors 514 abnehmen; wodurch der Transistor 914 ausgeschaltet wird und die Daten (z.B. Vdd) werden bei den Invertern 530, 532 gespeichert durch das Entladenwerden durch CLK. Daher wird das Testen, ob die Dioden 530, 532 ihre Ladung behalten oder sich entladen, das Ergebnis des Verifikationsprozesses angeben. In einer Ausführungsform kann das Ergebnis an dem Knoten A über den Transistor 534 (Daten-Aus) durch Anschalten des Transistor- 534 Gate-Signal-NCO gelesen werden.
  • Das Vor-Ladungs-Niveau des Kondensators 516 (und daher die Vor-Ladungs-Spannung an dem Knoten SEN) ist durch das derzeitige Durchkommen durch den Transistor 510 beschränkt. Der Strom, der durch den Transistor 510 durchkommt, ist durch die Gate-Spannung H00 beschränkt. Als solche ist die Vor-Ladungs-Spannung an dem Knoten SEN durch die Spannung H00 beschränkt, die niedriger als die Schwellwertspannung des Transistors 510 ist. Mit dieser Anordnung kann das System die Vor-Ladungs-Spannung an dem Knoten durch das Regulieren von H00 regulieren. Eine größere Spannung bei H00 resultiert in einer größeren Spannung an dem SEN-Knoten während des Vor-Ladens. Eine niedrigere Spannung an H00 resultiert in einer niedrigeren Spannung an dem SEN-Knoten während des Vor-Ladens.
  • Wenn das System eine Lese- oder Verifikationsoperation (beides sind Erfassungsoperationen) durchführt, kann die Spannung, die auf das Steuer-Gate der Zelle angewandt wird, bewirken, dass der Kanal (der mit der Bitleitung verbunden ist) der Zelle leitet. Wenn dies geschieht, wird ein Kondensator durch den Kanal entladen, was die Spannung senkt, während er sich entlädt.
  • 6 ist ein Timing-Diagramm, das das Verhalten von verschiedenen Signalen aus 5 beschreibt. Das Signal BLS wird bei Vdd die gesamte Zeit dargestellt und das Signal ist bei Vbl + Vsrc + Vth, wobei Vbl die Spannung der Bit-Leitung ist, Vscr die Spannung der Source-Leitung ist und Vth die Schwellwertspannung des Transistors 502 ist. Das Signal FLA beginnt bei Vss bei t0 und geht zu Vdd bei t6. Wenn das Signal FLA bei Vss ist, wird der Vor-Ladungs-Pfad durch den Transistor 510 reguliert. Bei t0 wird die Spannung von H00 von Masse zu einem Vor-Ladungs-Niveau angehoben. Das Anheben der Spannung bei H00 macht den Transistor 510 an und öffnet den Vor-Ladungs-Pfad. Die Größe der Spannung bei H00 wird eingestellt. 6 zeigt, dass H00 zu Vhoo geht. Das Signal H00 wird bei der Vor-Ladungs-Spannung (Vhoo) bis zum Zeitpunkt t1 bleiben. Während H00 hoch ist, geht der Transistor 510 an und der Kondensator 516 wird sich zwischen t0 und t1 vorladen, wie durch die Spannung bei SEN dargestellt. Zum Zeitpunkt t1 wird H00 herunter gebracht auf Vss und das Vor-Laden wird beendet.
  • Das Signal X00 wird verwendet, um dem Kondensator 516 zu erlauben, in Kommunikation mit der Bit-Leitung zu sein, so dass sich der Kondensator durch die Bit-Leitung und die ausgewählte Speicherzelle entladen kann. Zum Zeitpunkt t3 wird X00 auf Vblc + Vblx angehoben, wobei Vblc die Spannung des Signals BLC ist und Vblx die Spannung des Signals BLX ist (beides oben diskutiert). Zum Zeitpunkt t4 wird die Spannung bei X00 auf Vss gesenkt. Zwischen den Zeitpunkten t3 und t4, bekannt als die Abtastzeit, wird der Kondensator 516 in Kommunikation mit der Bit-Leitung sein, um ihr zu erlauben, sich durch die Bit-Leitung und die ausgewählte Speicherzelle (abhängig von der Schwellwertspannung der ausgewählten Speicherzelle) zu entladen. Das Signal CLK wird auf Vblx zum Zeitpunkt t2 angehoben und zurück auf Vss zum Zeitpunkt t5 gesenkt, um sämtliche Kampfbedingungen in dem Schaltkreis zu verhindern und eine geeignete Entladung des Kondensators 516 zu erlauben.
  • Wie oben diskutiert, weil H00 zwischen t0 und t1 angehoben wird, wird sich der Kondensator 516 (und SEN-Knoten) zwischen t0 und t1 aufladen (die Vor-Ladung). Dies ist in 6 dargestellt, wobei sich der SEN-Knoten von Vss zu Vpre lädt. Die feste Leitung für Vpre repräsentiert eine Beispiel-Vorladung des Knotens SEN (und des Kondensators 516) in Reaktion darauf, dass Vh00 auf das Gate des Transistors 510 angewandt wird.
  • Wenn X00 bei t3 angehoben wird, kann der Kondensator 516 ursprünglich die Bitleitung vor-laden und sich dann durch die Bit-Leitung entladen (wenn die Schwellwertspannung bei dem geeigneten Niveau ist). Wie in 6 zwischen t3 und t4 dargestellt, kann die Spannung an dem SEN-Knoten sich von Vpre zu Vpost_con auflösen, wenn die Speicherzelle sich einschaltet (leitet), weil ihre Schwellwertspannung weniger als oder gleich zu der Spannung ist, die auf ihr Steuer-Gate angewandt wird. Wenn die Schwellwertspannung für die Speicherzelle, die getestet wird, höher ist als die Spannung, die auf ihr Steuer-Gate angewandt wird, wird sich der Kondensator 516 nicht entladen und die Spannung wird bei Vpre bleiben. Die Zeitdauer zwischen t3 und t4 ist die Abtastzeit und kann angepasst werden wie oben beschrieben.
  • 6 zeigt, dass das Signal FCO bei t7 auf Vdd angehoben wird und bei T9 auf Vss gesenkt wird. Das Signal STRO wird bei t8 auf Vdd angehoben und bei t9 gesenkt. Zwischen den Zeitpunkten t8 und t9 gibt es einen Pfad zwischen den Invertern 530, 532 und dem Transistor 514. Wenn die Spannung an dem Knoten SEN größer als die Schwellwertspannung des Transistors 514 ist, dann wird es einen Pfad von den Invertern 530, 532 zu CLK geben und die Daten an den Invertern 530, 532 werden sich durch das Signal CLK und durch den Transistor 514 auflösen. Wenn die Spannung an dem Knoten SEN niedriger als die Schwellwertspannung des Transistors 514 ist (z.B. wenn der Kondensator entladen wird), dann wird sich der Transistor 514 ausschalten und die Spannung, die von den Invertern 530, 532 gespeichert ist, wird sich nicht in CLK auflösen. 6 zeigt das Spannungsniveau an dem Knoten A bei Vdd. Wenn die Spannung des Kondensators sich nicht auflöst (z.B. aufgrund dessen, dass nicht genügend Strom fließt, weil die Schwellwertspannung der ausgewählten Speicherzelle größer als die Spannung ist, nach der getestet wird), dann wird der Transistor 514 an bleiben und die Spannung bei Knoten A wird sich zu Vss auflösen (wie durch die gestrichelte Linie dargestellt). Wenn die Spannung des Kondensators sich auflöst (z.B. aufgrund eines ausreichenden Stromes, der fließt, weil die Schwellwertspannung der ausgewählten Speicherzelle unter der Spannung ist, nach der getestet wird), dann wird sich der Transistor 514 ausschalten und die Spannung bei Knoten A wird bei Vdd bleiben (wie durch die feste Linie dargestellt). Der Output von Knoten A wird gegenüber dem Daten-Aus-Signal über den Transistor 534 durch Anwenden von Vdd auf das Signal NCO bereitgestellt.
  • 7 ist ein Flussdiagramm, das eine Erfassungsoperation beschreibt, die gemäß dem Timing-Diagramm aus 6 durchgeführt wird. In Schritt 702 wird die angemessene Verifikationsreferenzspannung (z.B. Vv, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 oder Vv7 - siehe 8) auf die ausgewählte Wortleitung angewandt. Die ausgewählte Wortleitung ist mit den Speicherzellen verbunden, die programmiert und verifiziert werden. Die Bitleitungen, die mit den Speicherzellen verbunden sind, die programmiert und verifiziert werden, werden auf ein vorbestimmtes Vor-Ladungs-Niveau geladen. In Schritt 704 werden sämtliche der SEN-Knoten vor-geladen. In Schritt 706 wird den Bitleitungen erlaubt, sich zu entladen, zum Beispiel durch das Entladen des Kondensators 516 (siehe t5-t6 aus 6). Nach einer vorbestimmten Zeitdauer, die als „Abtastzeit“ oder „Integrationszeit“ bezeichnet wird, wird die Spannung des Kondensators 516 (oder des SEN-Knotens) abgetastet wie oben beschrieben, um zu sehen, ob die jeweiligen Speicherzelle(n) in Schritt 708 geleitet haben/hat. Wie oben beschrieben wird der Verifikationsprozess gleichzeitig für Tausende von Speicherzellen durchgeführt, die mit derselben Wortleitung und verschiedenen Bitleitungen verbunden sind.
  • An dem Ende eines erfolgreichen Programmierprozesses (mit Verifikation) sollten die Schwellwertspannungen der Speicherzellen innerhalb einer oder mehrerer Verteilungen von Schwellwertspannungen für programmierte Speicherzellen oder innerhalb einer Verteilung von Schwellwertspannungen für gelöschte Speicherzellen sein, wie es angemessen ist. 8 stellt Beispielschwellwertspannungsverteilungen für den Speicherzellen-Array dar, wenn jede Speicherzelle vier Datenbits speichert. Andere Ausführungsformen jedoch können andere Datenkapazitäten pro Speicherzelle (z.B. wie z.B. eine, zwei, drei, oder fünf Daten-Bits pro Speicherzelle) verwenden. 8 zeigt sechzehn Schwellwertspannungsverteilungen, die sechzehn Datenzuständen entsprechen. Die erste Schwellwertspannungsverteilung (Datenzustand) S0 repräsentiert Speicherzellen, die gelöscht werden. Die anderen fünfzehn Schwellwertspannungsverteilungen (Datenzustände) S1-S15 repräsentieren Speicherzellen, die programmiert werden und daher programmierte Zustände genannt werden. Jede Schwellwertspannungsverteilung (Datenzustand) entspricht prädeterminierten Werten für den Satz von Daten-Bits. Die spezifische Beziehung zwischen den Daten, die in die Speicherzelle programmiert werden und den Schwellwertspannungsniveaus der Zelle hängt von dem Datenkodierschema ab, das für die Zellen angepasst wird. In einer Ausführungsform werden Datenwerte den Schwellwertspannungsbereichen unter Verwendung einer Gray-Code-Zuweisung zugewiesen, so dass wenn die Schwellwertspannung eines Floating Gates sich fehlerhaft zu ihrem benachbarten physikalischen Zustand verschiebt, nur ein Bit beeinträchtigt sein wird. Es wird bemerkt, dass der Zustand N-1 ein angrenzender unterer Datenzustand für den Zustand N ist; zum Beispiel Zustand 7 ein angrenzender Datenzustand für Zustand 8 ist.
  • 8 zeigt auch fünfzehn Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7, Vr8, Vr9, Vr10, Vr11, Vr12, Vr13, Vr14 und Vr15 zum Lesen von Daten von den Speicherzellen. Durch das Testen, ob die Schwellwertspannung einer gegebenen Speicherzelle oberhalb oder unterhalb der fünfzehn Lesereferenzspannungen ist, kann das System bestimmen, in welchem Datenzustand (d.h. S0, S1, S2, S3, ...) die Speicherzelle ist.
  • 8 zeigt auch fünfzehn Verifikationsreferenzspannungen, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7, Vv8, Vv9, Vv10, Vv11, Vv12, Vv13, Vv14 und Vv15. Wenn Speicherzellen zum Datenzustand S1 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung aufweisen, die größer als oder gleich zu Vv1 ist. Wenn Speicherzellen zum Datenzustand S2 programmiert werden, wird das System testen, ob die Speicherzellen Schwellwertspannungen größer als oder gleich zu Vv2 aufweisen. Wenn Speicherzellen zum Datenzustand S3 programmiert werden, wird das System bestimmen, ob Speicherzellen ihre Schwellwertspannung größer als oder gleich zu Vv3 aufweisen. Wenn Speicherzellen zum Datenzustand S4 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv4 aufweisen. Wenn Speicherzellen zum Datenzustand S5 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv4 aufweisen. Wenn Speicherzellen zum Datenzustand S6 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv6 aufweisen. Wenn Speicherzellen zum Datenzustand S7 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv7 aufweisen. Wenn Speicherzellen zum Datenzustand S8 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv8 aufweisen. Wenn Speicherzellen zum Datenzustand S9 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv9 aufweisen. Wenn Speicherzellen zum Datenzustand S10 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv10 aufweisen. Wenn Speicherzellen zum Datenzustand S11 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv11 aufweisen. Wenn Speicherzellen zum Datenzustand S12 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv12 aufweisen. Wenn Speicherzellen zum Datenzustand S13 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv13 aufweisen. Wenn Speicherzellen zum Datenzustand S14 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv14 aufweisen. Wenn Speicherzellen zum Datenzustand S15 programmiert werden, wird das System testen, ob jene Speicherzellen eine Schwellwertspannung größer als oder gleich zu Vv15 aufweisen.
  • In einer Ausführungsform, die bekannt ist als Vollsequenzprogrammierung, können Speicherzellen von dem gelöschten Datenzustand S0 direkt zu einem 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 sämtliche Speicherzellen in der Population in dem gelöschten Datenzustand S0 sind. Dann wird ein Programmierprozess verwendet, um die Speicherzellen direkt in Datenzustände S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14 und/oder S15 zu programmieren. Zum Beispiel, während manche Speicherzellen von dem Datenzustand S0 zum Datenzustand S1 programmiert werden, werden andere Speicherzellen vom Datenzustand S0 zum Datenzustand S2 und/oder von Datenzustand S0 zum Datenzustand S2 und/oder vom Datenzustand S0 zum Datenzustand S3 und so weiter programmiert. Die Pfeile aus 8 repräsentieren das Vollsequenzprogrammieren. Die Technologie, die hierin beschrieben ist, kann auch mit anderen Typen des Programmierens zusätzlich zum Vollsequenzprogrammieren verwendet werden (einschließlich, aber nicht beschränkt auf, Mehr-Stadien/Phasen-Programmierung).
  • 9 stellt eine andere Ausführungsform von Schwellwertspannungsverteilungen, die den Datenzuständen S0-S15 entsprechen, die sich partiell überlappen können, da die Fehlerkorrektur mit einem bestimmten Prozentsatz von Speicherzellen umgehen kann die fehlerhaft sind, dar. Wegen der Größe der Zeichnung sind die Bezugnahmen auf die Datenzustände derart abgeschnitten worden, dass 0 verwendet wird anstelle von S0, 1 verwendet wird anstelle von S1, 2 verwendet wird anstelle von S2 und so weiter.
  • 10 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen des Programmierens auf Speicherzellen beschreibt, die mit einer gemeinsamen Wortleitung mit einem oder mehreren Targets verbunden sind (z.B. auch bekannt als Datenzustände, programmierte Zustände oder Schwellwertspannungsbereiche). Der Prozess aus 10 kann einmal oder mehrere Male durchgeführt werden, um Daten zu einem Satz von Speicherzellen zu programmieren. Zum Beispiel kann der Prozess aus 10 verwendet werden, um Speicherzellen von S0 zu irgendeinem der programmierten Zustände S1-S15 in dem Vollsequenzprogrammieren aus 8 zu programmieren. Der Prozess aus 10 kann verwendet werden, um Speicherzellen für irgendeine der Phasen eines Multi-Phasen-Programmierungs-Prozesses zu programmieren, der in der Technik bekannt ist.
  • Typischerweise wird die Programmierspannung, die auf das Steuer-Gate während einer Programmieroperation angewandt wird, als eine Serie von Programmierpulsen angewandt. Zwischen den Programmierpulsen ist ein Satz von Verifikationspulsen, um eine Verifikation durchzuführen. In vielen Implementierungen wird die Amplitude der Programmierpulse mit jedem nachfolgenden Puls um eine vorbestimmte Schrittgröße erhöht. In Schritt 770 aus 10 wird die Programmierspannung (Vpgm) auf die Startamplitude initialisiert (z.B. -12-16V oder ein anderes geeignetes Niveau) und ein Programmierzähler-PC, der von der Zustandsmaschine 112 aufrechterhalten wird, wird bei 1 initialisiert. In Schritt 772 wird ein oder werden mehrere Programmier- (Spannungs-) Pulse des Programmiersignals Vpgm auf die ausgewählte Wortleitung (die Wortleitung, die zum Programmieren ausgewählt wird) angewandt, so dass sie auf mehrere NAND-Ketten angewandt wird. In einer Ausführungsform sind aus einer Gruppe von Speicherzellen, die gleichzeitig programmiert werden, alle mit derselben Wortleitung (der ausgewählten Wortleitung) verbunden. Die nicht ausgewählten Wortleitungen empfangen eine oder mehrere Boosting-Spannungen (z.B. ~7-11 Volt), um Boosting-Schemata durchzuführen, die in der Technik bekannt sind. In Schritt 772 wird der Programmier-Puls gleichzeitig auf sämtliche Speicherzellen angewandt, die mit der ausgewählten Wortleitung verbunden sind, so dass die Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, die nicht gesperrt sind, gleichzeitig programmiert werden. Das heißt, sie werden zu derselben Zeit oder während überlappender Zeiten (wovon beides als gleichzeitig betrachtet wird) programmiert. Auf diese Art und Weise werden sämtliche der Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, die nicht gesperrt sind, gleichzeitig ihre Schwellwertspannung ändern. Zusätzlich umfasst Schritt 772 das selektive getrennte und zu geeigneten Zeiten stattfindende Boosten der Kanäle der Speicherzellen basierend auf ihrem jeweiligen Targetzustand , wie detaillierter unten beschrieben ist.
  • In Schritt 774 werden die geeigneten Speicherzellen unter Verwendung des geeigneten Satzes von Target-Niveaus verifiziert, um eine oder mehrere Verifikationsoperationen durchzuführen. In einer Ausführungsform wird der Verifikationsprozess durch Testen, ob die Schwellwertspannungen der Speicherzellen, die für das Programmieren ausgewählt werden, die geeignete Verifikationsreferenzspannung erreicht haben (Vv1, Vv2, Vv3, ..., Vv15). Speicherzellen, die ausreichend verifiziert sind, ihren Targetzustand erreicht zu haben, werden von weiterer Programmierung ausgeschlossen.
  • In Schritt 776 wird bestimmt, ob sämtliche der Speicherzellen ihre Target-Schwellwert-Spannungen (pass) erreicht haben. Falls ja, ist der Programmierprozess beendet und erfolgreich, weil sämtliche ausgewählte Speicherzellen zu ihren Targetzuständen programmiert und verifiziert wurden. Ein Status von „PASS“ wird in Schritt 778 berichtet. Wenn in 776 bestimmt wird, dass nicht sämtliche der Speicherzellen ihre Target-Schwellwert-Spannungen erreicht haben (fail), dann fährt das Programmieren mit Schritt 780 fort.
  • In Schritt 780 zählt das System die Anzahl von Speicherzellen, die noch nicht ihre jeweilige Schwellwertspannungsverteilung erreicht haben. Das heißt, das System zählt die Anzahl von Speicherzellen, die im Verifikationsprozess gescheitert sind. Diese Zählung kann getan werden durch die Zustandsmaschine, die Steuereinheit oder eine andere Logik. In einer Implementierung wird jeder der Erfassungsblöcke den Status (pass/fail) von ihren jeweiligen Zellen speichern. In einer Ausführungsform gibt es eine Gesamtzählung, die die Gesamtzahl von Speicherzellen reflektiert, die derzeit programmiert werden, die im letzten Verifikationsschritt gescheitert sind. In einer anderen Ausführungsform werden getrennte Zählungen für jeden Datenzustand erhalten.
  • In Schritt 782 wird bestimmt, ob die Zählung von Schritt 780 weniger als oder gleich zu einem vorbestimmten Limit ist. In einer Ausführungsform ist das vorbestimmte Limit die Anzahl von Bits, die durch ECC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden können. Wenn die Anzahl von gescheiterten Zellen weniger oder gleich zu dem vorbestimmten Limit ist, dann kann der Programmierprozess stoppen und ein Status von „PASS“ wird in Schritt 778 berichtet. In dieser Situation sind genügend Speicherzellen korrekt programmiert derart programmiert worden, dass die wenigen verbleibenden Speicherzellen, die nicht vollständig programmiert worden sind, unter Verwendung der ECC während des Leseprozesses korrigiert werden können. In einigen Ausführungsformen wird Schritt 780 die Anzahl von gescheiterten Zellen für jeden Sektor, jeden Targetdatenzustand oder andere Einheit zählen und jene Zählungen werden individuell oder kollektiv mit einem Schwellwert in Schritt 782 verglichen.
  • In einer anderen Ausführungsform kann das vorbestimmte Limit weniger als die Anzahl von Bits sein, die durch ECC während eines Leseprozesses korrigiert werden können, um zukünftige Fehler zu erlauben. Wenn weniger als sämtliche der Speicherzellen für eine Seite programmiert werden oder eine Zählung für nur einen Datenzustand (oder weniger als sämtliche Zustände) verglichen wird, dann kann das vorbestimmte Limit ein Anteil (Pro-Rata oder nicht Pro-Rata) der Anzahl von Bits sein, die durch EC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden können. In manchen Ausführungsformen ist das Limit nicht vorbestimmt. Anstelle dessen ändert es sich basierend auf der Anzahl von Fehlern, die bereits für die Seite gezählt worden sind, die Anzahl von Programmier-Lösch-Zyklen, die durchgeführt worden sind, oder andere Kriterien.
  • Wenn die Anzahl von gescheiterten Speicherzellen nicht weniger als das vorbestimmte Limit ist, dann fährt der Programmierprozess bei Schritt 784 fort und der Programm-Zähler PC wird gegen den Programmier-Limit-Wert (PL) überprüft. Beispiele von Programmier-Limit-Werten umfassen 20 und 30; jedoch können andere Werte verwendet werden. Wenn der Programmier-Zähler PC nicht weniger als der Programmier-Limit-Wert PL ist, dann wird der Programmierprozess betrachtet, gescheitert zu sein und ein Status FAIL wird in Schritt 788 berichtet. Wenn der Programmier-Zähler PC kleiner als der Programmier-Limit-Wert PL ist, dann fährt der Prozess bei Schritt 786 fort, währenddessen der Programmier-Zähler-PC um 1 inkrementiert wird und die Programmierspannung Vpgm zu der nächsten Amplitude ansteigt. Zum Beispiel wird der nächste Puls eine Amplitude größer als der vorhergehende Puls um eine Schrittgröße (z.B. eine Schrittgröße von 0,1-0,4Volt) aufweisen. Nach Schritt 786 wird der Prozess zurück zu Schritt 772 geschliffen und ein anderer Programmierpuls wird auf die ausgewählte Wortleitung angewandt. In einer Ausführungsform wird der Prozess aus 10 durch Dekoder 114/124/132, Code- und Parameterspeicher 113, Energiesteuermodul 116, Erfassungsblöcke SB1, SB2, ... SBp, Lese-/Schreib-Schaltkreise 128 bei der Richtung der Zustandsmaschine 112 (und/oder der Steuereinheit 122) durchgeführt.
  • Wenn vier Daten-Bits in jeder Speicherzelle unter Verwendung von sechzehn Datenzuständen gespeichert werden, wie in 8 und 9 dargestellt, kann der Prozess der Verifikation (siehe Schritt 774 aus 10) den Programmierprozess verlangsamen. Zum Beispiel werden einige Systeme eine Verifikationsoperation für jeden der fünfzehn möglichen programmierten Zustände S1-S15 durchführen. Daher kann jede Iteration (Schleife) des Prozesses aus 10 fünfzehn Verifikationsoperationen umfassen (z.B. fünfzehn Verifikationspulse auf der ausgewählten Wortleitung) während Schritt 774. Die große Anzahl von Verifikationsoperationen verlangsamt das Programmieren. Daher werden einige Systeme nur für einen Untersatz der programmierten Zustände verifizieren, die die Speicherzellen potentiell erreichen könnten. In manchen Ausführungsformen hängt die Anzahl von programmierten Zuständen, die zu einer gegebenen Zeit verifiziert werden, von der Breite der natürlichen Schwellwertverteilung ab. Daher wird vorgeschlagen, den Betrag der Zeit zu reduzieren, der benötigt wird um durch Reduzieren der Breite der Schwellwertspannungsverteilung zu verifizieren, so dass weniger Datenzustände zu einer gegebenen Zeit verifiziert werden müssen. Hier bezieht sich die natürliche Schwellwertverteilung auf die Schwellwertverteilung, die erhalten wird, wenn ein Programmierpuls auf die Wortleitung ohne eine Programmier-Verifikations-Operation angewandt wird. Sie stellt die Schwellwertspannungen dar, bei denen die Zellen auf „natürlich“ programmiert werden.
  • 11 und 12 stellen eine typische Programmieroperation dar, bei der die programm-aktivierten Zellen für sämtliche Zustände ihre Kanäle ähnlich vorgespannt haben. (Das Beispiel ist wieder für den Speicher-Zellen-Array, wenn jede Speicherzelle vier Daten-Bits speichert, wie in 8). Wie in 11 gezeigt, wenn die Programmierwellenform entlang einer ausgewählten Wortleitung angewandt wird: für die programm-aktivierten Zellen bewegt sich die natürliche Schwellwertspannung Vt durch jeden Zustand einer nach dem anderen, während die Programmierschleife zunimmt, wobei jede Zelle sich ausschließt, während sie verifiziert wird. In der Folge, wie oben bezüglich 10 beschrieben ist, beginnend von dem gelöschten Zustand S0 nehmen die Vt der Zellen zu und werden in die programmierten Zustandsverteilungen S1-S15 programmiert. Da nicht-defektive Zellen bei ungefähr derselben Rate programmieren, bedeutet dies, dass die höheren Targetzustände mehr Programmierschleifen benötigen werden als die niedrigeren Targetzustände, eine Situation, die in 12 dargestellt ist.
  • 12 stellt die Tagetzustände gegen die Programmierschleifenanzahl graphisch dar. Die schattierten Vierecke entsprechen den Zuständen, die nach den Programmierpulsen von jeder Schleife verifiziert worden sind, wobei eine „smarte Verifikations“- Anordnung verwendet wird, die nur jene Zustände überprüft, die wahrscheinlich sind, dass sie immer noch nicht-defekte Zellen programmieren. Wie gezeigt, ist es für sämtliche Zellen, die in den S1-Zustand programmieren, wahrscheinlich, dass sie innerhalb von einem Dutzend Schleifen verifizieren, während die S15-Zustände so viele wie 40 benötigen können. Basierend auf einer typischen Zellpopulation und typischen Programmierparameters resultiert das Verwenden von -38 Vpgm-Pulsen und 150 Verifikationsoperationen (10 pro Zustand für 15 Zustände) in einer relativ langen Programmieroperation. Um die Anzahl von Pulsen und Verifikationen zu reduzieren, präsentiert die folgende Diskussion Techniken, um selektiv den Kanal basierend auf einem Targetzustand einer Zelle anzuheben.
  • Spezifischer werden in einem Multi-Zustands-Programm- (MSP) Schema die Kanäle, die mit Speicherzellen assoziiert sind, zu einem Potential (Vch) angehoben, das eine Funktion des Target-Programmier-Zustands der Zelle ist. Abhängig von der Ausführungsform kann dies für sämtliche Zustände getan werden oder einen Untersatz. Niedrigere Zustände bekommen ein höheres Kanalpotential, während höhere Zustände ein niedrigeres Kanalpotential bekommen. Da derselbe Vpgm-Puls auf sämtliche der Zellen auf der Wortleitung angewandt wird, fühlen die niedrigeren Zustände ein niedrigeres VPGM, was ihre Programmierung verlangsamt. Daher können effektiv mehrere Zustände gleichzeitig bei ungefähr derselben Rate programmiert werden.
  • Die Tabelle aus 13 gibt einige Beispiele von Kanal-Boosting- (Vch) Werten und ihrer Entsprechung zu verschiedenen Targetzuständen, wobei *S0 sich sowohl auf Zellen bezieht, die zu dem gelöschten Zustand gehören als auch auf sämtliche ausgesperrten Zellen von anderen Targetzuständen. Die untere Reihe zeigt den resultierenden effektiven Vpgm-Wert dafür, wenn ein tatsächlicher Vpgm-Wert von 20V auf die ausgewählte Wortleitung angewandt wird. Wie gezeigt, sieht eine Zelle, die gezielt auf den höchsten S15- Target-Zustand ausgerichtet ist, den vollen Vpgm-Wert, während der effektive Vpgm-Wert für die anderen Zustände reduziert ist, was ein relativ weniger Programmieren pro Puls resultiert. Dies erlaubt, dass die Zellen auf verschiedene Target-Zustände programmiert werden, um bei etwa derselben Rate zu programmieren, so dass für denselben Vpgm-Puls jeder Zustand seinen eigenen natürlichen Vt aufweist und während die Programmschleifenzählung zunimmt, beenden sämtliche Zustände das Programmieren mehr oder weniger gleichzeitig.
  • Die Tabelle aus 14 stellt wieder die Target-Zustände gegen die Programmschleifenanzahl graphisch dar, wie in 11, aber jetzt ist das Kanal-Boosting basierend auf den Target-Zuständen für sämtliche der Zustände enthalten. Relativ zu 11 wird das Programmieren nur -10 Programmpuls benötigen verglichen mit 38 in dem konventionellen Programmfall, wodurch die Programmleistung verbessert wird. Da sämtliche Zustände hier in jeder Schleife verifiziert werden bleibt die Anzahl der Verifikationen unverändert. Jedoch, da sämtliche der Zustandsverifikationen jetzt bei jeder Verifikationsiteration fertig sind, wird die Gesamtanzahl der Verifikationsiterationen reduziert. Bei jeder Verifikationsiteration gibt es einen Betrag von Overhead auf die Vor-Ladung und Entladung der verschiedenen Signale, die in jeder Verifikation involviert sind. Daher reduziert durch das Reduzieren der Gesamtanzahl von Verifikationsiterationen das Multi-Zustands-Programmieren auch die Gesamtzeit, die in Verifikationsoperationen verbracht wird, was in einer schnelleren Programmierleistung resultiert.
  • 15 und 16 sind ein Satz von Wellenformen, die einige Details von beispielhaften Ausführungsformen zum Vorspannen eines NAND-Speicher-Arrays darstellen, um Kanalpotentiale von Programmierspeicherzellen in einer Steuereinheits-Art und Weise anzuheben, wobei 16 den Kanal getrennt für jeden Zustand einstellt und wobei 15 sich nur einen einzelnen Zustand anschaut. Im Blick auf 15 ist es der konventionelle Zugang des Modulierens des Kanalpotentials (Vch) zum Programmieren von Speicherzellen, direkt ihre BL-Spannungen auf dem gewünschten Niveau anzusteuern. Dies ist in dem linken Abschnitt von 15 gezeigt, wobei (während des Anhebens der Drain-Auswahl-Gates SGD_SEL auf VSG und dann Absenken auf VSCD) nichtausgewählte Bitleitungen auf das Sperrniveau VBL_Inhibit angehoben werden und Bitleitungen, die durch das Programmieren ausgewählt sind, werden bei dem Programmier-aktivier-Niveau Masse gehalten. Dies erlaubt den ausgewählten Zellen den vollen Vpgm zu sehen, während die Drain-Seiten-Auswahl-Gates ausgeschaltet werden, wenn SGD_SEL auf VSG absinkt, was den Kanal der nichtausgewählten Zellen floaten lässt. Während für den Moment der mittlere Teil der Figur ignoriert wird, würde der Konventionsprozess dann damit fortfahren, dass die nichtausgewählten Wortleitungen auf Vpass gehen und dann damit, dass die ausgewählte Wortleitung zu Vpgm geht, wie zur Rechten der 15 gezeigt. Dies resultiert darin, dass sämtliche ausgewählte Zellen denselben Vch aufweisen, nämlich 0V.
  • Um Multi-Zustands-Programmierung mit der Sorte von Target-Zustands-abhängigen Kanalspannungen, die in 13 dargestellt sind, durch Anwenden der höheren Spannungen direkt auf die Bitleitungen durchzuführen, würde die Vorspannschaltung etwa wie ~5,6V von Bitleitungsspannung für Zellen mit einem S1-Zustands-Target-Zustand anwenden müssen. Um ein ausreichendes Vsgd-Fenster aufrechtzuerhalten, würde das VBLC_Inhibit bis zu etwas wie ~7V hochgehen müssen. Dies ist typischerweise keine praktische Spannung, um an eine Bitleitung von einem Erfassungsverstärker geliefert zu werden, da solch hohe Spannungen einen Zusammenbruch in den Erfassungsverstärker-Transistoren bewirken könnten. Auch das Verwenden der Erfassungsverstärker, um solche Werte einzustellen, würde einen signifikanten Betrag von Energie/Zeit verbrauchen, um Bitleitungen auf solche hohe Niveaus hochzuladen.
  • Um diese Probleme zu vermeiden, während die Wortleitungen immer noch auf das gewünschte Niveau angehoben werden, verwenden die beispielhaften Ausführungsformen, die hierin präsentiert werden, die selbst-boostende Eigenschaft der Speicherzelle, um das Kanalpotential anzuheben. Die Vpass-Rampe wird zu einer Multi-Schritt-Rampe verändert. Die BL, die mit der Programmierzelle assoziiert ist, wird bei Masse gehalten, bis das Vpass-Niveau den ersten Schritt erreicht (=VPASSL), nach dem es hoch zu einem Niveau von VBLC_Inhibit_low angehoben wird, um den SGD auszuschalten. Dies lässt den Kanal floaten. Hier ist der Wert von VBLC_Inhibit_low dazwischenliegend gegenüber Masse und VBLC_inhibit, wobei er hoch genug ausgewählt wird, um das entsprechende Auswahl-Gate auszuschalten, aber etwas niedriger als VBLC_low, um die Anzahl von Niveaus zu vereinfachen, die von den Erfassungsverstärkern versorgt werden. Danach läuft Vpass hoch auf das endgültige Niveau ()VPASS), was den Vch um einen Betrag proportional zu (VPASS-VPASSL) anhebt, wie in 16 dargestellt (wobei r1 und r2 di entsprechenden Kopplungsverhältnisse sind). Durch das Steuern des VPASSL-Niveaus kann der Speicher den Vch der Programmierspeicherzellen steuern. Spezifisch wird ein niedrigerer VPASSL in einem höheren Vch für die Programmierspeicherzellen resultieren. Dieses Konzept kann auf Multi-Zustände durch Aufweisen einer Multi-Schritt-VPASS_Rampe erweitert werden. (In diesem Beispiel sind typische Werte: VBLC_inhibit~2,2V, VBLC_Inhibit_low ~ 1,5 V, VSG~4V, VSGD~2,5V, VPGM~20V, VPASSL-7V, VPASS~10V, r1-09, r2~0,02.)
  • 16 betrachtet das Multi-Zustands-Programmieren unter Verwendung des gesteuerten schwachen Boostens in einer Vier-Bit-Pro-Zelle-Ausführungsform. 16 ist ähnlich zu 15, jetzt fahren die Wortleitungen zwischen Zeitpunkten t_S0 und t_S15 (die an der Oberseite angegeben werden) hoch von Masse auf VPASS durch eine Serie von Schritten, einer für jeden Target-Zustand, anstatt dem einzelnen dazwischenliegenden Zustand (VPASSL) aus 15. Wie durch die Wellenformen in der Mittel von 16 dargestellt, wird jede ausgewählte Bitleitung dann von Masse auf das Niveau angehoben, das das Auswahl-Gate ausschaltet (VBLC_inhibit_Low) bei einem Target-Zustands-abhängigen Niveau der Wortleitungsrampe: Zum Beispiel werden für den Target-Zustand S3 die Bitleitungen bei dem entsprechenden Schritt VPASS_S3 zwischen Zeitpunkt t_S2 und s_S3 angehoben. Abhängig von der Ausführungsform sind eine Anzahl von Variationen möglich. Zum Beispiel ist 16 eine „volle“ Ausführungsform darin, dass die Bitleitungen für jeden Target-Zustand während der Wortleitungsrampe angehoben werden und darin, dass jeder Zustand seinen eigenen Schritt aufweist: allgemeiner kann eine kleinere Anzahl von Schritten verwendet werden, wobei mehrere Target-Zustände sich einen Schritt teilen; nicht sämtliche Target-Zustände nutzen das schwache Boosten oder beides. Auch, obwohl die beispielhaften Ausführungsformen eine schrittweise Rampe von Masse zu VPASS verwenden, können andere Wellenformen wie z.B. eine konstante Rampe, verwendet werden, obwohl diese das Timing für das Anheben der Bitleitungen exakter machen können.
  • 17 zeigt, wie die Kanalspannungen der verschiedenen Target-Zustands-Zellen sich mit der Zeit für die Anordnung aus 16 ändern. Zeiten auf der x-Achse entsprechen den Zeiten entlang der Oberseite aus 16. Das endgültige Kanalpotential für sämtliche gegebene Zustände kommt von VBLC (pre_charge)+Boosting. Der Boosting-Betrag ist proportional zu dem Vpass-Hub nachdem das Auswahl-Gate sich für den jeweiligen Kanal abschaltet, wobei das nachfolgende Boosting bereitgestellt wird, wenn die Wortleitungsspannungen nachfolgend damit fortfahren, zu VPASS hochzufahren. In der beispielhaften Ausführungsform fahren alle Wortleitungen des Blockes nach oben. In anderen Ausführungsformen könnten weniger als sämtliche der Wortleitungen hochfahren, aber zumindest eine der Wortleitungen angrenzend zu der ausgewählten Wortleitung fährt hoch, um den Kanal hochzuziehen. Durch Variieren der Rampe der VPASS-Wellenform kann die Kanalspannung für jeden Target-Zustand moduliert werden. Durch Verwenden dieses Zugangs kann eine gewünschte Potentialdifferenz von zum Beispiel ~0,4V von einem Zustand zu einem anderen erhalten werden. (In dem Beispiel aus 15 und 16 können typische Werte etwas wie folgt sein: VBLC_inhibit=2,2V, VBLC_inhibit_low=1,5V, VPASS_S1=2,2V, (VPASS_Sn+1 - VPASS_Sn) = 0,45V, VPASS=10V, VPGM=20V, r1=0,9, r2=0,02.)
  • 18 ist ein Flussdiagramm, das Aspekte der beispielhaften Ausführungsformen zum Vorspannen des Array vor dem Anwenden der Programmierpulses darstellt. Bezug nehmend zurück auf 10, Schritt 772 umfasste das selektive Boosten der Kanäle der Speicherzellen basierend auf ihrem jeweiligen Target-Zustand. Bei Schritt 801 stellt der Bitleitungs-Vorspann-Schaltkreis Bitleitungen, die ausgewählten Speicherzellen entsprechen, entlang der ersten Wortleitung auf Masse ein, oder allgemeiner das niedrige Versorgungsniveau, um das Programmieren zu ermöglichen; und Bitleitungen, die nichtausgewählten Speicherzellen entsprechen, entlang der ersten Wortleitung auf ein Programmiersperrniveau. Bei Schritt 803 wendet/wenden die Wortleitungstreiber oder der Vorspannschaltkreis nachfolgend eine ansteigende Wellenform auf die ausgewählte Wortleitung und eine oder mehrere zusätzliche Wortleitungen einschließlich einer Wortleitung angrenzend zu der ersten Wortleitung an. Die Wortleitungen steigen von Masse auf das VPASS-Niveau. Während die Bitleitungen ansteigen, heben/hebt bei Schritt 805 die Bitleitungstreiber oder der Vorspann-Schaltkreis die Bitleitungen, die den ausgewählten Speicherzellen entsprechen, von dem unteren Versorgungs-Niveau auf ein Niveau der ansteigenden Wellenform abhängig von dem Targetzustand der ausgewählten Speicherzelle an, wobei die Bitleitung auf eine Spannung angehoben wird, die ausreichend ist, um das entsprechende Auswahl-Gate auszuschalten.
  • Die Techniken, die oben beschrieben sind, können eine Anzahl von Variationen oder Alternativen aufweisen. Zum Beispiel, Bezug nehmend zurück auf 16, zeigt dies, dass sämtliche Bitleitungen, die zu den programmierten Zuständen gehören, zu einem Punkt zu VBLC_Inhibit_low gehen; jedoch ist es in anderen Fällen eine Option, wo einige oder sämtliche Zustände bei VBL_0V bleiben, um den Boosting-Betrag zu reduzieren. Zusätzlich, obwohl die Hauptdiskussion hier in dem Kontext einer Vier-Bit-pro-Zelle-Konfiguration ist, gelten die Techniken bereitwillig für andere Multi-Zustands-Formate wie z.B. 2 oder 3 Bits pro Zelle, wobei die Anzahl von Vpass-Stufen entsprechend gesenkt wird.
  • Wie oben bemerkt, gibt es eine andere Variation, in der ein Untersatz der Targetzustände einen gemeinsamen Betrag schwachen Bosstings empfängt. 19 ist ähnlich zu 14, aber betrachtet eine 3-Bit-pro-Zelle-Ausführungsform in dem Fall, in dem nur die drei niedrigsten, nichtgelöschten Targetzustände um denselben Betrag schwach geboostet werden. Spezifischer empfangen die Targetzustände S1-S3 denselben Betrag an schwachem Boosting, während die Targetzustände S4-S7 kein Kanal-Boosting empfangen. Dies kann die Verwendung einer Programmiertreppenwellenform erlauben, die bei einem höheren Niveau beginnt, so dass die schnelleren Zellen, die sowohl zu den S1- als auch den S4 Targetzuständen programmiert werden, beginnen können zu verifizieren nach den ersten Pulsen. Unter einem typischen Programmieralgorithmus ohne das schwache Boosting würden die S4-Zustände nicht anfangen zu verifizieren, bis, sagen wir, um den 7ten Puls und die unteren der S7-Zustände könnten um die 20 Pulse benötigen.
  • 20 präsentiert eine alternative Ausführungsform, bei der nichtausgewählte Wortleitungen eine Standard-Vorspann-Wellenform verwenden, aber bei der die ausgewählte Wortleitung eine modifizierte Programmierwellenform verwendet. Das Beispiel aus 20 verwendet 4 Bit-pro-Ausführungsform, wobei ein unterer Satz von Zuständen (S1-S8) schwaches Boosting verwendet und die hohen Zustände (S9-S15) es nicht tun. Wie in 20 gezeigt, werden die Bitleitungen, die gesperrten Zellen entsprechen (BL inhibit), die Bitleitungen von höheren Target-Zuständen (BL (S9 bis S15)) und die Drain-Seiten-Auswahl-Gates (SGD_SEL) alle mit normalen Wellenformen vorgespannt. Obwohl nicht gezeigt, werden nichtausgewählte Wortleitungen und ein anderes Auswahl-Gate auch gemäß normalen Wellenformen vorgespannt. Die Wellenform zu der ausgewählten Wortleitung (WLn) und die Bitleitung, die den unteren Targetzuständen entspricht (BL (S1 bis S8)), werden modifiziert, um schwaches Boosting für die unteren Target-Zustände einzuführen.
  • In einer typischen Programmieroperation würde WLn zuerst zu VPASS zusammen mit anderen Wortleitungen gehen, nach dem VPGM angewandt wird. In 20 geht WLn anstelle dessen zu einem dazwischenliegenden Niveau VPGM_LOW und dann weiter zu VPGM. Während WLn bei diesem dazwischenliegenden Niveau von VPGM_LOW ist, wird schwaches Boosting auf die unteren Targetzustände durch Anheben der BL- (S1 bis S8) Wellenform von dem Programmieraktivierniveau auf ein Niveau, das ausreichend ist, um das entsprechende Drain-Seiten-Auswahl-Gate angewandt, was den Kanal floaten lässt. In diesem Beispiel wird VBLC_Inhibit verwendet, aber wie oben bezüglich 15 und 16 diskutiert, kann ein niedrigerer Wert wie z.B. VBLC_Inhibit_low verwendet werden. Der Unterschied zwischen VPGM und VPGM_LOW, der für das Multi-Zustands-Programmieren verwendet wird, wird DVPGM_MSP bezeichnet, wobei der Betrag dieses Spannungshubs ausgewählt wird, um den gewünschten Betrag von schwachem Boosting gegenüber der Kanalspannung Vch für die S1-S8-Target-Zustände bereitzustellen, um ihr Programmieren zu verlangsamen.
  • In 20 entspricht P_MSP1 der Zeit, um WLn auf das ursprüngliche VPGM_LOW-Niveau anzuheben. P_MSP2 ist die Zeit, um BL (S1 bis S8) von 0V auf VBLC_Inhibit anzuheben, nachdem WLn zu dem vollen VPGM-Niveau gebracht wird. Wenn eine größere Anzahl von unterschiedenen Niveaus des Boostings für verschiedene Target-Zustände gewollt wird, können zusätzliche dazwischenliegende Schritte in die WLn-Wellenform eingeführt werden, wobei die Bitleitungen bei einem Schritt, der dem gewünschten Targetzustand entspricht, angehoben werden.
  • 21 beschreibt einen anderen Satz von Ausführungsformen, wieder für das Beispiel von 4-Bits-pro-Zelle und wobei Targetzustände S1-S8 schwaches Boosting empfangen und die S9-S15-Targetzstände es nicht tun. Anstatt das Niveau der Wortleitungen in einem Satz von Schritten wie in 15, 16 und 20 anzuheben, wobei die Bitleitungen, die für schwaches Boosting verwendet werden, bei einem Schritt basierend auf ihrem Targetzustand angehoben werden, werden die Wortleitungen anstelle dessen zu dem VPASS-Niveau ohne die Schritte angehoben. In diesem Beispiel empfangen die Wortleitungen für sowohl die gesperrten als auch die programmierenden Zellen dasselbe VPASS-Niveau, wobei die Wortleitungen von Masse zu VPASS angehoben werden. Für Zellen, die gesperrt werden sollen, werden die Bitleitungen bei VBLC_inhibit eingestellt vor dem Anheben der Wortleitungen. Für Zellen, die ohne schwaches Boosting programmiert werden, bleiben die Bitleitungen bei dem Programmier-aktivier-Niveau von 0V. Für die Zellen die mitschwachem Boosting programmiert werden sollen, werden die Bitleitungen auf VBLC_Inhibit_low angehoben, aber mit einer Verzögerung relativ zu dem Start der VPASS-Anhebung auf den Wortleitungen. Der resultierende Betrag des Kanal-Boostings für die drei Fälle ist in den mittleren drei Spuren von 21 gezeigt. Da es eine Verzögerung beim Anheben der Bitleitung auf VBLC_Inhibit_low gibt, damit die Zellen schwaches Boosting empfangen, ist das Kanalpotential (Vch: Programmzellen (S1-S8)) kleiner als das reguläre Vboost der gesperrten Zellen. Durch das Steuern des Verzögerungs-Timings, kann das Kanalpotential variiert werden. Diese Anordnung kann auf verschiedene Niveaus von schwachem Boosting durch Verwenden eines anderen Verzögerungsbetrages erweitert werden, ähnlich dazu, wie in 16 gezeigt, aber mit einer nicht-schrittweise ansteigenden Wellenform für VPASS.
  • Da dieses Verfahren auf Boosting beruht, kann der Betrag des Verlangsamens des Programmierbetrages eine Funktion der Wortleitung sein; das heißt, es kann eine Funktion des Ortes der Wortleitung innerhalb der NAND-Ketten sein. Daher kann es nützlich sein, Wortleitungs-abhängige Werte für die Vpass-Treppen-Fall-Niveaus aufzunehmen. Auch kann der Boosting-Betrag manchmal eine Funktion des Vt der Zelle sein. In dem Fall kann es nützlich sein, Programmier-Schleifen-Zählungsabhängige Vpass-Treppen-Fall-Vorspann-Niveaus aufzunehmen. Aus demselben Grund kann das Delta zwischen jedem Treppen-Fall-Niveau gegebenenfalls nicht das Gleiche über sämtliche der Targetzustände sein.
  • Die Sorte von Boosting-Techniken, die hier präsentiert werden, kann auch erweitert werden, um Programmiervariationen wie „quick pass write“ oder „natural Vt compaction“ zu enthalten. In der quick-pass-write-Technik werden Zellen, die programmiert werden, sowohl bei einem niedrigeren Niveau als auch bei dem normalen Verifikations-Niveau für ihren Targetzustand verifiziert und wenn eine Zelle bei einem niedrigeren Niveau verifiziert, wird ihr Programmieren verlangsamt, wie z.B. durch partielles Sperren der Zelle. In der Sorte von VPASS-Anhebe-Anordnung, die oben präsentiert ist, kann dies durch Anheben der entsprechenden Bitleitung bei einem früheren Schritt bewirkt werden.
  • Bezüglich der natürlichen Schwellwert-Verdichtung kann das Kanal-Boosting-Konzept für Mehr-Zustands-Programmierung erweitert werden, um natural Vt compaction (NVC) zu umfassen, um die Anzahl von VPGM-Pulsen und Verifikationen zu reduzieren. Das natürliche Vt-compaction-Konzept kann bezüglich der 22A-C, 23A und 23B dargestellt werden.
  • Wenn Zellen zu einem Zustand N programmiert werden, werden einige Zellen schneller programmieren als andere, wie in 22A dargestellt, was die gewünschte Verteilung bei State_N und die breitere Verteilung der natürlichen Vt-Verteilung bei einem dazwischenliegenden Punkt in der Programmieroperation zeigt. 22A zeigt die Situation direkt bevor der obere Schwanz der natürlichen Schwellwertverteilung einen Triggerpunkt (wie z.B. ein unteres Verifikationsniveau, sagen wir, für den Zustand N-2) passiert. Bis zu diesem Punkt sind sämtliche Zellen, die zu dem Zustand N gehen, mit demselben Kanal-Niveau Vch programmiert worden, das auf sämtliche Zustand-N-Zellen angewandt wird. Sobald die schnellsten wenigen Zellen den TriggerPunkt passieren wird ein zusätzlicher Satz von Verifikationen durchgeführt (wie z.B. N-3, N-5 und N-7-Niveaus), um die natürliche Vt-Verteilung in 4 (für dieses Beispiel) Stücke zu unterteilen um eine Natural Vt Compaction durchzuführen.
  • 22B ist die Situation direkt nachdem der Erfassungs-Trigger passiert. Vch wird bei langsameren Zellen gesenkt, um ihr Programmieren schneller zu machen. Der Senkbetrag (=ΔNV) ist eine Funktion der Zellposition innerhalb der natürlichen Vt-Verteilung. 22C repräsentiert den Verdichtungseffekt während nachfolgender Pulse aufgrund des Differenzbetrages des Kanal-Boostings. Der untere Schwanz des natürlichen Vt bewegt sich schneller (aufgrund des niedrigeren Vch), was über ein paar weniger Pulse die natürliche Vt-Verteilung verdichtet. Diese Vch-Vorspannungen können dieselben bleiben, bis das Programm beendet ist.
  • 23A und 23B sind eine schematische Repräsentation des natürlichen Vt-Verdichtungs-Verfahrens unter Verwendung von Vch-Modulation abhängig von einer Zellposition in der natürlichen Vt-Verteilung für jeden gegebenen Zustand. In diesem Beispiel wird die natürliche Vt-Verteilung in 4 Stücke unterteilt und der Vch wird auf den langsameren Zellen reduziert (proportional zu dem Betrag, um den die Zelle langsamer ist), was das Programmieren jener Zellen schneller machen wird und daher die natürliche Vt-Verteilung komprimieren wird. Hier wird State_N als ein Beispiel gezeigt, jedoch in dem Fall von Mehr-Zustands-Programmierung kann dies parallel für mehrere oder sämtliche Zustände gleichzeitig passieren. Dies kann zum Beispiel durch Einführen von Unter-Schritten für verschiedene Verdichtungs-Bereiche eines gegebenen Zustands, Anheben der Bitleitung auf VBLC_Inhibit_low für die langsameren Zellen bei einem VPASS-Schritt bei einem späteren Zustand oder einer Kombination dieser getan werden.
  • Wie oben beschrieben, erlauben die Mehr-Zustands-Programmiertechniken mehreren verschiedenen Targetzuständen, gleichzeitig programmiert zu werden durch Modulieren der Programmiergeschwindigkeit von jedem Targetzustand unter Verwendung eines gesteuerten Betrages von Zustands-abhängigem schwachem Boosting in ihren jeweiligen Kanälen. Das Kanal-Boosting wird gesteuert durch Verwenden einer Multi-Stufen-WL-Rampe (VPASS-Rampe) in Verbindung mit dem Anheben der Spannung auf den Bitleitungen zu einer Zeit basierend auf dem Targetzustand.
  • Eine Ausführungsform weist ein Gerät auf, wobei das Gerät eine oder mehrere NAND-Ketten mit Speicherzellen aufweist, die entlang von Wortleitungen verbunden sind und in denen die Speicherzellen von jeder NAND-Kette durch ein entsprechendes Auswahl-Gate mit einer entsprechenden Bitleitung verbunden sind. Ein Steuerschaltkreis ist mit den Wortleitungen und Bitleitungen verbunden und ist konfiguriert, gleichzeitig eine Mehrzahl von Speicherzellen, die mit einer ersten Wortleitung verbunden sind, von einem ursprünglichen Zustand zu einem entsprechenden von mehreren Targetzuständen zu programmieren. Ein Bitleitungs-Vorspann-Schaltkreis ist konfiguriert, Bitleitungen, die nichtausgewählten Speicherzellen entsprechen, zusammen mit der ersten Wortleitung auf ein Programmiersperrniveau vorzuspannen und Bitleitungen, die ausgewählten Speicherzellen entsprechen, zusammen mit der ersten Wortleitung auf ein niedriges Versorgungsniveau vorzuspannen. Ein Wortleitungs-Vorspann-Schaltkreis ist konfiguriert, eine Spannung auf einem Satz von einer oder mehreren Wortleitungen einschließlich der ersten Wortleitung von einem niedrigen Versorgungsniveau zu einem ersten Spannungsniveau vorzuspannen. Während der Wortleitungs-Vorspann-Schaltkreis die Spannung auf dem Satz von einer oder mehreren Wortleitungen von dem unteren Versorgungsniveau zu dem ersten Spannungsniveau anhebt, ist der Bitleitungs-Vorspann-Schaltkreis konfiguriert, die Spannung auf Bitleitungen, die ausgewählten Speicherzellen entsprechen, von dem unteren Versorgungsniveau zu einem zweiten Spannungsniveau basierend auf einem Niveau der steigenden Spannung auf dem Satz von einer oder mehr Wortleitungen, das von dem Targetzustand der entsprechenden ausgewähten Speicherzelle abhängt, anzuheben, wobei das zweite Spannungsniveau eine Größe aufweist, die ausreichend ist, um das entsprechende Auswahl-Gate auszuschalten, durch das die ausgewählten Speicherzellen mit den entsprechenden Bitleitungen verbunden sind. Ein Programmierschaltkreis ist konfiguriert, um nachfolgend einen Programmierpuls zu der ersten Wortleitung zu senden.
  • In einer beispielhaften Ausführungsform werden ausgewählte Speicherzellen entlang einer ersten Wortleitung eines nichtflüchtigen Speicher-Arrays von einem ursprünglichen Zustand zu einem entsprechenden von mehreren Target-Zuständen programmiert, wobei der nichtflüchtige Speicher-Array aus einer Mehrzahl von NAND-Ketten gebildet ist, wobei die Speicherzellen von jeder NAND-Kette durch ein Auswahl-Gate mit einer entsprechenden Bitleitung verbunden sind. Das Programmieren umfasst das Anwenden einer Sequenz von einem oder mehreren Programmierpulsen auf die erste Wortleitung des vorgespannten Speicher-Arrays und vor jedem der Programmierpulse das Vorspannen des Speicher-Arrays. Das Vorspannen des Speicher-Arrays umfasst: Einstellen von Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein unteres Versorgungsniveau und Einstellen von Bitleitungen, die nichtausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein Programmier-Sperr-Niveau; danach Anwenden auf einen Satz von einer oder mehreren Wortleitungen einschließlich der ersten Wortleitung eine Wellenform, die von dem unteren Versorgungsniveau zu einem ersten Spannungsniveau ansteigt; und für jede Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, Anheben der Bitleitung von dem unteren Versorgungsniveau zu einem zweiten Spannungsniveau an einem Niveau der Wellenform basierend auf dem Targetzustand der ausgewählten Speicherzelle, wobei das zweite Spannungsniveau ausreichend ist, um das entsprechende Auswahl-Gate auszuschalten.
  • Andere beispielhafte Ausführungsformen präsentieren ein Gerät von einem oder mehreren NAND-Ketten, in denen Speicherzellen entlang von Wortleitungen verbunden sind, und in denen die Speicherzellen von jeder NAND-Kette durch ein Auswahl-Gate mit einer entsprechenden Bitleitung verbunden sind. Es sind Mittel mit den Wortleitungen und Bitleitungen verbunden, um gleichzeitig eine Mehrzahl von Speicherzellen entlang einer ersten Wortleitung von einem ursprünglichen Zustand zu einem von mehreren Targetzuständen zu programmieren, in denen das Programmieren das Vorspannen der NAND-Ketten und das nachfolgende Anwenden eines Programmierpulses auf die erste Wortleitung der vorgespannten NAND-Ketten umfasst. Das Vorspannen umfasst das Einstellen von Bitleitungen, die nichtausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein Programmier-Sperr-Niveau und das Einstellen von Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein unteres Versorgungsniveau. Das Vorspannen umfasst auch das nachfolgende Anwenden auf einen Satz von einer oder mehreren Wortleitungen einschließlich der ersten Wortleitung einer Spannung, die von einem unteren Versorgungsniveau zu einem ersten Spannungsniveau ansteigt. Für Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, umfasst das Vorspannen ferner das Anheben der Bitleitung von dem unteren Versorgungsniveau auf ein Spannungsniveau mit einer Größe, die ausreichend ist, um das entsprechende Auswahl-Gate bei einem Niveau der Spannung, die auf den Satz von einer oder mehreren Wortleitungen angewandt wird, die auf dem Targetzustand der ausgewählten Speicherzelle basiert, auszuschalten.
  • In verschiedenen Ausführungsformen kann ein Mittel zum gleichzeitigen Programmieren einer Mehrzahl von Speicherzellen die Lese-/Schreib-Schaltkreise 128, Erfassungsblöcke 129 und andere Elemente aufweisen, die verbunden sind, um die Wortleitungen, Bitleitungen und andere Array-Elemente während Programmier- und Verifikationsoperationen vorzuspannen, einschließlich Treiberschaltkreisen, Ladungspumpen, Spannungsregulatoren oder eine andere Schaltung. Andere Ausführungsformen können ähnliche oder äquivalente Mittel zum gleichzeitigen Programmieren einer Mehrzahl von Speicherzellen aufweisen.
  • Für Zwecke dieses Dokuments sollte bemerkt werden, dass die Dimensionen der verschiedenen Merkmale, die in den Figuren dargestellt sind, gegebenenfalls nicht notwendig maßstabsgetreu gezeichnet sind.
  • Für Zwecke dieses Dokuments kann eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“ oder „eine andere Ausführungsform“ verwendet werden, um verschiedene Ausführungsformen derselben Ausführungsform zu beschreiben.
  • Für Zwecke dieses Dokuments kann eine Verbindung eine direkte Verbindung oder eine indirekte Verbindung (z.B. über einen oder mehrere andere Teile) sein. In einigen Fällen, wenn ein Element als verbunden oder gekoppelt an ein anderes Element bezeichnet wird, kann das Element direkt mit dem anderen Element verbunden oder indirekt mit dem anderen Element über dazwischenliegende Elemente verbunden sein. Wenn ein Element als direkt mit einem anderen Element verbunden bezeichnet wird, dann gibt es keine dazwischenliegenden Elemente zwischen dem Element und dem anderen Element. Zwei Vorrichtungen sind „in Kommunikation“, wenn sie direkt oder indirekt verbunden sind, so dass sie elektronische Signale zwischen ihnen kommunizieren können.
  • Für Zwecke dieses Dokuments kann der Ausdruck „basierend auf“ als „basierend zumindest teilweise auf“ gelesen werden.
  • Für Zwecke dieses Dokuments impliziert die Verwendung von numerischen Ausdrücken wie z.B. ein „erstes“ Objekt, ein „zweites“ Objekt und ein „drittes Objekt“ gegebenenfalls keine Reihenfolge der Objekte, sondern kann anstelle dessen für Identifikationszwecke verwendet werden, um verschiedene Objekte zu identifizieren.
  • Für Zwecke dieses Dokuments kann sich der Ausdruck „Satz“ auf einen „Satz“ von einem oder mehreren Objekten beziehen.
  • Die vorhergehende detaillierte Beschreibung ist für Zwecke der Darstellung und Beschreibung präsentiert worden. Sie ist nicht beabsichtigt, erschöpfend zu sein, oder auf die präzise Form, die offenbart ist, einzuschränken. Viele Modifikationen und Variationen sind möglich in dem Licht der obigen Lehre. Die beschriebenen Ausführungsformen wurden ausgewählt, um die Prinzipien der vorgeschlagenen Technologie und ihrer praktischen Anwendung am besten zu erklären, um dadurch Fachleuten zu ermöglichen, sie am besten in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen zu verwenden, wie sie für die bestimmte betrachtete Verwendung geeignet sind. Es ist beabsichtigt, dass der Umfang durch die Ansprüche, die hierzu angefügt sind, definiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 6222762 [0004]
    • US 2004/0255090 [0004]

Claims (10)

  1. Gerät, das folgendes aufweist: eine oder mehrere NAND-Ketten (482, 484, 486, 488) mit Speicherzellen, die entlang von Wortleitungen (WLL0-WLL31) verbunden sind und in denen die Speicherzellen von jeder NAND-Kette durch ein entsprechendes Auswahl-Gate mit einer entsprechenden Bitleitung verbunden sind; und einen Steuerschaltkreis (100, 122), der mit den Wortleitungen und Bitleitungen verbunden ist, wobei der Steuerschaltkreis konfiguriert ist, um gleichzeitig eine Mehrzahl von Speicherzellen, die mit einer ersten Wortleitung verbunden sind, von einem ursprünglichen Zustand zu einem entsprechenden von einer Mehrzahl von Target-Zuständen zu programmieren; einen Bitleitungs-Vorspann-Schaltkreis (128), der konfiguriert ist, um Bitleitungen, die nichtausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, zu einem Programmier-Sperr-Niveau vorzuspannen, und Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, zu einem niedrigen Versorgungsniveau vorzuspannen; einen Wortleitungs-Vorspann-Schaltkreis (110, 124), der konfiguriert ist, um eine Spannung auf einem Satz von einer oder mehreren Wortleitungen einschließlich der ersten Wortleitung von dem niedrigen Versorgungsniveau zu einem ersten Spannungsniveau anzuheben; wobei, während der Wortleitungs-Vorspann-Schaltkreis die Spannung auf dem Satz von einer oder mehreren Wortleitungen von dem niedrigen Versorgungsniveau zu dem ersten Spannungsniveau anhebt, der Bitleitungs-Vorspann-Schaltkreis konfiguriert ist, um die Spannung auf den Bitleitungen, die den ausgewählten Speicherzellen entsprechen, von dem niedrigen Versorgungsniveau zu einem zweiten Spannungsniveau basierend auf einem Niveau der steigenden Spannung auf dem Satz von einer oder mehreren Wortleitungen abhängig von dem Target-Zustand der entsprechenden ausgewählten Speicherzelle anzuheben, wobei das zweite Spannungsniveau eine Größe aufweist, die ausreichend ist, um das entsprechende Auswahl-Gate auszuschalten, durch das die ausgewählten Speicherzellen mit den entsprechenden Bitleitungen verbunden sind; und einen Programmierschaltkreis, der konfiguriert ist, um danach bzw. anschließend einen Programmierpuls an die erste Wortleitung zu senden.
  2. Gerät nach Anspruch 1, wobei der Satz von einer oder mehreren Wortleitungen die erste Wortleitung und eine Wortleitung angrenzend zu den ersten Wortleitungen aufweist.
  3. Gerät nach einem der Ansprüche 1 und 2, wobei das zweite Spannungsniveau zwischen dem niedrigen Versorgungsniveau und dem Programmier-Sperr-Niveau liegt.
  4. Gerät nach einem der Ansprüche 1-3, wobei der Wortleitungs-Vorspann-Schaltkreis die Spannung auf der ersten Wortleitung und einer oder mehreren zusätzlichen Wortleitungen von dem niedrigen Versorgungsniveau auf das erste Spannungsniveau in einer Treppen-Wellenform mit einer Mehrzahl von Schritten, die zwischen dem unteren Versorgungsniveau und dem ersten Spannungsniveau liegen, anhebt; und wobei der Bitleitungs-Vorspann-Schaltkreis die Bitleitung, die den ausgewählten Speicherzellen entspricht, von dem niedrigen Versorgungsniveau auf das zweite Spannungsniveau bei einem der Schritte abhängig von dem Targetzustand der ausgewählten Speicherzelle anhebt.
  5. Das Gerät nach Anspruch 4, wobei der Programmierpuls einer von einer Serie von Programmierpulsen ist und das Programmieren ferner eine Programmierverifikation vor dem Vorspannen der Bitleitungen umfasst und wobei die nichtausgewählten Speicherzellen entlang der ersten Wortleitungen eine oder mehrere Speicherzellen einschließen, die verifiziert haben bzw. von denen verifiziert sind, zu einem entsprechenden Targetzustand programmiert worden zu sein.
  6. Gerät nach Anspruch 5, wobei der Schritt, bei dem die Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, von dem niedrigen Versorgungsniveau zu dem zweiten Spannungsniveau angehoben werden, ferner abhängig von einem Ergebnis der Verifikation ist.
  7. Gerät nach einem der Ansprüche 4-6, wobei die Anzahl von Schritten dieselbe wie die Anzahl von Target-Zuständen ist.
  8. Gerät nach einem der Ansprüche 4-6, wobei die Treppen-Wellenform abhängig von dem Ort der ersten Wortleitung innerhalb der NAND-Ketten ist.
  9. Gerät nach einem der Ansprüche 1-8, wobei NAND-Ketten ein Teil eines Speicher-Arrays einer monolithischen dreidimensionalen Halbleiter-SpeicherVorrichtung sind, wobei die Speicherzellen in mehreren physischen Niveaus über bzw. oberhalb eines Siliziumsubstrats angeordnet sind und ein Ladungsspeichermedium aufweisen.
  10. Verfahren, das folgendes umfasst: Programmieren einer Mehrzahl von ausgewählten Speicherzellen entlang einer ersten Wortleitung eines nichtflüchtigen Speicher-Arrays von einem ursprünglichen Zustand zu einem entsprechenden einer Mehrzahl von Target-Zuständen, wobei der nichtflüchtige Speicher-Array aus einer Mehrzahl von NAND-Ketten gebildet ist, in denen die Speicherzellen entlang einer Mehrzahl von Wortleitungen verbunden sind, einschließlich der ersten Wortleitung und wobei die Speicherzellen jeder NAND-Kette durch ein Auswahl-Gate mit einer entsprechenden Bitleitung verbunden sind, wobei das Programmieren folgendes umfasst: Anwenden einer Sequenz von einem oder mehreren Programmierpulsen auf die erste Wortleitung des Speicher-Arrays; und vor jedem der Programmierpulse Vorspannen des Speicher-Arrays, wobei das Vorspannen des Speicher-Arrays folgendes umfasst: Einstellen von Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein niedriges Versorgungsniveau und Einstellen der Bitleitungen, die den nichtausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, auf ein Programmier-Sperr-Niveau; Nachfolgend Anwenden auf einen Satz von einer oder mehreren Wortleitungen einschließlich der ersten Wortleitung einer Wellenform, die von dem niedrigen Versorgungsniveau auf ein erstes Spannungsniveau ansteigt; und für jede Bitleitungen, die ausgewählten Speicherzellen entlang der ersten Wortleitung entsprechen, Anheben der Bitleitung von dem unteren Versorgungsniveau auf ein zweites Spannungsniveau bei einem Niveau der Wellenform basierend auf dem Targetzustand der ausgewählten Speicherzelle, wobei das zweite Spannungsniveau ausreichend ist, um das entsprechende Auswahl-Gate auszuschalten.
DE102018105685.0A 2017-05-18 2018-03-12 Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet Pending DE102018105685A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/599,243 2017-05-18
US15/599,243 US9842657B1 (en) 2017-05-18 2017-05-18 Multi-state program using controlled weak boosting for non-volatile memory

Publications (1)

Publication Number Publication Date
DE102018105685A1 true DE102018105685A1 (de) 2018-11-22

Family

ID=60516366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018105685.0A Pending DE102018105685A1 (de) 2017-05-18 2018-03-12 Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet

Country Status (3)

Country Link
US (1) US9842657B1 (de)
CN (1) CN108962317B (de)
DE (1) DE102018105685A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11087849B2 (en) 2018-05-08 2021-08-10 Sandisk Technologies Llc Non-volatile memory with bit line controlled multi-plane mixed sub-block programming
JP2020009509A (ja) 2018-07-03 2020-01-16 キオクシア株式会社 半導体記憶装置
US10546641B1 (en) * 2018-12-07 2020-01-28 Micron Technology, Inc. Memory devices with controlled wordline ramp rates, and associated systems and methods
JP7250133B2 (ja) * 2019-01-23 2023-03-31 長江存儲科技有限責任公司 メモリシステムをプログラミングするための方法。
US10839923B1 (en) * 2019-06-07 2020-11-17 Sandisk Technologies Llc Predictive boosting for 3D NAND
US11200952B2 (en) 2019-07-22 2021-12-14 Samsung Electronics Co., Ltd. Non-volatile memory device
KR20210011209A (ko) 2019-07-22 2021-02-01 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US11081184B2 (en) * 2019-10-30 2021-08-03 Sandisk Technologies Llc Method of concurrent multi-state programming of non-volatile memory with bit line voltage step up
KR20210069257A (ko) * 2019-12-03 2021-06-11 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
US11004525B1 (en) * 2020-02-20 2021-05-11 Sandisk Technologies Llc Modulation of programming voltage during cycling
CN112349319B (zh) * 2020-11-09 2023-12-29 无锡舜铭存储科技有限公司 存储器读写控制电路及其操作方法
US20220231050A1 (en) * 2021-01-15 2022-07-21 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device and method of forming the same
US11770934B2 (en) * 2021-01-15 2023-09-26 Taiwan Semiconductor Manufacturing Company, Ltd. Semiconductor structure and method of fabricating the same

Citations (2)

* 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
US20040255090A1 (en) 2003-06-13 2004-12-16 Guterman Daniel C. Tracking cells for a memory system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000251485A (ja) * 1999-02-26 2000-09-14 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
US7020026B2 (en) 2004-05-05 2006-03-28 Sandisk Corporation Bitline governed approach for program control of non-volatile memory
US7023733B2 (en) 2004-05-05 2006-04-04 Sandisk Corporation Boosting to control programming of non-volatile memory
US7286408B1 (en) 2006-05-05 2007-10-23 Sandisk Corporation Boosting methods for NAND flash memory
US20070297247A1 (en) 2006-06-26 2007-12-27 Gerrit Jan Hemink Method for programming non-volatile memory using variable amplitude programming pulses
US7508715B2 (en) * 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7558117B2 (en) * 2007-08-30 2009-07-07 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US8233324B2 (en) * 2010-03-25 2012-07-31 Sandisk Il Ltd. Simultaneous multi-state read or verify in non-volatile storage
US8638606B2 (en) * 2011-09-16 2014-01-28 Sandisk Technologies Inc. Substrate bias during program of non-volatile storage
US8605507B2 (en) * 2012-01-12 2013-12-10 Macronix International Co., Ltd. Flash programming technology for improved margin and inhibiting disturbance
US9087601B2 (en) * 2012-12-06 2015-07-21 Sandisk Technologies Inc. Select gate bias during program of non-volatile storage
US9218874B1 (en) * 2014-08-11 2015-12-22 Sandisk Technologies Inc. Multi-pulse programming cycle of non-volatile memory for enhanced de-trapping
US9305648B2 (en) * 2014-08-20 2016-04-05 SanDisk Technologies, Inc. Techniques for programming of select gates in NAND memory
US9947682B2 (en) 2014-11-18 2018-04-17 Sandisk Technologies Llc Three dimensional non-volatile memory with separate source lines
US9530506B2 (en) * 2014-11-21 2016-12-27 Sandisk Technologies Llc NAND boosting using dynamic ramping of word line voltages
US9236128B1 (en) * 2015-02-02 2016-01-12 Sandisk Technologies Inc. Voltage kick to non-selected word line during programming
US20160314844A1 (en) 2015-04-22 2016-10-27 Sandisk Technologies Inc. Natural threshold voltage compaction with dual pulse program for non-volatile memory
JP6122478B1 (ja) * 2015-10-22 2017-04-26 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体記憶装置

Patent Citations (2)

* 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
US20040255090A1 (en) 2003-06-13 2004-12-16 Guterman Daniel C. Tracking cells for a memory system

Also Published As

Publication number Publication date
US9842657B1 (en) 2017-12-12
CN108962317A (zh) 2018-12-07
CN108962317B (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE112017004208B4 (de) 3d-nand mit teilblocklöschen
DE112019000164T5 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE102018114250B4 (de) Reduzieren eines heißen Elektroneninjektionstypen von Lesestörungen in einer 3D-Speichervorrichtung während Signal-schaltenden Störsignalen
DE602005003924T2 (de) Programmierung nicht-flüchtiger speicher
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE112016003636T5 (de) Unter-Block-Modus für nichtflüchtigen Speicher
DE102017104265A1 (de) Dummy-Spannung zum Verringern des Erst-Lese-Effekts in einem Speicher
DE112015003761T5 (de) Teilblocklöschung zur datenaktualisierung
CN106067322A (zh) 利用两阶段编程的非易失性存储器
DE112015003834T5 (de) Abtasten mehrerer referenzpegel in nichtflüchtigen speicherelementen
DE112019000157T5 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE112018003426T5 (de) Reduzieren der lesestörung der art durch injektion heisser elektronen in 3d-speichervorrichtung mit verbundenen sourceendauswahlgates
DE102018123918A1 (de) Zustandsabhängige Abtastschaltungen und Vorladevorgänge für Speichervorrichtungen
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE102018105623A1 (de) Zustandsabhängige Abtastschaltungen und Abtastoperationen für Speichervorrichtungen
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE102020116188B4 (de) Verbesserung der sourceseitigen vorladung und verstärkung für das programmieren in umgekehrter reihenfolge
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE102021115501A1 (de) Leseaktualisierung zur verbesserung der leistung bei datenerhaltung für nichtflüchtigen speicher
DE112019000159T5 (de) Ramp-down-abtastung zwischen programmspannung und prüfspannung in einer speichervorrichtung
DE112016003568T5 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE