DE102021106910A1 - Schleifenabhängiges umschalten zwischen techniken zur programmverifizierung - Google Patents

Schleifenabhängiges umschalten zwischen techniken zur programmverifizierung Download PDF

Info

Publication number
DE102021106910A1
DE102021106910A1 DE102021106910.6A DE102021106910A DE102021106910A1 DE 102021106910 A1 DE102021106910 A1 DE 102021106910A1 DE 102021106910 A DE102021106910 A DE 102021106910A DE 102021106910 A1 DE102021106910 A1 DE 102021106910A1
Authority
DE
Germany
Prior art keywords
verification
memory cells
technique
memory
iteration
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
DE102021106910.6A
Other languages
English (en)
Inventor
Hiroki Yabe
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 DE102021106910A1 publication Critical patent/DE102021106910A1/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
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital 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 trapping in an insulator
    • 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/30Power supply 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • 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/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

Eine Speichervorrichtung zum Verifizieren, ob Speicherzellen programmiert worden sind. Die Speichervorrichtung kann so eingerichtet sein, dass sie eine Verifizierungstechnik ve5rwendet, die Teil eines Satzes von Verifizierungstechniken ist, um die Datenzustände eines Satzes von Speicherzellen einer ausgewählten Wortleitung zu verifizieren. Die eine oder mehrere Verifizierungstechniken können auf der Grundlage einer Iteration des durchzuführenden Verifizierungsvorgangs verwendet werden. Die Speichervorrichtung kann ferner so eingerichtet sein, dass sie unter Verwendung der Verifizierungstechnik eine nächste Iteration des Programmverifizierungsvorgangs durchführt, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert wurden. Unter Verwendung der Verifizierungstechnik und Durchführung der nächsten Iteration des Programmverifizierungsvorgangs sind so lange zu wiederholen, bis der Satz von Speicherzellen verifiziert ist.

