DE112015003651T5 - Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren - Google Patents

Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren Download PDF

Info

Publication number
DE112015003651T5
DE112015003651T5 DE112015003651.2T DE112015003651T DE112015003651T5 DE 112015003651 T5 DE112015003651 T5 DE 112015003651T5 DE 112015003651 T DE112015003651 T DE 112015003651T DE 112015003651 T5 DE112015003651 T5 DE 112015003651T5
Authority
DE
Germany
Prior art keywords
target data
memory cells
data states
memory
selected target
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.)
Granted
Application number
DE112015003651.2T
Other languages
English (en)
Inventor
Yee Lih Koh
Man L Mui
YenLung Li
Cynthia Hsu
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 DE112015003651T5 publication Critical patent/DE112015003651T5/de
Granted legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • 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/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

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

Abstract

Es werden Techniken zum effizienten Ausführen von Programmieroperationen in einer Speichervorrichtung geschaffen. Insbesondere ist ein Energieverbrauch in Abfühlschaltungsanordnung reduziert durch Vermeiden von Vorladen von Bitleitungen für spezielle Speicherzellen zu speziellen Zeiten. Eine Herangehensweise verwendet das Wissen über die unterschiedlichen Phasen einer Programmieroperation, um die Anzahl unnötiger Bitleitungsvorladungen zu reduzieren. Beispielsweise tritt während der niedrigeren Programmschleifennummern einer Programmieroperation Bitleitungsvorladen für niedrigere Datenzustände auf, jedoch nicht für höhere Datenzustände. Ähnlich tritt während der höheren Programmschleifennummern eine Bitleitungsvorladen für höhere Datenzustände auf, jedoch nicht für niedrigere Datenzustände. In einer weiteren Herangehensweise, die Wissen über die unterschiedlichen Phasen einer Programmieroperation einbeziehen kann oder nicht, wird das Einstellen der Bitleitungsvorladung wenigstens einmal aktualisiert, nachdem sie initial in dem Verifizierungsabschnitt eingestellt worden ist.