Description

  • HINTERGRUND
  • Die vorliegende Technologie bezieht sich auf den Betrieb von Speichervorrichtungen.
  • Speichervorrichtungen werden üblicherweise als interne, halbleitende, integrierte Schaltungen in Rechnern oder anderen elektronischen Vorrichtungen bereitgestellt. Es gibt viele verschiedene Speichertypen, einschließlich Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), dynamischer Direktzugriffsspeicher (DRAM), synchroner dynamischer Direktzugriffsspeicher (SDRAM), ein elektrisch löschbarer programmierbarer Nurlesespeicher (EEPROM), ein Flash-Speicher und/oder dergleichen. In einer EEPROM- oder Flash-NAND-Array-Architektur können die Speicherzellen in einer Matrix aus Zeilen und Spalten angeordnet sein, so dass die Gates jeder Speicherzelle über Zeilen mit Wortleitungen gekoppelt sind. Die Speicherzellen können in Ketten zusammen angeordnet werden, so dass die Speicherzellen in einer gegebenen Kette in Reihe miteinander gekoppelt sind, von der Quelle zum Drain, zwischen einer gemeinsamen Sourceleitung und einer gemeinsamen Bitleitung.
  • KURZDARSTELLUNG
  • Ein Gesichtspunkt der vorliegenden Erfindung bezieht sich auf eine Speichervorrichtung zur Verifizierung, ob Speicherzellen programmiert worden sind. Die Speicherzellen können Teil eines Arrays von Speicherzellen eines nichtflüchtigen Speichers sein. Die Steuerung kann so eingerichtet werden, dass sie eine Verifizierungstechnik verwendet, die Teil eines Satzes von Verifizierungstechniken ist, um Datenzustände eines Satzes von Speicherzellen einer ausgewählten Wortleitung zu verifizieren. Die eine oder mehrere Verifizierungstechniken können auf der Grundlage einer Iteration des durchzuführenden Verifizierungsvorgangs verwendet werden. Die Speichervorrichtung kann ferner so eingerichtet sein, dass sie unter Verwendung der Verifizierungstechnik eine nächste Iteration des Programmverifizierungsvorgangs durchführt, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert wurden. Unter Verwendung der Verifizierungstechnik kann die nächste Iteration des Programmverifizierungsvorgangs wiederholt werden, bis der Satz von Speicherzellen verifiziert ist.
  • Ein anderer Gesichtspunkt der vorliegenden Erfindung bezieht sich auf ein Verfahren zur Verifizierung, ob eine oder mehrere Speicherzellen eines nichtflüchtigen Speichers programmiert wurden. Das Verfahren schließt die Verwendung von einer oder mehreren Verifizierungstechniken ein, die Teil eines Satzes von Verifizierungstechniken sind, um Datenzustände eines Satzes von Speicherzellen einer ausgewählten Wortleitung zu verifizieren. Die eine oder mehrere Verifizierungstechniken können für die Verwendung auf der Grundlage einer Iteration des auszuführenden Verifizierungsvorgangs ausgewählt werden. Das Verfahren schließt ferner ein, unter Verwendung der einen oder mehreren Verifizierungstechniken eine nächste Iteration des Programmverifizierungsvorgangs durchzuführen, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert sind, wobei die Verwendung der einen oder mehreren Verifizierungstechniken und die Durchführung der nächsten Iteration des Programmverifizierungsvorgangs zu wiederholen sind, bis der Satz von Speicherzellen verifiziert wurde.
  • Ein anderer Gesichtspunkt der vorliegenden Erfindung bezieht sich auf eine nichtflüchtige Speichervorrichtung, die eine Steuerschaltung zur Verifizierung, ob Speicherzellen programmiert wurden, umfasst. Die Speicherzellen können Teil eines Arrays von Speicherzellen eines nichtflüchtigen Speichers sein. Die Steuerung kann so konfiguriert sein, dass sie eine oder mehrere Verifizierungstechniken als Teil eines Programmverifizierungsvorgangs verwendet, der an einer oder mehreren Speicherzellen durchgeführt werden soll, die Teil eines Satzes von Speicherzellen einer ausgewählten Wortleitung sind. Die Verifizierungstechnik kann auf der Grundlage einer Iteration des durchzuführenden Verifizierungsvorgangs verwendet werden. Die Steuerung kann unter Verwendung der einen oder mehreren Verifizierungstechniken eine nächste Iteration des Programmverifizierungsvorgangs durchführen, um zu verifizieren, ob die eine oder mehreren Speicherzellen programmiert sind. Unter Verwendung der einen oder mehreren Verifizierungstechniken kann die nächste Iteration des Programmverifizierungsvorgangs wiederholt werden, bis der Satz von Speicherzellen verifiziert ist.
  • Figurenliste
  • Die beigefügten Zeichnungen, die in dieser Patentschrift enthalten sind und einen Teil derselben bilden, veranschaulichen verschiedene Aspekte der Erfindung und dienen zusammen mit der Beschreibung dazu, ihre Prinzipien zu erklären. Wo immer es zweckmäßig ist, werden in allen Zeichnungen dieselben Bezugszeichen verwendet, um gleiche oder ähnliche Elemente zu bezeichnen.
    • 1A veranschaulicht ein Blockdiagramm einer beispielhaften Speichervorrichtung.
    • 1B veranschaulicht ein Blockdiagramm einer beispielhaften Steuerschaltung, die eine Programmierschaltung, eine Zählschaltung und eine Bestimmungsschaltung umfasst.
    • 2 veranschaulicht eine schematische Ansicht von drei Speicherkettenarchitekturen nach den Prinzipien der vorliegenden Offenbarung.
    • 3 veranschaulicht Blöcke von Speicherzellen in einer beispielhaften zweidimensionalen Konfiguration des Speicherarrays von 1.
    • 4A veranschaulicht eine Querschnittsansicht von beispielhaften Floating-Gate-Speicherzellen in NAND-Ketten.
    • 4B veranschaulicht eine Querschnittsansicht der Struktur von 4A entlang der Linie 429.
    • 5A veranschaulicht eine Querschnittsansicht von beispielhaften ladungseinfangenden Speicherzellen in NAND-Ketten.
    • 5B veranschaulicht eine Querschnittsansicht der Struktur von 5A entlang der Linie 429.
    • 6A veranschaulicht ein beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1.
    • 6B veranschaulicht ein anderes beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1.
    • 7A veranschaulicht eine perspektivische Ansicht eines Satzes von Blöcken in einer beispielhaften dreidimensionalen Konfiguration des Speicherarrays von 1.
    • 7B veranschaulicht eine beispielhafte Querschnittsansicht eines Abschnitts von einem der Blöcke von 7A.
    • 7C veranschaulicht eine Darstellung des Speicherlochdurchmessers im Stapel von 7B.
    • 7D veranschaulicht eine Nahaufnahme der Region 622 des Stapels von 7B.
    • 8A veranschaulicht eine Draufsicht auf eine beispielhafte Wortleitungsschicht WLLO des Stapels von 6B.
    • 8B veranschaulicht eine Draufsicht auf eine beispielhafte obere dielektrische Schicht DL19 des Stapels von 67B.
    • 9A veranschaulicht ein Beispiel von NAND-Ketten in den Unterblöcken SBa-SBd von 8A.
    • 9B veranschaulicht eine andere beispielhafte Ansicht von NAND-Ketten in Unterblöcken.
    • 10 veranschaulicht die Vth-Verteilungen von Speicherzellen in einem Beispielprogrammiervorgang mit mindestens vier Datenzuständen.
    • 11A-11G veranschaulichen eine beispielhafte Speichervorrichtung zur Verifizierung, ob Speicherzellen programmiert wurden, indem selektiv zwischen verschiedenen Typen von Verifizierungstechniken umgeschaltet wird.
    • 12 ist ein Diagramm, das die Spannungen verschiedener Verifizierungstechniken veranschaulicht, die zur Verifizierung der Datenzustände von Speicherzellen verwendet werden.
    • 13 ist ein Flussdiagramm, das ein Verfahren zum selektiven Umschalten zwischen Verifizierungsverfahren veranschaulicht, um zu verifizieren, ob ein Satz von Speicherzellen programmiert worden ist, nach den Prinzipien der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Erörterung richtet sich auf verschiedene Ausführungsformen der Erfindung. Wenngleich eine oder mehrere dieser Ausführungsformen bevorzugt sein können, dürfen die offenbarten Ausführungsformen nicht als den Schutzumfang der Offenbarung, einschließlich der Ansprüche, einschränkend ausgelegt oder anderweitig verwendet werden. Außerdem wird der Fachmann erkennen, dass die folgende Beschreibung breite Anwendung hat, und die Erörterung einer beliebigen Ausführungsform soll nur beispielhaft für diese Ausführungsform sein und soll nicht darauf hindeuten, dass der Schutzumfang der Offenbarung, einschließlich der Ansprüche, auf diese Ausführungsform beschränkt ist.
  • Wie beschrieben, können in einer EEPROM- oder Flash-NAND-Array-Architektur die Speicherzellen in einer Matrix aus Zeilen und Spalten angeordnet sein, so dass die Gates jeder Speicherzelle über Zeilen mit Wortleitungen gekoppelt sind. Die Speicherzellen können in ein Array von Ketten zusammen angeordnet werden, so dass die Speicherzellen in einer gegebenen Kette in Reihe miteinander gekoppelt sind, von der Quelle zum Drain, zwischen einer gemeinsamen Sourceleitung und einer gemeinsamen Bitleitung.
  • Zum Programmieren von Speicherzellen, die in dem Array von Speicherketten eingeschlossen sind, kann ein Programmiervorgang durchgeführt werden, um eine Reihe von Programmierspannungen an die Speicherzellen anzulegen, nachdem die Speicherzellen in einem gelöschten Zustand bereitgestellt wurden. Jede Programmspannung wird in einer Programmschleife bereitgestellt, die auch als Programmverifizierungsiteration bezeichnet wird. Die Programmspannung kann zum Beispiel an eine Wortleitung gelegt werden, die mit Steuergates der Speicherzellen verbunden ist. In einem Ansatz wird eine inkrementelle Schrittimpulsprogrammierung durchgeführt, bei der die Programmspannung in jeder Programmschleife um eine Schrittgröße erhöht wird. Wenn ein Programmieren für eine Speicherzelle abgeschlossen ist, kann sie von einem weiteren Programmieren ausgeschlossen werden, während ein Programmieren für andere Speicherzellen in nachfolgenden Programmierschleifen fortgeführt wird.
  • Jede Speicherzelle kann einem Datenzustand gemäß Schreibdaten in einem Programmierbefehl zugeordnet sein. Eine Speicherzelle kann sich in einem gelöschten Datenzustand befinden (hierin als gelöschter Zustand bezeichnet) oder in einen programmierten Datenzustand programmiert werden (hierin als programmierter Zustand bezeichnet), der sich von dem gelöschten Zustand unterscheidet. Zum Beispiel gibt es in einer Speichervorrichtung mit zwei Bits pro Zelle vier Datenzustände einschließlich des gelöschten Zustands und drei programmierte Datenzustände, die als A-, B- und C-Datenzustände bezeichnet werden (siehe 9). In einer Speichervorrichtung mit drei Bits pro Zelle gibt es acht Datenzustände einschließlich des gelöschten Zustands und sieben programmierte Datenzustände, die als A-, B-, C-, D-, E-, F- und G-Datenzustände bezeichnet werden (siehe 10). In einer Speichervorrichtung mit vier Bits pro Zelle gibt es sechzehn Datenzustände einschließlich des gelöschten Zustands und fünfzehn programmierte Datenzustände, die als Er-, 1-, 2-, 3-, 4-, 5-, 6-, 7-, 8-, 9-, A-, B-, C-, D-, E- und F-Datenzustände bezeichnet werden (siehe 10).
  • Wenn ein Programmbefehl ausgegeben wird, werden die Schreibdaten in den zu den Speicherzellen gehörenden Haltespeichern gespeichert. Während der Programmierung können die Haltespeicher einer Speicherzelle ausgelesen werden, um den Datenzustand zu ermitteln, in den die Zelle programmiert werden soll. Jede Speicherzelle gilt als fertig programmiert, wenn ein Erfassungsvorgang feststellt, dass eine Schwellenspannung (Vth) durch (z. B. über) die zugehörige Verifizierungsspannung erfüllt ist. Ein Erfassungsvorgang kann bestimmen, ob eine Speicherzelle eine Spannung Vth über der zugeordneten Verifizierungsspannung aufweist, indem die zugehörige Verifizierungsspannung an das Steuer-Gate angelegt wird und ein Strom durch die Speicherzelle erfasst wird. Wenn der Strom relativ hoch ist, zeigt dies an, dass sich die Speicherzelle in einem leitfähigen Zustand befindet, sodass die Spannung Vth kleiner ist als die Spannung am Steuer-Gate. Wenn der Strom relativ niedrig ist, zeigt dies an, dass sich die Speicherzelle in einem nichtleitfähigen Zustand befindet, sodass die Spannung Vth über der Spannung am Steuer-Gate liegt.
  • Bei der Programmierung von Speicherzellen ist es wichtig, eine Programmverifizierung so durchzuführen, dass sie sowohl schnell als auch genau ist. Wie nachstehend beschrieben, sind viele Techniken oder Konfigurationen in der Lage, eine schnelle Programmierung oder eine genaue Programmierung zu erreichen, aber sie können nicht beides erreichen. Um Speicherzellen genau zu programmieren, muss eine Vth-Verteilung für jeden Datenzustand in ausreichenden Abständen erfolgen. Dadurch wird die Wahrscheinlichkeit verringert, dass sich eine höhere Spannung einer Vth-Verteilung mit einer Spannung einer anderen Vth-Verteilung überschneidet. Diese Überschneidung kann aufgrund von Störungen, wie beispielsweise Rauschen, Temperaturschwankungen der integrierten Schaltung und/oder dergleichen, auftreten. Darüber hinaus können Überschneidungen in den Vth-Verteilungen zu Laufzeitfehlern führen (z. B. könnte ein Bit mit einem Wert von Null fälschlicherweise als Wert von Eins gelesen werden). Daher ist es nützlich, enge Vth-Verteilungen zu haben, die weniger von Störungen beeinflusst werden und weniger wahrscheinlich Laufzeitfehler verursachen.
  • Die Steuerung der Vth-Verteilungsbreite kann jedoch schwierig sein, da die Speicherzellen mit unterschiedlichen Raten programmieren. Eine erste Speicherzelle, die schneller programmiert als eine zweite Speicherzelle, benötigt zum Beispiel weniger Programmierimpulse, um die Programmierung abzuschließen. Dies bewirkt, dass eine erste Vth-Verteilung für die erste Speicherzelle anders ist als eine zweite Vth-Verteilung für die zweite Speicherzelle. Dies kann dazu führen, dass die Vth-Verteilungen näher beieinander liegen, wodurch die Wahrscheinlichkeit steigt, dass die Speicherzellen von Störungen betroffen sind.
  • Eine Lösung ist die Implementierung eines mehrstufigen Verifizierungsvorgangs (MSV). Der MSV-Vorgang ist ein zweistufiger Vorgang, bei dem in jedem Schritt eine andere Verifizierungsspannung angelegt wird. Sobald eine Schwellenspannung für eine Speicherzelle eine erste Verifizierungsspannung erreicht, wird eine Steuerspannung geändert, um die schneller programmierten Speicherzellen zu verlangsamen. Ein MSV-Vorgang kann jedoch aufgrund von Elektronenwanderungen oder Störungen auf den Speicherzellen zu einer verminderten Leistung führen (z. B. im Vergleich zu Programmiervorgängen in einem Schritt). Darüber hinaus ist der MSV-Betrieb ineffizient, da er einen zusätzlichen Schritt erfordert, um die Speicherzellen zu programmieren.
  • Eine andere Lösung, um engere Vth-Verteilungen zu erzeugen, ist die Implementierung einer Schnelldurchlauf-Schreibtechnik (QPW). Bei der QPW-Technik wird eine Programmierimpuls-Schrittspannung eingestellt, wenn sich eine Speicherzelle einem programmierten Zustand nähert. Wenn sich also eine schneller programmierende Speicherzelle in einem Schwellenbereich des programmierten Zustands befindet, wird die Programmierimpuls-Schrittspannung angepasst, um die Geschwindigkeit, mit der die Speicherzelle programmiert wird, zu verlangsamen. Dies verlangsamt jedoch die Programmierung aller noch zu programmierenden Bits und erhöht somit die Gesamtprogrammierzeit.
  • Einige Modifikationen der QPW-Technik ermöglichen schnellere Programmierzeiten, allerdings auf Kosten der Genauigkeit. Grobe QPW-Techniken können einen intelligenten QPW-Betrieb (SQPW), eine schwebende QPW-Technik (FQPW) und/oder dergleichen einschließen. Um ein Beispiel bereitzustellen, kann eine SQPW-Technik das Überspringen eines Abschnitts eines Verifizierungsvorgangs beinhalten, um die Gesamtzeit für die Programmierung der Speicherzellen zu reduzieren. Das Überspringen von Abschnitten des Verifizierungsvorgangs kann jedoch die Genauigkeit der Programmierung verringern und damit die Wahrscheinlichkeit erhöhen, dass die Speicherzellen durch Störungen beeinträchtigt werden, die zu Laufzeitfehlern führen können.
  • Aus diesen Gründen und aus anderen Gründen, die einem Fachmann beim Lesen der vorliegenden Patentschrift und der zugehörigen Figuren klar werden, besteht ein Bedarf an einer Möglichkeit, enge Vth-Verteilungen zu erzeugen, ohne den Programmierdurchsatz der Speichervorrichtung zu verringern.
  • Einige hierin beschriebene Ausführungsformen können Systeme und/oder Verfahren zur Durchführung von Iterationen eines Verifizierungsvorgangs einschließen, um Datenzustände von Speicherzellen in einer ausgewählten Wortleitung zu verifizieren, wobei für jede Iteration des Verifizierungsvorgangs eine Schnellprogrammierungs-Verifizierungstechnik oder eine präzisionsbasierte Verifizierungstechnik ausgewählt und implementiert wird. Zum Beispiel können die Systeme und/oder Verfahren eine Verifizierungstechnik (z. B. die Schnellprogrammierungs-Verifizierungstechnik oder die präzisionsbasierte Verifizierungstechnik) basierend auf einer Iteration der Verifizierungsoperation, die durchgeführt wird, auswählen, basierend darauf, ob Positionen von Speicherzellen Teil eines oberen oder unteren Endes einer natürlichen Schwellenspannungsverteilung (NVD) (z. B. unter Verwendung der Schnellprogrammierungs-Verifizierungstechnik) oder Teil eines mittleren Abschnitts der NVD (z. B. unter Verwendung der präzisionsbasierten Verifizierungstechnik) sind, und/oder dergleichen.
  • Auf diese Art und Weise sind die hierin beschriebenen Systeme und/oder Verfahren in der Lage, die Vth-Verteilungen der Speicherzellen effizient und effektiv zu verengen. Darüber hinaus schonen die Systeme und/oder Verfahren Ressourcen (z. B. Verarbeitungsressourcen, Speicherressourcen und/oder dergleichen), indem sie die Ausführungszeit von Programmverifizierungsvorgängen im Vergleich zu einem minderwertigen System oder Verfahren (z. B. das nur die Schnellprogrammierungs-Verifizierungstechnik oder nur die präzisionsbasierte Verifizierungstechnik verwendet) reduzieren. Durch die Verringerung der Gesamtdauer der Programmverifizierung werden Ressourcen (z. B. Leistungs-, Verarbeitungs-, Speicherressourcen usw.) eingespart, die andernfalls für die Programmierung und Verifizierung der Speicherzellen unter ausschließlicher Verwendung der präzisionsbasierten Verifizierungstechnik aufgewendet worden wären.
  • 1A ist ein Blockdiagramm einer beispielhaften Speichervorrichtung. Die Speichervorrichtung 100 kann einen oder mehrere Speicher-Dies 108 einschließen. Das Speicher-Die 108 schließt eine Speicherstruktur 126 von Speicherzellen, z. B. ein Array von Speicherzellen, eine Steuerungsschaltlogik 110 und Lese/Schreib-Schaltungen 128 ein. Die Speicherstruktur 126 ist durch Wortleitungen über einen Zeilendecodierer 124 und durch Bitleitungen über einen Spaltendecodierer 132 adressierbar. Die Schreib-/Leseschaltungen 128 schließen mehrere Erfassungsblöcke SB1, SB2, ..., SBp (Erfassungsschaltkreis) ein und ermöglichen das parallele Lesen oder Programmieren einer Seite von Speicherzellen. Üblicherweise ist eine Steuerung 122 in der gleichen Speichervorrichtung 100 (z. B. einer entfernbaren Speicherkarte) enthalten wie das eine oder die mehreren Speicher-Dies 108. Befehle und Daten werden zwischen dem Host 140 und der Steuerung 122 über einen Datenbus 120 und zwischen der Steuerung und dem einen oder den mehreren Speicher-Dies 108 über Leitungen 118 übertragen.
  • Die Speicherstruktur kann 2D oder 3D sein. Die Speicherstruktur kann ein oder mehrere Arrays von Speicherzellen aufweisen, einschließlich eines 3D-Arrays. Die Speicherstruktur kann eine monolithische dreidimensionale Speicherstruktur aufweisen, in der mehrere Speicherebenen über (und nicht in) einem einzelnen Substrat wie beispielsweise einem Wafer ohne dazwischen liegende Substrate ausgebildet sind. Die Speicherstruktur kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einer oder mehreren physischen Ebenen von Speicherzellenanordnungen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Siliziumsubstrat angeordnet ist. Die Speicherstruktur kann sich in einer nichtflüchtigen Speichervorrichtung befinden, die Schaltlogik aufweist, die dem Betrieb der Speicherzellen zugeordnet sind, ganz gleich, ob sich die zugehörige Schaltlogik oberhalb oder innerhalb des Substrats befindet.
  • Die Steuerschaltlogik 110 arbeitet mit den Lese-/Schreibschaltungen 128 zusammen, um Speichervorgänge auf der Speicherstruktur 126 auszuführen, und schließt eine Zustandsmaschine 112, einen On-Chip-Adressdecodierer 114 und ein Leistungssteuerungsmodul 116 ein. Die Zustandsmaschine 112 stellt eine Steuerung von Speichervorgängen auf Speicherebene bereit.
  • Eine Speicherregion 113 kann zum Beispiel für Programmierparameter bereitgestellt werden. Die Programmierparameter können eine Programmspannung, eine Vorspannung für die Programmspannung, Positionsparameter, die die Positionen der Speicherzellen angeben, Parameter für die Dicke der Kontaktleitungsverbinder, eine Verifizierungsspannung und/oder dergleichen einschließen. Die Positionsparameter können eine Position einer Speicherzelle innerhalb des gesamten Arrays von NAND-Ketten, eine Position einer Speicherzelle innerhalb einer bestimmten NAND-Ketten-Gruppe, eine Position einer Speicherzelle in einer bestimmten Ebene und/oder dergleichen angeben. Die Parameter für die Dicke des Kontaktleitungsverbinders können die Dicke des Kontaktleitungsverbinders, das Substrat oder das Material, aus dem der Kontaktleitungsverbinder besteht, und/oder dergleichen angeben.
  • Der On-Chip-Adressdecodierer 114 stellt eine Adressschnittstelle zwischen derjenigen, die von dem Host oder einer Speichersteuerung verwendet wird, und der Hardware-Adresse bereit, die von den Decodierern 124 und 132 verwendet wird. Das Leistungssteuermodul 116 steuert die Leistung und Spannungen, die den Wortleitungen und Bitleitungen während Speichervorgängen zugeführt werden. Es kann Treiber für Wortleitungen, SGS- und SGD-Transistoren und Sourceleitungen einschließen. Die Abtastblöcke können in einem Ansatz Bitleitungstreiber einschließen. Ein SGS-Transistor ist ein Auswahlgate-Transistor an einem Source-Ende einer NAND-Kette, und ein SGD-Transistor ist ein Auswahlgate-Transistor an einem Drain-Ende einer NAND-Kette.
  • In einigen Ausführungsformen können einige der Komponenten kombiniert werden. Bei verschiedenen Ausführungen können eine oder mehrere der Komponenten (allein oder in Kombination), die sich von der Speicherstruktur 126 unterscheiden, als mindestens eine Steuerschaltung betrachtet werden, die eingerichtet ist, um die hierin beschriebenen Vorgänge durchzuführen. Die Steuerschaltung kann zum Beispiel eines oder eine Kombination von Steuerschaltung 110, Zustandsmaschine 112, Decodierer 114/132, Leistungssteuerungsmodul 116, Erfassungsblöcke SBb, SB2, ..., SBp, Lese-/Schreibschaltungen 128, Steuerung 122 und so weiter einschließen.
  • Die Steuerschaltungen können eine Programmierschaltung einschließen, die so eingerichtet ist, dass sie einen Programmiervorgang für einen Satz von Speicherzellen durchführt, wobei der eine Satz von Speicherzellen Speicherzellen umfasst, die so zugeordnet sind, dass sie einen Datenzustand aus einer Vielzahl von Datenzuständen darstellen, und Speicherzellen, die so zugeordnet sind, dass sie einen anderen Datenzustand aus der Vielzahl von Datenzuständen darstellen; wobei der Programmiervorgang eine Vielzahl von Programmverifizierungsiterationen umfasst; und wobei die Programmierschaltung in jeder Programmverifizierungsiteration eine Programmierung für die eine Wortleitung durchführt, wonach die Programmierschaltung ein Verifizierungssignal an die eine Wortleitung anlegt. Die Steuerschaltungen können auch eine Zählschaltung enthalten, die so eingerichtet ist, dass sie die Anzahl der Speicherzellen ermittelt, die einen Verifizierungstest für den einen Datenzustand bestanden haben. Die Steuerschaltungen können auch eine Bestimmungsschaltung einschließen, die so eingerichtet ist, dass sie auf der Grundlage einer Menge, um die der Zählerstand einen Schwellenwert überschreitet, eine bestimmte Programmverifizierungsiteration aus der Vielzahl der Programmverifizierungsiterationen bestimmt, in der ein Verifizierungstest für den anderen Datenzustand für die Speicherzellen, die zur Darstellung des anderen Datenzustands zugewiesen sind, durchgeführt wird.
  • 1B ist zum Beispiel ein Blockdiagramm einer beispielhaften Steuerschaltung 150, die eine Programmierschaltung 151, eine Zählschaltung 152 und eine Bestimmungsschaltung 153 umfasst.
  • Die Off-Chip-Steuerung 122 kann einen Prozessor 122c, Speichervorrichtungen (Speicher) wie ROM 122a und RAM 122b und eine Fehlerkorrekturcode-Maschine (ECC) 245 umfassen. Die ECC-Maschine kann eine Anzahl von Lesefehlern korrigieren, die verursacht werden, wenn der obere Schwanz einer Vth-Verteilung zu hoch wird. In einigen Fällen können jedoch unkorrigierbare Fehler vorliegen. Die hierin bereitgestellten Techniken verringern die Wahrscheinlichkeit von unkorrigierbaren Fehlern.
  • Die Speichervorrichtung weist einen Code wie einen Satz von Anweisungen auf und der Prozessor ist dazu betreibbar, den Satz von Anweisungen auszuführen, um die hierin beschriebene Funktionalität bereitzustellen. Alternativ oder zusätzlich kann der Prozessor auf Code von einer Speichervorrichtung 126a der Speicherstruktur zugreifen, wie etwa auf einen reservierten Bereich von Speicherzellen in einer oder mehreren Wortleitungen.
  • Der Code kann zum Beispiel von der Steuerung verwendet werden, um auf die Speicherstruktur zuzugreifen, wie etwa für Programmier-, Lese- und Löschvorgänge. Der Code kann Bootcode und Steuercode (z. B. einen Satz von Anweisungen) einschließen. Der Bootcode ist eine Software, die die Steuerung während eines Boot- oder Startvorgangs initialisiert und der Steuerung ermöglicht, auf die Speicherstruktur zuzugreifen. Der Code kann von der Steuerung verwendet werden, um eine oder mehrere Speicherstrukturen zu steuern. Nach dem Einschalten holt der Prozessor 122c den Bootcode aus dem ROM 122a oder der Speichervorrichtung 126a zur Ausführung, und der Bootcode initialisiert die Systemkomponenten und lädt den Steuercode in den RAM 122b. Sobald der Steuercode in den RAM geladen ist, wird er durch den Prozessor ausgeführt. Der Steuercode enthält Treiber zum Durchführen grundlegender Aufgaben, wie etwa Steuern und Zuweisen von Speicher, Priorisieren der Verarbeitung von Befehlen und Steuern von Eingabe- und Ausgabeports.
  • Im Allgemeinen kann der Steuercode Anweisungen einschließen, um die hierin beschriebenen Funktionen einschließlich der weiter unten erläuterten Schritte der Flussdiagramme durchzuführen und um die Spannungswellenformen einschließlich der weiter unten erläuterten bereitzustellen.
  • In einer Ausführungsform ist der Host eine Rechenvorrichtung (z. B. ein Laptop, ein Desktop, ein Smartphone, ein Tablet, eine Digitalkamera), die einen oder mehrere Prozessoren, eine oder mehrere prozessorlesbare Speichervorrichtungen (RAM, ROM, Flash-Speicher, Festplattenlaufwerk, Solid-State-Memory) einschließt, die einen prozessorlesbaren Code (z. B. eine Software) zum Programmieren der einen oder der mehreren Prozessoren speichert, um die hierin beschriebenen Verfahren durchzuführen. Der Host kann auch einen zusätzlichen Systemspeicher, eine oder mehrere Eingabe-/Ausgabeschnittstellen und/oder eine oder mehrere Eingabe-/Ausgabevorrichtungen einschließen, die mit dem einem oder den mehreren Prozessoren in Kommunikation stehen.
  • Andere Arten von nichtflüchtigen Speichern zusätzlich zu NAND-Flash-Speichern können ebenfalls verwendet werden.
  • Halbleiterspeichervorrichtungen schließen flüchtige Speichervorrichtungen ein, wie etwa Dynamic Random Access Memory-Vorrichtungen („DRAM-Vorrichtungen“) oder Static Random Access Memory-Vorrichtungen („SRAM-Vorrichtungen“), nichtflüchtige Speichervorrichtungen, wie etwa Resistive Random Access Memory („ReRAM“), Electrically Erasable Programmable Read Only Memory („EEPROM“), Flash-Speicher (der auch als Untergruppe eines EEPROM betrachtet werden kann), Ferroelectric Random Access Memory („FRAM“) und Magnetoresistive Random Access Memory („MRAM“), und andere Halbleiterelemente, die Informationen speichern können. Jeder Typ von Speichervorrichtung kann unterschiedliche Konfigurationen aufweisen. Zum Beispiel können Flash-Speichervorrichtungen in einer NAND- oder NOR-Konfiguration eingerichtet sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in beliebigen Kombinationen gebildet sein. Als ein nichteinschränkendes Beispiel schließen passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente ein, die in einigen Ausführungsformen ein widerstandsschaltendes Speicherelement wie ein Anti-Fuse- oder Phasenwechselmaterial und gegebenenfalls ein Lenkelement wie eine Diode oder einen Transistor einschließen. Weiterhin schließen als nichteinschränkendes Beispiel aktive Halbleiterspeicherelemente EEPROM- und Flash-Speichervorrichtungselemente ein, die in einigen Ausführungsformen Elemente einschließen, die einen Ladungsspeicherbereich enthalten, wie etwa ein Floating-Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial.
  • Mehrere Speicherelemente können derart eingerichtet sein, dass sie in Reihe geschaltet sind, oder derart, dass jedes Element einzeln zugänglich ist. Als nicht einschränkendes Beispiel enthalten Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) üblicherweise Speicherelemente, die in Reihe geschaltet sind. Eine NAND-Kette ist ein Beispiel für einen Satz von in Reihe geschalteten Transistoren, aufweisend Speicherzellen und SG-Transistoren.
  • Ein NAND-Speicherarray kann so eingerichtet werden, dass das Array aus mehreren Speicherketten besteht, wobei eine Kette aus mehreren Speicherelementen besteht, die sich eine einzelne Bitleitung teilen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente derart eingerichtet sein, dass jedes Element einzeln zugänglich ist, z. B. ein NOR-Speicherarray. NAND- und NOR-Speicherkonfigurationen sind Beispiele, und Speicherelemente können anderweitig eingerichtet sein. Die Halbleiterspeicherelemente, die in und/oder über einem Substrat angeordnet sind, können in zwei oder drei Dimensionen angeordnet sein, wie einer zweidimensionalen Speicherstruktur oder einer dreidimensionalen Speicherstruktur.
  • In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder einer einzelnen Speichervorrichtungsebene angeordnet. Üblicherweise sind in einer zweidimensionalen Speicherstruktur Speicherelemente in einer Ebene (z. B. in einer x-y-Richtung-Ebene) angeordnet, die sich im Wesentlichen parallel zu einer Hauptfläche eines Substrats erstreckt, das die Speicherelemente trägt. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente gebildet ist, oder es kann ein Trägersubstrat sein, das an den Speicherelementen befestigt wird, nachdem diese gebildet werden. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter, wie Silizium, einschließen.
  • Die Speicherelemente können auf der einzelnen Speichervorrichtungsebene in einem geordneten Array angeordnet sein, wie in einer Vielzahl von Zeilen und/oder Spalten. Jedoch können die Speicherelemente in nicht regelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen, wie Bitleitungen und Wortleitungen, aufweisen.
  • Ein dreidimensionales Speicherarray ist so angeordnet, dass Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungsebenen belegen, wodurch eine Struktur in drei Dimensionen gebildet wird (d. h. in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht ist und die x- und y-Richtungen im Wesentlichen parallel zur Hauptoberfläche des Substrats verlaufen).
  • Als ein nicht einschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als weiteres nicht einschränkendes Beispiel kann ein dreidimensionales Speicherarray als mehrere vertikale Spalten (z. B. Spalten, die sich im Wesentlichen senkrecht zur Hauptfläche des Substrats erstrecken, d. h. in y-Richtung) angeordnet sein, wobei jede Spalte mehrere Speicherelemente. Die Spalten können in einer zweidimensionalen Konfiguration angeordnet sein, z. B. in einer x-y-Ebene, was in einer dreidimensionalen Anordnung von Speicherelementen mit Elementen auf mehreren vertikal gestapelten Speicherebenen resultiert. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls ein dreidimensionales Speicherarray bilden.
  • Als nicht einschränkendes Beispiel können in einer dreidimensionalen Anordnung von NAND-Ketten die Speicherelemente miteinander verbunden werden, um eine NAND-Kette innerhalb einer einzigen horizontalen (z. B. x-y) Speichervorrichtungsebene zu bilden. Alternativ können die Speicherelemente miteinander gekoppelt sein, um eine vertikale NAND-Kette zu bilden, die über mehrere horizontale Speichervorrichtungsebenen verläuft. Andere dreidimensionale Konfigurationen können in Betracht gezogen werden, wobei einige NAND-Ketten Speicherelemente in einer einzelnen Speicherebene enthalten, während andere Ketten Speicherelemente enthalten, die sich über mehrere Speicherebenen erstrecken. Dreidimensionale Speicherarrays können auch als eine NOR-Konfiguration und als eine ReRAM-Konfiguration ausgelegt sein.
  • Üblicherweise werden in einem monolithischen dreidimensionalen Speicherarray eine oder mehrere Speichervorrichtungsebenen über einem einzelnen Substrat gebildet. Optional kann das monolithische dreidimensionale Speicherarray auch eine oder mehrere Speicherschichten mindestens teilweise innerhalb des einzelnen Substrats aufweisen. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter, wie Silizium, einschließen. In einem monolithischen dreidimensionalen Array werden die Schichten, die jede Speichervorrichtungsebene des Arrays bilden, üblicherweise auf den Schichten der darunter liegenden Speichervorrichtungsebenen des Arrays gebildet. Jedoch können Schichten von benachbarten Speichervorrichtungsebenen eines monolithischen dreidimensionalen Speicherarrays gemeinsam genutzt werden oder Zwischenschichten zwischen Speichervorrichtungsebenen aufweisen.
  • Dann können wiederum zweidimensionale Arrays getrennt gebildet und dann zusammengepackt werden, um eine nicht monolithische Speichervorrichtung mit mehreren Speicherschichten zu bilden. Zum Beispiel können nicht monolithische gestapelte Speicher konstruiert werden, indem Speicherebenen auf separaten Substraten gebildet und dann die Speicherebenen übereinander gestapelt werden. Die Substrate können vor dem Stapeln gedünnt oder von den Speichervorrichtungsebenen entfernt werden, aber da die Speichervorrichtungsebenen anfänglich über separaten Substraten gebildet werden, sind die resultierenden Speicherarrays keine monolithischen dreidimensionalen Speicherarrays. Weiterhin können mehrere zweidimensionale Speicherarrays oder dreidimensionale Speicherarrays (monolithisch oder nicht monolithisch) auf separaten Chips gebildet und dann zusammengepackt werden, um eine gestapelte Chip-Speichervorrichtung zu bilden.
  • 2 veranschaulicht eine schematische Ansicht von beispielhaften BiCS-Speicherarchitekturen, die gestaffelte Speicherketten verwenden. Zum Beispiel zeigt die Referenznummer 201 eine schematische Ansicht einer beispielhaften BiCS 4-Speicherarchitektur, die Referenznummer 203 zeigt eine schematische Ansicht einer beispielhaften BiCS 5-Speicherarchitektur und die Referenznummer 205 zeigt eine schematische Ansicht einer beispielhaften BiCS 6-Speicherarchitektur. In einigen Ausführungsformen, wie dargestellt, kann eine BiCS-Speicherarchitektur ein Array von gestaffelten NAND-Ketten einschließen.
  • Mit Bezug auf die Speicherarchitektur 201 sind die Speicherketten in den Zeilen 207-0 bis 207-7 in der Stringarchitektur 201 dargestellt. Eine Speicherkette kann einen Satz von Speicherzellen einschließen (z. B. die einem Satz von Speicherlöchern entsprechen). Jede Zeile wird mit vier Enden zu den Speicherketten dargestellt. Eine Speicherkette kann an einem Ende mit einer benachbarten Kette verbunden sein (in dieser Ansicht nicht sichtbar). Eine erste Gruppe von Zeilen 207-0 bis 207-3 wird auf einer linken Seite einer Dummy-Zeile 208 dargestellt. Eine zweite Gruppe von Zeilen 207-4 bis 207-7 wird auf einer rechten Seite der Dummy-Zeile 208 angezeigt. Die Dummy-Zeile 208 trennt die beiden Gruppen von Zeilen in der gestaffelten Achterzeile. Eine Sourceleitung 209 befindet sich an einem Rand der ersten Gruppe und ist von der Dummy-Zeile 208 entfernt. Eine Sourceleitung 210 befindet sich an einem Rand der zweiten Gruppe und ist von der Dummy-Zeile 208 und der Sourceleitung 209 entfernt.
  • Die Speicherarchitekturen 203 und 205 können ähnlich wie die Kettenarchitektur 201 sein, außer dass zusätzliche Gruppen hinzugefügt werden. Die Kettenarchitektur 203 kann doppelt so groß sein wie die Architektur 201 und kann sechzehn Zeilen von Ketten einschließen, wobei jede Gruppe von vier Zeilen durch eine Dummy-Zeile getrennt ist. Die Kettenrchitektur 205 kann größer sein als sowohl die Speicherarchitektur 201 als auch die Speicherarchitektur 203. Die Kettenarchitektur 205 kann zwanzig Zeilen von Ketten einschließen, wobei jede Gruppe von vier Zeilen durch eine Dummy-Zeile 208 getrennt ist.
  • In einigen Ausführungsformen können die Speicherarchitekturen 201, 203 und/oder 205 einen Chip unter Array-Struktur einschließen. Zum Beispiel können die Speicherarchitekturen 201, 203 und/oder 205 eine Chip unter Array-Struktur einschließen, wobei sich die Steuerschaltung unter dem Speicherarray befindet, das die Gruppen von Speicherketten einschließt. Beim Chip unter Array-Struktur können die Speicherketten einen direkten Bandkontakt für die Sourceleitung für Lese- und Löschvorgänge einschließen.
  • In einigen Ausführungsformen kann die Speicherarchitektur 205 eine BiCS 6-Speicherarchitektur sein. In einer BiCS 6-Speicherarchitektur kann es zum Beispiel fünf NAND-Kettengruppen geben. NAND-Kettengruppe 212-1, NAND-Kettengruppe 212-2, NAND-Kettengruppe 212-3, NAND-Kettengruppe 212-3 und NAND-Kettengruppe 212-4). Die NAND-Kettengruppe 212-0 und die NAND-Kettengruppe 212-4 können als äußere NAND-Kettengruppen bezeichnet werden. Die NAND-Kettengruppe 212-1, die NAND-Kettengruppe 212-2 und die NAND-Kettengruppe 212-3 können gemeinsam als innere NAND-Kettengruppen bezeichnet werden. Die NAND-Kettengruppe 212-2 kann als innerste NAND-Kettengruppe bezeichnet werden.
  • In einigen Ausführungsformen kann die BiCS 6-Speicherarchitektur eine 3-D-Speicherarchitektur sein, die einen oder mehrere 3-D-Blöcke einschließt. In diesem Fall kann ein 3-D-Block logisch in mehrere Unterblöcke segmentiert werden, die NAND-Kettengruppen entsprechen. Der 3-D-Block kann auch in mehrere Ebenen segmentiert werden. Eine zusätzliche Blockbeschreibung wird weiter unten bereitgestellt.
  • Eine oder mehrere Ausführungsformen beziehen sich zwar auf eine BiCS-Speicherarchitektur, dies ist jedoch nur beispielhaft bereitgestellt. In der Praxis können die hierin beschriebenen Techniken auf einer beliebigen Anzahl verschiedener Speicherarchitekturen implementiert werden, wie beispielsweise rohrförmige BiCS (P-BiCS), eine VRAT-Architektur (Vertical Recipse Array Transistor) und/oder jeder andere Typ von EEPROM- oder Flash-Speicherarchitektur.
  • 3 veranschaulicht Blöcke von Speicherzellen in einer beispielhaften zweidimensionalen Konfiguration des Speicherarrays 126 von 1. Das Speicherarray kann viele Blöcke einschließen. Jeder Beispielblock 300, 310 schließt eine Anzahl von NAND-Ketten und entsprechenden Bitleitungen ein, z. B. BL0, BL1,. die von den Blöcken gemeinsam genutzt werden. Jede NAND-Kette ist an einem Ende mit einem Drain-Auswahl-Gate (SGD) verbunden, und die Steuer-Gates der Drain-Auswahl-Gates sind über eine gemeinsame SGD-Leitung verbunden. Die NAND-Ketten sind an ihrem anderen Ende mit einem Source-Auswahl-Gate verbunden, das wiederum mit einer gemeinsamen Sourceleitung 320 verbunden ist. Sechzehn Wortleitungen, zum Beispiel WL0 bis WL15, verlaufen zwischen den Source-Auswahl-Gates und den Drain-Auswahl-Gates. In einigen Fällen können im Speicherarray neben den Auswahl-Gate-Transistoren auch Dummy-Wortleitungen verwendet werden, die keine Benutzerdaten enthalten. Solche Dummy-Wortleitungen können die Randdatenwortleitung vor bestimmten Randeffekten abschirmen.
  • Ein Typ von nichtflüchtigem Speicher, der im Speicherarray bereitgestellt werden kann, ist ein Floating-Gate-Speicher. Siehe 4A und 4B. Andere Typen nichtflüchtiger Speicher können ebenfalls verwendet werden. Eine Charge-Trapping-Speicherzelle verwendet zum Beispiel ein nichtleitendes dielektrisches Material anstelle eines leitenden Floating-Gates, um Ladung nichtflüchtig zu speichern. Siehe 5A und 5B. Ein dreischichtiges Dielektrikum aus Siliziumoxid, Siliziumnitrid und Siliziumoxid („ONO“) ist zwischen einem leitenden Steuer-Gate und einer Oberfläche eines halbleitenden Substrats über dem Speicherzellenkanal angeordnet. Die Zelle wird programmiert, indem Elektronen aus dem Zellkanal in das Nitrid eingespritzt werden, wo sie eingefangen und in einem begrenzten Bereich gespeichert werden. Diese gespeicherte Ladung verändert dann die Schwellenspannung eines Abschnitts des Kanals der Zelle auf eine Weise, die nachweisbar ist. Die Zelle wird durch Einspritzen heißer Löcher in das Nitrid gelöscht. Eine ähnliche Zelle kann in einer Split-Gate-Konfiguration bereitgestellt werden, bei der sich ein dotiertes Polysilizium-Gate über einem Abschnitt des Speicherzellenkanals erstreckt und dadurch einen separaten Auswahl-Transistor bildet.
  • Bei einem anderen Ansatz werden NROM-Zellen verwendet. Zwei Bit werden zum Beispiel in jeder NROM-Zelle gespeichert, in der sich eine dielektrische ONO-Schicht über dem Kanal zwischen Source- und Drain-Diffusion erstreckt. Die Ladung für ein Datenbit ist in der an den Drain angrenzenden dielektrischen Schicht lokalisiert, und die Ladung für das andere Datenbit ist in der an die Source angrenzenden dielektrischen Schicht lokalisiert. Die Datenspeicherung in mehreren Zuständen wird durch separates Lesen binärer Zustände der physisch getrennten Ladungsspeicherbereiche innerhalb des Dielektrikums erreicht. Andere Arten nichtflüchtiger Speicher sind ebenfalls bekannt.
  • 4A veranschaulicht einen Querschnitt durch ein Beispiel von Floating-Gate-Speicherzellen in NAND-Ketten. Eine Bitleitung oder NAND-Kettenrichtung geht in die Seite hinein, und eine Wortleitungsrichtung geht von links nach rechts. Als Beispiel erstreckt sich die Wortleitung 424 über NAND-Ketten, die die jeweiligen Kanalregionen 406, 416 und 426 einschließen. Die Speicherzelle 400 schließt ein Steuergate 402, ein Floating-Gate 404, eine Tunneloxidschicht 405 und die Kanalregion 406 ein. Die Speicherzelle 410 schließt ein Steuergate 412, ein Floating-Gate 414, eine Tunneloxidschicht 415 und die Kanalregion 416 ein. Die Speicherzelle 420 schließt ein Steuergate 422, ein Floating-Gate 421, eine Tunneloxidschicht 425 und die Kanalregion 426 ein. Jede Speicherzelle befindet sich in einer anderen jeweiligen NAND-Kette. Eine interpolare dielektrische (IPD) Schicht 428 ist ebenfalls veranschaulicht. Die Steuergates sind Abschnitte der Wortleitung. Eine Querschnittsansicht entlang des Kontaktleitungsverbinders 429 ist in 4B bereitgestellt.
  • Das Steuergate wickelt sich um das Floating-Gate, wodurch der Kontaktbereich zwischen dem Steuergate und dem Floating-Gate vergrößert wird. Daraus ergibt sich eine höhere IPD-Kapazität, was zu einem höheren Kopplungsverhältnis führt, was das Programmieren und Löschen erleichtert. Bei der Verkleinerung von NAND-Speichervorrichtungen wird jedoch der Abstand zwischen benachbarten Zellen kleiner, so dass zwischen zwei benachbarten Floating-Gates fast kein Platz mehr für das Steuergate und das IPD vorhanden ist.
  • Als Alternative wurde, wie in 5A und 5B gezeigt, die flache oder planare Speicherzelle entwickelt, bei der das Steuergate flach oder planar ist; d. h. sie umschließt nicht das Floating-Gate und hat nur von oben Kontakt mit der Ladungsspeicherschicht. In diesem Fall ist ein hohes Floating-Gate nicht von Vorteil. Stattdessen wird das Floating-Gate deutlich dünner ausgeführt. Ferner kann das Floating-Gate zur Ladungsspeicherung verwendet werden, oder es kann eine dünne Ladungsfallenschicht zum Einfangen von Ladung verwendet werden. Dieser Ansatz kann das Problem des ballistischen Elektronentransports vermeiden, bei dem ein Elektron während der Programmierung durch das Floating-Gate wandern kann, nachdem es durch das Tunneloxid getunnelt wurde.
  • 5B veranschaulicht eine Querschnittsansicht der Struktur von 5A entlang des Kontaktleitungsverbinders 529. Die NAND-Kette 530 schließt einen SGS-Transistor 531, beispielhafte Speicherzellen 500, 533, ..., 534 und 535, und einen SGD-Transistor 536 ein. Die Speicherzelle 400, als Beispiel für jede Speicherzelle, schließt das Steuergate 402, die IPD-Schicht 428, das Floating-Gate 404 und die Tunneloxidschicht 505 ein, in Übereinstimmung mit 5A. Durchgänge in der IPD-Schicht in den SGS- und SGD-Transistoren ermöglichen die Kommunikation zwischen den Steuergate- und Floating-Gate-Schichten. Die Steuergate- und Floating-Gate-Schichten können aus Polysilizium bestehen und die Tunneloxidschicht kann beispielsweise aus Siliziumoxid bestehen. Die IPD-Schicht kann ein Stapel aus Nitriden (N) und Oxiden (O) sein, wie beispielsweise in einer N-O-N-O-N-Konfiguration.
  • Die NAND-Kette kann auf einem Substrat gebildet werden, das eine p-Typ-Substratregion 555, einen n-Typ-Well 556 und einen p-Typ-Well 557 umfasst. N-Typ Source-/Drain-Diffusionsregionen sd1, sd2, sd3, sd4, sd5, sd6 und sd7 werden in dem p-Typ-Well gebildet. Eine Kanalspannung, Vch, kann direkt an die Kanalregion des Substrats angelegt werden.
  • 6A veranschaulicht ein beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1. In einem Ansatz umfasst ein Erfassungsblock mehrere Erfassungsschaltungen. Jeder Erfassungsschaltung sind Datenspeicher zugeordnet. Die Erfassungsschaltungen 650a, 651a, 652a und 553a sind zum Beispiel mit den Haltespeichern 650b, 551b, 652b bzw. 653b verbunden. Bei einem Ansatz können unterschiedliche Untergruppen von Bitleitungen unter Verwendung unterschiedlicher jeweiliger Abtastblöcke abgetastet werden. Dies ermöglicht, dass die Prozessorlast, die zu den Abtastschaltungen gehört, durch einen jeweiligen Prozessor in jedem Abtastblock aufgeteilt und gehandhabt wird. Die Steuerung der Erfassungsschaltung 660 in SB1 kann zum Beispiel mit dem Satz der Erfassungsschaltungen und Haltespeicher kommunizieren. Die Steuerung der Erfassungsschaltung kann eine Vorladeschaltung 661 einschließen, die jeder Erfassungsschaltung eine Spannung zur Einstellung einer Vorladespannung bereitstellt. In einem möglichen Ansatz wird die Spannung für jede Erfassungsschaltung unabhängig bereitgestellt, z. B. über den Datenbus 603 und einen lokalen Bus wie LBUS1 oder LBUS2 in 6B. In einem anderen möglichen Ansatz wird für jede Erfassungsschaltung gleichzeitig eine gemeinsame Spannung bereitgestellt, z. B. über die Kontaktleitung 605 in 6B. Die Steuerung der Erfassungsschaltung kann auch einen Speicher 662 und einen Prozessor 663 einschließen. Der Speicher 662 kann Code speichern, der vom Prozessor ausgeführt werden kann, um die hierin beschriebenen Funktionen auszuführen. Diese Funktionen können das Lesen von Haltespeichern einschließen, die mit den Erfassungsschaltungen verbunden sind, das Setzen von Bitwerten in den Haltespeichern und das Bereitstellen von Spannungen zum Einstellen von Vorladepegeln in den Erfassungsknoten der Erfassungsschaltungen. Weitere Beispieldetails zur Steuerung der Erfassungsschaltung und zu den Erfassungsschaltungen 650a und 651a werden im Folgenden bereitgestellt.
  • Die Steuerung der Erfassungsschaltung kann beispielsweise mit verschiedenen Erfassungsschaltungen im Zeitmultiplexverfahren kommunizieren. In einem Ansatz kann in jeder Erfassungsschaltung eine Kontaktleitung 605 an die Spannungsklemme angeschlossen werden.
  • Die Erfassungsschaltung 651a schließt Haltespeicher 651b ein, einschließlich eines Auslöse-Haltespeichers 646, eines Offset-Verifizierungs-Haltespeichers 647 und Datenzustands-Haltespeichern 648. Eine Spannungsklemme 641 kann verwendet werden, um eine Vorladespannung an einem Erfassungsknoten 642 einzustellen. Ein Erfassungsknoten-zu-Bitleitung (BL)-Schalter 643 ermöglicht dem Erfassungsknoten selektiv die Kommunikation mit einer Bitleitung 645, und eine Spannungsklemme 644 kann eine Spannung auf der Bitleitung einstellen. Die Bitleitung 645 ist mit einer oder mehreren Speicherzellen, wie beispielsweise einer Speicherzelle MC2, verbunden. Die Steuerung der Erfassungsschaltung kann über einen lokalen Bus, LBUS2, mit den Komponenten der Erfassungsschaltung kommunizieren, wie beispielsweise mit den Haltespeichern 651 b und in einigen Fällen mit der Spannungsklemme. Zur Kommunikation mit der Erfassungsschaltung 651a stellt die Steuerung der Erfassungsschaltung eine Spannung über eine Kontaktleitung 601 an einen Transistor 606 bereit, um LBUS2 mit DBUS zu verbinden.
  • Die Erfassungsschaltung 650a kann eine erste Erfassungsschaltung sein, die einen ersten Haltespeicher 626 umfasst, und die Erfassungsschaltung 651a kann eine zweite Erfassungsschaltung sein, die einen zweiten Haltespeicher 646 umfasst.
  • Die Erfassungsschaltung 650a ist ein Beispiel für eine erste Erfassungsschaltung, die einen ersten Erfassungsknoten 622 umfasst, wobei die erste Erfassungsschaltung mit einer ersten Speicherzelle MC1 und einer ersten Bitleitung 625 verbunden ist. Die Erfassungsschaltung 651a ist ein Beispiel für eine zweite Erfassungsschaltung, die einen zweiten Erfassungsknoten 642 umfasst, wobei die zweite Erfassungsschaltung mit einer zweiten Speicherzelle MC2 und einer zweiten Bitleitung 645 verbunden ist.
  • In einigen Ausführungsformen kann eine Speicherzelle ein Flag-Register einschließen, das einen Satz von Haltespeichern zum Speichern von Flag-Bits einschließt. In einigen Ausführungsformen kann eine Menge von Flag-Registern einer Menge von Datenzuständen entsprechen. In einigen Ausführungsformen können ein oder mehrere Flag-Register zur Steuerung eines Typs der Verifizierungstechnik bei der Verifizierung von Speicherzellen verwendet werden. In einigen Ausführungsformen kann die Ausgabe eines Flag-Bits die zugehörige Logik der Vorrichtung, z. B. die Adressdecodierungsschaltung, so modifizieren, dass ein bestimmter Block von Zellen ausgewählt wird. Ein Massenbetrieb (z. B. ein Löschvorgang usw.) kann unter Verwendung der im Flag-Register gesetzten Flags oder einer Kombination des Flag-Registers mit dem Adressregister, wie bei der impliziten Adressierung, oder alternativ durch direkte Adressierung mit dem Adressregister allein durchgeführt werden.
  • 6B veranschaulicht ein anderes beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1. Die Steuerung der Erfassungsschaltung 660 kommuniziert mit mehreren Erfassungsschaltungen einschließlich der beispielhaften Erfassungsschaltungen 650a und 651a, die ebenfalls in 6A dargestellt sind. Die Erfassungsschaltung 650a schließt Haltespeicher 650b ein, die einen Auslöse-Haltespeicher 626, einen Offset-Verifizierungs-Haltespeicher 627 und Datenstatus-Haltespeicher 628 einschließt. Die Erfassungsschaltung schließt ferner eine Spannungsklemme 621 ein, wie beispielsweise einen Transistor, der eine Vorladespannung an einem Erfassungsknoten 622 einstellt. Ein Erfassungsknoten-zu-Bitleitung (BL)-Schalter 623 ermöglicht dem Erfassungsknoten selektiv die Kommunikation mit einer Bitleitung 625, z. B. ist der Erfassungsknoten elektrisch mit der Bitleitung verbunden, so dass die Erfassungsknotenspannung abfallen kann. Die Bitleitung 625 ist mit einer oder mehreren Speicherzellen verbunden, wie beispielsweise einer Speicherzelle MC1. Eine Spannungsklemme 624 kann eine Spannung auf der Bitleitung einstellen, wie beispielsweise während eines Erfassungsvorgangs oder während einer Programmspannung. Die Steuerung der Erfassungsschaltung kann über einen lokalen Bus, LBUS1, mit den Komponenten der Erfassungsschaltung kommunizieren, wie beispielsweise mit den Haltespeichern 650b und gegebenenfalls mit der Spannungsklemme. Die Steuerung der Erfassungsschaltung 650a stellt zur Kommunikation mit der Erfassungsschaltung eine Spannung über eine Kontaktleitung 602 an einen Transistor 604 bereit, um LBUS1 mit einem Datenbus DBUS 603 zu verbinden. Die Kommunikation kann das Senden von Daten an die Erfassungsschaltung und/oder den Empfang von Daten von der Erfassungsschaltung einschließen.
  • 7A ist eine perspektivische Ansicht eines Satzes von Blöcken 700 in einer beispielhaften dreidimensionalen Konfiguration des Speicherarrays 126 von 1. Auf dem Substrat befinden sich beispielhafte Blöcke BLK0, BLK1, BLK2 und BLK3 von Speicherzellen (Speicherelementen) und ein Peripheriebereich 704 mit Schaltungen zur Verwendung durch die Blöcke. Die Schaltung kann zum Beispiel Spannungstreiber 705 einschließen, die an Steuergate-Schichten der Blöcke angeschlossen werden können. Bei einem Ansatz werden Steuergateschichten auf einer gemeinsamen Höhe in den Blöcken gemeinsam angesteuert. Das Substrat 701 kann auch Schaltungen unter den Blöcken tragen, zusammen mit einer oder mehreren unteren Metallschichten, die in leitenden Pfaden strukturiert sind, um Signale der Schaltungen zu führen. Die Blöcke werden in einer Zwischenregion 702 der Speichervorrichtung gebildet. In einer oberen Region 703 der Speichervorrichtung sind eine oder mehrere obere Metallschichten in leitenden Pfaden strukturiert, um Signale der Schaltung zu führen. Jeder Block weist einen gestapelten Bereich von Speicherzellen auf, wobei alternierende Ebenen des Stapels Wortleitungen darstellen. In einem möglichen Ansatz hat jeder Block gegenüberliegende abgestufte Seiten, von denen sich vertikale Kontakte nach oben zu einer oberen Metallschicht erstrecken, um Verbindungen zu Leiterbahnen herzustellen. Während vier Blöcke als Beispiel veranschaulicht sind, können zwei oder mehr Blöcke verwendet werden, die sich in x- und/oder y-Richtung erstrecken.
  • Bei einem möglichen Ansatz stellt die Länge der Ebene in x-Richtung eine Richtung dar, in der sich Signalpfade zu Wortleitungen in der einen oder den mehreren oberen Metallschichten erstrecken (eine Wortleitungs- oder SGD-Leitungsrichtung), und die Breite der Ebene in y-Richtung stellt eine Richtung dar, in der sich Signalpfade zu Bitleitungen in der einen oder den mehreren oberen Metallschichten (eine Bitleitungsrichtung) erstrecken. Die z-Richtung stellt eine Höhe der Speichervorrichtung dar.
  • 7B veranschaulicht eine beispielhafte Querschnittsansicht eines Abschnitts eines der Blöcke von 7A. Der Block umfasst einen Stapel 710 aus abwechselnd leitenden und dielektrischen Schichten. In diesem Beispiel umfassen die leitfähigen Schichten zwei SGD-Schichten, zwei SGS-Schichten und vier Dummy-Wortleitungsschichten DWLD0, DWLD1, DWLS0 und DWLS1, zusätzlich zu den Datenwortleitungsschichten (Wortleitungen) WLLO-WLL10. Die dielektrischen Schichten werden als DL0 bis DL19 bezeichnet. Ferner sind Regionen des Stapels veranschaulicht, die die NAND-Ketten NS1 und NS2 umfassen. Jede NAND-Kette umfasst ein Speicherloch 718 oder 719, das mit Materialien gefüllt ist, die neben den Wortzeilen Speicherzellen bilden. Eine Region 722 des Stapels ist in 7D ausführlicher dargestellt.
  • Der Stapel schließt ein Substrat 711, eine Isolierschicht 712 auf dem Substrat und einen Abschnitt einer Sourceleitung SL ein. NS1 hat ein Source-Ende 713 an einer Unterseite 714 des Stapels und ein Drain-Ende 715 an einer Oberseite 716 des Stapels. Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 717 und 720 können periodisch über den Stapel als Verbindungen bereitgestellt werden, die sich durch den Stapel erstrecken, wie beispielsweise zur Verbindung der Sourceleitung mit einer bestimmten Kontaktleitung oberhalb des Stapels. Die Kontaktleitungsverbinder können bei der Bildung der Wortleitungen verwendet und anschließend mit Metall gefüllt werden. Ein Abschnitt einer Bitleitung BL0 ist ebenfalls veranschaulicht. Ein leitendes Via 721 verbindet die Drain-Seite 715 mit BL0.
  • 7C veranschaulicht eine Darstellung des Speicherlochdurchmessers im Stapel von 7B. Die vertikale Achse ist auf den Stapel von 7B ausgerichtet und veranschaulicht eine Breite (wMH), z. B. den Durchmesser, der Speicherlöcher 718 und 719. Die Wortleitungsschichten WLL0-WLL10 von 7A werden als Beispiel wiederholt und befinden sich auf den jeweiligen Höhen z0-z10 im Stapel. In einer solchen Speichervorrichtung weisen die Speicherlöcher, die durch den Stapel geätzt werden, ein sehr hohes Seitenverhältnis auf. Zum Beispiel ist ein Verhältnis der Tiefe zum Durchmesser von etwa 25 bis 30 üblich. Die Speicherlöcher können einen kreisförmigen Querschnitt aufweisen. Aufgrund des Ätzprozesses kann die Speicherlochbreite über die Länge des Lochs variieren. Üblicherweise wird der Durchmesser von oben nach unten in dem Speicherloch immer kleiner. Das heißt, die Speicherlöcher verjüngen sich, wobei sie sich am Boden des Stapels verengen. In einigen Fällen kommt es zu einer leichten Verengung am oberen Ende des Lochs in der Nähe des Auswahlgates, so dass der Durchmesser etwas breiter wird, bevor er vom oberen Ende zum unteren Ende des Speicherlochs hin immer kleiner wird.
  • Aufgrund der ungleichmäßigen Breite des Speicherlochs kann die Programmiergeschwindigkeit, einschließlich der Programmflanke und der Löschgeschwindigkeit der Speicherzellen in Abhängigkeit von ihrer Position entlang des Speicherlochs variieren, z. B. in Abhängigkeit von ihrer Höhe im Stapel. Bei einem kleineren Durchmesser des Speicherlochs ist das elektrische Feld über dem Tunneloxid relativ stärker, so dass die Programmier- und Löschgeschwindigkeit relativ höher ist. Ein Ansatz besteht darin, Gruppen von benachbarten Wortleitungen zu definieren, für die der Speicherlochdurchmesser ähnlich ist, z. B. innerhalb eines definierten Durchmesserbereichs, und ein optimiertes Verifizierungsschema für jede Wortleitung in einer Gruppe anzuwenden. Verschiedene Gruppen können unterschiedlich optimierte Verifizierungsschemata aufweisen.
  • 7D veranschaulicht eine Nahaufnahme der Region 722 des Stapels von 7B. Speicherzellen sind an den verschiedenen Ebenen des Stapels an dem Schnittpunkt einer Wortleitungsschicht und eines Speicherlochs ausgebildet. In diesem Beispiel sind die SGD-Transistoren 780 und 781 über den Dummy-Speicherzellen 782 und 783 und einer Datenspeicherzelle MC bereitgestellt. Entlang der Seitenwand (SW) des Speicherlochs 730 und/oder innerhalb jeder Wortleitungsschicht können mehrere Schichten abgeschieden werden, z. B. unter Verwendung der Atomschichtdeposition. Zum Beispiel kann jede Säule (z. B. die Säule, die von den Materialien innerhalb eines Speicherlochs gebildet wird) eine ladungseinfangende Schicht oder einen Film 763 wie SiN oder ein anderes Nitrid, eine Tunnelschicht 664, einen Polysiliziumkörper oder Kanal 765 und einen dielektrischen Kern 766 einschließen. Eine Wortleitungsschicht kann ein sperrendes Oxid-/Block-High-k-Material 760, eine Metallbarriere 761 und ein leitendes Metall 762 wie Wolfram als Steuergate einschließen. Es werden zum Beispiel die Steuergates 790, 791, 792, 793 und 794 bereitgestellt. In diesem Beispiel werden alle Schichten mit Ausnahme des Metalls in dem Speicherloch bereitgestellt. In anderen Ansätzen können einige der Schichten in der Steuer-Gate-Schicht sein. Zusätzliche Säulen sind gleichermaßen in den verschiedenen Speicherlöchern ausgebildet. Eine Säule kann eine säulenförmige aktive Fläche (AA) einer NAND-Kette bilden.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Teil der Ladungseinfangschicht gespeichert, welche der Speicherzelle zugeordnet ist. Diese Elektronen werden in die Ladungseinfangschicht aus dem Kanal und durch die Tunnelschicht gezogen. Die Vth einer Speicherzelle wird proportional zu der Menge der gespeicherten Ladung erhöht. Während eines Löschvorgangs kehren die Elektronen in den Kanal zurück.
  • Jedes der Speicherlöcher kann mit einer Vielzahl von ringförmigen Schichten gefüllt sein, die eine Blockieroxidschicht, eine Ladungseinfangschicht, eine Tunnelschicht und eine Kanalschicht aufweisen. Eine Kernregion jedes der Speicherlöcher ist mit einem Körpermaterial gefüllt, und die Vielzahl von ringförmigen Schichten befindet sich zwischen der Kernregion und der Wortleitung in jedem der Speicherlöcher.
  • Die NAND-Kette kann als einen Floating-Body-Kanal aufweisend betrachtet werden, da die Länge des Kanals nicht auf einem Substrat ausgebildet ist. Weiterhin wird die NAND-Kette durch eine Vielzahl von Wortleitungsschichten bereitgestellt, die übereinander in einem Stapel angeordnet und durch dielektrische Schichten voneinander getrennt sind.
  • 8A veranschaulicht eine Draufsicht auf eine beispielhafte Wortleitungsschicht WLLO des Stapels von 7B. Wie vorstehend erwähnt, kann eine 3D Speichervorrichtung einen Stapel aus abwechselnd leitenden und dielektrischen Schichten umfassen. Die leitenden Schichten stellen die Steuer-Gates der SG-Transistoren und Speicherzellen bereit. Die für die SG-Transistoren verwendeten Schichten sind SG-Schichten, und die für die Speicherzellen verwendeten Schichten sind Wortleitungsschichten. Ferner sind im Stapel Speicherlöcher gebildet und mit einem Ladungseinfangmaterial und einem Kanalmaterial gefüllt. Dadurch wird eine vertikale NAND-Kette gebildet. Sourceleitungen sind mit den NAND-Ketten unter dem Stapel verbunden, und Bitleitungen sind mit den NAND-Ketten über dem Stapel verbunden.
  • Ein Block BLK in einer 3D-Speichervorrichtung kann in Unterblöcke unterteilt werden, wobei jeder Unterblock eine NAND-Kette umfasst, die eine gemeinsame SGD-Steuerleitung aufweist. Siehe zum Beispiel die SGD-Leitungen/Steuergates SGD0, SGD1, SGD2 und SGD3 in den Unterblöcken SBa, SBb, SBc bzw. SBd. Ferner kann eine Wortleitungsschicht in einem Block in Regionen unterteilt sein. Jede Region befindet sich in einem jeweiligen Unterblock und kann sich zwischen Kontaktleitungsverbindern (z. B. Schlitzen) erstrecken, die periodisch im Stapel gebildet werden, um die Wortleitungsschichten während des Herstellungsprozesses der Speichervorrichtung zu verarbeiten. Diese Bearbeitung kann das Ersetzen eines Opfermaterials der Wortleitungsschichten durch Metall einschließen. Im Allgemeinen sollte der Abstand zwischen den Kontaktleitungsverbindern relativ klein sein, um eine Begrenzung der Entfernung zu berücksichtigen, die ein Ätzmittel seitlich zurücklegen kann, um das Opfermaterial zu entfernen, und die das Metall zurücklegen kann, um einen Hohlraum zu füllen, der durch die Entfernung des Opfermaterials entstanden ist. Der Abstand zwischen den Kontaktleitungsverbindern kann zum Beispiel einige Zeilen von Speicherlöchern zwischen benachbarten Kontaktleitungsverbindern zulassen. Das Layout der Speicherlöcher und Kontaktleitungsverbinder sollte auch eine Begrenzung der Anzahl der Bitleitungen berücksichtigen, die sich über die Region erstrecken können, während jede Bitleitung mit einer anderen Speicherzelle verbunden ist. Nach der Bearbeitung der Wortleitungsschichten können die Kontaktleitungsverbinder optional mit Metall gefeilt werden, um eine Verbindung durch den Stapel bereitzustellen.
  • In diesem Beispiel befinden sich vier Zeilen von Speicherlöchern zwischen benachbarten Kontaktleitungsverbindern. Eine Zeile ist hier eine Gruppe von Speicherlöchern, die in x-Richtung ausgerichtet sind. Außerdem befinden sich die Zeilen von Speicherlöchern in einem gestaffelten Muster, um die Dichte der Speicherlöcher zu erhöhen. Die Wortleitungsschicht oder Wortleitung ist in Regionen WLLO a, WLLO b, WLLO c und WLLOd unterteilt, die jeweils durch eine Kontaktleitung 813 verbunden sind. Bei einem Ansatz kann die letzte Region einer Wortleitungsschicht in einem Block mit einer ersten Region einer Wortleitungsschicht in einem nächsten Block verbunden sein. Die Kontaktleitung 813 wiederum ist mit einem Spannungstreiber für die Wortleitungsschicht verbunden. Die Region WLL0a weist entlang einer Kontaktleitung 812 beispielhafte Speicherlöcher 810 und 811 auf. Die Region WLLOb hat beispielhafte Speicherlöcher 814 und 815. Die Region WLLO c weist beispielhafte Speicherlöcher 816 und 817 auf. Die Region WLLO d weist beispielhafte Speicherlöcher 818 und 819 auf. Die Speicherlöcher sind auch in 8B dargestellt. Jedes Speicherloch kann Teil einer entsprechenden NAND-Kette sein. Zum Beispiel können die Speicherlöcher 810, 814, 816 und 818 Teil der NAND-Ketten NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe sein.
  • Jeder Kreis stellt den Querschnitt eines Speicherlochs an einer Wortleitungsschicht oder SG-Schicht dar. Jeder Kreis, der mit gestrichelten Linien gezeigt ist, stellt Speicherzellen dar, die durch die Materialien in dem Speicherloch und durch die benachbarte Wortleitungsschicht bereitgestellt werden. Zum Beispiel sind die Speicherzellen 820 und 821 in WLL0a, die Speicherzellen 824 und 825 in WLL0b, die Speicherzellen 826 und 827 in WLLOc und die Speicherzellen 828 und 829 in WLL0d. Diese Speicherzellen befinden sich auf einer gemeinsamen Höhe in dem Stapel.
  • Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 801, 802, 803 und 804 können sich zwischen und neben den Kanten der Regionen WLLO a-WLL0 d befinden. Die Kontaktleitungsverbinder stellen einen leitenden Pfad von der Unterseite des Stapels zur Oberseite des Stapels bereit. Beispielsweise kann eine Sourceleitung an der Unterseite des Stapels mit einer leitfähigen Leitung über dem Stapel verbunden sein, wobei die leitfähige Leitung mit einem Spannungstreiber in einer peripheren Region der Speichervorrichtung verbunden ist. Siehe auch 9A für weitere Details zu den Unterblöcken SBa-SBd von 8A.
  • 8B veranschaulicht eine Draufsicht auf eine beispielhafte obere dielektrische Schicht DL19 des Stapels von 7B. Die dielektrische Schicht ist in die Regionen DL19 a, DL19 b, DL19 c und DL19d unterteilt. Jede Region kann mit einem jeweiligen Spannungstreiber verbunden sein. Dies ermöglicht, dass ein Satz von Speicherzellen in einer Region einer Wortleitungsschicht gleichzeitig programmiert wird, wobei jede Speicherzelle in einer jeweiligen NAND-Kette ist, die mit einer jeweiligen Bitleitung verbunden ist. Eine Spannung kann auf jeder Bitleitung eingestellt werden, um die Programmierung während jeder Programmierspannung zu ermöglichen oder zu unterbinden.
  • Die Region DL19a weist die beispielhaften Speicherlöcher 810 und 811 entlang einer Kontaktleitung 812a auf, die mit einer Bitleitung BL0 zusammenfällt. Eine Anzahl von Bitleitungen erstreckt sich über die Speicherlöcher und ist mit den Speicherlöchern verbunden, wie durch die „X“-Symbole angedeutet. BL0 ist mit einem Satz von Speicherlöchern verbunden, der die Speicherlöcher 811, 815, 817 und 819 einschließt. Eine andere beispielhafte Bitleitung BL1 ist mit einem Satz von Speicherlöchern verbunden, der die Speicherlöcher 810, 814, 816 und 818 einschließt. Die Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 801, 802, 803 und 804 aus 8A sind ebenfalls veranschaulicht, da sie sich vertikal durch den Stapel erstrecken. Die Bitleitungen können in einer Reihenfolge BL0-BL23 über die DL19-Schicht in -x-Richtung nummeriert werden.
  • Unterschiedliche Untersätze von Bitleitungen sind mit Speicherzellen in verschiedenen Zeilen verbunden. Zum Beispiel sind BL0, BL4, BL8, BL12, BL16 und BL20 mit Speicherzellen in einer ersten Zeile von Zellen am rechten Rand jeder Region verbunden. BL2, BL6, BL10, BL14, BL18 und BL22 sind mit Speicherzellen in einer benachbarten Zeile von Zellen verbunden, die an die erste Zeile am rechten Rand angrenzt. BL3, BL7, BL11, BL15, BL19 und BL23 sind mit Speicherzellen in einer ersten Zeile von Zellen am linken Rand jeder Region verbunden. BL1, BL5, BL9, BL13, BL17 und BL21 sind mit Speicherzellen in einer benachbarten Zeile von Speicherzellen verbunden, die an die erste Zeile am linken Rand angrenzt.
  • 9A veranschaulicht beispielhafte NAND-Ketten in den Unterblöcken SBa-SBe von 8A. Die Unterblöcke entsprechen der Struktur von 7B. Die leitenden Schichten im Stapel sind zur Veranschaulichung auf der linken Seite dargestellt. Jeder Unterblock schließt mehrere NAND-Ketten ein, wobei eine beispielhafte NAND-Kette veranschaulicht wird. Zum Beispiel umfasst SBa eine beispielhafte NAND-Kette NS0, SBb umfasst eine beispielhafte NAND-Kette NS1, SBc umfasst eine beispielhafte NAND-Kette NS2, SBd umfasst eine beispielhafte NAND-Kette NS3, und SBe umfasst eine beispielhafte NAND-Kette NS4.
  • Zusätzlich schließen NS0_SBa SGS-Transistoren 900 und 901, Dummy-Speicherzellen 902 und 903, Datenspeicherzellen 904, 905, 906, 907, 908, 909, 910, 911, 912, 913 und 914, Dummy-Speicherzellen 915 und 916 sowie SGD-Transistoren 917 und 918 ein.
  • NS1_SBb schließen SGS-Transistoren 920 und 921, Dummy-Speicherzellen 922 und 923, Datenspeicherzellen 924, 925, 926, 927, 928, 929, 930, 931, 932, 933 und 934, Dummy-Speicherzellen 935 und 936 sowie SGD-Transistoren 937 und 938 ein.
  • NS2_SBc schließen SGS-Transistoren 940 und 941, Dummy-Speicherzellen 942 und 843, Datenspeicherzellen 944, 945, 946, 947, 948, 949, 950, 951, 952, 953 und 954, Dummy-Speicherzellen 955 und 956 sowie SGD-Transistoren 957 und 958 ein.
  • NS3_SBd schließen SGS-Transistoren 960 und 961, Dummy-Speicherzellen 962 und 963, Datenspeicherzellen 964, 965, 966, 967, 968, 969, 970, 971, 972, 973 und 974, Dummy-Speicherzellen 975 und 976 sowie SGD-Transistoren 977 und 978 ein.
  • NS4_SBe schließen SGS-Transistoren 980 und 981, Dummy-Speicherzellen 982 und 983, Datenspeicherzellen 984, 985, 986, 987, 988, 989, 980, 981, 982, 983 und 984, Dummy-Speicherzellen 985 und 986 sowie SGD-Transistoren 987 und 988 ein.
  • Bei einer bestimmten Höhe im Block befinden sich die Speicherzellen in jedem Unterblock auf einer gemeinsamen Höhe. Zum Beispiel gehört ein Satz von Speicherzellen (einschließlich der Speicherzelle 904) zu einer Vielzahl von Speicherzellen, die entlang verjüngter Speicherlöcher in einem Stapel aus abwechselnd leitenden und dielektrischen Schichten gebildet werden. Der eine Satz von Speicherzellen befindet sich auf einer bestimmten Höhe z0 in dem Stapel. Ein anderer Satz von Speicherzellen (einschließlich der Speicherzelle 924), die mit der einen Wortleitung (WLLO) verbunden sind, befinden sich ebenfalls auf der bestimmten Höhe. In einem anderen Ansatz befindet sich ein anderer Satz von Speicherzellen (z. B. einschließlich der Speicherzelle 912), die mit einer anderen Wortleitung (z. B. WLL8) verbunden sind, auf einer anderen Höhe (z8) im Stapel.
  • 9B veranschaulicht eine andere beispielhafte Ansicht von NAND-Ketten in Unterblöcken. Die NAND-Ketten schließen NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe ein, die 48 Wortzeilen aufweisen (z. B. WL0-WL47). Jeder Unterblock umfasst NAND-Ketten-Gruppen, die sich in x-Richtung erstrecken und die eine gemeinsame SGD-Leitung aufweisen, z. B. SGD0, SGD1, SGD2, SGD3, oder SGD4. In diesem vereinfachten Beispiel gibt es nur einen SGD-Transistor und einen SGS-Transistor in jeder NAND-Kette. Die NAND-Ketten NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe befinden sich jeweils in den Unterblöcken SBa, SBb, SBc, SBd und SBe. Ferner sind beispielhaft Gruppen von Wortleitungen G0, G1 und G2 veranschaulicht.
  • 10 veranschaulicht eine Wellenform eines beispielhaften Programmiervorgangs. Die horizontale Achse veranschaulicht die Programmschleifennummern und die vertikale Achse veranschaulicht die Programmspannungswerte und die Programmverifizierungswerte. Eine Programmspannung (Vpgm) kann eine Wortleitungsspannung (WLVpgm) und/oder eine Bitleitungsspannung (BLVpgm) einschließen. Im Allgemeinen kann ein Programmiervorgang das Anlegen einer Impulsfolge an eine ausgewählte Wortleitung beinhalten, wobei die Impulsfolge mehrere Programmverifizierungsiterationen (PV) einschließt. Der Programmabschnitt einer PV-Iteration umfasst die Programmspannung und der Verifizierungsabschnitt der PV-Iteration umfasst eine oder mehrere Verifizierungsspannungen.
  • Für jede Programmspannung ist der Einfachheit halber eine Rechteckwellenform veranschaulicht, obwohl auch andere Formen möglich sind, wie beispielsweise eine mehrstufige Form oder eine Rampenform. Ferner wird in diesem Beispiel die inkrementelle Schrittimpulsprogrammierung (ISPP) verwendet, bei der die Programmspannung in jeder aufeinanderfolgenden Programmschleife ansteigt. In diesem Beispiel wird ISPP in einem einzigen Programmierschritt verwendet, in dem die Programmierung abgeschlossen wird. ISPP kann auch in jedem Programmierschritt eines mehrstufigen Vorgangs verwendet werden.
  • Eine Impulsfolge schließt üblicherweise Programmspannungen ein, deren Amplitude bei jeder Programmverifizierungsiteration unter Verwendung einer Spannungsvorspannung (dVpgm) schrittweise ansteigt. Die Vorspannung kann zum Beispiel eine Wortleitungsvorspannung sein. In jedem Programmierschritt eines mehrstufigen Programmverifizierungsvorgangs kann eine neue Impulsfolge angelegt werden, die bei einer anfänglichen Programmspannung (z. B. einer anfänglichen Vpgm) beginnt und bei einer endgültigen Programmspannung (z. B. einer endgültigen Vpgm) endet, die eine Schwellenspannung Vth (z. B. einen maximal zulässigen Wert) nicht überschreitet. Die Anfangsprogrammspannungen können in verschiedenen Programmierschritten gleich oder unterschiedlich sein. Die endgültigen Programmspannungen können auch in verschiedenen Programmierschritten gleich oder unterschiedlich sein. Die Vorspannungen können in den verschiedenen Programmierschritten gleich oder unterschiedlich sein. In einigen Fällen wird in einem endgültigen Programmierschritt eine kleinere Vorspannung verwendet, um die Breite der Vth-Verteilung zu verringern.
  • Die Impulsfolge 1000 schließt eine Reihe von Programmierspannungen 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014 und 1015 ein, die an eine für die Programmierung ausgewählte Wortleitung angelegt werden, sowie einen zugehörigen Satz von nichtflüchtigen Speicherzellen. Im gezeigten Beispiel werden nach jeder Programmspannung eine, zwei oder drei Verifizierungsspannungen bereitgestellt, zum Beispiel basierend auf einer Anzahl von Zieldatenzuständen, die verifiziert werden. Die Anzahl der zu verifizierenden Zieldatenzustände kann zum Beispiel einer Anzahl von Speicherzellen entsprechen, die der Wortleitung zugeordnet sind. Durch Anlegen von 0 V an die gewählte Wortleitung zwischen der Programmspannung und der Verifizierungsspannung kann eine Programmspannung und eine entsprechende Verifizierungsspannung getrennt werden.
  • Im gezeigten Beispiel kann eine A-Zustands-Verifizierungsspannung von VvA (z. B. Wellenform oder Programmiersignal 1016) nach jeder der ersten, zweiten und dritten Programmierspannungen 1001, 1002 bzw. 1003 angelegt werden. A- und B-Zustand verifizierende Spannungen von VvA und VvB (z. B. das Programmiersignal 1017) können nach jeder der vierten, fünften und sechsten Programmierspannungen 1004, 1005 bzw. 1006 angelegt werden. A-, B- und C-Zustand verifizierende Spannungen von VvA, VvB und VvC (z. B. das Programmiersignal 1018) können nach jeder der siebten und achten Programmierspannungen 1007 bzw. 1008 angelegt werden. B- und C-Zustand verifizierende Spannungen von VvB und VvC (z. B. das Programmiersignal 1019) können nach jeder der neunten, zehnten und elften Programmierspannungen 1009, 1010 bzw. 1011 angelegt werden. Schließlich kann nach jeder der zwölften, dreizehnten, vierzehnten und fünfzehnten Programmierspannungen 1012, 1013, 1014 und 1015 eine C-Zustands-Verifizierungsspannung von VvC (z. B. das Programmiersignal 1020) angelegt werden.
  • In einigen Ausführungsformen kann die Speichervorrichtung 100 (z. B. unter Verwendung der Zustandsmaschine 112 der Steuerschaltung 110, der Steuerung 122 und/oder der Steuerschaltung 150) verschiedene Programmspannungen und/oder verschiedene Programmvorspannungen verwenden, um den Verifizierungsvorgang durchzuführen. In einigen Ausführungsformen können eine Programmspannung und eine Programmvorspannung, die zur Durchführung des Programmiervorgangs verwendet werden, eine Wortleitungsspannung bzw. eine Wortleitungsvorspannung einschließen. Zusätzlich oder alternativ können die Programmspannung und die Vorspannung der Programmspannung, die zur Durchführung des Programmiervorgangs verwendet werden, eine Bitleitungsspannung bzw. eine Bitleitungsvorspannung einschließen.
  • 11A-11G veranschaulichen eine beispielhafte Speichervorrichtung zur Verifizierung, ob Speicherzellen programmiert wurden, indem selektiv zwischen verschiedenen Typen von Verifizierungstechniken umgeschaltet wird. Zum Beispiel veranschaulichen 11A-11G eine oder mehrere Ausführungsformen 1100 einer nichtflüchtigen Speichervorrichtung 1102, die eine Steuerschaltung 1104 und ein Speicherzellenarray 1106 einschließt. Das Speicherzellenarray 1106 kann einen Satz von Speicherzellen einschließen, die über Wortleitungen und Bitleitungen verbunden sind. Die Steuerschaltung 1104 kann eine Zustandsmaschine einschließen, die mit den Speicherzellen im Speicherzellenarray 1106 kommunizieren kann. Die Speicherzellen der ausgewählten Wortleitung (dargestellt als WLg) können die Speicherzellen (MC) A, MC B, MC C und MC D einschließen. Die ausgewählte Wortleitung kann mit einem Satz von Bitleitungen verbunden sein, die die Bitleitung (BL) 0, BL 1, BL 2 und BL 3 einschließen. Die Steuerschaltung 1104 kann die Speicherzellen unter Verwendung verschiedener Verifizierungstechniken für verschiedene Iterationen eines Verifizierungsvorgangs verifizieren, wie hierin ferner beschrieben wird.
  • Wie in 11A mit der Referenznummer 1108 gezeigt, kann die Steuerschaltung 1104 einen Satz von Datenzuständen für den Satz von Speicherzellen der ausgewählten Wortleitung identifizieren. In einigen Ausführungsformen kann die Steuerschaltung 1104 Programmbefehlsdaten empfangen (z. B. von einer Steuerung, die mit der nichtflüchtigen Speichervorrichtung verbunden ist) und die Programmbefehlsdaten können Speicherzellen und/oder Datenzustände spezifizieren, in die jede jeweilige Speicherzelle programmiert werden soll. Zusätzlich oder alternativ kann die Steuerschaltung die Datenzustände identifizieren, indem sie einen oder mehrere Lesevorgänge durchführt (manchmal auch als Erfassungsvorgänge bezeichnet). Zum Beispiel kann die Steuerschaltung einen Lesevorgang durchführen, der das Bereitstellen eines Signals an einen Haltespeicher einer Speicherzelle einschließt. Das Signal kann den Haltespeicher veranlassen, der Steuerschaltung ein Rücksignal bereitzustellen, mit dem der Datenzustand identifiziert werden kann. Die Steuerschaltung kann einen Lesevorgang für jede einzelne Speicherzelle durchführen, die mit der ausgewählten Wortleitung verbunden ist.
  • Wie unter der Referenznummer 1110 dargestellt, kann die Steuerschaltung 1104 einen Programmiervorgang durchführen, um mit der Programmierung der Speicherzellen der ausgewählten Wortleitung zu beginnen. Eine Beschreibung des Programmiervorgangs wird an anderer Stelle in diesem Dokument bereitgestellt.
  • Wie in 11B mit der Referenznummer 1112 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie eine schnell programmierbare Verifizierungstechnik für eine erste Iteration eines Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so vorkonfiguriert werden, dass bei einer Initialisierungsprozedur (z. B. einer Boot-Up-Prozedur) die Steuerschaltung 1104 so initialisiert wird, dass sie eine Verifizierungstechnik zur schnellen Programmierung verwendet. In einigen Ausführungsformen kann die Initialisierungsprozedur auch einen oder mehrere interne Datenzustände und/oder zugehörige Parameter initialisieren.
  • Der Satz an Verfizierungstechniken kann zum Beispiel eine oder mehrere schnell programmierende Verifizierungstechniken und eine oder mehrere präzisionsbasierte Verifizierungstechniken einschließen. Die eine oder mehrere schnell programmierende Verifizierungstechniken können eine grobe Schnelldurchlauf-Schreibtechnik (QPW), eine Floating-QPW-Technik (FQPW), eine Smart-QPW-Technik (SQPW) und/oder dergleichen einschließen. Die eine oder mehreren präzisionsbasierten Verifizierungstechniken können eine iQPW-Verifizierungstechnik und/oder einen ähnlichen Typ von genauer Programmiertechnik einschließen. Die schnell programmierende Verifizierungstechnik kann weniger genau sein als die präzisionsbasierte Verifizierungstechnik, aber eine schnellere Ausführungszeit haben, während die präzisionsbasierte Verifizierungstechnik genauer sein kann, aber eine langsamere Ausführungszeit haben kann.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik verwendet, basierend darauf, dass die Iteration des Verifizierungsvorgangs eine erste Iteration ist. Die Steuerschaltung 1104 kann zum Beispiel für jeden zu verifizierenden Datenzustand so eingerichtet werden, dass sie verschiedene Verifizierungstechniken für verschiedene Iterationen des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik für eine erste Iteration und für eine letzte Iteration des Verifizierungsvorgangs für jede Speicherzelle verwendet. In diesem Beispiel kann die Steuerschaltung 1104 so eingerichtet werden, dass die präzisionsbasierte Programmiertechnik für Iterationen verwendet wird, die zwischen der ersten und der letzten Iteration stattfinden. In einigen Ausführungsformen, wie beispielsweise wenn es sich bei den Speicherzellen um Vierfachzellen (QLCs) handelt, kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik für die erste und zweite Iteration sowie für die vorletzte und endgültige Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 verwendet die schnell programmierende Verifizierungstechnik für die äußersten Iterationen (z. B. eine erste und eine letzte Iteration), wenn eine Schwellenspannungsverteilung (Vth) einer Speicherzelle eine Position in einer natürlichen Schwellenspannungsverteilung (NVD) aufweist, die einem oberen und unteren Schwanz der NVD entspricht.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik nutzen, indem sie eine Datenstruktur (z. B. eine Nachschlagetabelle) referenziert, die mit den Speicherzellen der ausgewählten Wortleitung verbunden ist. Um zum Beispiel eine Verifizierungstechnik zu verwenden, um den Datenzustand A zu verifizieren, kann die Steuerschaltung 1104 auf einen Nachschlagetabellenwert verweisen, der mit der Speicherzelle A verbunden ist. Die Nachschlagetabelle kann einen Satz von Nachschlagetabellenwerten einschließen, die verwendet werden, um eine bestimmte Iteration der Verifizierungstechnik mit einer bestimmten Verifizierungstechnik zu verbinden (z. B. die schnell programmierende Verifizierungstechnik, die präzisionsbasierte Verifizierungstechnik usw.). Zum Beispiel kann die Nachschlagetabelle einen ersten Nachschlagetabellenwert (z. B. einen Bitwert von Eins) einschließen, der der schnell programmierenden Verifizierungstechnik entspricht, und einen zweiten Nachschlagetabellenwert (z. B. einen Bitwert von Null), der der präzisionsbasierten Verifizierungstechnik entspricht. In einigen Ausführungsformen kann die Nachschlagetabelle dem Satz von Speicherzellen entsprechen. In einigen Ausführungsformen können mehrere Nachschlagetabellen implementiert werden, die dem Satz von Speicherzellen entsprechen können.
  • Die Steuerschaltung 1104 kann zum Beispiel auf ein erstes Feld der Nachschlagetabelle verweisen. Das erste Feld, das der ersten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von eins speichern, wobei der Nachschlagetabellenwert der schnell programmierenden Verifizierungstechnik entspricht. Da also das erste Feld in der Nachschlagetabelle den Nachschlagetabellenwert Eins aufweist, ist die Steuerschaltung 1104 in der Lage, unter Verwendung der schnell programmierenden Verifizierungstechnik zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik verwenden, die auf der Referenzierung eines Flag-Registers basiert. Wenn es sich bei den Speicherzellen zum Beispiel um TLCs handelt und die Nachschlagetabelle ein Flag-Register ist, kann für jeden Datenzustand ein Flag-Bit reserviert sein (z. B. kann es sieben Flag-Bits geben, die sieben Datenzuständen entsprechen). Da bestimmte Datenzustände erst dann mit der Verifizierung beginnen, wenn bestimmte konfigurierte Programmieriterationen durchgeführt werden, können die Flag-Bits basierend auf der Durchführung bestimmter konfigurierter Programmieriterationen von den Werten Null auf die Werte Eins erhöht werden. Als konkretes Beispiel kann ein Flag-Register die folgenden Werte aufweisen: [00 0 0 0 0 0]. Nachdem die erste Iteration durchgeführt wurde, kann das Flag-Register inkrementiert werden, um die folgenden Werte zu erhalten: [1 0 0 0 0 0 0]. Dies signalisiert, dass die schnell programmierende Verifizierungstechnik nach der ersten Iteration der Programmierung durchgeführt wird. Wenn zum Beispiel die Verifizierung des Datenzustands B so eingerichtet ist, dass sie während einer vierten Iteration beginnt, dann kann das Flag-Register nach der vierten Iteration der Programmierung so aktualisiert werden, dass es die folgenden Werte aufweist: [1 1 0 0 0 0 0]. Auf diese Art und Weise ermöglicht das Flag-Register der Steuerschaltung 1104 zu bestimmen, wann die schnell programmierende Verifizierungstechnik durchgeführt werden soll.
  • Die Verwendung einer Verifizierungstechnik kann sich darauf beziehen, dass ein oder mehrere Verifizierungsspannungswerte, die dieser Verifizierungstechnik entsprechen, eingerichtet, ausgewählt oder identifiziert werden. Zum Beispiel kann die schnell programmierende Verifizierungstechnik und die präzisionsbasierte Verifizierungstechnik das Verifizieren von Speicherzellen unter Verwendung unterschiedlicher Verifizierungsspannungen, unterschiedlicher Vorspannungen der Bitleitungen, unterschiedlicher Lesezeiten und/oder dergleichen beinhalten. Die schnell programmierende Verifizierungstechnik kann einen ersten Satz von Vorspannungen der Bitleitungen oder einen ersten Satz von Erfassungszeiten einschließen. Die präzisionsbasierte Verifizierungstechnik kann einen zweiten Satz von Vorspannungen der Bitleitungen oder einen zweiten Satz von Erfassungszeiten einschließen. Die Vorspannungen oder Erfassungszeiten können zur Steuerung (z. B. Beschleunigung, Verlangsamung usw.) eines Satzes von Verifizierungsspannungen verwendet werden, die den Speicherzellen über die ausgewählte Wortleitung bereitgestellt werden. In einigen Ausführungsformen, wie beispielsweise, wenn eine Verifizierungstechnik eine Verlangsamung der Geschwindigkeit beinhaltet, mit der eine Speicherzelle programmiert wird, kann die Verifizierungstechnik eine oder mehrere Programmspannungen (z. B. Vpgm), eine oder mehrere Programmvorspannungen (z. B. dVpgm) und/oder dergleichen einschließen. Zusätzliche Informationen zur Durchführung von Verifizierungstechniken werden an anderer Stelle in diesem Dokument bereitgestellt (z. B. in Verbindung mit 13 usw.).
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 mit Werten für die Vorspannung oder die Erfassungszeit (Ladezeit) für die jeweiligen Verifizierungstechniken eingerichtet sein (oder Zugriff darauf haben). In einigen Ausführungsformen kann eine Datenstruktur, auf die die Steuerschaltung 1104 zugreifen kann, die Vorspannungswerte oder die Erfassungszeitwerte mit einem Iterationszähler, der eine aktuelle Iteration des Verifizierungsvorgangs identifiziert, einem Iterationsstoppzähler, der eine endgültige Iteration des Verifizierungsvorgangs (oder eine vorhergesagte abschließende Iteration) identifiziert, einer Speicherzellenkennung für eine zu verifizierende Speicherzelle, einer Datenzustandskennung für einen Datenzustand, in den die Speicherzelle programmiert wird, und/oder dergleichen verbinden. Zusätzlich oder alternativ können die Werte für die Vorspannung oder die Erfassungszeit unter Verwendung einer separaten Datenstruktur oder Vorrichtung gespeichert werden.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 mit Anweisungen eingerichtet werden, die eine anfängliche Verifizierungsspannung angeben. Folglich muss die Steuerschaltung 1104 möglicherweise erst in einer zweiten Iteration des Verifizierungsvorgangs auf die Datenstruktur verweisen, um eine geeignete Vorspannung oder Erfassungszeit zu identifizieren. Auf diese Art und Weise spart die Steuerschaltung 1104 Ressourcen (z.B. Verarbeitungsressourcen, Leistungsressourcen usw.) im Vergleich zu der Notwendigkeit, die Datenstruktur zu referenzieren, um die anfängliche Verifizierungsspannung zu identifizieren.
  • Wie unter der Referenznummer 1114 gezeigt, kann die Steuerschaltung 1104 die Verifizierungstechnik der schnellen Programmierung verwenden, um die erste Iteration des Verifizierungsvorgangs durchzuführen. Die Steuerschaltung 1104 kann zum Beispiel eine erste Bitleitungs-Vorspannung an eine Bitleitung anlegen, die mit der Speicherzelle A verbunden ist (z. B. BL 0), kann eine anfängliche Verifizierungsspannung an die ausgewählte Wortleitung anlegen und/oder kann verifizieren, ob die Speicherzelle A eine Schwellenspannung Vth über der anfänglichen Verifizierungsspannung hat. Durch Anlegen der ersten Bitleitungs-Vorspannung an die Speicherzelle A bewirkt die Steuerschaltung 1104 eine Änderung einer Spannung (z. B. eine Steuergate-Spannung (VCG), eine Verifizierungsspannung usw.), die an einem Steuergate der Speicherzelle A anliegt.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmte Speicherzellen selektiv daran hindern, Verifizierungsspannungen zu empfangen. Zum Beispiel ist es unwahrscheinlich, dass bestimmte Speicherzellen nach einer Iteration die Programmierung abgeschlossen haben. Die Steuerschaltung 1104 kann daher so eingerichtet werden, dass diese Speicherzellen bis zu nachfolgenden Iterationen des Verifizierungsvorgangs am Empfang von Verifizierungsimpulsen gehindert werden. Auf diese Art und Weise werden Ressourcen (z. B. Verarbeitungsressourcen, Leistung usw.) geschont, die sonst für die Verifizierung von noch nicht vollständig programmierten Speicherzellen verschwendet würden.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik während einer ersten und letzten Iteration verwendet, während der ein Datenzustand jeder jeweiligen Speicherzelle verifiziert wird. In einigen Ausführungsformen kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik auf der Grundlage einer Vth mit einer Position in der NVD verwendet, die dem unteren Ende oder dem oberen Ende entspricht. In einigen Ausführungsformen kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die präzisionsbasierte Verifizierungstechnik während einer zweiten Iteration bis zu einer vorletzten Iteration des Verifizierungsvorgangs verwendet.
  • In einigen Ausführungsformen kann die Gesamtzahl der Verifizierungsvorgänge, die für jeden Datenzustand durchzuführen sind, vorbestimmt oder vorhergesagt werden. In diesem Fall kann die Steuerschaltung 1104 auf einen Iterationszähler verweisen, so dass die Steuerschaltung 1104 in der Lage ist, Aktionen auf der Grundlage einer bestimmten Iteration des Verifizierungsvorgangs, der gerade ausgeführt wird, durchzuführen. In einigen Ausführungsformen kann die Steuerschaltung 1104 einen Iterationszähler basierend auf der Durchführung des Programmiervorgangs (oder des Verifizierungsvorgangs) aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel auf eine Datenstruktur verweisen und den Iterationszähler inkrementieren, um eine aktuelle Iteration des Verifizierungsvorgangs zu verfolgen. Die Datenstruktur kann Teil des Flag-Registers sein oder von einer anderen Vorrichtung oder Komponente unterstützt werden.
  • Im gezeigten Beispiel kann die Steuerschaltung 1104 den Iterationszähler von einem Wert von Null auf einen Wert von Eins aktualisieren. Durch Aktualisieren des Iterationszählers kann die Steuerschaltung 1104 unter Verwendung des im Iterationszähler gespeicherten Wertes feststellen, welches Feld in den jeweiligen Flag-Registern gelesen werden muss, um geeignete Verifizierungsspannungswerte für den Verifizierungsvorgang zu ermitteln. Wenn der Iterationszähler zum Beispiel den Wert eins hat, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie einen Lesevorgang durchführt, um das erste Feld von einem oder mehreren Flag-Registern zu lesen.
  • Wie beschrieben, kann der Iterationszähler einen Wert aufzeichnen, der die Gesamtzahl der durchgeführten Iterationen des Verifizierungsvorgangs darstellt. Zusätzlich oder alternativ kann der Iterationszähler einen Wert verfolgen, der eine Anzahl von Versuchen darstellt, einen bestimmten Datenzustand einer Speicherzelle zu verifizieren. In einigen Ausführungsformen kann die Steuerschaltung 1104 eine Position des unteren Schwanzes des NVD basierend auf den Erfassungsergebnissen bestimmen.
  • Auf diese Art und Weise führt die Steuerschaltung 1104 die erste Iteration des Verifizierungsvorgangs unter Verwendung der schnell programmierenden Verifizierungstechnik durch.
  • Wie in 11C mit der Referenznummer 1116 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die präzisionsbasierte Verifizierungstechnik für eine zweite Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die präzisionsbasierte Verifizierungstechnik verwendet, indem sie auf eine Nachschlagetabelle oder ein Flag-Register verweist, um zu verifizieren, dass eine aktuelle Iteration keine erste Iteration des Verifizierungsvorgangs ist, und indem sie während der aktuellen Iteration verifiziert, dass eine Vth eines Speichers keine Position in einer NVD hat, die einem unteren Ende der NVD entspricht (wie hierin ferner beschrieben). Die präzisionsbasierte Verifizierungstechnik kann einen zweiten Satz von Verifizierungsspannungen, einen zweiten Satz von Vorspannungen der Bitleitungen, einen zweiten Satz von Erfassungszeiten und/oder dergleichen verwenden.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 die Verwendung der präzisionsbasierten Verifizierungstechnik basierend auf der Referenzierung der Datenstruktur (z. B. der Nachschlagetabelle), die mit den Speicherzellen verbunden ist, bestimmen. Um zum Beispiel eine Verifizierungstechnik zu verwenden, um zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde, kann die Steuerschaltung 1104 auf ein zweites Feld der Nachschlagetabelle verweisen. Das zweite Feld, das der zweiten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von Null speichern, wobei der Nachschlagetabellenwert der präzisionsbasierten Verifizierungstechnik entspricht. Da also das zweite Feld in der Nachschlagetabelle den Nachschlagetabellenwert Null hat, kann die Steuerschaltung 1104 unter Verwendung der präzisionsbasierten Verifizierungstechnik verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob eine aktuelle Iteration des Verifizierungsvorgangs die erste Iteration ist. Die Steuerschaltung 1104 kann zum Beispiel auf ein Flag-Register verweisen, das Flag-Bit-Werte aufweist, die den Datenzuständen entsprechen, und kann bestimmen, dass die aktuelle Iteration nicht die erste Iteration ist, basierend auf einem oder mehreren der Flag-Bit-Werte, die Werte von Eins aufweisen (z. B. kann ein Wert von Null anzeigen, dass eine aktuelle Iteration eine erste Iteration ist, und kann auf einen Wert von Eins inkrementiert werden, nachdem die erste Iteration abgeschlossen wurde). Dadurch kann die Steuerschaltung 1104 bestätigen, dass die aktuelle Iteration nicht die erste Iteration des Verifizierungsverfahrens ist. Wie im Folgenden anhand einer oder mehrerer Techniken gezeigt wird, kann die Steuerschaltung 1104 dann eine zweite Verifizierung durchführen, um zu verifizieren, ob die aktuelle Iteration eine endgültige Iteration des Verifizierungsvorgangs ist, und kann die präzisionsbasierte Verifizierungstechnik durchführen, wenn die aktuelle Iteration nicht die endgültige Iteration ist.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob die aktuelle Iteration des Verifizierungsvorgangs wahrscheinlich eine endgültige Iteration ist. Die Steuerschaltung 1104 kann zum Beispiel auf einen Iterationszähler verweisen, der nach jeder aufeinanderfolgenden Iteration des Verifizierungsvorgangs inkrementiert wird. In diesem Fall kann die Steuerschaltung 1104 mit einem Wert eingerichtet werden, der eine Gesamtzahl von Iterationen identifiziert, und kann den Iterationszählerwert mit dem Wert vergleichen, der die endgültige Iteration identifiziert (oder die Gesamtzahl der Iterationen identifiziert), um festzustellen, ob die aktuelle Iteration die endgültige Iteration ist. Wenn die aktuelle Iteration die endgültige Iteration ist, kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik durchführen. Wenn die aktuelle Iteration nicht die endgültige Iteration ist, kann die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik durchführen.
  • Im gezeigten Beispiel kann der Iterationszähler einen Wert aufweisen, der angibt, dass die aktuelle Iteration die zweite Iteration ist. Die Steuerschaltung 1104 kann den Iterationszähler mit einem eingerichteten Wert vergleichen, der die endgültige Iteration identifiziert, feststellen, dass die aktuelle Iteration nicht die endgültige Iteration ist, und, wie hierin ferner beschrieben, die präzisionsbasierte Verifizierungstechnik basierend auf der Feststellung durchführen.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für die jeweiligen Datenzustände ermitteln, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben. Die Steuerschaltung 1104 kann zum Beispiel für jeden Datenzustand bestimmte Speicherzellen ermitteln, die den Programmverifizierungsvorgang noch nicht abgeschlossen haben. In diesem Fall kann die Steuerschaltung 1104 (z. B. unter Verwendung oder Bezugnahme auf eine Zählschaltung) einen Erkennungsvorgang durchführen, der eine Anzahl von Speicherzellen zählt, die noch nicht vollständig programmiert sind.
  • Wenn die Anzahl der noch zu programmierenden Speicherzellen ein Schwellenwertkriterium nicht erfüllt, kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik durchführen. Wenn zum Beispiel das Schwellenwertkriterium lautet, dass noch mindestens zwei Speicherzellen zu programmieren sind und nur noch ein Speicher zu programmieren ist, erfüllt die Anzahl der Speicherzellen das Schwellenwertkriterium nicht und die Steuerschaltung 1104 kann die schnell programmierende Verifizierungstechnik durchführen. Wenn die Anzahl der noch zu programmierenden Speicherzellen die Schwellenwertkriterien erfüllt, kann die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik durchführen. Wenn zum Beispiel das Schwellenwertkriterium lautet, dass noch mindestens zwei Speicherzellen zu programmieren sind, und fünf Speicherzellen zu programmieren sind, erfüllt die Anzahl der Speicherzellen das Schwellenwertkriterium und die Steuerschaltung 1104 kann die präzisionsbasierte Verifizierungstechnik durchführen.
  • Im gezeigten Beispiel kann die Steuerschaltung 1104 die Anzahl der noch zu programmierenden Speicherzellen mit der Gesamtanzahl der Speicherzellen für jeden Datenzustand vergleichen. In diesem Fall kann die Steuerschaltung 1104 die Durchführung der präzisionsbasierten Verifizierungstechnik auf der Grundlage der Anzahl der Speicherzellen bestimmen, die die Programmierung noch nicht abgeschlossen haben und ein Schwellenwertkriterium erfüllen, wie beispielsweise ein Kriterium, dass noch mindestens zwei Speicherzellen zu programmieren sind.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für die jeweiligen Datenzustände ermitteln, welche Speicherzellen die Programmierung abgeschlossen haben. Die Steuerschaltung 1104 kann zum Beispiel nicht feststellen, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben, sondern welche Speicherzellen die Programmierung bereits abgeschlossen haben.
  • Wie unter der Referenznummer 1118 dargestellt, kann die Steuerschaltung 1104 die zweite Iteration des Verifizierungsvorgangs durchführen. Die Steuerschaltung 1104 kann zum Beispiel die zweite Iteration des Verifizierungsvorgangs durchführen, indem sie eine erste Bitleitungs-Vorspannung aus dem zweiten Satz von Bitleitungs-Vorspannungen an eine Bitleitung anlegt, die mit der Speicherzelle A verbunden ist, indem sie eine zweite Verifizierungsspannung aus dem Satz von Verifizierungsspannungen an die ausgewählte Wortleitung anlegt und/oder indem sie verifiziert, ob die Speicherzelle A eine Schwellenspannung über der zweiten Verifizierungsspannung hat.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 den Iterationszähler basierend auf der Durchführung der zweiten Iteration des Verifizierungsvorgangs aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel den Iterationszähler inkrementieren, um eine aktuelle Iteration des Verifizierungsvorgangs zu verfolgen. Im gezeigten Beispiel kann die Steuerschaltung 1104 den Iterationszähler von einem Wert von eins auf einen Wert von zwei aktualisieren.
  • Auf diese Art und Weise verwendet die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik, um die zweite Iteration des Verifizierungsvorgangs durchzuführen.
  • Wie in 11D mit der Referenznummer 1120 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die präzisionsbasierte Verifizierungstechnik für eine dritte Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die präzisionsbasierte Verifizierungstechnik verwendet, indem sie auf die Nachschlagetabelle oder das Flag-Register verweist, um zu verifizieren, dass eine aktuelle Iteration keine erste Iteration des Verifizierungsvorgangs ist, und indem sie während der aktuellen Iteration verifiziert, dass eine Vth eines Speichers keine Position in einer NVD hat, die einem unteren Schwanz der NVD entspricht. Die präzisionsbasierte Verifizierungstechnik kann den zweiten Satz von Vorspannungen der Bitleitungen oder den zweiten Satz von Erfassungszeiten verwenden.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 die Verwendung der präzisionsbasierten Verifizierungstechnik basierend auf der Referenzierung der Datenstruktur (z. B. der Nachschlagetabelle), die mit den Speicherzellen verbunden ist, bestimmen. Zum Beispiel kann die Steuerschaltung 1104 ein drittes Feld der Nachschlagetabelle referenzieren, um mit einer Verifizierungstechnik zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde. Das dritte Feld, das der dritten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von Null speichern, wobei der Nachschlagetabellenwert der präzisionsbasierten Verifizierungstechnik entspricht. Da also das dritte Feld in der Nachschlagetabelle den Nachschlagetabellenwert Null hat, kann die Steuerschaltung 1104 unter Verwendung der präzisionsbasierten Verifizierungstechnik verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob die aktuelle Iteration des Verifizierungsvorgangs wahrscheinlich eine endgültige Iteration ist. Die Steuerschaltung 1104 kann zum Beispiel auf den Iterationszähler verweisen, der nach jeder aufeinanderfolgenden Iteration des Verifizierungsvorgangs erhöht wird. In diesem Fall kann die Steuerschaltung 1104 mit einem Wert eingerichtet werden, der eine Gesamtzahl von Iterationen identifiziert, und kann den Iterationszählerwert mit dem Wert vergleichen, der die endgültige Iteration identifiziert (oder die Gesamtzahl der Iterationen identifiziert), um festzustellen, ob die aktuelle Iteration die endgültige Iteration ist. Wenn die aktuelle Iteration die endgültige Iteration ist, kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik durchführen. Wenn die aktuelle Iteration nicht die endgültige Iteration ist, kann die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik durchführen.
  • Im gezeigten Beispiel kann der Iterationszähler einen Wert aufweisen, der angibt, dass die aktuelle Iteration die dritte Iteration ist. Die Steuerschaltung 1104 kann den Iterationszähler mit einem eingerichteten Wert vergleichen, der die endgültige Iteration identifiziert, um festzustellen, dass die aktuelle Iteration nicht die endgültige Iteration ist, und kann die präzisionsbasierte Verifizierungstechnik auf der Grundlage der Feststellung durchführen.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für die jeweiligen Datenzustände ermitteln, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben. Die Steuerschaltung 1104 kann zum Beispiel für jeden Datenzustand bestimmte Speicherzellen ermitteln, die den Programmverifizierungsvorgang noch nicht abgeschlossen haben. In diesem Fall kann die Steuerschaltung 1104 (z. B. unter Verwendung oder Bezugnahme auf eine Zählschaltung) den Erkennungsvorgang durchführen, der die Anzahl der Speicherzellen zählt, deren Programmierung noch nicht abgeschlossen ist. Im gezeigten Beispiel kann die Steuerschaltung 1104 die Anzahl der noch zu programmierenden Speicherzellen mit der Gesamtanzahl der Speicherzellen für jeden Datenzustand vergleichen. In diesem Fall kann die Steuerschaltung 1104 die Durchführung der präzisionsbasierten Verifizierungstechnik auf der Grundlage der Anzahl der Speicherzellen bestimmen, die die Programmierung noch nicht abgeschlossen haben und ein Schwellenwertkriterium erfüllen, wie beispielsweise ein Kriterium, dass noch mindestens zwei Speicherzellen zu programmieren sind.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 auf entsprechende Flag-Register für andere Speicherzellen (z. B. Speicherzelle B, Speicherzelle C und Speicherzelle D) verweisen und bestimmen, dass jede Speicherzelle während der vierten Iteration des Verifizierungsvorgangs nicht verifiziert werden soll.
  • Wie unter der Referenznummer 1122 gezeigt, kann die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik verwenden, um die dritte Iteration des Verifizierungsvorgangs durchzuführen. Die Steuerschaltung 1104 kann zum Beispiel die dritte Iteration des Verifizierungsvorgangs durchführen, indem sie eine zweite Bitleitungs-Vorspannung aus dem zweiten Satz von Bitleitungs-Vorspannungen an die Bitleitung anlegt, die mit der Speicherzelle A verbunden ist, indem sie eine dritte Verifizierungsspannung aus dem Satz von Verifizierungsspannungen an die ausgewählte Wortleitung anlegt und/oder indem sie verifiziert, ob die Speicherzelle A eine Schwellenspannung über der dritten Verifizierungsspannung hat.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 den Iterationszähler basierend auf der Durchführung der dritten Iteration des Verifizierungsvorgangs aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel den Iterationszähler von einem Wert von zwei auf einen Wert von drei erhöhen.
  • Auf diese Art und Weise führt die Steuerschaltung 1104 die dritte Iteration des Verifizierungsvorgangs unter Verwendung der präzisionsbasierten Verifizierungstechnik durch.
  • Wie in 11E mit der Referenznummer 1124 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die schnell programmierende Verifizierungstechnik und die präzisionsbasierte Verifizierungstechnik für eine vierte Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik verwendet, um zu verifizieren, ob die Speicherzelle B in den Datenzustand B programmiert wurde, und sie kann so eingerichtet sein, dass sie die präzisionsbasierte Verifizierungstechnik verwendet, um zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, die präzisionsbasierte Verifizierungstechnik zur Verifizierung zu verwenden, ob die Speicherzelle A in den Datenzustand A programmiert wurde, und die schnell programmierende Verifizierungstechnik zur Verifizierung, ob die Speicherzelle B in den Datenzustand B programmiert wurde. Diese Bestimmung kann durch Bezugnahme auf die Datenstruktur (z. B. die Nachschlagetabelle) erfolgen, die den Speicherzellen zugeordnet ist. Die Steuerschaltung 1104 kann zum Beispiel auf ein viertes Feld einer ersten Zeile der Nachschlagetabelle verweisen. Das vierte Feld der ersten Zeile, das der vierten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von Null speichern, wobei der Nachschlagetabellenwert der präzisionsbasierten Verifizierungstechnik entspricht.
  • Zusätzlich kann die Steuerschaltung 1104 auf ein viertes Feld einer zweiten Zeile der Nachschlagetabelle verweisen. Das vierte Feld der zweiten Zeile, das der vierten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von eins speichern, wobei der Nachschlagetabellenwert der schnell programmierenden Verifizierungstechnik entspricht. Da also das vierte Feld in der ersten Zeile den Nachschlagetabellenwert Null und das vierte Feld der zweiten Zeile den Nachschlagetabellenwert Eins hat, kann die Steuerschaltung 1104 die präzisionsbasierte Verifizierungstechnik zur Verifizierung der Speicherzelle A und die schnell programmierende Verifizierungstechnik zur Verifizierung der Speicherzelle B verwenden.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob die aktuelle Iteration des Verifizierungsvorgangs wahrscheinlich die endgültige Iteration sein wird, wie vorstehend beschrieben. Im gezeigten Beispiel kann der Iterationszähler einen Wert haben, der angibt, dass die aktuelle Iteration die vierte Iteration ist. Die Steuerschaltung 1104 kann den Iterationszähler mit einem ersten eingerichteten Wert vergleichen, der die endgültige Iteration zur Verifizierung des Datenzustands A identifiziert, kann bestimmen, dass die aktuelle Iteration nicht die endgültige Iteration ist, und kann die präzisionsbasierte Verifizierungstechnik basierend auf der Bestimmung durchführen.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für die jeweiligen Datenzustände ermitteln, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben, wie vorstehend beschrieben. Im gezeigten Beispiel kann die Steuerschaltung 1104 die Anzahl der Speicherzellen, die noch auf einen bestimmten Datenzustand programmiert werden müssen, mit der Gesamtzahl der Speicherzellen für diesen Datenzustand vergleichen. In diesem Fall kann die Steuerschaltung 1104 die Durchführung der präzisionsbasierten Verifizierungstechnik auf der Grundlage der Anzahl der Speicherzellen bestimmen, die die Programmierung noch nicht abgeschlossen haben und ein Schwellenwertkriterium erfüllen, wie beispielsweise ein Kriterium, dass noch mindestens zwei Speicherzellen zu programmieren sind.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 auf entsprechende Flag-Register für andere Speicherzellen (z. B. Speicherzelle C und Speicherzelle D) verweisen und bestimmen, dass jede Speicherzelle während der vierten Iteration des Verifizierungsvorgangs nicht verifiziert werden soll.
  • Wie unter der Referenznummer 1126 gezeigt, kann die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik und die präzisionsbasierte Verifizierungstechnik verwenden, um die vierte Iteration des Verifizierungsvorgangs durchzuführen. Die Steuerschaltung 1104 kann zum Beispiel die vierte Iteration des Verifizierungsvorgangs durchführen, indem sie eine zweite Bitleitungs-Vorspannung aus dem zweiten Satz von Bitleitungs-Vorspannungen an eine Bitleitung anlegt, die mit der Speicherzelle A verbunden ist, indem sie eine vierte Verifizierungsspannung aus dem Satz von Verifizierungsspannungen an die ausgewählte Wortleitung anlegt und/oder indem sie verifiziert, ob die Speicherzelle A eine Schwellenspannung über der vierten Verifizierungsspannung hat.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 den Iterationszähler basierend auf der Durchführung des Verifizierungsvorgangs der vierten Iteration aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel die Datenstruktur referenzieren und den Iterationszähler inkrementieren, um eine aktuelle Iteration des Verifizierungsvorgangs zu verfolgen. Im gezeigten Beispiel kann die Steuerschaltung 1104 den Iterationszähler von einem Wert von drei auf einen Wert von vier aktualisieren.
  • Auf diese Art und Weise verwendet die Steuerschaltung 1104 die schnell programmierende Verifizierungstechnik und die präzisionsbasierte Verifizierungstechnik, um die vierte Iteration des Verifizierungsvorgangs durchzuführen.
  • Wie in 11F mit der Referenznummer 1128 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die schnell programmierende Verifizierungstechnik und die präzisionsbasierte Verifizierungstechnik für eine fünfte Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik verwendet, um zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde und um zu verifizieren, ob die Speicherzelle C in den Datenzustand C programmiert wurde. Zusätzlich kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die präzisionsbasierte Verifizierungstechnik verwendet, um zu verifizieren, ob die Speicherzelle B in den Datenzustand B programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, die schnell programmierende Verifizierungstechnik zu verwenden, um zu verifizieren, ob die Speicherzelle A in den Datenzustand A programmiert wurde. Diese Bestimmung kann durch Bezugnahme auf die Datenstruktur (z. B. die Nachschlagetabelle) erfolgen, die den Speicherzellen zugeordnet ist. Die Steuerschaltung 1104 kann zum Beispiel auf ein fünftes Feld der ersten Zeile der Nachschlagetabelle verweisen. Das fünfte Feld der ersten Zeile, das der fünften Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von eins speichern, wobei der Nachschlagetabellenwert der schnell programmierenden Verifizierungstechnik entspricht.
  • Zusätzlich kann die Steuerschaltung 1104 auf ein fünftes Feld der zweiten Zeile der Nachschlagetabelle verweisen. Das fünfte Feld der zweiten Zeile, das der fünften Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von Null speichern, wobei der Nachschlagetabellenwert der präzisionsbasierten Verifizierungstechnik entspricht. Darüber hinaus kann die Steuerschaltung 1104 ein fünftes Feld einer dritten Zeile der Nachschlagetabelle referenzieren. Das fünfte Feld der dritten Zeile, das der fünften Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von eins speichern, wobei der Nachschlagetabellenwert der schnell programmierenden Verifizierungstechnik entspricht. Da das fünfte Feld in der ersten und dritten Zeile den Nachschlagetabellenwert eins und das fünfte Feld der zweiten Zeile den Nachschlagetabellenwert null hat, ist die Steuerschaltung 1104 in der Lage, die schnell programmierende Verifizierungstechnik zu verwenden, um die Speicherzelle A und die Speicherzelle C zu verifizieren, und sie ist in der Lage, die präzisionsbasierte Verifizierungstechnik zu verwenden, um die Speicherzelle B zu verifizieren.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob die aktuelle Iteration des Verifizierungsvorgangs wahrscheinlich die endgültige Iteration sein wird, wie vorstehend beschrieben. Im gezeigten Beispiel kann der Iterationszähler einen Wert haben, der angibt, dass die aktuelle Iteration die fünfte Iteration ist. Die Steuerschaltung 1104 kann den Iterationszähler mit einem ersten eingerichteten Wert vergleichen, der die endgültige Iteration zur Verifizierung des Datenzustands A identifiziert, kann bestimmen, dass die aktuelle Iteration die endgültige Iteration ist, und kann die schnell programmierende Verifizierungstechnik basierend auf der Bestimmung durchführen. Zusätzlich kann die Steuerschaltung eine ähnliche Analyse für Speicherzelle B bzw. Speicherzelle C durchführen.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für die jeweiligen Datenzustände ermitteln, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben, wie vorstehend beschrieben. Im gezeigten Beispiel kann die Steuerschaltung 1104 die Anzahl der Speicherzellen, die noch in den Datenzustand A programmiert werden müssen (z. B. eine), mit der Gesamtzahl der Speicherzellen für diesen Datenzustand vergleichen. In diesem Fall kann die Steuerschaltung 1104 die Durchführung der präzisionsbasierten Verifizierungstechnik auf der Grundlage der Anzahl der noch zu programmierenden Speicherzellen (z. B. eine) bestimmen, die ein Schwellenwertkriterium nicht erfüllen, wie beispielsweise ein Kriterium, dass noch mindestens zwei Speicherzellen zu programmieren sind. Die Steuerschaltung 1104 kann auf der Grundlage dieser Bestimmung festlegen, dass der Schnellprogrammierungs-Verifizierungsvorgang durchgeführt wird. Die Steuerschaltung 1104 kann eine ähnliche Analyse für Speicherzelle B bzw. Speicherzelle C durchführen (z. B. mit der Ausnahme, dass die Kriterien erfüllt sein können und die präzisionsbasierte Verifizierungstechnik durchgeführt werden kann).
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 auf entsprechende Flag-Register für andere Speicherzellen (z. B. Speicherzelle D usw.) verweisen und bestimmen, dass jede Speicherzelle während der fünften Iteration des Verifizierungsvorgangs nicht verifiziert werden soll.
  • Wie unter der Referenznummer 1130 dargestellt, kann die Steuerschaltung 1104 die schnell programmierenden und präzisionsbasierten Verifizierungstechniken verwenden, um die fünfte Iteration des Verifizierungsvorgangs durchzuführen. Die Steuerschaltung 1104 kann zum Beispiel die Speicherzelle A verifizieren, indem sie die zweite Bitleitungs-Vorspannung des ersten Satzes von Bitleitungs-Vorspannungen an die Bitleitung anlegt, die mit der Speicherzelle A verbunden ist, indem sie die fünfte Verifizierungsspannung des Satzes von Verifizierungsspannungen an die ausgewählte Wortleitung anlegt und/oder indem sie verifiziert, ob die Speicherzelle A eine Schwellenspannung über der fünften Verifizierungsspannung hat. Die Steuerschaltung 1104 kann ähnliche Aktionen durchführen, um die Speicherzelle B und die Speicherzelle C zu verifizieren.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 den Iterationszähler basierend auf der Durchführung der fünften Iteration des Verifizierungsvorgangs aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel den Iterationszähler von einem Wert von vier auf einen Wert von fünf erhöhen.
  • Während dies nicht dargestellt wird, kann die Steuerschaltung 1104 auch eine sechste, siebte, achte und neunte Iteration des Verifizierungsvorgangs durchführen. Die Steuerschaltung 1104 kann diese Iterationen in einer Art und Weise durchführen, wie sie hierin für andere Iterationen des Verifizierungsvorgangs beschrieben ist.
  • Wie in 11G mit der Referenznummer 1132 gezeigt, kann die Steuerschaltung 1104 so eingerichtet werden, dass sie die schnell programmierende Verifizierungstechnik für eine endgültige Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik verwendet, um zu verifizieren, ob die Speicherzelle D in den Datenzustand D programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, die schnell programmierende Verifizierungstechnik basierend auf der Referenzierung der Datenstruktur (z. B. der Nachschlagetabelle), die den Speicherzellen zugeordnet ist, zu verwenden. Die Steuerschaltung 1104 kann zum Beispiel auf ein zehntes Feld einer vierten Zeile der Nachschlagetabelle verweisen. Das zehnte Feld, das der zehnten Iteration des Verifizierungsvorgangs entspricht, kann einen Nachschlagetabellenwert von eins speichern, wobei der Nachschlagetabellenwert der schnell programmierenden Verifizierungstechnik entspricht. Da das zehnte Feld in der vierten Zeile der Nachschlagetabelle den Nachschlagetabellenwert eins hat, kann die Steuerschaltung 1104 unter Verwendung der schnell programmierenden Verifizierungstechnik verifizieren, ob die Speicherzelle D in den Datenzustand D programmiert wurde.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 bestimmen, ob die aktuelle Iteration des Verifizierungsvorgangs wahrscheinlich die endgültige Iteration sein wird, wie vorstehend beschrieben. Im gezeigten Beispiel kann der Iterationszähler einen Wert aufweisen, der angibt, dass die aktuelle Iteration die zehnte Iteration ist. Die Steuerschaltung 1104 kann den Iterationszähler mit eingerichteten Werten vergleichen, die die endgültigen Iterationen für jeden jeweiligen Datenzustand identifizieren (z. B. Iteration zehn für Datenzustand D). Die Steuerschaltung 1104 kann anhand des Vergleichs feststellen, dass die aktuelle Iteration die endgültige Iteration ist, und somit die schnell programmierende Verifizierungstechnik durchführen.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 für den Datenzustand D ermitteln, welche Speicherzellen die Programmierung noch nicht abgeschlossen haben, wie vorstehend beschrieben. Im gezeigten Beispiel kann die Steuerschaltung 1104 die Anzahl der Speicherzellen, die noch auf den Datenzustand D (z. B. eins) programmiert werden müssen, mit der Gesamtzahl der Speicherzellen für diesen Datenzustand vergleichen. In diesem Fall kann die Steuerschaltung 1104 die Durchführung der präzisionsbasierten Verifizierungstechnik auf der Grundlage der Anzahl der noch zu programmierenden Speicherzellen (z. B. eine) bestimmen, die ein Schwellenwertkriterium nicht erfüllen, wie beispielsweise ein Kriterium, dass noch mindestens zwei Speicherzellen zu programmieren sind. Die Steuerschaltung 1104 kann auf der Grundlage dieser Bestimmung festlegen, dass der Schnellprogrammierungs-Verifizierungsvorgang durchgeführt wird.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik zur Verifizierung der Speicherzelle D auf der Grundlage der sechsten Iteration des Verifizierungsvorgangs verwendet. Die Steuerschaltung 1104 kann zum Beispiel einen Iterationszählerwert mit einem konfigurierten endgültigen Iterationswert vergleichen und kann so eingerichtet sein, dass sie die schnell programmierende Verifizierungstechnik basierend auf dem Iterationszählerwert verwendet, der mit dem endgültigen Iterationswert übereinstimmt.
  • Wie unter der Referenznummer 1134 gezeigt, kann die Steuerschaltung 1104 die endgültige Iteration des Verifizierungsvorgangs durchführen. Die Steuerschaltung 1104 kann zum Beispiel die endgültige Iteration des Verifizierungsvorgangs durchführen, indem sie eine dritte Bitleitungsvorspannung des zweiten Satzes von Bitleitungsvorspannungen an eine Bitleitung anlegt, die mit der Speicherzelle D verbunden ist, indem sie eine sechste Verifizierungsspannung des Satzes von Verifizierungsspannungen an die ausgewählte Wortleitung anlegt und/oder indem sie verifiziert, ob die Speicherzelle D eine Schwellenspannung über der sechsten Verifizierungsspannung hat.
  • In einigen Ausführungsformen kann die Steuerschaltung 1104 den Iterationszähler basierend auf der Durchführung der endgültigen Iteration des Verifizierungsvorgangs aktualisieren. Die Steuerschaltung 1104 kann zum Beispiel die Iteration von einem Wert von fünf auf einen Wert von sechs erhöhen.
  • Auf diese Art und Weise schaltet die Steuerschaltung 1104 selektiv zwischen schnell programmierenden und präzisionsbasierten Verifizierungstechniken um, während sie die Speicherzellen in der ausgewählten Wortleitung verifiziert. Durch die Anwendung verschiedener Verifizierungstechniken auf Speicherzellen während verschiedener Iterationen des Verifizierungsvorgangs reduziert die Steuerschaltung 1104 die gesamte Programmverifizierungszeit, während die Programmiergenauigkeit unter Verwendung der präzisionsbasierten Verifizierungstechnik erhalten bleibt. Durch die Verringerung der Gesamtzeit für die Programmierung und Verifizierung der Speicherzellen spart die Steuerschaltung 1104 Ressourcen (z. B. Leistungsressourcen, Verarbeitungsressourcen, Speicherressourcen und/oder dergleichen), die andernfalls für die Programmierung und Verifizierung der Speicherzellen unter ausschließlicher Verwendung der präzisionsbasierten Verifizierungstechnik aufgewendet worden wären.
  • 12 ist ein Diagramm, das die Spannungen verschiedener Verifizierungstechniken veranschaulicht, die zur Verifizierung der Datenzustände von Speicherzellen verwendet werden. Wie im oberen Abschnitt der Seite gezeigt, kann eine grobe QPW-Technik für ein oberes und ein unteres Ende des NVDs und eine iQPW-Technik für den mittleren Abschnitt des NVDs implementiert werden. Durch die Implementierung der groben QPW-Technik an den Enden der NVD und durch die Implementierung der iQPW-Technik in der Mitte der NVD verschiebt sich die NVD nach rechts (wie durch die gestrichelte Linie dargestellt).
  • Wie gezeigt, unterscheiden sich einige der Pegel der Referenzverifizierungsspannung, die dem groben QPK entsprechen, von den Spannungspegeln, die dem iQPK entsprechen. Wie gezeigt, sind zum Beispiel die Werte der Referenzverifizierungsspannung für iQPK für den Datenzustand B bzw. E etwas höher (relativ zu den entsprechenden groben QPK-Referenzverifizierungsspannungswerten). Referenzverifizierungsspannungen sind auch in 11B unter Verwendung von VvA1 und VvA2 dargestellt.
  • Indem die Speicherzellen unter Verwendung mehrerer Verifizierungstechniken verifiziert werden, können die Speicherzellen sowohl schnell als auch genau verifiziert werden, und die Vth's für die Datenzustände der jeweiligen Speicherzellen können enger sein (z. B. im Vergleich zu einer schlechteren Verifizierung, im Vergleich zur ausschließlichen Verwendung der schnell programmierenden Verifizierungstechnik usw.).
  • 13 ist ein Flussdiagramm, das ein Verfahren zum selektiven Umschalten zwischen Verifizierungsverfahren veranschaulicht, um zu verifizieren, ob ein Satz von Speicherzellen programmiert worden ist, nach den Prinzipien der vorliegenden Offenbarung. Schritt 1302 identifiziert eine Speicherzelle in einer ausgewählten Wortleitung. Schritt 1304 wählt für die Speicherzelle eine Verifizierungstechnik aus einem Satz verfügbarer Verifizierungstechniken aus, wobei die Auswahl auf einer Iteration des durchgeführten Verifizierungsvorgangs basiert. Der Satz verfügbarer Verifizierungstechniken kann zum Beispiel eine schnell programmierende Verifizierungstechnik (dargestellt durch den Kasten auf der rechten Seite von 13), eine präzisionsbasierte Verifizierungstechnik (dargestellt durch den Kasten auf der linken Seite von 13) und/oder dergleichen einschließen.
  • Wenn die schnell programmierende Verifizierungstechnik ausgewählt ist, wendet Schritt 1306 die Verifizierung von Spannungswerten an, die mit einem ersten Verifizierungsunterzyklus der schnell programmierenden Verifizierungstechnik verbunden sind. Die Werte der Verifizierungsspannung, die dem ersten Verifizierungsunterzyklus zugeordnet sind, können Werte für die Verifizierungsspannung der Wortleitung, Werte für die Vorspannung der Bitleitung, Werte für die Erfassungszeit und/oder dergleichen einschließen. Zum Beispiel kann eine erste Schwellenspannung verwendet werden, um die Wortleitung in einem vorbestimmten Abstand unterhalb einer zweiten Schwellenspannung vorzuladen (z. B. wenn die programmierten Zellen relativ zur zweiten Schwellenspannung verifiziert werden). Als anderes Beispiel können eine oder mehrere Bitleitungs-Vorspannungen verwendet werden, um eine oder mehrere Bitleitungen vorzuladen, die für die Erfassung geeignet sind. Dadurch kann ein Erfassungsvorgang (z. B. ein Lesevorgang) an der Speicherzelle durchgeführt werden.
  • Schritt 1308 bestimmt, ob die Schwellenspannungsverteilung (Vth) der Speicherzelle die erste Verifizierungsspannungsschwelle erfüllt (z. B. größer ist als). Zum Beispiel kann ein Erfassungsvorgang (z. B. ein Lesevorgang) an der Speicherzelle durchgeführt werden, um festzustellen, ob die Vth der Speicherzelle die erste Verifizierungsspannungsschwelle erfüllt.
  • Wenn die Vth den ersten Schwellenwert für die Verifizierungsspannung nicht erfüllt, wird Schritt 1308 durch Anlegen von Vorspannungen für die Bitleitung oder Erfassungszeiten an die Bitleitung wiederholt. Wenn die Vth der Speicherzelle den ersten Verifizierungsspannungsschwellenwert nicht erfüllt, führt Schritt 1310 die nächste Iteration des Programmvorgangs durch (derz. B. zunächst das Inkrementieren von Vpgm unter Verwendung eines dVpgm-Werts einschließen kann). Schritt 1310 kann in einigen Ausführungsformen nur durchgeführt werden, wenn es keine Speicherzellen mit einer Vth gibt, die den ersten Verifizierungsspannungsschwellenwert erfüllen.
  • Wenn die Vth der Speicherzelle die erste Verifizierungsspannungsschwelle erfüllt, dann wendet Schritt 1312 Verifizierungsspannungswerte an, die mit einem zweiten Verifizierungsunterzyklus der schnell programmierenden Verifizierungstechnik verbunden sind. Die Verifizierungsspannungswerte, die dem zweiten Verifizierungsunterzyklus zugeordnet sind, können Wortleitungs-Verifizierungsspannungswerte, Bitleitungs-Spannungsvorspannungswerte, Erfassungszeitwerte und/oder dergleichen einschließen, wobei die Verifizierungsspannungswerte im zweiten Verifizierungsunterzyklus gegenüber den Verifizierungsspannungswerten im zweiten Verifizierungsunterzyklus versetzt sind. Zum Beispiel kann eine zweite Schwellenspannung verwendet werden, um die Wortleitung auf einen Pegel vorzuladen, relativ zu dem die Abtastung durchgeführt werden soll. Als anderes Beispiel können eine oder mehrere Bitleitungs-Vorspannungen verwendet werden, um eine oder mehrere Bitleitungen vorzuladen, die für die Erfassung geeignet sind.
  • Schritt 1314 bestimmt, ob die Vth der Speicherzelle die zweite Verifizierungsspannungsschwelle erfüllt (z. B. größer ist als). Der Erfassungsvorgang kann zum Beispiel an der Speicherzelle durchgeführt werden, um festzustellen, ob die Vth der Speicherzelle die zweite Verifizierungsspannungsschwelle erfüllt.
  • Wenn die Vth der Speicherzelle den ersten Verifizierungsspannungsschwellenwert nicht erfüllt, führt Schritt 1310 die nächste Iteration des Programmvorgangs durch (der z. B. zunächst das Inkrementieren von Vpgm unter Verwendung eines dVpgm-Werts einschließen kann). Wenn die Vth der Speicherzelle die erste Verifizierungsspannungsschwelle erfüllt, dann wendet Schritt 1312 Verifizierungsspannungswerte an, die mit einem zweiten Verifizierungsunterzyklus der schnell programmierenden Verifizierungstechnik verbunden sind.
  • Die Verifizierungsspannungswerte, die dem zweiten Verifizierungsunterzyklus zugeordnet sind, können Wortleitungs-Verifizierungsspannungswerte, Bitleitungs-Spannungsvorspannungswerte, Erfassungszeitwerte und/oder dergleichen einschließen, wobei die Verifizierungsspannungswerte im zweiten Verifizierungsunterzyklus gegenüber den Verifizierungsspannungswerten im zweiten Verifizierungsunterzyklus versetzt sind. Zum Beispiel kann eine zweite Schwellenspannung verwendet werden, um die Wortleitung auf einen Pegel vorzuladen, relativ zu dem die Abtastung durchgeführt werden soll. Als anderes Beispiel können eine oder mehrere Bitleitungs-Vorspannungen verwendet werden, um eine oder mehrere Bitleitungen auf Spannungen vorzuladen, die für die Erfassung geeignet sind.
  • Schritt 1314 bestimmt, ob die Vth der Speicherzelle eine zweite Verifizierungsspannungsschwelle erfüllt. Wenn die Vth der Speicherzelle die zweite Verifizierungsspannungsschwelle nicht erfüllt, führt Schritt 1310 die nächste Iteration des Programmiervorgangs durch. Wenn die Vth der Speicherzelle den zweiten Schwellenwert für die Verifizierungsspannung erfüllt, dann wird in Schritt 1316 die Speicherzelle für den Empfang weiterer Verifizierungsspannungen gehemmt.
  • Wenn die präzisionsbasierte Verifizierungstechnik ausgewählt ist, wendet Schritt 1318 die Verifizierung von Spannungswerten an, die mit einem ersten Verifizierungsunterzyklus der präzisionsbasierten Verifizierungstechnik verbunden sind. Die Werte der Verifizierungsspannung, die mit dem ersten Verifizierungsunterzyklus der präzisionsbasierten Verifizierungstechnik verbunden sind, können Werte für die Verifizierungsspannung der Wortleitung, Werte für die Vorspannung der Bitleitung, Werte für die Erfassungszeit und/oder dergleichen einschließen. Zum Beispiel kann eine erste Schwellenspannung verwendet werden, um die Wortleitung in einem vorbestimmten Abstand unterhalb einer zweiten Schwellenspannung vorzuladen (z. B. wenn die programmierten Zellen relativ zur zweiten Schwellenspannung verifiziert werden). Als anderes Beispiel können eine oder mehrere Bitleitungs-Vorspannungen verwendet werden, um eine oder mehrere Bitleitungen vorzuladen, die für die Erfassung geeignet sind. Dadurch kann ein Erfassungsvorgang (z. B. ein Lesevorgang) an der Speicherzelle durchgeführt werden.
  • Schritt 1320 vergleicht die Vth der Speicherzelle mit der ersten Verifizierungsspannungsschwelle. Zum Beispiel kann ein Erfassungsvorgang (z. B. ein Lesevorgang) an der Speicherzelle durchgeführt werden, um die Vth der Speicherzelle mit der ersten Verifizierungsspannungsschwelle zu vergleichen.
  • Schritt 1322 wendet das Verifizieren von Spannungswerten an, die mit dem zweiten Verifizierungsunterzyklus verbunden sind. Schritt 1324 schließt den Vergleich der Vth der Speicherzelle mit der zweiten Verifizierungsschwelle ein. Schritt 1326 schließt die Bestimmung ein, ob die Vth der Speicherzelle beide Verifizierungsspannungsschwellenwerte erfüllt. Wenn nicht, kann Schritt 1328 die nächste Iteration des Programmvorgangs durchführen. Obwohl nicht dargestellt, kann dVpgm erhöht werden, wenn zum Beispiel die Vth der Speicherzelle den ersten Verifizierungsschwellenwert, aber nicht den zweiten Verifizierungsschwellenwert erfüllt. Wenn ja, wird in Schritt 1316 die Speicherzelle für den Empfang zusätzlicher Verifizierungsspannungen gehemmt.
  • Wie hierin verwendet, kann der Verifizierungsvorgang ein Verifizierungsabschnitt eines Programmverifizierungsvorgangs sein.
  • Die vorhergehende detaillierte Beschreibung der Erfindung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind im Lichte der obigen Lehren möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, wie sie für die jeweilige beabsichtigte Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.
  • Eine zugehörige Schaltung ist üblicherweise für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen erforderlich. Als nicht einschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, die zum Steuern und Ansteuern von Speicherelementen verwendet werden, um Funktionen, wie Programmieren und Lesen, auszuführen. Diese zugehörige Schaltung kann sich auf demselben Substrat wie die Speicherelemente und/oder auf einem separaten Substrat befinden. Zum Beispiel kann eine Steuerung für Schreib-/Lesevorgänge des Speichers auf einem separaten Steuerungschip und/oder auf demselben Substrat wie die Speicherelemente angeordnet sein.
  • Ein Fachmann wird erkennen, dass diese Technologie nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt ist, sondern alle relevanten Speicherstrukturen in dem Geist und Umfang der Technologie abdeckt, wie hier beschrieben und wie es von einem Fachmann verstanden wird.
  • Die vorhergehende detaillierte Beschreibung der Erfindung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind im Lichte der obigen Lehren möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, wie sie für die jeweilige beabsichtigte Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.
  • Verschiedene Begriffe werden verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Verschiedene Firmen können auf eine Komponente mit unterschiedlichen Namen Bezug nehmen. Dieses Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die sich im Namen, jedoch nicht in der Funktion unterscheiden. In der folgenden Erörterung und in den Ansprüchen werden die Begriffe „einschließlich“ und „umfassend“ in einer offenen Art und Weise verwendet und sollten daher so ausgelegt werden, dass sie „einschließlich, aber nicht beschränkt auf...“ bedeuten. Auch der Begriff „koppeln“ oder „koppelt“ soll entweder eine indirekte oder direkte Verbindung bedeuten. Wenn also eine erste Vorrichtung an eine zweite Vorrichtung koppelt, kann diese Verbindung durch eine direkte Verbindung oder durch eine indirekte Verbindung über andere Vorrichtungen und Verbindungen erfolgen.
  • Wenn eine Schicht oder ein Element als „auf“ einer anderen Schicht oder einem anderen Substrat liegend bezeichnet wird, kann es sich außerdem direkt auf der anderen Schicht oder dem anderen Substrat befinden, oder es können auch Zwischenschichten vorhanden sein. Wenn eine Schicht als „unter“ einer anderen Schicht bezeichnet wird, kann sie direkt darunter liegen, und es können auch eine oder mehrere dazwischenliegende Schichten vorhanden sein. Darüber hinaus kann eine Schicht, wenn sie als „zwischen“ zwei Schichten bezeichnet wird, die einzige Schicht zwischen den beiden Schichten sein, oder es können auch eine oder mehrere dazwischenliegende Schichten vorhanden sein.
  • Die Steuerung schließt, wie hierin beschrieben, einzelne Schaltungskomponenten, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Mikrocontroller mit Steuerungssoftware, einen digitalen Signalprozessor (DSP), einen Prozessor mit Steuerungssoftware, ein feldprogrammierbares Gate-Array (FPGA) oder Kombinationen davon ein.