Description

  • Hintergrund
  • Die vorliegende Technologie bezieht sich auf Programmieroperationen in einer Speichervorrichtung. Halbleiterspeicher ist zunehmend zum Gebrauch in verschiedenen elektronischen Vorrichtungen beliebt geworden. Beispielsweise wird nichtflüchtiger Halbleiterspeicher in Mobiltelefonen, Digitalkameras, persönlichen digitalen Assistenten, Mobilcomputervorrichtungen, nicht mobilen Computervorrichtungen und anderen Vorrichtungen verwendet. Unter den beliebtesten Typen nichtflüchtiger Halbleiterspeicher gibt es den Flash-Speicher. Mit Flash-Speicher können die Inhalte eines gesamten Speicherfelds in einem Schritt gelöscht werden.
  • Beispielsweise ist ein zweidimensionaler NAND-Speicher ein Typ von Flash-Speicher, in dem ein schwebendes Gate oberhalb eines Kanalbereichs und davon isoliert in einem Halbleitersubstrat positioniert ist. Das schwebende Gate ist zwischen dem Source- und dem Drain-Bereich positioniert. Ein Steuer-Gate ist über dem schwebenden Gate und davon isoliert vorgesehen. Die Schwellenspannung (Vth) des Transistors, der so gebildet ist, wird durch die Ladungsmenge gesteuert, die auf dem schwebenden Gate gehalten wird. Das heißt, der kleinste Betrag der Spannung, der an das Steuer-Gate angelegt werden muss, bevor der Transistor angeschaltet wird, um Leitung zwischen seiner Source und seinem Drain zu erlauben, wird durch das Niveau der Ladung auf dem schwebenden Gate gesteuert.
  • In letzter Zeit sind Speichervorrichtungen mit ultrahoher Dichte unter Verwendung einer dreidimensionalen Speicherstruktur vorgeschlagen worden. Ein Beispiel ist Bit-Cost-Scalable-Architektur (BiCS-Architektur), in der die Speichervorrichtung aus einem Feld alternierender leitfähiger und dielektrischer Schichten gebildet ist. Ein Speicherloch ist in den Schichten gebildet, und das Loch ist mit ladungsspeichernden Materialien gefüllt. Eine gerade NAND-Kette erstreckt sich in ein Speicherloch, während eine rohr- oder U-förmige NAND-Kette (P-BiCS) ein Paar vertikaler Säulen aus Speicherzellen enthält, die sich in zwei Speicherlöcher erstrecken und die durch ein unteres Rück-Gate verbunden sind. Steuer-Gates der Speicherzellen sind durch die leitfähigen Schichten bereitgestellt.
  • Es sind Techniken zum effizienten Ausführen von Programmieroperationen in einer Speichervorrichtung erwünscht.
  • Kurzbeschreibung der Zeichnungen
  • Gleich nummerierte Elemente beziehen sich auf gemeinsame Komponenten in den unterschiedlichen Figuren.
  • 1 ist ein funktionales Blockdiagramm einer nichtflüchtigen Speichervorrichtung.
  • 2A bildet einen Block aus NAND-Ketten in der Speicherstruktur 126 von 1 und zugehörige Abfühlblöcke SB0, SB0a und SB0b ab.
  • 2B bildet Beispieldatenzustände der Speicherzellen 208219 von 2A ab.
  • 2C ist ein Blockdiagramm, das eine Ausführungsform des Abfühlblocks SB0 von 1 abbildet.
  • 3A bildet eine Querschnittsansicht eines Abschnitts einer NAND-Kette von 2A in einer dreidimensionalen Beispiel-Speichervorrichtung ab.
  • 3B bildet eine Querschnittsansicht entlang Linie 302 von 3A ab.
  • 3C bildet eine Beispielschaltung in einer dreidimensionalen Speichervorrichtung ab, die die NAND-Kette von 3A enthält.
  • 4A und 4B bilden ein Beispiel einer Programmieroperation mit einem Durchgang ab, in der tiefere und höhere Datenseiten gleichzeitig geschrieben werden.
  • 5A bis 5C bilden eine Programmieroperation mit zwei Durchgängen ab, in denen tiefere und höhere Datenseiten in einem ersten bzw. zweiten Durchgang geschrieben werden.
  • 6A bis 6C bilden eine Programmieroperation mit drei Durchgängen an, in denen tiefere, mittlere und höhere Datenseiten in einem ersten, zweiten bzw. dritten Durchgang geschrieben werden.
  • 7A bildet einen Beispielprozess ab, in dem Abfühlen, das Vorladen von Bitleitungen enthält, gemäß einer aktuellen Phase einer Mehrphasen-Programmieroperation auftritt.
  • 7B bildet eine detaillierte Beispiel-Implementierung des Prozesses von 7A ab.
  • 8 bildet ein Beispiel unterschiedlicher Phasen einer Programmieroperation mit einem Durchgang wie in 4A und 4B abgebildet und konsistent mit 7A und 7B ab.
  • 9A bildet eine Folge zum Einstellen von Vorladungsdaten in einem Verifizierungsabschnitt einer Programmverifizierungsoperation konsistent mit 7A und 7B, wenn Vorladungsdaten einmal eingestellt werden, ab.
  • 9B bildet eine Folge zum Einstellen von Vorladungsdaten in einem Verifizierungsabschnitt einer Programmverifizierungsoperation konsistent mit 7A und 7B, wenn Vorladungsdaten zweimal eingestellt werden, ab.
  • 9C bildet eine Verifizierungsfolge entsprechend 9A ab, in der das Wissen über eine Programmierphase verwendet wird, um unnötiges Bitleitungsvorladen zu reduzieren.
  • 9D ist eine Verifizierungsfolge, die eine Alternative zu 9 ist, in der Wissen über eine Programmierphase nicht verwendet wird, um unnötiges Bitleitungsvorladen zu reduzieren.
  • 9E bildet eine Verifizierungsfolge ab, die den ersten und zweiten Vorladungsdaten von 9B entspricht, wobei die ersten Vorladungsdaten während des Verifizierens der Zustände A–D verwendet werden und die zweiten Vorladungsdaten während des Verifizierens der Zustände E–G verwendet werden.
  • 9F bildet eine Verifizierungsfolge ab, die eine Alternative zu 9E ist, wobei dieselben Vorladungsdaten während des Verifizierens der Zustände A–G verwendet werden.
  • 10A bildet eine Beispielimplementierung des Abfühlmoduls SM0 von 2C, konsistent mit 7A und 7B, ab.
  • 10B bildet Steuersignale und Spannungswellenformen für den Verifizierungsabschnitt einer Programmverifizierungsiteration konsistent mit dem SM0 von 10A und mit 9C ab.
  • 10C bildet Steuersignale und Spannungswellenformen für den Verifizierungsabschnitt einer Programmverifizierungsiteration konsistent mit dem SM0 von 10A und mit 9E ab.
  • Ausführliche Beschreibung
  • Es sind Techniken zum effizienten Ausführen von Programmieroperationen in einer Speichervorrichtung bereitgestellt. Insbesondere ist ein Energieverbrauch in der Abfühlschaltungsanordnung durch Vermeiden von Vorladen von Bitleitungen für spezielle Speicherzellen zu speziellen Zeiten während einer Programmieroperation reduziert.
  • Während einer Programmieroperation wird eine Reihe von Programmierspannungen an eine Gruppe ausgewählter Speicherzellen angelegt, was verursacht, dass sich die Schwellenspannungen (Vth) der Speicherzellen von einem niedrigeren Pegel wie z. B. von einem gelöschten Zustand zu einem höheren Pegel, der einen Zieldatenzustand jeder Zelle repräsentiert, verschieben. Beispielsweise können in einer Vierpegel-Speichervorrichtung die Zieldatenzustände als die A-, B- und C-Zustände bezeichnet sein. Der andere Zustand ist der gelöschte Zustand. Um die Vth-Verteilung zu verdichten, werden Verifizierungsoperationen zwischen den Programmierspannungen vorgenommen. Sobald die Vth einer Zelle so abgefühlt wird, dass sie höher ist als ein Zielpegel des Zieldatenzustands, wird die Zelle gegen Programmieren während nachfolgender Programmierspannungen der Programmieroperation gesperrt.
  • Für die Verifizierungsoperationen kann Stromabfühlen für eine reine Bitleitungsarchitektur verwendet werden, wobei alle Zellen gleichzeitig abgefühlt werden. Falls die Vth einer Zelle niedriger ist als der Zielpegel, ist die Zelle während der Verifizierungsoperation in einem leitfähigen Zustand und verbraucht deshalb eine wesentliche Strommenge. Für Mehrpegeloperationen (z. B. mit 4, 8, 16 oder mehr Datenzuständen) ist es unnötig, die Bitleitungen von Speicherzellen abzufühlen (oder vorzuladen), deren Zieldatenzustand nicht mit dem speziellen Zustand übereinstimmt, der aktuell verifiziert wird.
  • Der Stromverbrauch kann durch Vermeiden von unnötigem Vorladen von Bitleitungen reduziert werden. Eine Herangehensweise ist es, vor jeder Verifizierungsoperation die Speicherzellen zu bestimmen, für die Bitleitungsvorladen notwendig ist. Das kann durch Lesen von Auffangregistern, die den Speicherzellen zugeordnet sind, um ihren Zieldatenzustand zu bestimmen, und Ermöglichen einer Vorladung nur dann, wenn der Datenzustand der Verifizierungsoperation mit dem Zieldatenzustand übereinstimmt, durchgeführt werden. Somit werden die Auffangregister vor jeder Verifizierungsoperation in dem Verifizierungsabschnitt einer Programmverifizierungsiteration gelesen. Beispielsweise falls der Datenzustand der Verifizierungsoperation der A-Zustand ist und eine entsprechende Spannung an die ausgewählte Wortleitung angelegt wird, wird eine Vorladung nur für die Speicherzelle mit dem A-Zustand als dem Zieldatenzustand ermöglicht. Die Bitleitungen der anderen Speicherzellen werden nicht vorgeladen und bleiben an einem Pegel einer Source-Leitung, so dass sie keinen Strom verbrauchen. Diese Herangehensweise ist vorteilhaft, weil kein unnötiges Bitleitungsvorladen vorhanden ist. Diese Herangehensweise wird jedoch eine längere Programmierzeit aufweisen, da für jede aufeinanderfolgende Verifizierungsoperation eine Schaltung die Auffangregister in einer Auffangregisterabtastoperation lesen muss, um zu bestimmen, welche Bitleitungen vorgeladen werden sollen.
  • Eine weitere Herangehensweise stellt eine kürzere Programmierzeit bereit, weist jedoch erhöhten Energieverbrauch auf, weil unnötiges Bitleitungsvorladen vorhanden ist. Diese Herangehensweise muss die Auffangregister nur einmal in dem Verifizierungsabschnitt lesen, z. B. am Beginn der ersten Verifizierungsoperation. Die Auffangregister identifizieren die Zellen, die zum Programmieren ausgewählt sind (z. B. Zellen, die in der aktuellen Programmverifizierungsiteration programmiert werden), und Zellen, die zum Programmieren nicht ausgewählt sind (z. B. Zellen, die in dem gelöschten Zustand sind, oder Zellen, die das Programmieren vorher beendet haben). Die nicht ausgewählten Zellen weisen einen gesperrten Zustand auf. Es wird kein zusätzliches Lesen der Auffangregister in dem Verifizierungsabschnitt nach dem initialen Lesen ausgeführt. Für jede Verifizierungsoperation ist jedoch das Bitleitungsvorladen unnötig für einen Anteil der Zellen, z. B. die Zellen, für die das Abfühlergebnis nicht relevant ist und verworfen wird. Beispielsweise wenn die Verifizierungsoperation für den A-Zustand ausgeführt wird, tritt Bitleitungsvorladen für Zellen im A-Zustand auf, was notwendig ist, jedoch auch für Zellen im B-Zustand, was unnötig ist.
  • Eine zusätzliche Herangehensweise verwendet das Wissen über unterschiedliche Phasen einer Programmieroperation, um die Anzahl unnötiger Bitleitungsvorladungen zu reduzieren. Beispielsweise kann während der niedrigeren Programmschleifennummern einer Programmieroperation Bitleitungsvorladen für einen oder mehrere niedrigere Datenzustände auftreten, jedoch nicht für einen oder mehrere höhere Datenzustände. Ähnlich kann Bitleitungsvorladen während der höheren Programmschleifennummern Bitleitungsvorladen für einen oder mehrere höhere Datenzustände auftreten, jedoch nicht für einen oder mehrere niedrigere Datenzustände. In einer weiteren Herangehensweise, die Wissen über die unterschiedlichen Phasen einer Programmieroperation beinhalten kann oder nicht, können die Auffangregister mehr als einmal, jedoch weniger als für jede Verifizierungsoperation in dem Verifizierungsabschnitt gelesen werden. Auf diese Weise kann das Einstellen der Bitleitungsvorladung wenigstens einmal aktualisiert werden, nachdem es in dem Verifizierungsabschnitt initial eingestellt ist. Das führt zu einem Kompromiss zwischen erhöhter Programmierzeit und reduziertem Energieverbrauch.
  • Beispielspeichervorrichtungen, in denen die Programmiertechniken verwendet werden können, sind als Nächstes diskutiert.
  • 1 ist ein funktionales Blockdiagramm einer nichtflüchtigen Speichervorrichtung. Die Speichervorrichtung 100 kann einen oder mehrere Speicherchips 108 enthalten. Der Speicherchip 108 enthält die Speicherstruktur 120 aus Speicherzellen (die z. B. die Blöcke BLK0 und BLK1 enthalten), die Steuerschaltungsanordnung 110 und die Lese/Schreib-Schaltungen 128. Die Speicherstruktur 126 ist durch Wortleitungen über einen Zeilendecodierer 124 und durch Bitleitungen über einen Spaltendecodierer 132 adressierbar. Die Lese/Schreib-Schaltungen 128 enthalten mehrere Abfühlblöcke SB0, SB1, ..., SBn – 1 (Abfühlschaltungsanordnung) und erlauben, dass eine Zeile aus Speicherzellen parallel gelesen oder programmiert wird. Typischerweise ist eine Steuereinheit 122 in derselben Speichervorrichtung 100 (z. B. einer herausnehmbaren Speicherkarte) als einer oder mehrere Speicherchips 108 enthalten. Befehle und Daten werden zwischen dem Host und der Steuereinheit 122 über den Datenbus 120 und zwischen der Steuereinheit und dem einen oder den mehreren Speicherchips 108 über Leitungen 118 übertragen.
  • Die Speicherstruktur kann ein oder mehrere Felder aus Speicherzellen umfassen, die ein zweidimensionales oder ein dreidimensionales Feld enthalten. Die Speicherstruktur kann ein monolithisches dreidimensionales Speicherfeld umfassen, in dem mehrere Speicherebenen oberhalb (und nicht innerhalb) eines einzelnen Substrats, wie z. B. eines Wafers, ohne dazwischenliegende Substrate gebildet sind. Die Speicherstruktur kann irgendeinen Typ eines nichtflüchtigen Speichers umfassen, der monolithisch in einer oder mehreren physikalischen Ebenen von Feldern von Speicherzellen gebildet ist, die einen aktiven Bereich aufweisen, der oberhalb eines Siliziumsubstrats angeordnet ist. Die Speicherstruktur kann in einer nichtflüchtigen Speichervorrichtung sein, die eine Schaltungsanordnung aufweist, die dem Betrieb der Speicherzellen zugeordnet ist, unabhängig davon, ob die zugeordnete Schaltungsanordnung oberhalb oder innerhalb des Substrats ist.
  • Die Steuerschaltungsanordnung 110 wirkt mit den Lese/Schreib-Schaltungen 128 zusammen, um Speicheroperationen auf der Speicherstruktur auszuführen, und enthält einen Zustandsautomaten 112, einen On-Chip-Adressendecodierer 114 und ein Leistungssteuerungsmodul 116. Der Zustandsautomat 112 stellt eine Steuerung auf Chipebene der Speicheroperationen bereit. Der On-Chip-Adressendecodierer 114 stellt eine Adressenschnittstelle zwischen derjenigen, die durch den Host oder eine Speichersteuereinheit verwendet werden, zu der Hardware-Adresse, die durch die Decodierer 124 und 132 verwendet wird, bereit. Das Leistungssteuerungsmodul 116 steuert die Leistung und die Spannungen, den zu den Wortleitungen und Bitleitungen während Speicheroperationen zugeführt werden. Es kann Treiber für Wortleitungen, Drain- und Source-seitige Gate-Auswahltreiber (die sich z. B. auf Drain- oder Source-Seiten oder Enden einer Kette aus Speicherzellen wie beispielsweise einer NAND-Kette beziehen) und Source-Leitungen enthalten. Die Abfühlblöcke können in einer Herangehensweise Bitleitungstreiber enthalten.
  • In einigen Implementierungen können einige der Komponenten kombiniert sein. In verschiedenen Konstruktionen können eine oder mehrere der Komponenten (allein oder in Kombination), die nicht die Speicherstruktur 126 sind, als wenigstens eine Steuerschaltung oder als Steuerschaltungsanordnung betrachtet werden. Beispielsweise kann eine Steuerschaltung irgendeines aus oder eine Kombination aus Steuerschaltungsanordnung 110, Zustandsautomat 112, Decodierer 114/132, Leistungssteuerungsmodul 116, Abfühlblöcken (SB0, die den Prozessor 192 und die Managementschaltung MC0 in 2C enthalten), Lese/Schreib-Schaltungen 128 und Steuereinheit 122 und so weiter enthalten. Der Abfühlblock SB0 ist weiter in Verbindung mit 2A, 2C und 10A diskutiert.
  • In einer weiteren Herangehensweise verwendet ein nichtflüchtiges Speichersystem duale Zeilen/Spalten-Decodierer und Lese/Schreib-Schaltungen. Der Zugriff auf die Speicherstruktur durch die verschiedenen peripheren Schaltungen ist auf symmetrische Weise an gegenüberliegenden Seiten des Felds implementiert, so dass die Dichte von Zugangsleitungen und Schaltungsanordnung auf jeder Seite um die Hälfte reduziert ist. Somit ist der Zeilendecodierer in zwei Zeilendecodierer und der Spaltendecodierer in zwei Spaltendecodierer aufgeteilt. Ähnlich sind die Lese/Schreib-Schaltungen in Lese/Schreib-Schaltungen, die mit den Bitleitungen von unten verbunden sind, und Lese/Schreib-Schaltungen, die mit den Bitleitungen von der Oberseite der Speicherstruktur 126 verbunden sind, aufgeteilt. Auf diese Weise ist die Dichte der Lese/Schreib-Module um eine Hälfte reduziert.
  • Andere Typen von nichtflüchtigem Speicher zusätzlich zu NAND-Flash-Speicher können ebenfalls verwendet sein.
  • Halbleiterspeichervorrichtungen enthalten flüchtige Speichervorrichtungen wie z. B. dynamische Direktzugriffsspeichervorrichtungen ("DRAM"-Vorrichtungen) oder statische Direktzugriffsspeichervorrichtungen ("SRAM"-Vorrichtungen), nichtflüchtige Speichervorrichtungen wie z. B. resistiven Direktzugriffsspeicher ("ReRAM"), elektrisch löschbaren programmierbaren Festwertspeicher ("EEPROM"), Flash-Speicher (der auch als eine Untermenge von EEPROM betrachtet werden kann), ferroelektrischen Direktzugriffsspeicher ("FRAM") und magnetoresistiven Direktzugriffsspeicher ("MRAM") und andere Halbleiterelemente, die zum Speichern von Informationen imstande sind. Jeder Speichertyp kann unterschiedliche Konfigurationen aufweisen. Beispielsweise können Flash-Speichervorrichtungen in einer NAND- oder einer NOR-Konfiguration konfiguriert sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in irgendwelchen Kombinationen gebildet sein. Als nicht einschränkendes Beispiel enthalten passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, die in einigen Ausführungsformen ein Widerstandsschaltungsspeicherelement wie z. B. ein Antifuse oder Phasenänderungsmaterial und optional ein Lenkungselement wie z. B. eine Diode oder einen Transistor. Ferner enthalten als nicht einschränkendes Beispiel aktive Halbleiterspeicherelemente EEPROM- und Flash-Speichervorrichtungselemente, die in einigen Ausführungsformen Elemente enthalten, die einen Ladungsspeicherbereich wie z. B. ein schwebendes Gate, leitfähige Nanopartikel oder ein dielektrisches Ladungsspeichermaterial enthalten.
  • Mehrere Speicherelemente können konfiguriert sein, so dass sie in Reihe verbunden sind, oder so dass jedes Element individuell zugänglich ist. Als nicht einschränkendes Beispiel enthalten Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) typischerweise in Reihe verbundene Speicherelemente. Ein NAND-Speicherfeld kann so konfiguriert sein, dass das Feld aus mehreren Speicherketten zusammengesetzt ist, wobei eine Kette aus mehreren Speicherelementen zusammengesetzt ist, die eine einzelne Bitleitung gemeinsam verwenden und auf die als eine Gruppe zugegriffen wird. Alternativ können Speicherelemente so konfiguriert sein, dass jedes Element individuell zugreifbar ist, z. B. ein NOR-Speicherfeld. NAND- und NOR-Speicherkonfigurationen sind beispielhaft, und Speicherelemente können auf andere Weise konfiguriert sein.
  • Die Halbleiterspeicherelemente, die sich innerhalb eines und/oder über einem Substrat befinden, können in zwei oder drei Dimensionen angeordnet sein, wie z. B. eine zweidimensionale Speicherstruktur oder eine dreidimensionale Speicherstruktur.
  • In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder auf einem einzelnen Speichervorrichtungsniveau angeordnet. Typischerweise sind in einer zweidimensionalen Speicherstruktur Speicherelemente in einer Ebene angeordnet (z. B. in einer Ebene in x-y-Richtung), die sich im Wesentlichen parallel zu einer Hauptoberfläche eines Substrats erstreckt, das die Speicherelemente unterstützt. Das Substrat kann ein Wafer sein, über dem oder in dem die Schicht aus den Speicherelementen gebildet ist, oder es kann ein Trägersubstrat sein, das an den Speicherelementen angebracht wird, nachdem sie gebildet worden sind. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter wie z. B. Silizium enthalten.
  • Die Speicherelemente können in einer einzelnen Speichervorrichtungsebene in einem geordneten Feld wie z. B. in mehreren Zeilen und/oder Spalten angeordnet sein. Die Speicherelemente können jedoch in unregelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen wie z. B. Bitleitungen oder Wortleitungen aufweisen.
  • Ein dreidimensionales Speicherfeld ist so angeordnet, dass Speicherelemente mehrere Ebene oder mehrere Speichervorrichtungsniveaus besetzten und dadurch eine Struktur in drei Dimensionen bilden (d. h. in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht und die x- und y-Richtung im Wesentlichen parallel zu der Hauptoberfläche des Substrats sind).
  • Als ein nicht einschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als ein weiteres nicht einschränkendes Beispiel kann ein dreidimensionales Speicherfeld als mehrere vertikale Spalten angeordnet sein (z. B. Spalten, die sich im Wesentlichen senkrecht zu der Hauptoberfläche des Substrats, d. h. in der y-Richtung, erstrecken), wobei jede Spalte mehrere Speicherelemente aufweist. Die Spalten können in einer zweidimensionalen Konfiguration, z. B. in einer x-y-Ebene, angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherelementen mit Elementen auf mehreren vertikal gestapelten Speicherebenen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls ein dreidimensionales Speicherfeld bilden.
  • Als nicht einschränkendes Beispiel können in einem dreidimensionalen NAND-Speicherfeld die Speicherelemente zusammen gekoppelt sein, um eine NAND-Kette innerhalb einer einzelnen horizontalen (z. B. x-y-)Speichervorrichtungsebene zu bilden. Alternativ können die Speicherelemente zusammen gekoppelt sein, um eine vertikale NAND-Kette zu bilden, die über mehrere horizontale Speichervorrichtungsebenen verläuft. Andere dreidimensionale Konfigurationen sind vorstellbar, wobei einige NAND-Ketten Speicherelemente in einer einzelnen Speicherebene beinhalten, während andere Ketten Speicherelemente beinhalten, die mehrere Speicherebenen überspannen. Dreidimensionale Speicherfelder können auch in einer NOR-Konfiguration und in einer ReRAM-Konfiguration konstruiert sein.
  • Typischerweise sind in einem monolithischen dreidimensionalen Speicherfeld eine oder mehrere Speichervorrichtungsebenen oberhalb eines einzigen Substrats gebildet. Optional kann das monolithische dreidimensionale Speicherfeld außerdem eine oder mehrere Speicherschichten wenigstens teilweise innerhalb des einzigen Substrats aufweisen. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter wie z. B. Silizium enthalten. In einem monolithischen dreidimensionalen Feld sind die Schichten, die jede Speichervorrichtungsebene des Felds bilden, typischerweise auf den Schichten der darunter liegenden Speichervorrichtungsebenen des Felds gebildet. Schichten benachbarter Speichervorrichtungsebenen eines monolithischen dreidimensionalen Speicherfelds können jedoch gemeinsam verwendet werden oder dazwischenliegende Schichten zwischen den Speichervorrichtungsebenen aufweisen.
  • Dann können wieder zweidimensionale Felder getrennt gebildet und dann zusammen paketiert werden, um eine nicht monolithische Speichervorrichtung zu bilden, die mehrere Speicherschichten aufweist. Beispielsweise können nicht monolithische gestapelte Speicher durch Bilden von Speicherebenen auf getrennten Substraten und dann Stapeln der Speicherebenen aufeinander konstruiert werden. Die Substrate können gedünnt oder von den Speichervorrichtungsebenen vor dem Stapeln entfernt werden, da aber die Speichervorrichtungsebenen anfangs über getrennten Substraten gebildet sind, sind die resultierenden Speicherfelder keine monolithischen dreidimensionalen Speicherfelder. Ferner können mehrere zweidimensionale Speicherfelder oder dreidimensionale Speicherfelder (monolithisch oder nicht monolithisch) auf getrennten Chips gebildet und dann zusammen paketiert werden, um eine gestapelte Chip-Speichervorrichtung zu bilden.
  • Zugeordnete Schaltungsanordnung ist typischerweise für den Betrieb der Speicherelemente und zur Kommunikation mit den Speicherelementen erforderlich. Als nicht einschränkende Beispiele können Speichervorrichtungen eine Schaltungsanordnung aufweisen, die zum Steuern und Treiben von Speicherelementen verwendet wird, um Funktionen wie z. B. Programmieren und Lesen auszuführen. Diese zugeordnete Schaltungsanordnung kann auf demselben Substrat wie die Speicherelemente und/oder auf einem getrennten Substrat sein. Beispielsweise kann sich eine Steuereinheit für Speicher-Lese-Schreib-Operationen auf einem getrennten Steuereinheit-Chip und/oder auf demselben Substrat wie die Speicherelemente befinden.
  • Ein Fachmann wird erkennen, dass diese Technologie nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt ist, sondern alle relevanten Speicherstrukturen innerhalb des Geists und des Schutzbereichs der Technologie abdeckt, wie sie hier beschrieben ist und wie sie durch einen Fachmann verstanden wird.
  • 2A bildet einen Block aus NAND-Ketten in der Speicherstruktur 126 von 1 und zugehörige Abfühlblöcke SB0, SB0a und SB0b ab. Die Speicherstruktur kann viele Blöcke enthalten. Ein Beispielblock 200 enthält eine Anzahl von NAND-Ketten NS0 bis NS11 und entsprechender Bitleitungen, z. B. BL0 bis BL11, die von den Blöcken gemeinsam verwendet werden. Jede NAND-Kette ist an einem Ende mit einem Drain-Gate-Auswahl-Transistor (SGD-Transistor) verbunden, und die Steuer-Gates der SGD-Transistoren sind über eine gemeinsame SGD-Leitung verbunden. Jede NAND-Kette ist an ihrem anderen Ende mit einem Source-Gate-Auswahl-Transistor (SGS-Transistor) verbunden, der wiederum mit einer gemeinsamen Source-Leitung 220 verbunden ist. Beispielsweise enthält NS0 einen SGS-Transistor 202 und einen SGD-Transistor 201. Beispielspeicherzellen 208219 sind jeweils in N0 bis NS11 und sind jeweils mit den Bitleitungen BL0–BL11 verbunden. WL3 ist eine ausgewählte Wortleitung, die zum Programmieren ausgewählt ist, und die Beispielspeicherzellen enthalten ausgewählte Speicherzellen, die zum Programmieren ausgewählt sind. Siehe auch 2B. Andere Speicherzellen, die mit WL3 ausgewählt sind, können ebenfalls ausgewählte Speicherzellen sein. Vierundsechzig Wortleitungen, beispielsweise WL0–WL63, erstrecken sich zwischen den ausgewählten Gates auf der Source-Seite und den ausgewählten Gates auf der Drain-Seite.
  • In einer Herangehensweise ist ein Abfühlblock für eine Gruppe von NAND-Ketten, wie z. B. vier NAND-Ketten, bereitgestellt. Beispielsweise ist SB0 Block BL0–BL3 zugeordnet, SB1 ist BL4–BL7 zugeordnet und SB2 ist BL8–BL11 zugeordnet. Jeder Abfühlblock enthält eine Speichersteuereinheit, z. B. MC0, MC1 und MC2 in SB0, SB0a bzw. Sb0b. Jeder Abfühlblock enthält außerdem ein Abfühlmodul für jede NAND-Kette. Repräsentative Abfühlmodule SM0, SM1 und SM2 sind in SB0, SB0a bzw. SB0b abgebildet. SB0 und MC0 sind nachstehend weiter diskutiert.
  • Andere Typen von nichtflüchtigem Speicher zusätzlich zu NAND-Flash-Speicher können ebenfalls verwendet sein. Beispielsweise nutzt ein weiterer Typ von Speicherzellen, der in EEPROM-Systemen nützlich ist, ein nichtleitfähiges dielektrisches Material anstelle eines leitfähigen schwebenden Gate, um Ladung auf eine nichtflüchtige Weise zu speichern. Die Zelle ist eine ladungsfangende Speicherzelle. Ein dreilagiges Dielektrikum, das aus Siliziumoxid, Siliziumnitrid und Siliziumoxid gebildet ist, ("ONO") ist zwischen einem leitfähigen Steuer-Gate und einer Oberfläche eines halbleitenden Substrats oberhalb des Speicherzellenkanals eingeschoben. Die Zelle wird durch Injizieren von Elektronen aus dem Zellenkanal in das Nitrid, wo sie gefangen und in einem begrenzten Bereich gespeichert werden, programmiert. Diese gespeicherte Ladung ändert dann die Vth eines Abschnitts des Kanals der Zelle auf eine Weise, die detektierbar ist. Die Zelle wird durch Injizieren heißer Löcher in das Nitrid gelöscht. Eine ähnliche Zelle kann in einer Konfiguration mit aufgespaltenem Gate bereitgestellt sein, wo sich ein dotiertes Polysilizium-Gate über einen Abschnitt des Speicherzellenkanals erstreckt, um einen getrennten Auswahltransistor zu bilden. Ein weiterer Speichertyp verwendet Speicherzellen mit metallischer (leitfähiger) Ladung in einer NAND-Architektur.
  • In einer weiteren Herangehensweise sind NROM-Zellen verwendet. Zwei Bits sind beispielsweise in jeder NROM-Zelle gespeichert, wobei sich eine dielektrische ONO-Schicht über den Kanal zwischen Source- und Drain-Diffusionen erstreckt. Die Ladung für ein Datenbit ist in der Dielektrikumschicht benachbart dem Drain lokalisiert, und die Ladung für das andere Datenbit ist in der Dielektrikumschicht benachbart der Source lokalisiert. Mehrstufe Datenspeicherung wird durch getrenntes Lesen binärer Zustände der räumlich getrennten Ladungsspeicherungsbereiche innerhalb des Dielektrikums erhalten. Andere Typen von nichtflüchtigem sind ebenfalls bekannt.
  • 2B bildet Beispieldatenzustände der Speicherzellen 208219 von 2A ab. Die Datenzustände können im Allgemein gleichmäßig über eine Gruppe von Speicherzellen verteilt sein. In diesem Beispiel sind die Speicherzellen 208, 212 und 216 in dem gelöschten Zustand und sollen nicht programmiert werden, die Speicherzellen 209, 213 und 217 weisen den A-Zustand als einen Zieldatenzustand auf, die Speicherzellen 210, 214 und 218 weisen den B-Zustand als einen Zieldatenzustand auf, und die Speicherzellen 211, 215 und 219 weisen den C-Zustand als einen Zieldatenzustand auf.
  • 2C ist ein Blockdiagramm, das eine Ausführungsform des Abfühlblocks SB0 von 1 abbildet. Der einzelne Abfühlblock SB0 ist in einen oder mehrerer Kernabschnitte, die als Abfühlmodule (z. B. SM0) oder Abfühlverstärker bezeichnet sind, und einen gemeinsamen Abschnitt, der als Managementschaltung (z. B. MC0) bezeichnet ist, unterteilt. In einer Ausführungsform ist ein getrenntes Abfühlmodul für jede Bitleitung und eine gemeinsame Managementschaltung für eine Gruppe aus mehreren, z. B. vier oder acht, Abfühlmodulen vorhanden. Jedes der Abfühlmodule in einer Gruppe kommuniziert mit der zugeordneten Managementschaltung über einen Datenbus 172. Somit sind ein oder mehrere Managementschaltungen vorhanden, die mit den Abfühlmodulen einer Gruppe von Speicherzellen kommunizieren.
  • Bezug nehmend auch auf 10A umfasst das Abfühlmodul SM0 eine Abfühlschaltungsanordnung, die Abfühlen durch Bestimmen, ob ein Leitungsstrom in einer verbundenen Bitleitung oberhalb oder unterhalb eines vorbestimmten Schwellenpegels ist, ausführt. SM0 enthält ein Bitleitungs-Auffangregister 1007, das verwendet wird, um einen Spannungszustand auf der verbundenen Bitleitung einzustellen. Beispielsweise wird ein vorbestimmter Zustand, der in dem Bitleitungs-Auffangregister aufgefangen ist, zu einer verbundenen Bitleitung führen, die auf einen Zustand gezogen ist, der Programmiersperre bezeichnet (z. B. 1,5–3 V). Als ein Beispiel kann ein Wert Flag = 0 eingestellt sein, um Programmieren zu sperren (Status = gesperrt), während Flag = 1 Programmieren erlaubt (Status = programmieren).
  • Die Managementschaltung MC0 umfasst einen Prozessor 192, vier Beispielgruppen von Daten-Auffangregistern 194197 und eine I/O-Schnittstelle 196, die zwischen den Gruppen von Daten-Auffangregistern und einen Datenbus 120 gekoppelt ist. Eine Gruppe von Daten-Auffangregistern kann für jedes Abfühlmodul bereitgestellt sein, und Daten-Auffangregister, die durch LP, UP und QPW1 identifiziert sind, können für jede Gruppe bereitgestellt sein. In einigen Fällen können zusätzliche Daten-Auffangregister verwendet sein. In einigen Fällen können weniger Daten-Auffangregister verwendet sein. LP speichert ein Bit für eine tiefere Datenseite, und UP speichert ein Bit für eine höhere Datenseite. Das findet in einer Vierpegel- oder Zwei-Bits-pro-Speicherzelle-Speichervorrichtung statt. In jeder Gruppe von Auffangregistern können ein oder mehrere zusätzliche Daten-Auffangregister, von denen jedes ein Datenbit speichert, bereitgestellt sein, um einen Zählwert von Programmierspannungen zu pflegen, die an eine Speicherzelle angelegt werden, wenn ihr Vth zwischen dem tieferen und dem höheren Verifizierungspegel ist, z. B. wenn die Speicherzelle langsames Programmieren erfährt.
  • Der Prozessor 192 führt Berechnungen aus, z. B. um die Daten, die in den abgefühlten Speicherzellen gespeichert sind, zu bestimmen und die bestimmten Daten in der Gruppe von Daten-Auffangregistern zu speichern. Jede Gruppe von Daten-Auffangregistern 194197 wird verwendet, um Datenbits zu speichern, die durch den Prozessor 192 während einer Leseoperation bestimmt werden, und um Datenbits zu speichern, die aus dem Datenbus 120 während einer Programmieroperation importiert werden, die Schreibdaten repräsentieren, die dafür vorgesehen sind, in den Speicher programmiert zu werden. Die I/O-Schnittstelle 196 stellt eine Schnittstelle zwischen Daten-Auffangregistern 194197 und dem Datenbus 120 bereit. Der Prozessor kann außerdem Vorladungsdaten für die Abfühlmodule einstellen.
  • Während Verifizierungsoperationen ist der Betrieb des Systems unter der Steuerung des Zustandsautomaten 112, der die Zuführung unterschiedlicher Steuer-Gate-Spannungen zu den adressierten Speicherzellen steuert. Wenn es verschiedene vordefinierte Steuer-Gate-Spannungen, die den verschiedenen Zieldatenzuständen, die durch den Speicher unterstützt werden, entsprechen, schrittweise durchläuft, kann das Abfühlmodul an einer dieser Spannungen schalten, und eine entsprechende Ausgabe wird aus dem Abfühlmodul für den Prozessor 192 über den Bus 172 bereitgestellt. An diesem Punkt bestimmt der Prozessor 192 den resultierenden Speicherzustand durch Berücksichtigung des/der Schaltereignisse(s) des Abfühlmoduls und der Informationen über die angelegt Steuer-Gate-Spannung aus dem Zustandsautomaten über die Eingangsleitungen 193. Er berechnet dann eine Binärcodierung für den Speicherzustand und speichert die resultierenden Datenbits in Daten-Auffangregistern 194197. In einer weiteren Ausführungsform der Managementschaltung MC0 erfüllt das Bitleitungs-Auffangregister 1007 zwei Aufgaben, sowohl als Auffangregister zum Auffangen der Ausgabe des Abfühlmoduls, als auch als Bitleitungs-Auffangregister wie vorstehend beschrieben.
  • Einige Implementierungen können mehrere Prozessoren 192 enthalten. In einer Ausführungsform wird jeder Prozessor 102 eine Ausgangsleitung (nicht abgebildet) enthalten, so dass jede der Ausgangsleitungen auf OR-Weise zusammen verdrahtet ist. In einigen Ausführungsformen werden die Ausgangsleitungen invertiert, bevor sie mit der OR-verdrahteten Leitung verbunden werden. Diese Konfiguration ermöglicht eine schnelle Bestimmung während des Programmverifizierungsprozesses dafür, wann der Programmierprozess fertiggestellt ist, weil der Zustandsautomat, der das verdrahtete OR empfängt, bestimmen kann, wann alle Bits, die programmiert werden, den gewünschten Pegel erreicht haben. Beispielsweise wird, wenn jedes Bit seinen gewünschten Pegel erreicht hat, eine logische Null für dieses Bit zu der OR-verdrahteten Leitung gesendet (oder ein Datenelement eins wird invertiert). Wenn alle Bits ein Datenelement 0 (oder ein Datenelement eins invertiert) ausgeben, dann weiß der Zustandsautomat, dass der Programmierprozess beendet werden kann. Weil jeder Prozessor mit acht Abfühlmodulen kommuniziert, liest der Zustandsautomat die OR-verdrahtete Leitung acht Mal, oder es wird Logik zu dem Prozessor 192 hinzugefügt, um die Ergebnisse der zugeordneten Bitleitungen zu akkumulieren, so dass der Zustandsautomat die OR-verdrahtete Leitung nur einmal lesen muss. Ähnlich kann, durch korrektes Wählen der Logik-Ebenen, der globale Zustandsautomat detektieren, wann das erste Bit seinen Zustand ändert, und die Algorithmen dementsprechend ändern.
  • Während Programmier- oder Verifizierungsoperationen sind die Daten, die programmiert werden sollen, (Schreibdaten) in der Gruppe von Daten-Auffangregistern 194197 aus dem Datenbus 120 gespeichert. Die Programmieroperation umfasst unter der Steuerung des Zustandsautomaten eine Reihe von Programmierspannungsimpulsen, die an die Steuer-Gates der adressierten Speicherzelle angelegt werden. Jeder Programmierspannung folgt ein Zurücklesen (Verifizieren), um zu bestimmen, ob die Speicherzelle auf den gewünschten Speicherzustand programmiert worden ist. In einigen Fällen überwacht der Prozessor 192 den zurückgelesenen Speicherzustand relativ zu dem gewünschten Speicherzustand. Wenn die zwei Zustände übereinstimmen, stellt der Prozessor 192 das Bitleitungs-Auffangregister 1007 so ein, um zu bewirken, dass die Bitleitung auf einen Zustand gezogen wird, der Programmiersperre bezeichnet. Das sperrt die Speicherzelle, die mit der Bitleitung gekoppelt ist, gegen weiteres Programmieren, selbst wenn Programmierspannungen auf ihrem Steuer-Gate erscheinen. In anderen Ausführungsformen lädt der Prozessor anfangs das Bitleitungs-Auffangregister 1007, und die Abfühlschaltungsanordnung stellt es während des Verifizierungsprozesses auf einen Sperrwert ein.
  • Jede Gruppe von Daten-Auffangregistern 194197 kann als ein Stapel von Daten-Auffangregistern für jedes Abfühlmodul implementiert sein. In einer Ausführungsform sind drei Daten-Auffangregister pro Abfühlmodul vorhanden. In einigen Implementierungen sind die Daten-Auffangregister als ein Schieberegister implementiert, so dass die darin gespeicherten parallelen Daten in serielle Daten für den Datenbus 120 umgesetzt werden, und umgekehrt. Alle Daten-Auffangregister, die dem Lese/Schreibblock von Speicherzellen entsprechen, können zusammen verbunden werden, um ein Block-Schieberegister zu bilden, so dass ein Datenblock durch serielle Übertragung eingegeben oder ausgegeben werden kann. Insbesondere ist die Bank aus Lese/Schreib-Modulen so ausgelegt, dass jedes aus ihrer Gruppe von Daten-Auffangregistern Daten in den oder aus dem Datenbus der Reihe nach schieben kann, als ob sie Teil eines Schieberegisters für den gesamten Lese/Schreibblock sind.
  • Die Daten-Auffangregister identifizieren, wann eine zugeordnete Speicherzelle spezielle Meilensteine in einer Programmieroperation erreicht hat. Beispielsweise können Auffangregister identifizieren, dass die Vth einer Speicherzelle unterhalb eines speziellen Verifizierungspegels ist. Die Daten-Auffangregister geben an, ob eine Speicherzelle derzeit ein oder mehrere Bits aus einer Datenseite speichert. Wenn Bits tieferer und höherer Seiten verwendet werden (z. B. in einem Fall von zwei Bits pro Speicherzelle), können LP-Auffangregister verwendet werden, um eine tiefere Datenseite zu speichern, und werden umgekehrt (z. B. von 0 auf 1), wenn ein Bit der tieferen Seite in einer zugeordneten Speicherzelle gespeichert ist. Die UP-Auffangregister kann verwendet werden, um eine höhere Datenseite zu speichern, und werden umgekehrt, wenn ein Bit der höheren Seite in einer zugeordneten Speicherzelle gespeichert ist. Das Umkehren eines Bits tritt auf, wenn eine zugeordnete Speicherzelle das Programmieren fertigstellt, z. B. wenn ihr Vth einen Ziel- oder Sperrverifizierungspegel, Vv, überschreitet. Wenn Bits der tiefen, mittleren und höheren Seite verwendet werden (z. B. in dem Fall von drei Bits pro Speicherzelle), werden auch MP-Auffangregister (Auffangregister der mittleren Seite) verwendet. MP wird umgekehrt, wenn ein Bit der mittleren Seite in einer zugeordneten Speicherzelle gespeichert ist. Beispielsweise ist in 6B bis 6D das erste Bit (von rechts nach links) das Bit der tieferen Seite, das zweite Bit ist das Bit der mittleren Seite, und das dritten Bit ist das Bit der höheren Seite.
  • 3A bildet eine Querschnittsansicht eines Abschnitts einer NAND-Kette von 2A in einer dreidimensionalen Beispiel-Speichervorrichtung ab. In einer Beispielausführungsform ist die NAND-Kette 236 in einer gestapelten dreidimensionalen nichtflüchtigen Speichervorrichtung bereitgestellt, die alternierende leitfähige und isolierende Schichten enthält, in denen Auswahl-Gates und Speicherzellen gebildet sind. Die NAND-Kette erstreckt sich zwischen einem SGD-Auswahl-Gate an einem Ende und einem SGS-Auswahl-Gate an dem entgegengesetzten Ende. Ein Drain-Ende der NAND-Kette ist in Kommunikation mit einer Bitleitung, und ein Source-Ende der NAND-Kette ist in Kommunikation mit einer Source-Leitung. Die NAND-Kette umfasst eine Spalte, die eine Anzahl von Schichten enthält, die entlang den Seitenwänden der Spalte aufgebracht sind. Diese Schichten können Oxid-Nitrid-Oxid und Polysilizium-Schichten enthalten, die z. B. unter Verwendung von Atomlagenabscheidung aufgebracht sind. Beispielsweise kann ein Blockoxid (BOX) als Schicht 296 aufgebracht sein, ein Nitrid wie z. B. SiN als eine ladungsfangende Schicht (CTL) kann als Schicht 297 aufgebracht sein, ein Tunneloxid (TNL) kann aus Schicht 298 aufgebracht sein, ein Polysilizium-Body oder Kanal (CH) kann als Schicht 299 aufgebracht sein, und ein Kernfülldielektrikum kann als Bereich 300 aufgebracht sein.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Abschnitt der CTL, der der Speicherzelle zugeordnet ist, gespeichert. Beispielsweise sind Elektronen durch Symbole "–" in der CTL 297 repräsentiert. Diese Elektronen werden aus dem Kanal und durch die TNL in die CTL gezogen, wie durch die Pfeile angegeben ist. Die Schwellenspannung einer Speicherzelle wird proportional zu der gespeicherten Ladungsmenge erhöht.
  • Die abgebildete Ansicht enthält fünf Schichten des Stapels, die dielektrische Schichten D2, D3 und D4 und leitfähige Wortleitungsschichten WLL2 und WLL3 enthalten. Die Ansicht enthält ferner Beispielspeicherzellen M02, M12, M03 und M13. Die Ansicht zeigt außerdem Abschnitte D4D und D4S der dielektrischen Schicht D4, Abschnitte D3D und D3S der dielektrischen Schicht D3 und Abschnitte D2D und D2S der dielektrischen Schicht D22. Die Ansicht zeigt außerdem Abschnitte WLL4D und WLL4S der leitfähigen Schicht WLL4, Abschnitte WLL3D und WLL3S der leitfähigen Schicht WLL3 und Abschnitte WLL2D und WLL2S der leitfähigen Schicht WLL2.
  • Eine Anzahl von Schichten kann entlang der Seitenwände der Spalte und innerhalb jeder Wortleitungsschicht aufgebracht sein. Diese Schichten können Oxid-Nitrid-Oxid (O-N-O) und Polysilizium-Schichten enthalten, die z. B. unter Verwendung von Atomlagenabscheidung aufgebracht sind. Beispielsweise enthält die Spalte eine/n ladungsfangende/n Schicht oder Film (CTL) 297 wie z. B. SiN oder ein anderes Nitrid, ein Tunneloxid (TNL) 298, einen Polysilizium-Body oder Kanal (CH) 299 und ein Kernfülldielektrikum 300. Die Wortleitungsschicht enthält ein Blockoxid (BOX) 296, ein Blockmaterial mit hohem k 295, ein Sperrenmaterial 294 und ein leitfähiges Metall wie z. B. W 293. In einer anderen Herangehensweise sind alle diese Schichten außer dem W in der Spalte bereitgestellt. Zusätzliche Speicherzellen sind durchgehend in den Spalten ähnlich gebildet.
  • 3B bildet eine Querschnittsansicht entlang Linie 302 von 3A ab. Jede Schicht ist in einer möglichen Herangehensweise ringförmig, außer dem Kernfüller, der ein Zylinder ist.
  • 3C bildet eine Beispielschaltung in einer dreidimensionalen Speichervorrichtung ab, die die NAND-Kette von 3A enthält. Die NAND-Ketten NS0, NS1, NS2 und NS3 sind in Kommunikation mit einer Bitleitung BL0 (einer Bitleitung) in BL-SB0 (einem Bitleitungs-Teilblock), und die NAND-Ketten NS0A, NS1A, NS2A und NS3A sind in Kommunikation mit einer Bitleitung BL1 (einer weiteren Bitleitung) in BL-SB1 (einem weiteren Bitleitungs-Teilblock). Die gefüllten Kreise geben Steuer-Gates des SG-Transistors und die Speicherzellen auf der Drain-Seite einer NAND-Kette an. Die offenen Kreise geben Steuer-Gates des SG-Transistors und die Speicherzellen auf der Source-Seite einer NAND-Kette an.
  • Beispielsweise weist NS0 eine Drain-Seite, die die Speicherzellen M00, M01, M02 und M03 und einen SGD-Transistor SGD0 umfasst, und eine Source-Seite, die die Speicherzellen M10, M11, M12 und M13 und einen SGS-Transistor SGS0 umfasst, auf. NS1 weist eine Drain-Seite, die die Speicherzellen M30, M31, M32 und M33 und einen SGD-Transistor SGD1 umfasst, und eine Source-Seite, die die Speicherzellen M20, M21, M22 und M23 und einen SGS-Transistor SGS1 umfasst, auf. NS2 weist eine Drain-Seite, die die Speicherzellen M40, M41, M42 und M43 und einen SGD-Transistor SGD2 umfasst, und eine Source-Seite, die die Speicherzellen M50, M51, M52 und M53 und einen SGS-Transistor SGS2 umfasst, auf. NS3 weist eine Drain-Seite, die die Speicherzellen M70, M71, M72 und M73 und einen SGD-Transistor SGD3 umfasst, und eine Source-Seite, die die Speicherzellen M60, M61, M62 und M63 und einen SGS-Transistor SGS3 umfasst, auf.
  • Ähnlich weist NS0A eine Drain-Seite, die die Speicherzellen M00A, M01A, M02A und M03A und einen SGD-Transistor SGD0A umfasst, und eine Source-Seite, die die Speicherzellen M10A, M11A, M12A und M13A und einen SGS-Transistor SGS0A umfasst, auf. NS1A weist eine Drain-Seite, die die Speicherzellen M30A, M31A, M32A und M33A und einen SGD-Transistor SGD1A umfasst, und eine Source-Seite, die die Speicherzellen M20A, M21A, M22A und M23A und einen SGS-Transistor SGS1A umfasst, auf. NS2A weist eine Drain-Seite, die die Speicherzellen M40A, M41A, M42A und M43A und einen SGD-Transistor SGD2A umfasst, und eine Source-Seite, die die Speicherzellen M50A, M51A, M52A und M53A und einen SGS-Transistor SGS2A umfasst, auf. NS3A weist eine Drain-Seite, die die Speicherzellen M70A, M71A, M72A und M73A und einen SGD-Transistor SGD3A umfasst, und eine Source-Seite, die die Speicherzellen M60A, M61A, M62A und M63A und einen SGS-Transistor SGS3A umfasst, auf.
  • Jede NAND-Kette weist ein Rück-Gate auf (BG0 für NS0, BG1 für NS1, BG2 für NS2, BG3 für NS3, BG0A für NS0A, BG1A für NS1A, BG2A für NS2A, BG3A für NS3A). Die Steuer-Gates aller Rück-Gates in der Schaltung 303 können miteinander verbunden sein.
  • In einer Herangehensweise ist die Source-Seite jedes SGS-Transistors mit einer gemeinsamen Source-Leitung der Schaltung 303 verbunden.
  • Auf jeder Ebene der Schaltung 303 sind die Steuer-Gates der Speicherzellen der Drain-Seite miteinander durch eine gemeinsame Wortleitungsschicht verbunden. Beispielsweise weisen M03, M03A, M33, M33A, M43, M43A, M73 und M73A Steuer-Gates auf, die durch die Wortleitungsschicht WL dreidimensional verbunden sind, konsistent mit 3B. M13, M13A, M23, M23A, M53, M53A, M63 und M63A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL3S verbunden sind.
  • M02, M02A, M32, M32A, M42, M42A, M72 und M72A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL2D verbunden sind. M12, M12A, M22, M22A, M52, M52A, M62 und M62A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL2S verbunden sind.
  • M01, M01A, M31, M31A, M41, M41A, M71 und M71A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL1D verbunden sind. M11, M11A, M21, M21A, M51, M51A, M61 und M61A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL1S verbunden sind.
  • M00, M00A, M30, M30A, M40, M40A, M70 und M70A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL0D verbunden sind. M10, M10A, M20, M20A, M50, M50A, M60 und M60A weisen Steuer-Gates auf, die durch die Wortleitungsschicht WL0S verbunden sind.
  • Zusätzlich sind Steuer-Gates der SGD-Transistoren in jeweiligen SGD-Leitungsuntergruppen miteinander verbunden. Beispielsweise sind die Steuer-Gates von SGD0 und SGD01 verbunden, die Steuer-Gates von SGD1 und SGD1A sind verbunden, die Steuer-Gates von SGD2 und SGD2A sind verbunden, und die Steuer-Gates von SGD3 und SGD3A sind verbunden.
  • Die Steuer-Gates der SGS-Transistoren sind miteinander in der x-Richtung verbunden. Beispielsweise sind die Steuer-Gates von SGS0 und SGS01 verbunden, die Steuer-Gates von SGS1 und SGS1A sind verbunden, die Steuer-Gates von SGS2 und SGS2A sind verbunden, und die Steuer-Gates von SGS3 und SGS3A sind verbunden. In einer Programmieroperation können die Speicherzellen auf unterschiedliche Weisen programmiert werden. In einer Herangehensweise können die Speicherzellen in einer Bitleitungsteilgruppe (oder mehreren Bitleitungsteilgruppen) in einer gemeinsamen Programmieroperation programmiert werden. Ähnlich können die SG-Transistoren individuell oder gleichzeitig in einer SGD-Leitungsteilgruppe programmiert werden.
  • 4A und 4B bilden ein Beispiel einer Programmieroperation mit einem Durchgang an, in der tiefere und höhere Seiten von Daten gleichzeitig geschrieben werden. Ein Programmierdurchgang, oder eine Programmieroperation, bedeutet im Allgemeinen, dass er eine Folge von Programmverifizierungsiterationen beinhaltet, die ausgeführt werden, bis die Schwellenspannungen einer Gruppe ausgewählter Speicherzellen eine oder mehrere jeweilige Verifizierungspegel jeweiliger Zieldatenzustände erreicht. Einige der Speicherzellen werden nicht programmiert und verbleiben in dem gelöschten Zustand, während andere zu höheren Zieldatenzuständen programmiert werden.
  • Beispiele für Vth-Verteilungen sind für einen Fall bereitgestellt, in dem jede Speicherzelle zwei Bits von Daten speichert. Jedes Diagramm bildet Vth auf der x-Achse und eine Anzahl oder Population von Speicherzellen in einer Vth-Verteilung auf der Y-Achse ab. Ein Bit repräsentiert die LP-Daten, und das andere Bit repräsentiert die UP-Daten. Beispielsweise bezeichnet 11 UP = 1 und LP = 1, 01 bezeichnet UP = 0 und LP = 1, 00 bezeichnet UP = 0 und LP = 0, und 10 bezeichnet UP = 1 und LP = 0. Eine erste Vth-Verteilung 400 ist für Speicherzellen im gelöschten Zustand (Er-Zustand) bereitgestellt. Vth-Verteilungen 404, 406 und 408 repräsentieren Zieldatenzustände A, B bzw. C, die durch Speicherzellen erreicht werden, wenn ihre Vth einen Verifizierungspegel VvA, VvB bzw. VvC übersteigt.
  • Lesereferenzspannungen VrA, VrB und VrC, die zwischen den Verteilungen sind, werden zum Lesen von Daten aus den Speicherzellen verwendet. Durch Überprüfen, ob die Vth einer gegebenen Speicherzelle oberhalb oder unterhalb einer oder mehrerer der Lesereferenzspannungen ist, kann das System den Datenzustand bestimmen, der durch eine Speicherzelle repräsentiert ist.
  • 5A bis 5C bilden eine Programmieroperation mit zwei Durchgängen an, in denen tiefere und höhere Seiten in einem ersten bzw. zweiten Durchgang geschrieben werden, unter Verwendung von Zwei-Bit-, Vierpegel-Speicherzellen. Programmieren kann für eine logische Seite gleichzeitig ausgeführt werden, wobei die höhere Seite der tieferen Seite folgt. Anfangs sind alle Speicherzellen in dem Er-Zustand, der durch die Verteilung 500 in 5A repräsentiert ist.
  • 5B bildet Programmieren einer tieferen Datenseite ab. Falls die tiefere Seite ein Bit = 1 aufweist, verbleibt die zugeordnete Speicherzelle in der Verteilung 500, und die Daten werden durch x1 repräsentiert, wobei x ein Bit der höheren Seite ist, das noch nicht bekannt ist. Falls die tiefere Seite ein Bit = 0 aufweist, wird die Speicherzelle zu einer höheren Vth programmiert, wie durch die Verteilung 502 repräsentiert ist, die eine Interimsverteilung (INT) ist, unter Verwendung eines Verifizierungspegels Vv_int. Die Daten dieser Speicherzellen sind durch x0 repräsentiert. Die Interimsverteilung kann relativ breit sein, da sie keinen Datenzustand repräsentiert.
  • 5C bildet Programmieren einer höheren Datenseite ab. Falls UP/LP = 11 ist, verbleibt die zugeordnete Speicherzelle in der Verteilung 500 in der Verteilung 500 und speichert Datenbits 11. Falls UP/LP = 01 ist, werden die Speicherzellen in der Verteilung 500 zu der Verteilung 504 programmiert (Zustand A). Falls UP/LP = 10 ist, werden die Speicherzellen in der Verteilung 502 zu der Verteilung 508 programmiert (Zustand C). Falls UP/LP = 00 ist, werden die Speicherzellen in der Verteilung 502 zu der Verteilung 506 programmiert (Zustand B). Optional wird ein langsamer Programmiermodus verwendet, wenn die Vth innerhalb eines Randbereichs des Verifizierungspegels des Zieldatenzustands ist.
  • Programmieren kann auf ähnliche Weise auf drei oder mehr Bits pro Speicherzelle erweitert werden. Beispielsweise bilden 6A bis 6C eine Programmieroperation mit drei Durchgängen ab, in denen tiefere, mittlere und höhere Seiten in einem ersten, zweiten bzw. dritten Durchgang geschrieben werden.
  • Programmieren tieferer, mittlerer und höherer Seiten in Drei-Bit-Acht-Pegel-Speicherzellen ist abgebildet. Sieben programmierte Datenzustände A bis G sind zusätzlich zu Er für insgesamt acht Zustände verwendet. Anfangs sind alle Speicherzellen in dem Er-Zustand, der durch die Verteilung 600 repräsentiert ist. Die tiefere Seite ist in 6B programmiert. Falls LP = 1 ist, bleiben Speicherzellen in der Verteilung 600 in dieser Verteilung. Falls LP = 0 ist, werden Speicherzellen in der Verteilung 600 zu einer Interimsverteilung 602 unter Verwendung von Vv1 programmiert. Die mittlere Seite ist in 6C programmiert. Falls MP = 1 ist, bleiben Speicherzellen in der Verteilung 600 in dieser Verteilung und Speicherzellen in der Verteilung 602 werden zu der Interimsverteilung 608 unter Verwendung des Verifizierungspegels Vv4 programmiert. Falls MP = 0 ist, werden Speicherzellen in der Verteilung 600 zu der Interimsverteilung 604 unter Verwendung des Verifizierungspegels Vv2 programmiert und Speicherzellen in der Verteilung 602 werden zu der Interimsverteilung 606 unter Verwendung des Verifizierungspegels Vv3 programmiert.
  • Die höhere Seite ist in 6D programmiert. Für diesen Durchgang wird QPW verwendet. Falls UP = 1 ist, bleiben die Speicherzellen in der Verteilung 600 in dieser Verteilung, die Speicherzellen in der Verteilung 604 werden zu der Verteilung 614 programmiert (Zustand C), Speicherzellen in der Verteilung 606 werden zu der Verteilung 616 programmiert (Zustand D) und Speicherzellen in der Verteilung 608 werden zu der Verteilung 622 programmiert (Zustand G). Falls UP = 0 ist, werden die Speicherzellen in der Verteilung 600 zu der Verteilung 610 programmiert (Zustand A), die Speicherzellen in der Verteilung 604 werden zu der Verteilung 612 programmiert (Zustand B), Speicherzellen in der Verteilung 606 werden zu der Verteilung 618 programmiert (Zustand E) und Speicherzellen in der Verteilung 608 werden zu der Verteilung 620 programmiert (Zustand F).
  • Programmieren unter Verwendung von vier Bits pro Zelle (16 Pegel) kann auf ähnliche Weise vier Seiten einbeziehen. Zusätzlich, wenn mehrere Datenseiten programmiert werden, kann eine hin- und herlaufende Wortleitungsreihenfolge verwendet werden, um Potentialstörungen aus kapazitiver Kopplung zu reduzieren.
  • 7A bildet einen Beispielprozess ab, in dem Abfühlen, das Vorladen von Bitleitungen enthält, gemäß einer aktuellen Phase einer Mehrphasen-Programmieroperation auftritt. Schritt 700 startet die Anfangsphase einer Programmieroperation. Schritt 701 beinhaltet Identifizieren einer Anzahl NS ausgewählter Zieldatenzustände und einer Anzahl NU nicht ausgewählter Zieldatenzustände für die Phase. NS ist eine Ganzzahl von eins oder höher und kann für jede Phase variieren. NU ist eine Ganzzahl von null oder höher und kann für jede Phase variieren. NS + NU = die Gesamtzahl von Zieldatenzuständen, z. B. 3 für einen 4-Zustand-Speicher, 7 für einen 8-Zustand-Speicher oder 15 für einen 16-Zustand-Speicher. In einigen Phasen ist NS eine Zahl >= 2, und NU ist eine Zahl >= 1. Die NS ausgewählten Zieldatenzustände und die NU nicht ausgewählten Zieldatenzustände sind eine Funktion der aktuellen Phase der Programmieroperation.
  • Schritt 702 führt einen Programmabschnitt einer Programmverifizierungsiteration aus, wie z. B. durch Anlegen einer Programmierspannung an eine Gruppe von Speicherzellen über eine ausgewählte Wortleitung. Schritt 703 führt einen Verifizierungsabschnitt der Programmverifizierungsiteration aus. Das enthält Anlegen einer Anzahl von Verifizierungsspannungen der Reihe nach an die ausgewählte Wortleitung. Für jede Verifizierungsspannung wird Abfühlen, das Vorladen von Bitleitungen enthält, für Speicherzellen mit den ausgewählten Zieldatenzuständen ausgeführt, jedoch nicht für die Speicherzellen mit den nicht ausgewählten Zieldatenzuständen oder für gesperrte Speicherzellen. Das Abfühlen jedes Zieldatenzustands ist eine Verifizierungsoperation. Der Entscheidungsschritt 704 bestimmt, ob eine nächste Phase der Programmieroperation vorhanden ist. Falls eine nächste Phase vorhanden ist, werden andere ausgewählte Zieldatenzustände und nicht ausgewählte Zieldatenzustände bei Schritt 701 identifiziert.
  • Falls keine nächste Phase vorhanden ist, bestimmt Entscheidungsschritt 705, ob eine nächste Programmverifizierungsiteration vorhanden ist. Falls eine nächste Programmverifizierungsiteration vorhanden ist, wird Schritt 702 ausgeführt. Falls keine nächste Programmverifizierungsiteration vorhanden ist, endet die Programmieroperation bei Schritt 706.
  • 7B bildet eine detaillierte Beispiel-Implementierung des Prozesses von 7A ab. In diesem Beispiel werden Bitleitungsvorladungsdaten einmal während des Verifizierungsabschnitts eingestellt. Es sind jedoch andere Herangehensweisen möglich. Siehe z. B. 9A9F. Schritt 711 beinhaltet Initialisieren einer Programmschleifen-Nr. und einer Programmierspannung (Vpgm). Die Programmschleifennummer kann eine sequentielle Position einer Programmverifizierungsiteration in einer Programmieroperation repräsentieren, z. B. erste, zweite und so weiter. Beispielsweise kann der Anfangswert eins sein. Der Programmabschnitt der Programmverifizierungsiteration beginnt bei Schritt 712. Schritt 713 beinhaltet Lesen einer Gruppe von Auffangregistern für jede Speicherzelle, um zu bestimmen, ob eine Zelle zum Programmieren ausgewählt ist oder nicht ausgewählt ist, und Einstellen einer Sperre oder eines Programmstatus in der entsprechenden Abfühlschaltungsanordnung. Beispielsweise könnte dieser Status einem Bitleitungs-Auffangregister eingestellt werden. Ein Programmstatus wird für eine ausgewählte Speicherzelle eingestellt, und ein Sperrstatus wird für eine nicht ausgewählte Speicherzelle eingestellt. Schritt 714 beinhaltet Einstellen der Bitleitungsspannungen (Vb1) basierend auf dem Sperr- oder Programmstatus. Beispielsweise Vb1 = 0 V für Zellen mit einem Programmstatus und Vb1 = gesperrt (z. B. 2–3 V) für eine Zelle mit einem Sperrstatus. Schritt 715 beinhaltet Anlegen der Programmierspannung an die Speicherzellen, z. B. über eine ausgewählte Wortleitung.
  • Schritt 716 beginnt den Verifizierungsabschnitt der Programmverifizierungsiteration. Schritt 717 bestimmt eine Anzahl NS ausgewählter Zieldatenzustände und eine Anzahl NU nicht ausgewählter Zieldatenzustände basierend auf der Programmschleifen-Nr. Beispielsweise kann eine Anzahl tieferer Zustände während der tieferen Programmschleifennummern ausgewählt sein, und eine Anzahl höherer Zustände kann während der höheren Programmschleifennummern ausgewählt sein. Oder eine Anzahl tieferer Zustände während der tieferen Programmschleifennummern ausgewählt sein, und alle Zustände können während der höheren Programmschleifennummern ausgewählt sein. Andere Optionen sind ebenfalls möglich.
  • Für eine gegebene Programmschleife sind die ausgewählten Zieldatenzustände die Zustände, für die es wahrscheinlich ist, dass das Programmieren während der Programmschleife fertiggestellt wird. Diese Herangehensweise reduziert die Anzahl von Abfühloperationen durch Vermeiden von Abfühlen von Speicherzellen, für die es unwahrscheinlich ist, dass das Programmieren während der Programmschleife fertiggestellt wird.
  • Schritt 718 beinhaltet Lesen von Gruppen von Auffangregistern, um ausgewählte Speicherzellen und ihre Zieldatenzustände zu identifizieren. Bei Schritt 719, falls ein Zieldatenzustand für eine Zelle unter den ausgewählten Zieldatenzuständen ist, werden Vorladungsdaten in entsprechender Abfühlschaltungsanordnung eingestellt, um Bitleitungsvorladen für die Zelle zu ermöglichen. Bei Schritt 720 werden, falls ein Zieldatenzustand für eine Zelle unter den nicht ausgewählten Zieldatenzuständen ist oder falls eine Zelle gesperrt worden ist, Vorladungsdaten in entsprechender Abfühlschaltungsanordnung eingestellt, um Bitleitungsvorladen für die Zelle zu verhindern. Die Vorladungsdaten werden durchgehend für den Verifizierungsabschnitt beibehalten, solange sie nicht erneut eingestellt werden.
  • Schritt 721 beinhaltet Ausführen von Bitleitungsvorladen, falls es durch die Vorladungsdaten in der Abfühlschaltungsanordnung angegeben ist. Schritt 722 beinhaltet Anlegen einer Verifizierungsspannung aus einer Gruppe von NS-Verifizierungsspannungen an die Gruppe von Speicherzellen für einen ausgewählten Zieldatenzustand. Beispielsweise können VvA oder VvB für den A- bzw. B-Zustand angelegt werden. Schritt 723 beinhaltet während der Verifizierungsspannung Abfühlen eines leitfähigen Zustands der ausgewählten Speicherzellen. Das kann beispielsweise alle ausgewählten Speicherzellen enthalten, unabhängig davon, ob sie den Zieldatenzustand aufweisen, der der Verifizierungsspannung zugeordnet ist.
  • Beispielsweise, ist angenommen, dass A und B die ausgewählten Zieldatenzustände sind und C der nicht ausgewählte Zieldatenzustand ist. Somit werden, wenn VvA angelegt wird, alle ausgewählten (nicht gesperrten) Zellen mit dem A- und dem B-Zustand abgefühlt. Irgendwelche gesperrten Zellen mit dem A- und B-Zustand werden nicht abgefühlt, und irgendwelche Zellen mit dem Er- oder C-Zustand werden nicht abgefühlt. Durch das Nichtabfühlen der Zellen mit dem Er- oder C-Zustand oder der gesperrten Zellen mit dem A- und dem B-Zustand wird Energie eingespart, da eine Bitleitungsvorladung vermieden wird. Auf ähnliche Weise werden, wenn VvB angelegt wird, alle ausgewählten Zellen mit dem A- und B-Zustand abgefühlt. Irgendwelche gesperrten Zellen mit dem A- und B-Zustand werden nicht abgefühlt, und irgendwelche Zellen mit dem C-Zustand werden nicht abgefühlt.
  • Schritt 724 beinhaltet Übertragen der Abfühlergebnisse zu einer Managementschaltung, Verwerfen nicht anwendbarer Abfühlergebnisse (z. B. Ergebnisse für Zellen, die nicht den Zieldatenzustand aufweisen, der der Verifizierungsspannung zugeordnet ist), und Sperren von Zellen, die Programmieren fertigstellen. Beispielsweise sind Abfühlergebnisse, die erhalten werden, wenn VvA angelegt ist, auf Zellen im A-Zustand anwendbar und nicht auf Zellen im B-Zustand anwendbar, und Abfühlergebnisse, die erhalten werden, wenn VvB angelegt ist, werden auf Zellen im B-Zustand angewandt und sind nicht auf Zellen im A-Zustand anwendbar.
  • Der Entscheidungsschritt 715 bestimmt, ob eine nächste Verifizierungsspannung in der Programmverifizierungsiteration vorhanden ist. Falls eine nächste Verifizierungsspannung vorhanden ist, wird Schritt 721 ausgeführt. Falls keine nächste Verifizierungsspannung vorhanden ist, ist Entscheidungsschritt 726 erreicht. Der Entscheidungsschritt 726 bestimmt, ob eine nächste Programmverifizierungsiteration vorhanden ist. Falls eine nächste Programmverifizierungsiteration vorhanden ist, inkrementiert Schritt 727 die Programmschleifen-Nr. und erhöht die Programmierspannung schrittweise, wonach Schritt 712 ausgeführt wird. Falls keine nächste Programmverifizierungsiteration vorhanden ist, endet die Programmieroperation bei Schritt 728.
  • 8 bildet ein Beispiel unterschiedlicher Phasen einer Programmieroperation mit einem Durchgang wie in 4A und 4B abgebildet und konsistent mit 7A und 7B ab. Alternativ können die Phasen in dem zweiten Durchgang einer Programmieroperation mit zwei Durchgängen bereitgestellt sein, wie in 5C abgebildet ist, oder allgemeiner in irgendeiner Phase einer mehrphasigen Programmieroperation. Die horizontale Achse bildet die Programmschleifennummer ab, und die vertikale Achse bildet die Steuer-Gate- oder Wortleitungsspannung auf WLsel, der ausgewählten Wortleitung, ab. Allgemein enthält eine Programmieroperation aufeinanderfolgende Programmverifizierungsiterationen. Jede Programmverifizierungsiteration weist einen Programmabschnitt auf, in dem eine Programmierspannung (PP) an die Steuer-Gates der Speicherzellen über eine ausgewählte Wortleitung angelegt wird, gefolgt von einem Verifizierungsabschnitt, in dem ein oder mehrere Verifizierungsspannungen (VP) an die Steuer-Gates der Speicherzellen angelegt werden, während wenigstens einige der Speicherzellen abgefühlt werden.
  • Die Spannungswellenform 800 bildet eine Reihe von Programmierspannungen PP1 bis PP10 und Verifizierungsspannungen ab. Eine oder zwei Verifizierungsspannungen werden nach jeder Programmierspannung bereitgestellt, beispielsweise basierend auf der Programmierphase und den entsprechenden Zieldatenzuständen, die verifiziert werden. 0 V kann an die ausgewählte Wortleitung zwischen den Programmier- und Verifizierungsspannungen angelegt sein. Beispielsweise ist in einer ersten Programmierphase, die die Schleifen 1–3 beinhaltet, der A-Zustand der ausgewählte Zieldatenzustand, und der B- und der C-Zustand sind die nicht ausgewählten Zieldatenzustände. In dieser Phase wird eine A-Zustand-Verifizierungsspannung (z. B. VPa) an einem Pegel von VvA während des Verifizierungsabschnitts angelegt. In einer zweiten Programmierphase, die die Schleifen 4–6 beinhaltet, sind der A- und der B-Zustand die ausgewählten Zieldatenzustände und der C-Zustand ist der nicht ausgewählte Zieldatenzustand. In dieser Phase werden Verifizierungsspannungen des A- und B-Zustands (z. VPab) an Pegeln von VvA bzw. VvB während des Verifizierungsabschnitts angelegt. In einer dritten Programmierphase, die die Schleifen 7–10 beinhaltet, sind der B- und der C-Zustand die ausgewählten Zieldatenzustände und der A-Zustand ist der nicht ausgewählte Zieldatenzustand. In dieser Phase werden Verifizierungsspannungen des B- und C-Zustands (z. VPbc) an Pegeln von VvB bzw. VvC während des Verifizierungsabschnitts angelegt.
  • In einem weiteren Beispiel unterschiedlicher Phasen einer Programmieroperation mit einem Durchgang sind in der dritten Programmierphase, die die Schleifen 7–10 beinhaltet, der A-, B- und C-Zustand die ausgewählten Zieldatenzustände, und es ist kein nicht ausgewählter Zieldatenzustand vorhanden. In dieser Phase werden Verifizierungsspannungen des A-, B- und C-Zustands an Pegeln von VvA, VvB bzw. VvC während des Verifizierungsabschnitts angelegt.
  • Verschiedene andere Herangehensweisen sind ebenfalls möglich. Beispielsweise sind in einem Speichersystem mit acht Zuständen, in dem die Zieldatenzustände A–G sind, mehrere Phasen möglich. Beispielsweise können fünf Phasen verwendet werden, die diese Gruppen von Zuständen enthalten: ABC, BCD, CDE, DEF und EFG. Ein weiteres Beispiel ist: ABCD, CDEF und EFG. Viele andere Beispiele sind möglich.
  • Die Programmschleifennummern, die die Phasen definieren, können vorbestimmt sein oder können adaptiv während der Programmieroperation basierend auf einem Programmierfortschritt der Gruppe von Speicherzellen bestimmt werden. Beispielsweise kann die zweite Phase beginnen, wenn ein spezifizierter Anteil der Speicherzellen im A-Zustand das Programmieren fertiggestellt hat, z. B. 50 %, und die dritte Phase kann beginnen, wenn ein spezifizierter Anteil der Speicherzellen im B-Zustand das Programmieren fertiggestellt hat, z. B. 50 %.
  • 9A bildet eine Folge zum Einstellen von Vorladungsdaten in einem Verifizierungsabschnitt einer Programmverifizierungsoperation konsistent mit 7A und 7B, wobei Vorladungsdaten einmal für einen Verifizierungsabschnitt eingestellt werden, ab. Hier ist ein Lesen der Gruppen von Auffangregistern (wie z. B. der Auffangregister 194197 in 2C) den Speicherzellen vorhanden (Schritt 900). In dem Beispiel von 2C sind vier zugeordnete Speicherzellen für jeden Prozessor vorhanden. Jeder der Prozessoren kann die zugeordneten Gruppen von Auffangregistern lesen, um die Zieldatenzustände der zugeordneten ausgewählten Speicherzellen zu identifizieren. Es wird darauf hingewiesen, dass das Lesen der Gruppe von Auffangregistern während des Programmabschnitts oder an einem Start des Verifizierungsabschnitts der Programmverifizierungsiteration auftreten kann.
  • Jede Gruppe von Auffangregistern speichert eine Bit-Kombination für eine zugeordnete Speicherzelle. Eine Bit-Kombination kann einen Zieldatenzustand für eine zugeordnete Speicherzelle identifizieren, die zum Programmieren ausgewählt ist (z. B. eine Speicherzelle, die nicht für das Programmieren gesperrt ist). Beispielsweise, Bezug nehmend auf 4B, identifizieren die Bit-Kombinationen 01, 00 und 10 die Zustände A, B und C. Eine Bit-Kombination (z. B. 11) kann alternativ eine Speicherzelle identifizieren, die nicht zum Programmieren ausgewählt ist (z. B. eine Speicherzelle, die für das Programmieren gesperrt ist). Basierend auf dem Lesen und einer aktuellen Phase des Programmierens werden Vorladungsdaten durch den Prozessor in der Abfühlschaltungsanordnung der Speicherzellen eingestellt (Schritt 901). Die aktuelle Programmierphase gibt einen oder mehrere ausgewählte Zieldatenzustände an. Die Vorladungsdaten geben für jede Speicherzelle an, ob die Bitleitung während jeder Abfühloperation des Verifizierungsabschnitts vorgeladen werden sollte. Die Vorladungsdaten werden eingestellt, um ein Bitleitungsvorladen für eine ausgewählte Speicherzelle zu ermöglichen, für die der Zieldatenzustand ein ausgewählter Zieldatenzustand in der aktuellen Programmierphase ist. Die Vorladungsdaten werden eingestellt, um ein Bitleitungsvorladen für eine ausgewählte Speicherzelle zu unterbinden, für die der Zieldatenzustand ein nicht ausgewählter Zieldatenzustand in der aktuellen Programmierphase ist. Die Vorladungsdaten werden auch eingestellt, um Bitleitungsvorladen für eine nicht ausgewählte Speicherzelle zu unterbinden.
  • Beispielsweise ist angenommen, dass die ausgewählten Zieldatenzustände der aktuellen Programmierphase die Zustände A und B sind, wie in Phase 2 von 8. Somit beinhaltet der Verifizierungsabschnitt Anlegen von VvA und VvB der Reihe nach an eine ausgewählte Wortleitung, um Speicherzellen relativ zu dem Zustand A bzw. B abzufühlen. Die Bitleitung wird während sowohl VvA als auch VvB für die Zellen, die den Zustand A oder B als einen Zieldatenzustand aufweisen, vorgeladen. Beispielsweise beinhaltet Schritt 902 Abfühlen der ausgewählten Zellen relativ zu einem ersten ausgewählten Zieldatenzustand aus den ausgewählten Zieldatenzuständen der aktuellen Programmierphase, z. B. dem Zustand A, und Schritt 903 beinhaltet Abfühlen der ausgewählten Zellen relativ zu einem letzten ausgewählten Zieldatenzustand aus den ausgewählten Zieldatenzuständen der aktuellen Programmierphase, z. B. dem Zustand B.
  • Ein Vorteil dieser Herangehensweise ist, dass in dem Verifizierungsabschnitt Zeit eingespart wird durch nur einmaliges Lesen der Gruppen von Auffangregistern, um die Vorladungsdaten für den Verifizierungsabschnitt einzustellen, und Halten der Vorladungsdaten in der Abfühlschaltungsanordnung basierend auf diesem Lesen für den gesamten Verifizierungsabschnitt. Zusätzlich wird Energie eingespart durch Vermeiden des Vorladens einer Bitleitung für eine Speicherzelle, die einen nicht ausgewählten Zieldatenzustand in der aktuellen Programmierphase aufweist.
  • Ein Nachteil ist, dass Energie verbraucht wird für das Vorladen einer Bitleitung für eine Speicherzelle, wenn der Zieldatenzustand anders ist als der Zustand, der abgefühlt wird. Das heißt, es wird Energie verbraucht für das Vorladen einer Bitleitung für eine Speicherzelle mit dem A-Zustand als dem Zieldatenzustand, wenn VvB angelegt ist und die Verifikation relativ zu dem B-Zustand ist. Das ist ein verschwendetes Bitleitungsvorladen, weil es verwendet wird, um ein Abfühlergebnis zu erhalten, das nicht relevant ist. Das heißt, die Abfühlschaltungsanordnung wird aktiviert, um zu bestimmen, ob eine Zelle in einem leitfähigen Zustand ist, wenn eine Verifizierungsspannung an die Zelle angelegt wird, aber der Datenzustand, der der Verifizierungsspannung zugeordnet ist, stimmt nicht mit dem Zieldatenzustand der Zelle überein. Es ist eine Diskrepanz zwischen der Verifizierungsspannung und dem Zieldatenzustand der Zelle vorhanden. Im Gegensatz dazu wird ein Bitleitungsvorladen nicht verschwendet, wenn eine Übereinstimmung zwischen der Verifizierungsspannung und dem Zieldatenzustand der Zelle vorhanden ist. Ähnlich wird Energie verbraucht für das Vorladen einer Bitleitung für eine Speicherzelle mit dem B-Zustand als dem Zieldatenzustand, wenn VvA angelegt ist und die Verifikation relativ zu dem A-Zustand ist. Das ist ebenfalls eine verschwendete Bitleitungsvorladung.
  • Es ist angenommen, dass eine Anzahl K ausgewählter Zieldatenzustände vorhanden ist, die in dem Verifizierungsabschnitt verifiziert werden, außer dem gelöschten Zustand, und dass die Zieldatenzustände gleichmäßig unter den Speicherzellen verteilt sind. Dabei werden für jede aus den K Verifizierungsspannungen 1/K der Bitleitungsvorladungen nicht verschwendet, und (K – 1)/K der Bitleitungsvorladungen werden verschwendet. In dem vorliegenden Beispiel ist K = 2.
  • 9B bildet eine Folge zum Einstellen von Vorladungsdaten in einem Verifizierungsabschnitt einer Programmverifizierungsoperation konsistent mit 7A und 7B, wenn Vorladungsdaten zweimal eingestellt werden, ab. Energieverbrauch kann durch Lesen der Gruppen von Auffangregistern und Einstellen der Vorladungsdaten mehrfach während des Verifizierungsabschnitts reduziert werden, auf Kosten der erhöhten Lesezeit. Die Vorladungsdaten werden in der Abfühlschaltungsanordnung während einer oder mehrerer Verifizierungsspannungen des Verifizierungsabschnitts gehalten. Diese Herangehensweise reduziert die Anzahl verschwendeter Bitleitungsvorladungen, weil sie die Anzahl von Bitleitungsvorladungen reduziert, wenn eine Diskrepanz zwischen der Verifizierungsspannung und dem Zieldatenzustand der Zelle vorhanden ist. Stattdessen können Vorladungsdaten für unterschiedliche Teilgruppen von Verifizierungsspannungen in dem Verifizierungsabschnitt unterschiedlich eingestellt sein. Außerdem kann diese Herangehensweise unabhängig davon funktionieren, ob die ausgewählten Zieldatenzustände basierend auf der Programmierphase geändert werden. Diese Herangehensweise ist insbesondere für Programmieren geeignet, das vier, acht oder mehr Datenzustände beinhaltet. Beispielsweise mit sieben Zieldatenzuständen von A–G, wie in 6D, ist angenommen, dass A–D in einer ersten Teilgruppe ausgewählter Zieldatenzustände sind und E–G in einer zweiten Teilgruppe ausgewählter Zieldatenzustände sind.
  • Schritt 910 beinhaltet ein erstes Lesen der Gruppen von Auffangregistern für die Speicherzellen. Das beinhaltet Identifizieren ausgewählter Speicherzellen, deren Zieldatenzustand in der ersten Teilgruppe ausgewählter Zieldatenzustände ist. Schritt 911 beinhaltet Einstellen erster Vorladungsdaten in der Abfühlschaltungsanordnung, z. B. um Bitleitungsvorladen für eine ausgewählte Speicherzelle, deren Zieldatenzustand in der ersten Teilgruppe ausgewählter Zieldatenzustände (Zustände A–D) ist, zu ermöglichen, Bitleitungsvorladen für eine ausgewählte Speicherzelle, deren Zieldatenzustand in der zweiten Teilgruppe ausgewählter Zieldatenzustände (Zustände E–G) ist, zu unterbinden, und um Bitleitungsvorladen für eine nicht ausgewählte Speicherzelle zu unterbinden. Schritt 912 beinhaltet Abfühlen der ausgewählten Zellen relativ zu einem ersten ausgewählten Zieldatenzustand (z. B. dem A-Zustand) aus der ersten Teilgruppe ausgewählter Zieldatenzustände. Ein nachfolgender Schritt beinhaltet Abfühlen der ausgewählten Zellen relativ zu einem zweiten ausgewählten Zieldatenzustand (z. B. dem B-Zustand) aus der ersten Teilgruppe ausgewählter Zieldatenzustände. Nachfolgende Schritte fahren dementsprechend fort, bis Schritt 913, der Abfühlen der ausgewählten Zellen relativ zu einem letzten ausgewählten Zieldatenzustand (z. B. dem D-Zustand) aus der ersten Teilgruppe ausgewählter Zieldatenzustände beinhaltet.
  • Schritt 914 beinhaltet ein zweites Lesen der Gruppen von Auffangregistern für die Speicherzellen. Das beinhaltet Identifizieren einer ausgewählten Speicherzelle, deren Zieldatenzustand in der zweiten Teilgruppe ausgewählter Zieldatenzustände ist. Schritt 915 beinhaltet Einstellen zweiter Vorladungsdaten in der Abfühlschaltungsanordnung, z. B. um Bitleitungsvorladen für eine ausgewählte Speicherzelle, deren Zieldatenzustand in der zweiten Teilgruppe ausgewählter Zieldatenzustände ist, zu ermöglichen, Bitleitungsvorladen für eine ausgewählte Speicherzelle, deren Zieldatenzustand in der ersten Teilgruppe ausgewählter Zieldatenzustände ist, zu unterbinden, und um Bitleitungsvorladen für eine nicht ausgewählte Speicherzelle zu unterbinden. Schritt 916 beinhaltet Abfühlen der ausgewählten Zellen relativ zu einem ersten ausgewählten Zieldatenzustand (z. B. dem E-Zustand) aus der zweiten Teilgruppe ausgewählter Zieldatenzustände. Ein nachfolgender Schritt beinhaltet Abfühlen der ausgewählten Zellen relativ zu einem zweiten ausgewählten Zieldatenzustand (z. B. dem F-Zustand) aus der zweiten Teilgruppe ausgewählter Zieldatenzustände. Schritt 917, der Abfühlen der ausgewählten Zellen relativ zu einem letzten ausgewählten Zieldatenzustand (z. B. dem G-Zustand) aus der zweiten Teilgruppe ausgewählter Zieldatenzustände beinhaltet.
  • 9C bildet eine Verifizierungsfolge entsprechend 9A ab, in der das Wissen über eine Programmierphase verwendet wird, um unnötiges Bitleitungsvorladen zu reduzieren. Die Zeit ist auf der horizontalen Achse, und WLsel ist auf der vertikalen Achse. Wenn VvA angelegt ist, werden Abfühlergebnisse für Zellen im A-Zustand beibehalten und für Zellen im B-Zustand verworfen. Wenn VvB angelegt ist, werden Abfühlergebnisse für Zellen im B-Zustand beibehalten und für Zellen im A-Zustand verworfen. Ein verworfenes Abfühlergebnis entspricht einer verschwendeten Bitleitungsvorladung. Die Zellen im A- und B-Zustand werden beide während VvA und VvB vorgeladen.
  • 9D ist eine Verifizierungsfolge, die eine Alternative zu 9 ist, in der Wissen über eine Programmierphase nicht verwendet wird, um unnötiges Bitleitungsvorladen zu reduzieren. In diesem Beispiel sind keine nicht ausgewählten Zieldatenzustände vorhanden, so dass Bitleitungsvorladen für Zellen aller Zieldatenzustände auftritt. Vorladungsdaten werden während der Verifizierung der Zustände A–C verwendet. Die Zeit ist auf der horizontalen Achse, und WLsel ist auf der vertikalen Achse. Wenn VvA angelegt ist, werden Abfühlergebnisse für Zellen im A-Zustand beibehalten und für Zellen im B- und C-Zustand verworfen. Wenn VvB angelegt ist, werden Abfühlergebnisse für Zellen im B-Zustand beibehalten und für Zellen im A- und C-Zustand verworfen. Wenn VvC angelegt ist, werden Abfühlergebnisse für Zellen im C-Zustand beibehalten und für Zellen im A- und B-Zustand verworfen. Die Zellen im A–C-Zustand werden während VvA–VvC vorgeladen. Die Abfühlergebnisse aus den Zellen im C-Zustand können jedoch irrelevant sein, falls die aktuelle Programmschleife früh in der Programmieroperation ist (z. B. Schleife Nr. 1–6 in 8), wobei in diesem Fall keine Zellen des C-Zustands den C-Zustand erreicht haben.
  • In der Folge von 9D ist die Anzahl verschwendeter Bitleitungsvorladungen proportional der Anzahl verworfener Zustände pro Verifizierungsspannung (2) und der Anzahl von Verifizierungsspannungen (3) oder 6. Im Gegensatz dazu ist in der Folge von 9 ist die Anzahl verschwendeter Bitleitungsvorladungen proportional der Anzahl verworfener Zustände pro Verifizierungsspannung (1) und der Anzahl von Verifizierungsspannungen (2) oder 2. Dementsprechend ist eine signifikante Reduktion der Anzahl verschwendeter Bitleitungsvorladungen und des entsprechenden Energieverbrauchs in 9 im Vergleich zu 9D vorhanden.
  • 9E bildet eine Verifizierungsfolge ab, die den ersten und zweiten Vorladungsdaten von 9B entspricht, wobei die ersten Vorladungsdaten während des Verifizierens der Zustände A–D verwendet werden und die zweiten Vorladungsdaten während des Verifizierens der Zustände E–G verwendet werden. Die Zeit ist auf der horizontalen Achse, und WLsel ist auf der vertikalen Achse. Wenn VvA angelegt ist, werden Abfühlergebnisse für Zellen im A-Zustand beibehalten und für Zellen im B–D-Zustand verworfen. Wenn VvB angelegt ist, werden Abfühlergebnisse für Zellen im B-Zustand beibehalten und für Zellen im A-, C- und D-Zustand verworfen. Wenn VvC angelegt ist, werden Abfühlergebnisse für Zellen im C-Zustand beibehalten und für Zellen im A-, B- und D-Zustand verworfen. Wenn VvD angelegt ist, werden Abfühlergebnisse für Zellen im D-Zustand beibehalten und für Zellen im A–C-Zustand verworfen. Die Zellen im A–D-Zustand werden während VvA–VvD alle vorgeladen. Wesentliche Energieeinsparungen werden verwirklicht, da die Zellen im E–G-Zustand während VvA–VvD nicht vorgeladen werden.
  • Wenn VvE angelegt ist, werden Abfühlergebnisse für Zellen im E-Zustand beibehalten und für Zellen im F- und G-Zustand verworfen. Wenn VvF angelegt ist, werden Abfühlergebnisse für Zellen im F-Zustand beibehalten und für Zellen im E- und G-Zustand verworfen. Wenn VvG angelegt ist, werden Abfühlergebnisse für Zellen im G-Zustand beibehalten und für Zellen im E- und F-Zustand verworfen. Die Zellen im E–G-Zustand werden alle während VvE–VvG vorgeladen. Wesentliche Energieeinsparungen werden verwirklicht, da die Zellen im A–D-Zustand während VvE–VvG nicht vorgeladen werden.
  • 9F bildet eine Verifizierungsfolge ab, die eine Alternative zu 9E ist, wobei dieselben Vorladungsdaten während des Verifizierens der Zustände A–G verwendet werden. Die Zeit ist auf der horizontalen Achse, und WLsel ist auf der vertikalen Achse. Wenn VvA angelegt ist, werden Abfühlergebnisse für Zellen im A-Zustand beibehalten und für Zellen im B–G-Zustand verworfen. Wenn VvB angelegt ist, werden Abfühlergebnisse für Zellen im B-Zustand beibehalten und für Zellen im A- und C–G-Zustand verworfen. Wenn VvC angelegt ist, werden Abfühlergebnisse für Zellen im C-Zustand beibehalten und für Zellen im A-, B- und D–G-Zustand verworfen. Wenn VvD angelegt ist, werden Abfühlergebnisse für Zellen im D-Zustand beibehalten und für Zellen im A–C- und E–G-Zustand verworfen. Wenn VvE angelegt ist, werden Abfühlergebnisse für Zellen im E-Zustand beibehalten und für Zellen im A–D-, F- und G-Zustand verworfen. Wenn VvF angelegt ist, werden Abfühlergebnisse für Zellen im F-Zustand beibehalten und für Zellen im A–E- und G-Zustand verworfen. Wenn VvG angelegt ist, werden Abfühlergebnisse für Zellen im G-Zustand beibehalten und für Zellen im A–F-Zustand verworfen. Die Zellen im A–G-Zustand werden während VvA–VvG alle vorgeladen.
  • In der Folge von 9F ist die Anzahl verschwendeter Bitleitungsvorladungen proportional der Anzahl verworfener Zustände pro Verifizierungsspannung (6) und der Anzahl von Verifizierungsspannungen (7) oder 42. Im Gegensatz dazu ist in der Folge von 9E die Anzahl verschwendeter Bitleitungsvorladungen proportional der Anzahl verworfener Zustände pro Verifizierungsspannung (3) und der Anzahl von Verifizierungsspannungen (4), die die ersten Vorladungsdaten verwenden, plus der Anzahl von verworfenen Zuständen pro Verifizierungsspannung (2) und der Anzahl von Verifizierungsspannungen (3), die die zweiten Vorladungsdaten verwenden, oder 3 × 4 + 2 × 3 = 18. Dementsprechend ist eine signifikante Reduktion der Anzahl von verschwendeten Bitleitungsvorladungen und eine entsprechende Reduktion des Energieverbrauchs in 9E verglichen mit Fig. F vorhanden. Die Aktualisierung der Vorladungsdaten während des Verifizierungsabschnitts stellt diesen Vorteil zur Verfügung.
  • Im Allgemeinen kann der Energieverbrauch basierend auf der Anzahl ausgewählter Zieldatenzustände (Ni) in einer i-ten Teilgruppe gewählter Zieldatenzustände und der Anzahl von Teilgruppen ausgewählter Zieldatenzustände (S) (z. B. der Häufigkeit, wie oft Vorladungsdaten in dem Verifizierungsabschnitt bestimmt werden) als ∑ S / i=1Ni × (Ni – 1). bestimmt werden. In 9E ist S = 2, N1 = 4 (Zustände A–D) und N2 = 3 (Zustände E–G), so dass die Summe 4 × 3 + 3 × 2 = 18 ist. In einem weiteren Beispiel ist S = 3, N1 = 3 (Zustände A–C), N2 = 2 (Zustände D und E) und N3 = 2 (Zustände F und G), so dass die Summe 3 × 2 + 2 × 1 + 2 × 1 = 10 ist. In einem weiteren Beispiel ist S = 4, N1 = 2 (Zustände A, B) N2 = 2 (Zustände C, D), N3 = 2 (Zustände E, F) Und N4 = 1 (Zustand G), so dass die Summe 2 × 1 + 2 × 1 + 2 × 1 + 2 × 0 = 6 ist. Wie zu sehen ist, nimmt der Energieverbrauch mit einer Zunahme der Häufigkeit, mit der die Vorladungsdaten in dem Verifizierungsabschnitt bestimmt werden, ab.
  • 10A bildet eine Beispielimplementierung des Abfühlmoduls SM0 von 2C, konsistent mit 7A und 7B, ab. Das Abfühlmodul enthält eine Vorladungsschaltung 1005, einen Abfühlknoten 1004, einen Transistor 1002, der durch eine Steuer-Gate-Spannung von BLC gesteuert wird, einen Transistor 1001, der durch eine Steuer-Gate-Spannung von BLS gesteuert wird, ein Übertragungs-Gate 1008, das durch ein Signal TG gesteuert wird, eine Vergleichsschaltung 1006, einen Pull-Down 1008 zu Erde und ein Bitleitungs-Auffangregister (BLL), das durch ein BLL-Signal gesteuert wird. Der Transistor 1001 ist mit einer Bitleitung BL0 und der NAND-Kette NS0 verbunden.
  • 10B bildet Steuersignale und Spannungswellenformen für den Verifizierungsabschnitt einer Programmverifizierungsiteration konsistent mit dem SM0 von 10A und mit 9C ab. In diesem Beispiel tritt Abfühlen für ausgewählte Speicherzellen mit den Zieldatenzuständen A und B auf. Zu einer Zeit t1 wird die Spannung auf den nicht ausgewählten Wortleitungen, WLunsel, auf einen Pegel Vread erhöht, was die zugeordneten Speicherzellen in einen leitfähigen Zustand versetzt. Außerdem wird die Spannung auf der ausgewählten Wortleitung, WLsel, auf VvA zum Abfühlen relativ zu dem A-Zustand eingestellt. Nachdem sich die Wortleitungsspannungen von t1–t12 stabilisieren, wird BLC angehoben, um den Transistor 1002 leitfähig zu machen, und BLS wird angehoben, um den Transistor 1001 leitfähig zu machen. Zusätzlich wird ein Vorladungsaktivierungssignal angehoben, um zu bewirken, dass die Vorladungsschaltungen die Bitleitungen laden, abhängig von Vorladungsdaten, die vorher in den Vorladungsschaltungen bereitgestellt worden sind. Somit sind einige Vorladungsschaltungen vorher mit Vorladungsdaten konfiguriert worden, die angeben, dass sie eine Vorladung bereitstellen sollten, wenn das Vorladungsaktivierungssignal hoch ist. Keine Vorladung tritt in anderen Vorladungsschaltungen auf, die vorher mit Daten konfiguriert worden sind, die angeben, dass sie keine Vorladung bereitstellen sollten, wenn das Vorladungsaktivierungssignal hoch ist. In einem Beispiel werden die Bitleitungen aller Zellen des A- und B-Zustands, die nicht in dem gesperrten Zustand sind, während VvA vorgeladen.
  • Das Konfigurieren von Vorladungsschaltungen mit Vorladungsdaten, was das Bitleitungsvorladen erlaubt oder verhindert, kann beispielsweise während des Programmabschnitts einer Programmverifizierungsiteration oder an dem Start des Verifizierungsabschnitts einer Programmverifizierungsiteration auftreten. Dieses Beispiel zeigt Vorladungsdaten, die von dem Prozessor zu einer Vorladungsschaltung übertragen werden. Diese Daten können in den Vorladungsschaltungen über den gesamten Verifizierungsabschnitt der Programmverifizierungsiteration gehalten werden, wie in diesem Beispiel, oder die Daten können einmal oder mehrfach zusätzlich während des gesamten Verifizierungsabschnitts der Programmverifizierungsiteration aktualisiert werden, wie vorher diskutiert.
  • Der Transistor 1002 klemmt eine Spannung auf der Bitleitung, während die Vorladungsschaltung Strom für die Bitleitung bereitstellt. Eine Spannung wird an dem Abfühlknoten eingestellt, die eine Funktion des leitfähigen Zustands der Speicherzelle, die abgefühlt wird, ist. Von t2–t3 wird das Signal ST angehoben, um den Transistor 1003 leitfähig zu machen, so dass der Abfühlknoten in Kommunikation mit der Stromvergleichsschaltung 1006 ist. Die Stromvergleichsschaltung 1006 bestimmt, ob der abgefühlte Strompegel oberhalb eines Referenzpegels ist. Falls der abgefühlte Strom oberhalb des Referenzpegels ist, ist die Speicherzelle in einem leitfähigen Zustand und hat das Programmieren nicht fertiggestellt. In diesem Fall weist die Stromvergleichsschaltung das Bitleitungs-Auffangregister 1007 nicht an, in einen gesperrten Zustand einzutreten. Falls der abgefühlte Strom unterhalb des Referenzpegels ist, ist die Speicherzelle in einem nicht leitfähigen Zustand und hat das Programmieren fertiggestellt. In diesem Fall weist die Stromvergleichsschaltung das Bitleitungs-Auffangregister 1007 an, für den Rest der Programmieroperation in einen gesperrten Zustand einzutreten. In dem gesperrten Zustand ist die Pull-Down-Schaltung 1008 aktiviert, um den Abfühlknoten zu erden. Zwischen t4 und t5 wird TG erhöht, um zu erlauben, dass der Pegel des Abfühlknotens durch den Prozessor 192 über den Bus 172 ausgelesen wird. Falls der Abfühlknoten geerdet ist, weiß der Prozessor, dass die Speicherzelle in dem gesperrten Zustand ist. Falls der Abfühlknoten nicht geerdet ist, weiß der Prozessor, dass die Speicherzelle nicht in dem gesperrten Zustand ist.
  • Bei t5 wird das Vorladungsaktivierungssignal wieder erhöht. In einem Beispiel werden die Bitleitungen aller Zellen des A- und B-Zustands, die nicht in dem gesperrten Zustand sind, während VvB vorgeladen. Bei t6 beginnt auch Abfühlen relativ zu dem B-Zustand durch Anlegen von VvB an WLsel. Von t6 bis t7 wird ST angehoben, und die Stromvergleichsschaltung 1006 bestimmt, ob der abgefühlte Strompegel oberhalb eines Referenzpegels ist. Falls der abgefühlte Strompegel unterhalb eines Referenzpegels ist, tritt das Bitleitungs-Auffangregister 1007 in einen gesperrten Zustand ein, und die Pull-Down-Schaltung 1008 wird aktiviert, um den Abfühlknoten zu erden. Zwischen t7 und t7 wird TG erhöht, um zu erlauben, dass der Pegel des Abfühlknotens durch den Prozessor 192 über den Bus 172 ausgelesen wird.
  • 10C bildet Steuersignale und Spannungswellenformen für den Verifizierungsabschnitt einer Programmverifizierungsiteration konsistent mit dem SM0 von 10A und mit 9E ab. In diesem Beispiel werden Vorladungsdaten zum ersten Mal zwischen t0–t1 basierend auf einem Lesen der Gruppen von Auffangregistern bei t1 und zum zweiten Mal zwischen t9–t10 basierend auf einem Lesen der Gruppen von Auffangregistern bei t9 eingestellt. Vorladen von Bitleitungen relativ zu dem A-, B-, C- oder D-Zustand tritt von t2–t3, t4–t5, t6–t7 bzw. t8–t9 auf. Vorladen von Bitleitungen relativ zu dem E-, F- oder G-Zustand tritt von t11–t12, t13–t14 bzw. t15–t16 auf.
  • Dementsprechend ist zu erkennen, dass in einer Ausführungsform ein Verfahren zum Betreiben einer Speichervorrichtung umfasst: Anlegen einer Programmierspannung an eine Wortleitung, die mit einer Gruppe von Speicherzellen verbunden ist, in einer Programmverifizierungsiteration aus mehreren Programmverifizierungsiterationen einer Programmieroperation, während Programmieren ausgewählter Speicherzellen in der Gruppe von Speicherzellen erlaubt ist und Programmieren nicht ausgewählter Speicherzellen in der Gruppe von Speicherzellen verboten ist; basierend auf einer Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen Bestimmen von NS ausgewählten Zieldatenzuständen, wobei NS eine Zahl >= 2 ist, und von NU nicht ausgewählten Zieldatenzuständen, wobei NU eine Zahl >= 1 ist; Identifizieren unter den ausgewählten Speicherzellen von Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und von Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen; und Ausführen eines Verifizierungsabschnitts der einen Programmverifizierungsiteration, wobei das Ausführen des Verifizierungsabschnitts Anlegen der Anzahl NS von Verifizierungsspannungen an die Gruppe von Speicherzellen, während die Speicherzellen abgefühlt werden, die die NS ausgewählten Zieldatenzustände aufweisen und die Speicherzellen nicht abgefühlt werden, die die NU nicht ausgewählten Zieldatenzustände aufweisen, wobei das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NS ausgewählten Zieldatenzustände aufweisen, umfasst, und das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, Nicht Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NU nicht ausgewählten Zieldatenzustände aufweisen, umfasst.
  • In einer weiteren Ausführungsform umfasst die Speichervorrichtung: eine Wortleitung, die mit einer Gruppe von Speicherzellen verbunden ist; mehrere Bitleitungen, die eine Bitleitung pro Speicherzelle aus der Gruppe von Speicherzellen umfassen; eine Abfühlschaltungsanordnung, die den mehreren Bitleitungen zugeordnet ist; und eine Steuerschaltung. Die Steuerschaltung: legt in einer Programmverifizierungsiteration aus mehreren Programmverifizierungsiterationen eine Programmierspannung an die Wortleitung an, während das Programmieren der ausgewählten Speicherzellen in der Gruppe von Speicherzellen erlaubt ist und Programmieren von nicht ausgewählten Speicherzellen in der Gruppe von Speicherzellen verboten ist; bestimmt, basierend auf einer Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen, NS ausgewählte Zieldatenzustände, wobei NS eine Zahl >= 2 ist, und NU nicht ausgewählte Zieldatenzustände, wobei NU eine Zahl >= 1 ist; identifiziert unter den ausgewählten Speicherzellen Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen; und führt einen Verifizierungsabschnitt der einen Programmverifizierungsiteration aus, legt die Anzahl NS von Verifizierungsspannungen an die Gruppe von Speicherzellen an, während die Speicherzellen abgefühlt werden, die die NS ausgewählten Zieldatenzustände aufweisen und die Speicherzellen nicht abgefühlt werden, die die NU nicht ausgewählten Zieldatenzustände aufweisen, wobei das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NS ausgewählten Zieldatenzustände aufweisen, umfasst, und das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, nicht Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NU nicht ausgewählten Zieldatenzustände aufweisen, umfasst.
  • In einer weiteren Ausführungsform umfasst ein Verfahren zum Abfühlen in einer Speichervorrichtung: für eine Programmverifizierungsiteration aus mehreren Programmverifizierungsiterationen einer Programmieroperation für eine Gruppe von Speicherzellen, Bestimmen eines oder mehrerer ausgewählter Zieldatenzustände und eines oder mehrerer nicht ausgewählter Zieldatenzustände; für eine weitere Programmverifizierungsiteration aus den mehreren Programmverifizierungsiterationen, Bestimmen eines oder mehrerer ausgewählter Zieldatenzustände und eines oder mehrerer nicht ausgewählter Zieldatenzustände, wobei der eine oder die mehreren ausgewählten Zieldatenzustände in der einen Programmverifizierungsiteration wenigstens teilweise anders sind als der eine oder die mehreren ausgewählten Zieldatenzustände in der weiteren Programmverifizierungsiteration, und der eine oder die mehreren nicht ausgewählten Zieldatenzustände in der einen Programmverifizierungsiteration wenigstens teilweise anders sind als der eine oder die mehreren nicht ausgewählten Zieldatenzustände in der weiteren Programmverifizierungsiteration; während der einen Programmverifizierungsiteration, Identifizieren unter der Gruppe von Speicherzellen von Speicherzellen, die zu dem einen oder den mehreren ausgewählten Zieldatenzuständen programmiert werden sollen in der einen Programmverifizierungsiteration, und von Speicherzellen, die zu dem einen oder den mehreren nicht auswählten Zieldatenzuständen programmiert werden sollen in der einen Programmverifizierungsiteration, und Abfühlen einschließlich Vorladen von Bitleitungen, die Speicherzellen zugeordnet sind, die zu dem einen oder den mehreren Zieldatenzuständen programmiert werden sollen in der einen Programmverifizierungsiteration, und gleichzeitig Verhindern des Abfühlens, einschließlich Vorladen, von Bitleitungen, die Speicherzellen zugeordnet sind, die zu dem einen oder den mehreren nicht ausgewählten Zieldatenzuständen programmiert werden sollen in der einen Programmverifizierungsiteration; und während der weiteren Programmverifizierungsiteration, Identifizieren unter der Gruppe von Speicherzellen von Speicherzellen, die zu dem einen oder den mehreren ausgewählten Zieldatenzuständen programmiert werden sollen in der weiteren Programmverifizierungsiteration, und von Speicherzellen, die zu dem einen oder den mehreren nicht auswählten Zieldatenzuständen programmiert werden sollen in der weiteren Programmverifizierungsiteration, und Abfühlen einschließlich Vorladen von Bitleitungen, die Speicherzellen zugeordnet sind, die zu dem einen oder den mehreren Zieldatenzuständen programmiert werden sollen in der weiteren Programmverifizierungsiteration, und gleichzeitig Verhindern des Abfühlens, einschließlich Vorladen, von Bitleitungen, die Speicherzellen zugeordnet sind, die zu dem einen oder den mehreren nicht ausgewählten Zieldatenzuständen programmiert werden sollen in der weiteren Programmverifizierungsiteration.
  • Die vorstehende ausführliche Beschreibung der Erfindung wurde zum Zweck der Darstellung und Beschreibung präsentiert. Es ist nicht vorgesehen, dass sie umfassend ist oder die Erfindung auf die exakte offenbarte Form einschränkt. Viele Modifikationen und Variationen sind hinsichtlich der vorstehenden Lehren möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihrer praktischen Anwendung am besten zu erläutern und dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen am besten zu nutzen, wie sie für den speziellen betrachteten Gebrauch geeignet sind. Es ist vorgesehen, dass der Schutzbereich der Erfindung durch die hier beigefügten Ansprüche definiert ist.