Claims (20)

  1. Nichtflüchtige Speichervorrichtung, die Folgendes umfasst: Steuerschaltung zum Verifizieren, ob Speicherzellen programmiert wurden, wobei die Speicherzellen Teil eines Arrays von Speicherzellen eines nichtflüchtigen Speichers sind, und wobei die Steuerschaltung eingerichtet ist, um: eine Verifizierungstechnik zu verwenden, die Teil eines Satzes von Verifizierungstechniken ist, um die Datenzustände eines Satzes von Speicherzellen einer ausgewählten Wortleitung zu verifizieren, wobei die Verifizierungstechnik auf der Grundlage einer Iteration eines Programmverifizierungsvorgangs verwendet wird, der gerade durchgeführt wird; unter Verwendung der Verifizierungstechnik eine nächste Iteration des Programmverifizierungsvorgangs durchzuführen, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert wurden, wobei die Verwendung der Verifizierungstechnik und die Durchführung der nächsten Iteration des Programmverifizierungsvorgangs zu wiederholen sind, bis der Satz von Speicherzellen verifiziert wurde.
  2. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei die Verifizierungstechnik eine schnell programmierende Verifizierungstechnik unter Verwendung einer einstufigen Verifizierung oder eine präzisionsbasierte Verifizierungstechnik unter Verwendung mehrerer Verifizierungsschritte ist.
  3. Nichtflüchtige Speichervorrichtung nach Anspruch 2, wobei die Verifizierungstechnik die schnell programmierende Verifizierungstechnik für eine erste und letzte Iteration des Programmverifizierungsvorgangs ist und die präzisionsbasierte Verifizierungstechnik für einen mittleren Satz von Iterationen des Programmverifizierungsvorgangs ist.
  4. Nichtflüchtige Speichervorrichtung nach Anspruch 2, wobei die schnell programmierende Verifizierungstechnik für eine Speicherzelle auf der Grundlage einer Schwellenspannungsverteilung (Vth) der Speicherzelle verwendet wird, die eine Position in einer natürlichen Schwellenspannungsverteilung (NVD) aufweist, die mit einem oberen oder unteren Ende der NVD übereinstimmt.
  5. Nichtflüchtige Speichervorrichtung nach Anspruch 2, wobei die präzisionsbasierte Verifizierungstechnik für eine Speicherzelle verwendet wird, die auf einer Schwellenspannungsverteilung (Vth) der Speicherzelle basiert, die eine Position in einer natürlichen Schwellenspannungsverteilung (NVD) aufweist, die mit einem mittleren Abschnitt der NVD übereinstimmt.
  6. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei die Steuerschaltung bei Verwendung der Verifizierungstechnik eingerichtet ist, um: ein Flag-Bit zu setzen, das in Flag-Registern enthalten ist, die einem aktuell verifizierten Datenzustand entsprechen, wobei Felder in einem Flag-Register einen ersten Wert einschließen, der einer schnell programmierenden Verifizierungstechnik entspricht, und einen zweiten Wert, der einer präzisionsbasierten Verifizierungstechnik entspricht.
  7. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei die Steuerschaltung ferner eingerichtet ist, um: einen Iterationszähler auf der Grundlage der Durchführung der nächsten Iteration des Programmverifizierungsvorgangs zu inkrementieren, so dass der Iterationszähler eine Anzahl von Iterationen des Programmverifizierungsvorgangs identifiziert, die durchgeführt worden sind, wobei der Iterationszähler einem unteren Schwanz einer natürlichen Spannungsschwellenverteilung (NVD) entspricht.
  8. Verfahren zur Verifizierung, ob eine oder mehrere Speicherzellen eines nichtflüchtigen Speichers programmiert wurden, wobei das Verfahren Folgendes umfasst: Verwenden einer oder mehrerer Verifizierungstechniken, die Teil eines Satzes von Verifizierungstechniken sind, zum Verifizieren von Datenzuständen eines Satzes von Speicherzellen einer ausgewählten Wortleitung, wobei die eine oder die mehreren Verifizierungstechniken für die Verwendung auf der Grundlage einer Iteration eines Programmverifizierungsvorgangs, der durchgeführt werden soll, ausgewählt werden; Durchführen einer nächsten Verifizierung des Programmverifizierungsvorgangs unter Verwendung der einen oder mehreren Verifizierungstechniken, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert sind, wobei die Verwendung der einen oder mehreren Verifizierungstechniken und das Durchführen der nächsten Verifizierung des Programmverifizierungsvorgangs zu wiederholen sind, bis der Satz von Speicherzellen verifiziert wurde.
  9. Verfahren nach Anspruch 8, wobei die Verifizierungstechnik eine schnell programmierende Verifizierungstechnik unter Verwendung einer einstufigen Verifizierung oder eine präzisionsbasierte Verifizierungstechnik unter Verwendung mehrerer Verifizierungsschritte ist.
  10. Verfahren nach Anspruch 9, wobei die Verifizierungstechnik die schnell programmierende Verifizierungstechnik für eine erste und letzte Iteration des Programmverifizierungsvorgangs ist und die präzisionsbasierte Verifizierungstechnik für einen mittleren Satz von Iterationen des Programmverifizierungsvorgangs ist.
  11. Verfahren nach Anspruch 9, wobei die präzisionsbasierte Verifizierungstechnik für eine Speicherzelle verwendet wird, die auf einer Schwellenspannungsverteilung (Vth) der Speicherzelle basiert, die eine Position in einer natürlichen Schwellenspannungsverteilung (NVD) aufweist, die mit einem mittleren Abschnitt der NVD übereinstimmt.
  12. Verfahren nach Anspruch 9, wobei die schnell programmierende Verifizierungstechnik eine grobe Schnelldurchlauf-Schreibtechnik (QPW) ist, und wobei die präzisionsbasierte Verifizierungstechnik eine iQPW-Technik ist.
  13. Verfahren nach Anspruch 8, wobei die Verwendung der einen oder mehreren Verifizierungstechniken Folgendes umfasst: Setzen eines Flag-Bits, das in Flag-Registern enthalten ist, die einem aktuell verifizierten Datenzustand entsprechen, wobei Felder in einem Flag-Register einen ersten Wert einschließen, der einer schnell programmierenden Verifizierungstechnik entspricht, und einen zweiten Wert, der einer präzisionsbasierten Verifizierungstechnik entspricht.
  14. Verfahren nach Anspruch 8, das ferner Folgendes umfasst: Inkrementieren eines Iterationszählers auf der Grundlage der Durchführung der nächsten Iteration des Programmverifizierungsvorgangs, so dass der Iterationszähler eine Anzahl von Iterationen des Programmverifizierungsvorgangs identifiziert, die durchgeführt worden sind, wobei der Iterationszähler einem unteren Schwanz einer natürlichen Spannungsschwellenverteilung (NVD) entspricht.
  15. Vorrichtung, die Folgendes umfasst: Steuerschaltung zum Verifizieren, ob Speicherzellen programmiert wurden, wobei die Speicherzellen Teil eines Arrays von Speicherzellen eines nichtflüchtigen Speichers sind, und wobei die Steuerschaltung eingerichtet ist, um: eine oder mehrere Verifizierungstechniken als Teil eines Programmverifizierungsvorgangs zu verwenden, der an einer oder mehreren Speicherzellen durchgeführt werden soll, die Teil eines Satzes von Speicherzellen einer ausgewählten Wortleitung sind, wobei die eine oder mehreren Verifizierungstechniken auf der Grundlage einer durchzuführenden Iteration des Programmverifizierungsvorgangs verwendet werden; und eine nächste Verifizierung des Programmverifizierungsvorgangs unter Verwendung der einen oder mehreren Verifizierungstechniken durchzuführen, um zu verifizieren, ob eine oder mehrere Speicherzellen programmiert sind, wobei die Verwendung der einen oder mehreren Verifizierungstechniken und das Durchführen der nächsten Verifizierung des Programmverifizierungsvorgangs zu wiederholen sind, bis der Satz von Speicherzellen verifiziert wurde.
  16. Vorrichtung nach Anspruch 15, wobei die eine oder die mehreren Verifizierungstechniken eine Schnellprogrammierungs-Verifizierungstechnik und eine präzisionsbasierte Verifizierungstechnik umfassen.
  17. Vorrichtung nach Anspruch 15, wobei die Steuerschaltung bei Verwendung der einen oder mehreren Verifizierungstechniken eingerichtet ist, um: die eine oder mehrere Verifizierungstechniken für eine Speicherzelle der einen oder mehreren Speicherzellen zu verwenden, die darauf basieren, ob die Position der Speicherzelle innerhalb eines ersten Bereichs von Positionen liegt, die mit einem oberen Schwanz einer natürlichen Schwellenspannungsverteilung (NVD) korrelieren, eines zweiten Bereichs von Positionen, die mit einem mittleren Abschnitt der NVD korrelieren, oder eines dritten Bereichs von Positionen, die mit einem unteren Schwanz der NVD korrelieren.
  18. Vorrichtung nach Anspruch 17, wobei der erste Bereich von Positionen und der dritte Bereich von Positionen mit einer groben Schnelldurchlauf-Schreibtechnik (QPW) und der zweite Bereich von Positionen mit einer iQPW-Technik korreliert.
  19. Vorrichtung nach Anspruch 15, wobei die Steuerschaltung bei Verwendung der einen oder mehreren Verifizierungstechniken eingerichtet ist, um: ein Flag-Bit zu setzen, das in Flag-Registern enthalten ist, die einem aktuell verifizierten Datenzustand entsprechen, wobei Felder in einem Flag-Register einen ersten Wert einschließen, der einer schnell programmierenden Verifizierungstechnik entspricht, und einen zweiten Wert, der einer präzisionsbasierten Verifizierungstechnik entspricht.
  20. Vorrichtung nach Anspruch 15, wobei die Steuerschaltung ferner eingerichtet ist, um: einen Iterationszähler auf der Grundlage der Durchführung der nächsten Iteration des Programmverifizierungsvorgangs zu inkrementieren, so dass der Iterationszähler eine Anzahl von Iterationen des Programmverifizierungsvorgangs identifiziert, die durchgeführt worden sind, wobei der Iterationszähler einem unteren Schwanz einer natürlichen Spannungsschwellenverteilung (NVD) entspricht.
DE102021106910.6A 2020-06-30 2021-03-19 Schleifenabhängiges umschalten zwischen techniken zur programmverifizierung Pending DE102021106910A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/916,367 2020-06-30
US16/916,367 US11250920B2 (en) 2020-06-30 2020-06-30 Loop-dependent switching between program-verify techniques

Publications (1)

Publication Number Publication Date
DE102021106910A1 true DE102021106910A1 (de) 2021-12-30

Family

ID=78827168

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021106910.6A Pending DE102021106910A1 (de) 2020-06-30 2021-03-19 Schleifenabhängiges umschalten zwischen techniken zur programmverifizierung

Country Status (3)

Country Link
US (1) US11250920B2 (de)
CN (1) CN113870934A (de)
DE (1) DE102021106910A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7476061B2 (ja) * 2020-09-15 2024-04-30 キオクシア株式会社 半導体記憶装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596031B2 (en) * 2006-10-30 2009-09-29 Sandisk Corporation Faster programming of highest multi-level state for non-volatile memory
US7599224B2 (en) * 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
KR100967007B1 (ko) * 2007-11-29 2010-06-30 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 검증 방법
JP2011258289A (ja) * 2010-06-10 2011-12-22 Toshiba Corp メモリセルの閾値検出方法
US8274838B2 (en) * 2010-07-19 2012-09-25 Sandisk Technologies Inc. Programming non-volatile memory with bit line voltage step up
US8432740B2 (en) * 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US8953386B2 (en) * 2012-10-25 2015-02-10 Sandisk Technologies Inc. Dynamic bit line bias for programming non-volatile memory
US8929142B2 (en) * 2013-02-05 2015-01-06 Sandisk Technologies Inc. Programming select gate transistors and memory cells using dynamic verify level
US8891308B1 (en) * 2013-09-11 2014-11-18 Sandisk Technologies Inc. Dynamic erase voltage step size selection for 3D non-volatile memory
US9620238B2 (en) * 2014-01-20 2017-04-11 Sandisk Technologies Llc Methods and systems that selectively inhibit and enable programming of non-volatile storage elements
US9257191B1 (en) * 2014-08-29 2016-02-09 Sandisk Technologies Inc. Charge redistribution during erase in charge trapping memory
US9721671B2 (en) * 2015-09-10 2017-08-01 Sandisk Technologies Llc Memory device which performs verify operations using different sense node pre-charge voltages and a common discharge period
US10014063B2 (en) * 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
TW201926349A (zh) * 2017-12-06 2019-07-01 旺宏電子股份有限公司 寫入流程控制方法及驗證記憶體之方法
US10153051B1 (en) * 2018-01-24 2018-12-11 Sandisk Technologies Llc Program-verify of select gate transistor with doped channel in NAND string
US10643718B2 (en) * 2018-06-07 2020-05-05 Sandisk Technologies Llc Non-volatile memory with countermeasure for program disturb including purge during precharge
US10726929B1 (en) * 2019-01-25 2020-07-28 Sandisk Technologies Llc Programming process which compensates for data state of adjacent memory cell in a memory device