Claims (15)

  1. Verfahren zum Betreiben einer Speichervorrichtung, das umfasst: Anlegen einer Programmierspannung (Vpgm) an eine Wortleitung (WL0–Wl63), die mit einer Gruppe von Speicherzellen (208219) verbunden ist, in einer Programmverifizierungsiteration aus mehreren Programmverifizierungsiterationen einer Programmieroperation, während Programmieren ausgewählter Speicherzellen in der Gruppe von Speicherzellen erlaubt ist und Programmieren nicht ausgewählter Speicherzellen in der Gruppe von Speicherzellen verboten ist; basierend auf einer Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen Bestimmen von NS ausgewählten Zieldatenzuständen, wobei NS eine Zahl >= 2 ist, und NU nicht ausgewählter Zieldatenzustände, wobei NU eine Zahl >= 1 ist; Identifizieren unter den ausgewählten Speicherzellen von Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und von Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen; und Ausführen eines Verifizierungsabschnitts der einen Programmverifizierungsiteration, wobei das Ausführen des Verifizierungsabschnitts Anlegen der Anzahl NS von Verifizierungsspannungen an die Gruppe von Speicherzellen, während die Speicherzellen abgefühlt werden, die die NS ausgewählten Zieldatenzustände aufweisen, und die Speicherzellen nicht abgefühlt werden, die die NU nicht ausgewählten Zieldatenzustände aufweisen, wobei das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NS ausgewählten Zieldatenzustände aufweisen, umfasst, und das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, Nicht-Vorladen von Bitleitungen (BL0–BL11), die den Speicherzellen zugeordnet sind, die die NU nicht ausgewählten Zieldatenzustände aufweisen, umfasst.
  2. Verfahren nach Anspruch 1, wobei: das Identifizieren Lesen von Auffangregistern (194197, 1007), die den ausgewählten Speicherzellen zugeordnet sind, umfasst; die Auffangregister eine Gruppe von Auffangregistern umfassen, die jeder Speicherzelle aus der Gruppe von Speicherzellen zugeordnet sind; und für jede Speicherzelle die Gruppe von Auffangregistern, die der Speicherzelle zugeordnet sind, eine Bitkombination umfasst, die angibt, dass die Speicherzelle zu einem ausgewählten Zieldatenzustand aus den NS ausgewählten Zieldatenzuständen programmiert werden soll, zu einem nicht ausgewählten Zieldatenzustand aus den NU nicht ausgewählten Zieldatenzuständen programmiert werden soll, oder für Programmieren gesperrt werden soll.
  3. Verfahren nach Anspruch 1 oder 2, das ferner umfasst: Bereitstellen von Ergebnissen des Abfühlens der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, aus der Abfühlschaltungsanordnung (SM1–SM3) der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, für eine oder mehrere Managementschaltungen (MC0); und in der einen oder den mehreren Managementschaltungen für jede Speicherzelle aus den Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Bestimmen, ob die Speicherzelle für weiteres Programmieren gesperrt werden soll, basierend auf den Ergebnissen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei: während der Verifizierungsabschnitts das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Bestimmen umfasst, ob die Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, in einem leitfähigen Zustand sind, und das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, Nicht-Bestimmen umfasst, ob die Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, in dem leitfähigen Zustand sind.
  5. Verfahren nach einem der Ansprüche 1, 3 oder 4, wobei: das Identifizieren Lesen von Auffangregistern (194197, 1007), die den ausgewählten Speicherzellen zugeordnet sind, umfasst; das Lesen der Auffangregister ein erstes Lesen, das unter den ausgewählten Speicherzellen Speicherzellen identifiziert, die einen Zieldatenzustand in einer ersten Teilgruppe von Zieldatenzuständen (A–D) aus den NS ausgewählten Zieldatenzustände aufweisen, gefolgt von einem zweiten Lesen, das unter den ausgewählten Speicherzellen Speicherzellen identifiziert, die einen Zieldatenzustand in einer zweiten Teilgruppe von Zieldatenzuständen (E–G) der NS ausgewählten Zieldatenzustände aufweisen, umfasst; und das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen (BL0–BL11) der Speicherzellen, die den Zieldatenzustand in der ersten Teilgruppe von Zieldatenzuständen aufweisen, während einer ersten Teilgruppe von Verifizierungsspannungen der NS Verifizierungsspannungen, jedoch nicht während einer zweiten Teilgruppe von Verifizierungsspannungen der NS Verifizierungsspannungen, und Vorladen von Bitleitungen der Speicherzellen, die den Zieldatenzustand in der zweiten Teilgruppe von Zieldatenzuständen aufweisen, während der zweiten Teilgruppe von Verifizierungsspannungen, jedoch nicht während der ersten Teilgruppe von Verifizierungsspannungen umfasst.
  6. Verfahren nach Anspruch 5, wobei: die erste Teilgruppe von Verifizierungsspannungen wenigstens zwei Verifizierungsspannungen (VvA, VvB, VvC, VvD) umfasst; die zweite Teilgruppe von Verifizierungsspannungen wenigstens zwei Verifizierungsspannungen (VvE, VvF, VvG) umfasst; und die erste und die zweite Teilgruppe von Verifizierungsspannungen voneinander unterscheidbar sind.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei: die Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen einer aktuellen Phase der Programmieroperation entspricht; und die NS ausgewählten Zieldatenzustände und die NU nicht ausgewählten Zieldatenzustände eine Funktion der aktuellen Phase der Programmieroperation sind.
  8. Verfahren nach einem der Ansprüche 1 bis 7, das ferner umfasst: Übertragen von Daten, die Abfühlen verhindern, von einer oder mehreren Managementschaltungen zu der Abfühlschaltungsanordnung (SM1–SM3), die den Speicherzellen zugeordnet ist, die die NU nicht ausgewählten Zieldatenzustände aufweisen; und Speichern von Daten, die Abfühlen verhindern, in der Abfühlschaltungsanordnung während des Verifizierungsabschnitts, wobei das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, eine Reaktion auf die Daten ist, die Abfühlen verhindern.
  9. Verfahren nach einem der Ansprüche 1 bis 8, das ferner umfasst: Übertragen von Bitleitungsvorladungsdaten von der einen oder den mehreren Managementschaltungen zu der Abfühlschaltungsanordnung, die den Speicherzellen zugeordnet ist, die die NS ausgewählten Zieldatenzustände aufweisen; und Speichern der Bitleitungsvorladungsdaten in der Abfühlschaltungsanordnung während des Verifizierungsabschnitts, wobei das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, eine Reaktion auf die Bitleitungsvorladungsdaten ist.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei: die Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen durch eine Programmschleifennummer angegeben ist.
  11. Verfahren nach Anspruch 10, wobei: die Programmschleifennummer vorbestimmt ist.
  12. Verfahren nach Anspruch 10, wobei: die Programmschleifennummer während der Programmieroperation basierend auf einem Programmierfortschritt der Gruppe von Speicherzellen adaptiv bestimmt wird.
  13. Speichervorrichtung, die enthält: eine Wortleitung (WL0–WL63), die mit einer Gruppe von Speicherzellen (208219) verbunden ist; mehrere Bitleitungen (BL0–BL11), die eine Bitleitung pro Speicherzellen aus der Gruppe von Speicherzellen umfassen; eine Abfühlschaltungsanordnung (SM1–SM3), die den mehreren Bitleitungen zugeordnet ist; und eine Steuerschaltung (MCO), wobei die Steuerschaltung: in einer Programmverifizierungsiteration aus mehreren Programmverifizierungsiterationen eine Programmierspannung (Vpgm) an die Wortleitung anlegt, während das Programmieren von ausgewählten Speicherzellen in der Gruppe von Speicherzellen erlaubt ist und Programmieren von nicht ausgewählten Speicherzellen in der Gruppe von Speicherzellen verboten ist; basierend auf einer Position der einen Programmverifizierungsiteration in den mehreren Programmverifizierungsiterationen NS ausgewählte Zieldatenzustände, wobei NS eine Zahl >= 2 ist, und NU nicht ausgewählte Zieldatenzustände, wobei NU eine Zahl >= 1 ist, bestimmt; unter den ausgewählten Speicherzellen Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, identifiziert; und einen Verifizierungsabschnitt der einen Programmverifizierungsiteration ausführt, die Anzahl NS von Verifizierungsspannungen an die Gruppe von Speicherzellen anlegt, während die Speicherzellen abgefühlt werden, die die NS ausgewählten Zieldatenzustände aufweisen, und die Speicherzellen nicht abgefühlt werden, die die NU nicht ausgewählten Zieldatenzustände aufweisen, wobei das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NS ausgewählten Zieldatenzustände aufweisen, umfasst, und das Nicht-Abfühlen der Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, Nicht-Vorladen von Bitleitungen, die den Speicherzellen zugeordnet sind, die die NU nicht ausgewählten Zieldatenzustände aufweisen, umfasst.
  14. Speichervorrichtung nach Anspruch 13, die ferner enthält: eine Gruppe von Auffangregistern (194197, 1007), die jeder Speicherzelle aus der Gruppe von Speicherzellen zugeordnet sind, wobei die Steuerschaltung die Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und die Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, basierend auf einem Lesen der Gruppen von Auffangregistern identifiziert, wobei für jede Speicherzelle die Gruppe von Auffangregistern, die der Speicherzelle zugeordnet ist, eine Bitkombination umfasst, die angibt, dass die Speicherzelle zu einem ausgewählten Zieldatenzustand aus den NS ausgewählten Zieldatenzuständen programmiert werden soll, zu einem nicht ausgewählten Zieldatenzustand aus den NU nicht ausgewählten Zieldatenzuständen programmiert werden soll, oder für Programmieren gesperrt werden soll.
  15. Speichervorrichtung nach Anspruch 13 oder 14, wobei: die Steuerschaltung, um die Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, und die Speicherzellen, die die NU nicht ausgewählten Zieldatenzustände aufweisen, zu identifizieren, Lesen der Auffangregister (194197, 100), die den ausgewählten Speicherzellen zugeordnet sind, ausführt; das Lesen der Auffangregister ein erstes Lesen, das unter den ausgewählten Speicherzellen Speicherzellen identifiziert, die einen Zieldatenzustand in einer ersten Teilgruppe von Zieldatenzuständen (A–D) aus den NS ausgewählten Zieldatenzustände aufweisen, gefolgt von einem zweiten Lesen, das unter den ausgewählten Speicherzellen Speicherzellen identifiziert, die einen Zieldatenzustand in einer zweiten Teilgruppe der Zieldatenzustände (E–G) der NS ausgewählten Zieldatenzustände aufweisen, umfasst; und das Abfühlen der Speicherzellen, die die NS ausgewählten Zieldatenzustände aufweisen, Vorladen von Bitleitungen der Speicherzellen, die den Zieldatenzustand in der ersten Teilgruppe von Zieldatenzustände aufweisen, während einer ersten Teilgruppe von Verifizierungsspannungen der NS Verifizierungsspannungen, jedoch nicht während einer zweiten Teilgruppe von Verifizierungsspannungen der NS Verifizierungsspannungen, und Vorladen von Bitleitungen der Speicherzellen, die den Zieldatenzustand in der zweiten Teilgruppe von Zieldatenzuständen aufweisen, während der zweiten Teilgruppe von Verifizierungsspannungen, jedoch nicht während der ersten Teilgruppe von Verifizierungsspannungen umfasst.
DE112015003651.2T 2014-08-07 2015-07-27 Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren Granted DE112015003651T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/454,702 US9595345B2 (en) 2014-08-07 2014-08-07 Adaptive selective bit line pre-charge for current savings and fast programming
US14/454,702 2014-08-07
PCT/US2015/042309 WO2016022321A1 (en) 2014-08-07 2015-07-27 Adaptive selective bit line pre-charge for current savings and fast programming

Publications (1)

Publication Number Publication Date
DE112015003651T5 true DE112015003651T5 (de) 2017-05-11

Family

ID=53777043

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015003651.2T Granted DE112015003651T5 (de) 2014-08-07 2015-07-27 Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren

Country Status (4)

Country Link
US (1) US9595345B2 (de)
CN (1) CN106663469B (de)
DE (1) DE112015003651T5 (de)
WO (1) WO2016022321A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295809B2 (en) * 2018-12-21 2022-04-05 Micron Technology, Inc. Programming memory cells where higher levels are programmed prior to lower levels

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3038141B1 (de) * 2014-12-23 2019-08-28 IMEC vzw Verfahren zum Auslesen eine Speicherzelle einer vertikalen ferroelektrischen Speichervorrichtung
JP2017168156A (ja) * 2016-03-14 2017-09-21 東芝メモリ株式会社 半導体記憶装置
KR102452994B1 (ko) * 2016-09-06 2022-10-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10908986B2 (en) * 2018-04-02 2021-02-02 Sandisk Technologies Llc Multi-level recovery reads for memory
CN110556150A (zh) * 2018-06-01 2019-12-10 北京兆易创新科技股份有限公司 一种存储单元的编程方法、装置、电子设备及存储介质
US10636487B2 (en) 2018-06-05 2020-04-28 Sandisk Technologies Llc Memory device with bit lines disconnected from NAND strings for fast programming
CN110838323A (zh) * 2018-08-17 2020-02-25 北京兆易创新科技股份有限公司 一种存储器的编程方法和***
CN110888519B (zh) * 2018-08-17 2024-02-20 兆易创新科技集团股份有限公司 一种存储器的编程方法和***
US11756630B2 (en) 2021-08-12 2023-09-12 Western Digital Technologies, Inc. Obtaining threshold voltage measurements for memory cells based on a user read mode
JP2023093187A (ja) * 2021-12-22 2023-07-04 キオクシア株式会社 半導体記憶装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306762A (ja) * 1998-04-20 1999-11-05 Mitsubishi Electric Corp 半導体記憶装置
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7251160B2 (en) * 2005-03-16 2007-07-31 Sandisk Corporation Non-volatile memory and method with power-saving read and program-verify operations
US7602650B2 (en) 2006-08-30 2009-10-13 Samsung Electronics Co., Ltd. Flash memory device and method for programming multi-level cells in the same
US7606070B2 (en) * 2006-12-29 2009-10-20 Sandisk Corporation Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation
US7492640B2 (en) * 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
US7952928B2 (en) * 2008-05-27 2011-05-31 Sandisk Il Ltd. Increasing read throughput in non-volatile memory
KR101010468B1 (ko) 2009-06-29 2011-01-21 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US7986573B2 (en) * 2009-11-24 2011-07-26 Sandisk Technologies Inc. Programming memory with direct bit line driving to reduce channel-to-floating gate coupling
US8107298B2 (en) 2010-01-29 2012-01-31 Sandisk Technologies Inc. Non-volatile memory with fast binary programming and reduced power consumption
US8274838B2 (en) * 2010-07-19 2012-09-25 Sandisk Technologies Inc. Programming non-volatile memory with bit line voltage step up
US8630120B2 (en) * 2011-10-20 2014-01-14 Sandisk Technologies Inc. Compact sense amplifier for non-volatile memory
KR101925018B1 (ko) 2012-06-19 2018-12-05 삼성전자주식회사 불휘발성 메모리 장치
US8971141B2 (en) * 2012-06-28 2015-03-03 Sandisk Technologies Inc. Compact high speed sense amplifier for non-volatile memory and hybrid lockout
KR20140013383A (ko) 2012-07-23 2014-02-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
US8988937B2 (en) 2012-10-24 2015-03-24 Sandisk Technologies Inc. Pre-charge during programming for 3D memory using gate-induced drain leakage
US8953386B2 (en) * 2012-10-25 2015-02-10 Sandisk Technologies Inc. Dynamic bit line bias for programming non-volatile memory
US8885416B2 (en) * 2013-01-30 2014-11-11 Sandisk Technologies Inc. Bit line current trip point modulation for reading nonvolatile storage elements
US8797800B1 (en) * 2013-04-02 2014-08-05 Sandisk Technologies Inc. Select gate materials having different work functions in non-volatile memory
US9123425B2 (en) * 2013-04-02 2015-09-01 Sandisk Technologies Inc. Adjusting control gate overdrive of select gate transistors during programming of non-volatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295809B2 (en) * 2018-12-21 2022-04-05 Micron Technology, Inc. Programming memory cells where higher levels are programmed prior to lower levels
US11615838B2 (en) 2018-12-21 2023-03-28 Micron Technology, Inc. Programming memory cells at two different levels in parallel