Also Published As

Publication number Publication date
US11250920B2 (en) 2022-02-15
US20210407604A1 (en) 2021-12-30
CN113870934A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE112019000148T5 (de) Dynamische Bitabtastungstechniken für die Programmierung von Speichervorrichtungen
DE112019000164T5 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE112019000157T5 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE112017004208T5 (de) 3d-nand mit teilblocklöschen
DE112019000152T5 (de) Verschachteltes programmieren und prüfen in nichtflüchtigem speicher
DE102017104265A1 (de) Dummy-Spannung zum Verringern des Erst-Lese-Effekts in einem Speicher
DE102015105858A1 (de) Halbleitervorrichtungen mit Peripherieschaltungsbereich und einem ersten und einem zweiten Speicherbereich, sowie zugehörige Programmierverfahren
DE112018003426T5 (de) Reduzieren der lesestörung der art durch injektion heisser elektronen in 3d-speichervorrichtung mit verbundenen sourceendauswahlgates
DE112016003568B4 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE112015005325T5 (de) Speicherbusverwaltung
DE102018114250A1 (de) Reduzieren eines heißen Elektroneninjektionstypen von Lesestörungen in einer 3D-Speichervorrichtung während Signal-schaltenden Störsignalen
DE102022102591A1 (de) Systeme und verfahren zum einstellen der schwellenspannungsverteilung aufgrund von halbkreis-sgd
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
DE102019124668A1 (de) Transistorschwellenspannungshaltung in 3d-speicher
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE102021115501A1 (de) Leseaktualisierung zur verbesserung der leistung bei datenerhaltung für nichtflüchtigen speicher
DE102022113174A1 (de) Proaktive aktualisierung der randdatenwortleitung für halbkreis-drain-side-select-gate
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE102022102593A1 (de) Speicherprogrammierung mit selektiv übersprungenen verifizierungsimpulsen zur leistungsverbesserung
DE112019005518T5 (de) Mehrzustandsprogrammierung in einer speichervorrichtung mit schleifenabhängiger bitleitungsspannung während der verifizierung
DE102021107268A1 (de) Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine

Legal Events

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

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MURGITROYD & COMPANY, DE