Also Published As

Publication number Publication date
US20160042802A1 (en) 2016-02-11
US9595345B2 (en) 2017-03-14
CN106663469A (zh) 2017-05-10
WO2016022321A1 (en) 2016-02-11
CN106663469B (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
CN111630599B (zh) 在第一编程遍次中省略验证测试的用于存储器设备的多遍编程过程
DE112017004208B4 (de) 3d-nand mit teilblocklöschen
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE60125932T2 (de) Nichtflüchtige Halbleiterspeicher
DE112019000164T5 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE112016003636T5 (de) Unter-Block-Modus für nichtflüchtigen Speicher
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE102018114250A1 (de) Reduzieren eines heißen Elektroneninjektionstypen von Lesestörungen in einer 3D-Speichervorrichtung während Signal-schaltenden Störsignalen
DE102018123918A1 (de) Zustandsabhängige Abtastschaltungen und Vorladevorgänge für Speichervorrichtungen
DE112015003834T5 (de) Abtasten mehrerer referenzpegel in nichtflüchtigen speicherelementen
DE112019000157T5 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE102018105623A1 (de) Zustandsabhängige Abtastschaltungen und Abtastoperationen für Speichervorrichtungen
DE112018003426T5 (de) Reduzieren der lesestörung der art durch injektion heisser elektronen in 3d-speichervorrichtung mit verbundenen sourceendauswahlgates
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE112016003568T5 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher
DE102018106111A1 (de) Selektives Boosting von Strom in Speicherkanälen basierend auf einem Datenmuster oder physischen Nicht-Uniformitäten
DE112019005518T5 (de) Mehrzustandsprogrammierung in einer speichervorrichtung mit schleifenabhängiger bitleitungsspannung während der verifizierung
DE102022102593A1 (de) Speicherprogrammierung mit selektiv übersprungenen verifizierungsimpulsen zur leistungsverbesserung
DE102021106907A1 (de) Lochvorladeschema mit gate-induzierter drain-leckstromerzeugung
DE102021107268A1 (de) Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine
DE102021106142A1 (de) Abtastverstärkerarchitektur, die eine abtastung kleiner hubspannungen bereitstellt
DE112023000257T5 (de) Zeit-tagging von lesepegeln mehrerer wortleitungen für die aufbewahrung von daten in offenen blöcken

Legal Events

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

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division