DE112016003568B4 - Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher - Google Patents

Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher Download PDF

Info

Publication number
DE112016003568B4
DE112016003568B4 DE112016003568.3T DE112016003568T DE112016003568B4 DE 112016003568 B4 DE112016003568 B4 DE 112016003568B4 DE 112016003568 T DE112016003568 T DE 112016003568T DE 112016003568 B4 DE112016003568 B4 DE 112016003568B4
Authority
DE
Germany
Prior art keywords
programming
group
memory cells
volatile memory
memory elements
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.)
Active
Application number
DE112016003568.3T
Other languages
English (en)
Other versions
DE112016003568T5 (de
Inventor
Mohan Dunga
Gerrit Jan Hemink
Zhenming Zhou
Masaaki Higashitani
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 DE112016003568T5 publication Critical patent/DE112016003568T5/de
Application granted granted Critical
Publication of DE112016003568B4 publication Critical patent/DE112016003568B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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

Abstract

Nicht-flüchtige Speichervorrichtung, die aufweist:eine Vielzahl nicht-flüchtiger Speicherelemente (MC1, MC2, ...);einen Steuerungsschaltkreis (110, 122, 124, 128, 132) der mit den nicht-flüchtigen Speicherelementen kommuniziert, wobei der Steuerungsschaltkreis dazu konfiguriert ist, um:einen Befehl zur Programmierung einer Gruppe der Vielzahl nicht-flüchtiger Speicherelemente zu erhalten;eine Programmierungsgeschwindigkeit der Gruppe zu charakterisieren durch Anlegen eines Programmierungssignals an die Gruppe, während eine Teilmenge der Gruppe zur Programmierung freigegeben ist und die restlichen Mitglieder der Gruppe daran gehindert werden, programmiert zu werden, wobei bei der Charakterisierung der Programmierungsgeschwindigkeit eine Schwellenwertspannungs-Verifizierung auf einem intelligenten Verifizierungsreferenzniveau durchgeführt wird;basierend auf der Programmiergeschwindigkeit eine Magnitude bzw. Größe für einen Dummy-Programmierungsimpuls zu bestimmen;den Dummy-Programmierungsimpuls an die Gruppe anzulegen, während ausgewählte der restlichen Mitglieder der Gruppe zur Programmierung freigegeben sind und während die Teilmenge daran gehindert wird, programmiert zu werden; unddie Gruppe nicht-flüchtiger Speicherelemente, nachdem der Dummy-Programmierungsimpuls an die Gruppe angelegt wurde, zu programmieren.

Description

  • Hintergrund
  • Die vorliegende Offenbarung bezieht sich auf Technologie für nicht-flüchtige Speicherung.
  • Halbleiterspeicher werden in diversen elektronischen Vorrichtungen verwendet Beispielsweise werden nicht-flüchtige Halbleiterspeicher in Mobiltelefonen, Digitalkameras, persönlichen digitalen Assistenten, tragbaren Computervorrichtungen, nicht-tragbaren Computervorrichtungen und anderen Vorrichtungen verwendet. „Electrical Eraseable Programmable Read Only Memory“ (EEPROM) und Flashspeicher finden sich unter den beliebtesten nicht-flüchtigen Halbleiterspeichern.
  • Einige nicht-flüchtige Speicher speichern Information in einem Ladungsspeicherbereich, der von einem Kanalbereich in einem Halbleiterspeichersubstrat, isoliert ist Beispielsweise ist ein potentialfreies Gate bzw. Floating-Gate über einer Kanalregion eines Halbleitersubstrates positioniert und von der Kanalregion in dem Halbleitersubstrat isoliert. Das Floating-Gate ist zwischen der Source-Region und der Drain-Region positioniert. Ein Steuerungsgate wird über dem Floating-Gate bereitgestellt und ist von dem Floating-Gate isoliert Die Schwellenwertspannung des Transistors wird durch die Ladungsmenge, die in dem Floating-Gate beibehalten bzw. gespeichert wird, gesteuert. Das heißt, die minimale Spannungsmenge bzw. Spannung, die an das Steuerungsgate angelegt werden muss, bevor der Transistor angeschaltet wird, um eine Leitung zwischen dessen Source und Drain zuzulassen, wird durch das Ladungsniveau am Floating-Gate gesteuert.
  • Einige nicht-flüchtige Speicher verwenden eine Ladungs-Trapping-Schicht um Information zu speichern. Ein solches Beispiel hat eine Oxid-Nitrid-Oxid (ONO)-Region, in der das Nitrid (z.B. SiN) als eine Ladungs-Trapping-Schicht zum Speichern von Information dient. Wenn eine solche Speicherzelle programmiert werden soll, werden Elektronen in der Ladungs-Trapping-Schicht gespeichert.
  • Nicht-flüchtiger Speicher könnte eine 2D-Architektur oder eine 3D-Architektur haben. In jüngster Zeit wurden ultrahochdichte Speichervorrichtungen, die eine 3D-gestapelte Speicherstruktur, die Ketten bzw. Strings von Speicherzellen aufweist, vorgeschlagen. Eine solche Speichervorrichtung wird manchmal als „Bit Cost Scalable“ (BiCS)-Architektur bezeichnet. Beispielsweise kann eine 3D-NAND-gestapelte Speichervorrichtung aus einem Array alternierender Leiter- und Isolatorschichten gebildet sein. Ein Speicherloch wird in die Schichten gebohrt um viele Speicherschichten simultan zu definieren bzw. abzugrenzen. Eine NAND-Kette wird dann durch Füllen des Speicherlochs mit geeigneten Materialien gebildet. Eine gerade NAND-Kette erstreckt sich in einem Speicherloch, während eine rohr- oder U-förmige NAND-Kette (P-BiCS) ein Paar vertikaler Spalten von Speicherzellen, die sich in zwei Speicherlöchern erstrecken und die über eine Rohrverbindung verbunden sind. Steuerungsgates der Speicherzellen werden durch die Leiterschichten bereitgestellt.
  • Im Vorfeld der Programmierung bestimmter nicht-flüchtiger Speichervorrichtungen, wie z.B. einer NAND-Flashspeichervorrichtung, werden die Speicherzellen gelöscht. Die Löschoperation entfernt bei einigen Vorrichtungen Elektronen aus dem Floating-Gate. Bei einigen Vorrichtungen entfernt die Löschoperation Elektronen aus der Ladungs-Trapping-Schicht. Folglich kann das Löschen die Schwellenspannung der Speicherzelle verringern.
  • Das Programmieren der Speicherzellen kann durch Anwenden einer Programmierspannung an das Steuerungsgate zur Erhöhung der Schwellenspannung der Speicherzelle erreicht werden. Typischerweise wird eine Abtastoperation, als Programmierüberwachung bzw. Programmierverifizierung bezeichnet, durchgeführt, nachdem die Programmierspannung angelegt wurde, um zu bestimmen, ob die Speicherzelle ihre vorgesehene Schwellenspannung erreicht hat Dieser Prozess kann in einer Anzahl Programmschleifen wiederholt werden. Speicherzellen können von einer weiteren Programmierung, nachdem diese ihre Zielschwellenspannung erreicht haben, ausgeschlossen werden, um Überprogrammierung zu verhindern.
  • US 2009 / 0 323 429 A1 offenbart ein Verfahren zum Programmieren eines nicht-flüchtigen Speichers, das Programmierstörungen reduziert.
  • Kurze Beschreibung der Zeichnungen
  • Elemente die gleiche Bezugsziffern aufweisen, beziehen sich auf gleiche Komponenten bzw. Bestandteile in verschiedenen Zeichnungen.
    • 1 ist eine perspektivische Ansicht einer 3D-gestapelten nicht-flüchtigen Speichervorrichtung.
    • 2 ist ein funktionelles Blockdiagramm einer Speichervorrichtung, wie beispielsweise die 3D-gestapelte nicht-flüchtige Speichervorrichtung gemäß 1.
    • 3 ist ein Blockdiagramm einer Speicherstruktur, die zwei Ebenen aufweist
    • 4A zeigt in einer Draufsicht einen Anteil eines Blocks von Speicherzellen.
    • 4B zeigt in einer Querschnittsansicht einen Anteil eines Blocks Speicherzellen.
    • 4C stellt die Ansicht der ausgewählten Gate-Schichten und Wortleitungsschichten dar.
    • 4D zeigt in Querschnittsansicht eine vertikale Spalte aus Speicherzellen.
    • 5A zeigt ein Flussdiagramm einer Ausführungsform eines Programmierprozesses.
    • 5B illustriert beispielhaft VT-Verteilungen, die mit Datenzuständen des Speicherzellarrays korrespondieren, wenn jede Speicherzelle drei Bits Daten speichert
    • 5C illustriert, dass VT-Verteilungen partiell überlappen können.
    • 5D ist ein Flussdiagramm einer Ausführungsform eines Prozesses 500 zur Programmierung nicht-flüchtiger Speicherelemente.
    • 6 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 600 zur Durchführung einer intelligenten Überprüfung bzw. Verifizierung.
    • 7A - /D zeigen Schwellenspannungsverteilungen während einer Ausführungsform einer intelligenten Überprüfung bzw. Verifizierung.
    • 8 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 800 zur Programmierung von Speicherzellen unter Verwendung einer LM-Sequenz.
    • 9 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 900 zur Programmierung von Speicherzellen unter Verwendung einer vollständigen Sequenz.
    • 10A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1000 zur Anwendung eines Dummy-Programmierungsimpulses während einer IM-Programmierungssequenz.
    • 10B zeigt VT-Verteilungen vor einer Ausführungsform eines Prozesses 1000 aus 10A.
    • 10C - 10F zeigen VT-Verteilungen während einer Ausführungsform eines Prozesses 1000 gemäß 10A.
    • 11A ist ein Flussdiagramm einer anderen Ausführungsform eines Prozesses 1100 zur Anwendung eines Dummy-Programmierungsimpulses während einer IM-Programmierungssequenz.
    • 11B - 11E zeigen VT-Verteilungen während einer Ausführungsform eines Prozesses 1100 aus 11A.
    • 12A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1200 zur Programmierung von Speicherzellen in einen LM-Zustand.
    • 12B zeigt Ergebnisse nach einer Ausführungsform des Prozesses 1200.
    • 13A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1300 zur Programmierung unter Verwendung einer vollständigen Sequenz.
    • 13B - 13H zeigen VT-Verteilungen während einer Ausführungsform des Prozesses 1300 aus 13A.
    • 14A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1400 zur Programmierung unter Verwendung einer vollständigen Sequenz.
    • 14B - 14H zeigen VT-Verteilungen während einer Ausführungsform des Prozesses 1400 aus 14A.
    • 15 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1500 zur Beendigung einer vollständigen Sequenzprogrammierung.
    • 16 ist ein Diagramm zur Illustration einer Ausführungsform zur Auswahl von Speicherzellen zur intelligenten Überprüfung bzw. Verifizierung.
  • Ausführliche Beschreibung
  • Es werden Techniken bzw. Methoden zur Programmierung nicht-flüchtiger Speicher vorgestellt. Generell kann Programmierung beachtliche Mengen an Strom verbrauchen. Ein beachtlicher Teil des Stroms kann während der Programmierungsüberprüfungsoperation verbraucht werden. Ein Grund für diesen Stromverbrauch ist, dass Speicherzellen, die die Programmierungsüberprüfung nicht durchlaufen bzw. absolviert haben, einschalten bzw. eingeschaltet werden und Strom leiten weil ihre Schwellenspannung noch nicht hoch genug ist, um die Programmierungsüberprüfung zu durchlaufen bzw. absolvieren. Techniken bzw. Methoden, die hier offenbart werden verringern die Strommenge, die während der Programmierungsüberprüfungsoperation gebraucht wird. Eine beachtliche Menge an Strom kann auch bei der Einstellung der Programmierung verbraucht werden. Techniken bzw. Methoden, die hier offenbart werden, reduzieren die Strommenge, die während der Einstellung der Bedingungen zur Programmierung gebraucht wird.
  • In einer Ausführungsform wird eine intelligente Überprüfung bzw. Verifizierung unter Verwendung einer Teilmenge von Speicherzellen, die programmiert werden sollen, durchgeführt Durch Anwendung der intelligenten Überprüfung bzw. Verifizierung auf nur eine Teilmenge der Speicherzellen wird Strom gespart. Die intelligente Überprüfung bzw. Verifizierung wendet einen Programmierungsimpuls auf Speicherzellen an und erfasst daraufhin die Teilmenge, in einer Ausführungsform. In einer Ausführungsform werden die Speicherzellen in der Gruppe, die programmiert werden, aber für die die intelligente Überprüfung bzw. Verifizierung nicht durchgeführt werden soll, während der intelligenten Überprüfung ausgeschlossen, so dass deren Schwellenspannungen nicht durch den Programmierungsimpuls beeinflusst werden. Zudem können sie während der Erfassung ausgeschlossen werden, um Strom zu sparen. Ein Faktor zur Reduzierung des Stromverbrauchs ist, dass Bitleitungen nicht vorgeladen werden müssen. Ein weiterer Faktor zur Reduzierung des Stromverbrauchs ist, dass diese Speicherzellen während der Erfassungsoperation keinen Strom leiten, da sie ausgeschlossen wurden.
  • Die intelligente Überprüfung bzw. Verifizierung kann dazu verwendet werden, die Programmierung der Speicherzellen zu charakterisieren. Beispielsweise kann die intelligente Überprüfung bzw. Verifizierung Information bereitstellen, um zu bestimmen, wie schnell die Speicherzellen programmiert werden bzw. programmierbar sind. In einer Ausführungsform wird die intelligente Überprüfung bzw. Verifizierung dazu verwendet, um eine Magnitude bzw. Größe eines Dummy-Programmierungsimpulses zu bestimmen, der später in dem Prozess zur Programmierung von Speicherzellen angewendet wird. Dem Dummy-Programmierungsimpuls folgt keine Programmierungsüberprüfung, wodurch der Stromverbrauch reduziert wird. Der Dummy-Programmierungsimpuls kann dazu verwendet werden, um die Schwellenspannung ausgewählter Speicherzellen auf eine höhere Spannung anzuheben, ehe ein weiterer Programmierungsimpuls angewendet wird, dem eine Programmierungsüberprüfung folgt. Dies kann den Stromverbrauch aufgrund der folgenden Gründe reduzieren. Wenn der Dummy-Programmierungsimpuls die Schwellenspannungen ausreichend hoch verschiebt, dann werden diese Speicherzellen bei einer Überprüfung keinen Strom leiten. Dadurch wird der Stromverbrauch während der Programmüberprüfung reduziert. Eine Vielzahl von Techniken bzw. Methoden der Anwendung von Dummy-Programmierungsimpulsen werden diskutiert.
  • In einigen Ausführungsformen werden hier offenbarte Techniken bzw. Methoden in einer 3D-gestapelten nicht-flüchtigen Speichervorrichtung angewendet. Das folgende Beispiel ist ein Beispiel einer 3D-gestapelten Speichervorrichtung. Hier offenbarte Ausführungsformen sind nicht auf dieses 3D-Beispiel begrenzt. Hier offenbarte Ausführungsformen sind nicht auf 3D-Speicher begrenzt. Beispielsweise können hier offenbarte Techniken bzw. Methoden auch im 3D-Speicher verwendet werden, aber auch in 2D-NAND, sind aber nicht darauf begrenzt. Ausführungsformen sind nicht auf NAND begrenzt.
  • Die folgende Diskussion bietet Details eines Beispiels einer geeigneten Struktur für eine Speichervorrichtung, die die vorgeschlagene Technologie implementieren kann. 1 ist eine perspektivische Ansicht einer dreidimensionalen (3D) gestapelten nicht-flüchtigen Speichervorrichtung. Die Speichervorrichtung 100 beinhaltet ein Substrat 101. Auf und über dem Substrat sind Beispielsblöcke BLK0 und BLK1 der Speicherzellen (nicht-flüchtigen Speicherelemente). Auch auf dem Substrat 101 ist ein peripherer Bereich 104 mit Support-Schaltkreisen, die von den Blöcken verwendet werden. Substrat 101 kann auch Schaltkreise unter den Blöcken tragen bzw. aufweisen, zusammen mit einer oder mehreren niedrigeren bzw. unteren Metallschichten, die in Leitungsbahnen strukturiert sind, um Signale der Schaltkreise zu tragen. Die Blöcke werden in einer Zwischenregion 102 der Speichervorrichtung gebildet. In einer oberen Region 103 der Speichervorrichtung sind eine oder mehrere obere Metallschichten in Leitungsbahnen strukturiert, um Signale der Schaltreise zu tragen. Jeder Block weist einen gestapelten Bereich Speicherzellen auf, wo bzw. wobei alternierende Ebenen der Stapel Wortleitungen repräsentieren. Obwohl zwei Blöcke als Beispiel gezeigt sind, können zusätzliche Blöcke verwendet werden, die sich in x- und/oder y-Richtung erstrecken.
  • In einem Beispiel einer Implementierung repräsentiert die Länge der Ebene in x-Richtung eine Richtung, in der sich Signalbahnen für Wortleitungen erstrecken (Wortleitungs- oder SGD-Leitungsrichtung), und die Breite der Ebene in y-Richtung repräsentiert eine Richtung, in der sich Signalbahnen für Bitleitungen erstrecken (Bitleitungsrichtung). Die z-Richtung repräsentiert eine Höhe der Speichervorrichtung.
  • 2 ist ein funktionelles Blockdiagramm eines Beispiels einer Speichervorrichtung wie beispielsweise die 3D-gestapelte nicht-flüchtige Speichervorrichtung 100 aus 1. Speichervorrichtung 100 beinhaltet einen oder mehrere Speicherdies 108. Jeder Speicherdie 108 beinhaltet eine dreidimensionale Speicherstruktur 126 von Speicherzellen (wie beispielsweise ein 3D-Array einer Speicherzelle), einen Steuerungsschaltkreis 110 und Lese-/Schreibschaltkreise 128. Die Speicherstruktur 126 ist adressierbar durch Wortleitungen über einen Reihendecoder 124 und durch Bitleitungen über einen Spaltendecoder 132. Die Lese-/Schreibschaltkreise 128 beinhalten multiple Erfassungsblöcke SB1, SB2, ..., SBp (Erfassungsschaltungen) und ermöglichen es, eine Seite Speicherzellen parallel auszulesen oder zu programmieren. In einigen Systemen ist eine Steuerung 122 in der gleichen Speichervorrichtung 100 (z.B. eine entnehmbare Speicherkarte) wie die eine oder mehrere Speicherdies 108 enthalten. Jedoch kann die Steuerung in anderen Systemen von dem Speicherdie 108 getrennt sein. In einigen Ausführungsformen kommuniziert eine Steuerung 122 mit mehreren bzw. multiplen Speicherdies 108. In anderen Ausführungsformen verfügt jeder Speicherdie 108 über seine eigene Steuerung. Befehle und Daten werden zwischen dem Host 140 und der Steuerung 122 über einen Datenbus 120, und zwischen der Steuerung 122 und dem einen oder mehreren Speicherdies 108 über die Leitungen 118 übertragen. In einer Ausführungsform beinhaltet Speicherdie 108 einen Satz Eingabe und/oder Ausgabe (I/O)-Pins, die mit den Leitungen 118 verbunden sind.
  • Die Speicherstruktur 126 kann ein oder mehrere Arrays von Speicherzellen, einschließlich eines 3D-Arrays, aufweisen. Die Speicherstruktur kann eine monolithische dreidimensionale Speicherstruktur, in der multiple Speicherebenen über (und nicht in) einem einzelnen Substrat geformt sind, wie beispielsweise ein Wafer, ohne dazwischenliegende Substrate, aufweisen. Die Speicherstruktur kann irgendeine Art nicht-flüchtiger Speicher aufweisen, der monolithisch in einer oder mehreren physikalischen Ebenen von Arrays von Speicherzellen geformt ist, die einen aktiven Bereich aufweisen, der über einem Siliziumsubstrat angeordnet ist. Die Speicherstruktur kann in einer nicht-flüchtigen Speichervorrichtung sein, die Schaltkreise aufweist, die mit der Operation der Speicherzellen assoziiert sind, unabhängig davon, ob der assoziierte Schaltkreis oberhalb oder in dem Substrat ist.
  • Der Steuerungsschaltkreis 110 kooperiert mit den Lese-/Schreibschaltkreisen 128, um Speicheroperationen (z.B. löschen, programmieren, lesen und weitere) auf den Speicherstrukturen 126 durchzuführen, und beinhaltet eine Zustandsmaschine 112, einen Adressendecoder 114 innerhalb des Chips, und ein Stromsteuerungsmodul 116. Die Zustandsmaschine 112 stellt die Chipebenensteuerung der Speicheroperationen bereit. Code- und Parameterspeicher 113 kann zur Speicherung operativer Parameter und Software bereitgestellt werden. In einer Ausführungsform ist die Zustandsmaschine 112 durch die Software programmierbar, die in dem Code- und Parameterspeicher 113 gespeichert ist In anderen Ausführungsformen verwendet die Zustandsmaschine 112 keine Software und ist vollständig Hardware-implementiert (z.B. elektronische Schaltkreise).
  • Der On-Chip-Adressendecoder bzw. Adressendecoder 114 innerhalb des Chips stellt ein Adresseninterface zwischen den Adressen, die von dem Host 140 oder der Speichersteuerung 122 verwendet werden, und der Hardwareadresse, die von den Decodern 124 und 132 verwendet werden, bereit. Das Leistungs- bzw. Steuerungsmodul 116 steuert die Leistung und die Spannungen, die an die Wortleitungen und Bitleitungen während der Speicheroperationen geliefert werden. Es kann Treiber für die Wortlinienschichten (wird unten diskutiert) in einer 3D-Konfiguration, ausgewählte Transistoren (z.B. SGS- und SGD-Transistoren, wird unten beschrieben) und Source-Leitungen beinhalten. Das Stromsteuerungsmodul 116 kann Ladungspumpen zur Erzeugung von Spannungen beinhalten. Die Erfassungsblöcke beinhalten Bitleitungstreiber. Ein SGS-Transistor ist ein Auswahlgate-Transistor an einem Source-Ende einer NAND-Kette und ein SGD-Transistor ist ein Auswahlgate-Transistor an einem Drain-Ende einer NAND-Kette.
  • Eine jede oder irgendeine Kombination aus Steuerungsschaltkreis 110, Zustandsmaschine 112, Decoder 114/124/132, Speicher 113, Leistungssteuerungsmodul 116, Erfassungsblöcken SB1, SB2, ..., SBp, Lese-/Schreibschaltkreisen 128, und Steuerung 122 kann als Verwaltungs- bzw. Leitungsschaltkreis betrachtet werden, der die hier beschriebenen Funktionen durchführt.
  • Die (innerhalb des Chips befindliche oder chip-externe) Steuerung 122 kann einen Prozessor 122c und Speichervorrichtungen (Speicher) wie beispielsweise ROM 122a und RAM 122b aufweisen. Die Speichervorrichtungen weisen einen Code, wie beispielsweise einen Satz von Instruktionen oder Anleitungen auf, und der Prozessor 122c ist in der Lage, den Satz von Instruktionen bzw. Anleitungen auszuführen, um die hier beschriebene Funktionalität bereitzustellen. Alternativ oder zusätzlich kann der Prozessor 122c auf Code von einer Speichervorrichtung in der Speicherstruktur zugreifen, wie beispielsweise einen reservierten Bereich von Speicherzellen, die mit einer oder mehreren Wortleitungen verbunden sind.
  • Multiple bzw. mehrere Speicherelemente in der Speicherstruktur 126 können so konfiguriert sein, dass sie in Reihe geschaltet sind oder so verbunden sind, dass jedes Element individuell zugreifbar ist bzw. auf jedes individuell zugegriffen werden kann. Als nicht einschränkendes Beispiel beinhalten Flashspeichervorrichtungen in einer NAND-Konfiguration (NAND-Flashspeicher) typischerweise Speicherelemente, die in Reihe geschaltet sind. Eine NAND-Kette bzw. NAND-String ist ein Beispiel für einen Satz von in Reihe geschalteter Speicherzellen und Auswahl-Gate-Transistoren.
  • Ein NAND-Flashspeicherarray kann so konfiguriert sein, dass das Array aus multiplen bzw. mehreren Speicherzellen besteht, die sich eine einzelne Bitleitung teilen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so konfiguriert sein, dass jedes Element individuell zugreifbar ist bzw. auf jedes Element individuell zugegriffen werden kann, z.B. ein NOR-Speicherarray. NAND- und NOR-Konfigurationen sind beispielhaft, und Speicherzellen können anderweitig konfiguriert sein.
  • Die Speicherzellen können in dem einzelnen Speichervorrichtungsniveau bzw. - level in einem geordneten Array, wie beispielsweise in einer Vielzahl von Reihen und/oder Spalten, angeordnet sein. Allerdings können die Speicherelemente in einer unregelmäßigen oder nichtorthogonalen Konfiguration oder in Strukturen, die nicht als Arrays betrachtet werden, angeordnet sein.
  • Ein dreidimensionales Speicherarray ist so angeordnet, dass Speicherzellen multiple bzw. mehrere Ebenen oder multiple bzw. mehrere Speichervorrichtungsniveaus besetzen, wodurch Strukturen in drei Dimensionen gebildet werden (d.h. in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht und die x- und y-Richtungen im Wesentlichen parallel zur Hauptoberfläche des Substrates sind.
  • Als nicht einschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von multiplen bzw. mehreren zweidimensionalen Speichervorrichtungsniveaus angeordnet sein. Als weiteres nicht einschränkendes Beispiel kann ein dreidimensionales Speicherarray als multiple bzw. mehrere vertikale Spalten (z.B. Spalten die sich im Wesentlichen Senkrecht zu der Hauptoberfläche des Substrates beispielsweise in der y-Richtung erstrecken) angeordnet sein, wobei jede Spalte multiple bzw. mehrere Speicherzellen aufweist. Die vertikalen Spalten können in einer zweidimensionalen Konfiguration angeordnet sein, z.B. in einer x-y-Ebene, woraus eine dreidimensionale Anordnung von Speicherzellen, mit Speicherzellen in multiplen bzw. mehreren vertikal gestapelten Speichebenen, resultiert Weitere Konfigurationen von Speicherelementen in drei Dimensionen können auch ein dreidimensionales Speicherarray erzeugen bzw. bilden.
  • Als nicht einschränkendes Beispiel eines dreidimensionalen NAND-Speicherarrays können die Speicherelemente miteinander gekoppelt bzw. verbunden sein, um eine vertikale NAND-Kette zu bilden, die quer durch bzw. über multiple bzw. mehrere horizontale Speichervorrichtungsniveaus verläuft. Andere dreidimensionale Konfigurationen sind denkbar, wobei einige NAND-Ketten bzw. NAND-Strings Speicherelemente in einem einzelnen Speicherniveau aufweisen, während andere Ketten bzw. Strings Speicherelemente aufweisen, die sich durch multiple bzw. mehrere Speicherniveaus erstrecken. Dreidimensionale Speicherarrays können auch in einer NOR-Konfiguration und in einer ReRAM-Konfiguration ausgestaltet sein.
  • Ein Fachmann wird erkennen, dass diese Technologie nicht auf eine einzelne spezifische Speicherstruktur begrenzt ist, aber viele relevante Speicherstrukturen, im Sinne und Schutzumfang der Technologie wie hier beschrieben, abdeckt und von einem Fachmann als solche verstanden wird.
  • 3 ist ein Blockdiagramm, das ein Beispiel für die Organisation der Speicherstruktur 126 darstellt, die in zwei Ebenen 302 und 304 unterteilt ist Jede Ebene ist zudem in M Blöcke unterteilt In einem Beispiel weist jede Ebene etwa 2000 Blöcke auf. Jedoch kann eine unterschiedliche Anzahl von Blöcken und Ebenen verwendet werden.
  • 4A ist ein Blockdiagramm, das eine Draufsicht eines Teils eines Blocks der Speicherstruktur 126 zeigt. Der Teil des Blocks, der in 4A gezeigt wird, stimmt mit einem Teil 306 im Block 2 aus 4A überein. Wie aus 4A ersichtlich ist, erstreckt sich der Block, der in 4A dargestellt ist, in Pfeilrichtung 330 und in Pfeilrichtung 332. In einer Ausführungsform weist das Speicherarray 48 Schichten auf. Andere Ausführungsformen haben weniger oder mehr als 48 Schichten. Allerdings zeigt 4A nur die oberste Schicht.
  • 4A zeigt eine Vielzahl von Kreisen, die vertikale Spalten repräsentieren. Jede der vertikalen Spalten beinhaltet multiple bzw. mehrere Auswahltransistoren und multiple bzw. mehrere Speicherzellen. In einer Ausführungsform implementiert jede vertikale Spalte eine NAND-Kette bzw. NAND-String. Mehr Details der vertikalen Spalten werden unten bereitgestellt Da sich der in 4A dargestellte Block in Pfeilrichtung 330 und in Pfeilrichtung 332 erstreckt, enthält der Block mehr vertikale Spalten als in 4A dargestellt.
  • 4A zeigt auch einen Satz von Bitleitungen 412. 4A zeigt vierundzwanzig Bitleitungen, da nur ein Teil des Blocks dargestellt ist Es ist angedacht, dass mehr als vierundzwanzig Bitleitungen mit den vertikalen Spalten des Blocks verbunden sind. Jeder der Kreise, der vertikale Spalten repräsentiert, weist ein „x“ auf, um seine Verbindung mit einer Bitleitung hinzudeuten.
  • Der Block, der in 4A gezeigt wird, weist einen Satz von lokalen Interconnects 402, 404, 406, 408 und 410 auf, die die verschiedenen Schichten mit einer Source-Leitung unter der vertikalen Spalte verbinden. Lokale Interconnects 402, 404, 406, 408, und 410 dienen auch dazu, jede Schicht des Blocks in vier Regionen bzw. Bereiche zu unterteilen; beispielsweise ist die oberste Schicht, die in 4A gezeigt wird, in die Regionen bzw. Bereiche 420, 430, 440 und 450 unterteilt In den Schichten des Blocks, die Speicherzellen implementieren, werden die vier Regionen bzw. Bereiche als Wortleitungsfinger bezeichnet, die durch die lokalen Interconnects getrennt sind. In einer Ausführungsform verbinden sich die Wortleitungsfinger auf einem gemeinsamen Niveau eines Blocks an dem Ende des Blocks, um eine einzelne bzw. einzige Wortleitung zu bilden. In einer weiteren Ausführungsform sind die Wortleitungsfinger auf dem gleichen Niveau nicht miteinander verbunden. In einer beispielhaften Implementierung verbindet sich eine Bitleitung nur mit einer vertikalen Spalte aus jeder der Regionen bzw. Bereiche 420, 430, 440 und 450. In einer solchen Implementierung weist jeder Block sechzehn Reihen von aktiven Spalten auf und jede Bitleitung verbindet sich mit vier Reihen aus jedem Block. In einer Ausführungsform sind alle vier Reihen, die mit einer gemeinsamen Bitleitung verbunden sind, mit der gleichen Wortleitung verbunden (über unterschiedliche Wortleitungsfinger auf dem gleichen Niveau, die miteinander verbunden sind); deshalb verwendet der Verwaltungsschaltkreis die Source-seitigen Auswahlleitungen und die Drain-seitigen Auswahlleitungen, um eine (oder einen anderen Teilsatz) der vier auszuwählen, um sie einer Speicheroperation zu unterziehen (programmieren, verifizieren bzw. überprüfen, lesen, und/oder löschen).
  • Obwohl 4A zeigt, dass jede Region bzw. Bereich vier Reihen von vertikalen Spalten, vier Regionen bzw. Bereiche und sechzehn Reihen von vertikalen Spalten in einem Block aufweist, sind diese exakten Zahlen nur eine beispielhafte Ausführungsform. Weitere Ausführungsformen können mehr oder weniger Regionen pro Block, mehr oder weniger Reihen von vertikalen Spalten pro Region und mehr oder weniger von vertikalen Spalten pro Block beinhalten.
  • 4A zeigt auch die vertikalen Spalten in staffelförmiger bzw. gestaggerter Ausführung. In anderen Ausführungsformen können unterschiedliche Staffelmuster verwendet werden. In einigen Ausführungsformen sind die vertikalen Spalten nicht gestaffelt.
  • 4B stellt einen Teil einer Ausführung einer dreidimensionalen Speicherstruktur 126 dar, die eine Querschnittsansicht entlang einer Linie AA aus 4A zeigt. Diese Querschnittsansicht schneidet durch die vertikalen Spalten 432 und 434 und durch die Region bzw. Bereich 430 (siehe 4A). Die Struktur aus 4B beinhaltet zwei Drain-seitige Auswahlschichten SGD1 und SGD1; zwei Source-seitige Auswahlschichten SGS1 und SGS2; vier Dummy-Wortleitungsschichten DWLL1a, DWLL1b, DWLL2a und DWLL2b; und zweiunddreißig Wortleitungsschichten WLL0 - WLL31 zur Verbindung mit Datenspeicherzellen. Andere Ausführungsformen können mehr oder weniger als zwei Drain-seitige Auswahlschichten, mehr oder weniger als zwei Source-seitige Auswahlschichten, mehr oder weniger als vier Dummy-Wortleitungsschichten und mehr oder weniger als zweiunddreißig Wortleitungsschichten aufweisen. Die vertikalen Spalten 432 und 434 sind als durch die Drain-seitigen Auswahlschichten, durch die Source-seitigen Auswahlschichten, durch die Dummy-Wortleitungsschichten und durch die Wortleitungsschichten ragend dargestellt. In einer Ausführungsform weist jede vertikale Spalte eine NAND-Kette bzw. einen NAND-String auf. Unter den vertikalen Spalten und den unten aufgelisteten Schichten ist Substrat 101, ein Isolierfilm 454 auf dem Substrat, und eine Source-Leitung bzw. Source-Line SL. Die NAND-Kette bzw. der NAND-String der vertikalen Spalten 432 weist ein Source-Ende unten bzw. am Fuße des Stapels und ein Drain-Ende oben bzw. an der Spitze des Stapels auf. In Übereinstimmung mit 4A, zeigt 4B eine vertikale Spalte 432, die mit einer Bitleitung 414 durch eine Verbindung bzw. einen Connector 415 verbunden ist Lokale Interconnects 404 und 406 sind auch dargestellt.
  • Zur leichteren Orientierung, werden Drain-seitige Auswahlschichten SGD1 und SGD1; Source-seitige Auswahlschichten SGS1 und SGS2; Dummy-Wortleitungsschichten DWLL1a, DWLL1b, DWLL2a und DWLL2b; und Wortleitungsschichten WLL0-WLL31 zusammen als die Leitungsschichten bezeichnet. In einer Ausführungsform werden die Leitungsschichten aus einer Kombination von TiN und Wolfram gebildet. In anderen Ausführungsformen können andere Materialien verwendet werden, um die Leitungsschichten zu bilden, wie beispielsweise dotiertes Polysilizium, Metalle wie Wolfram oder Metallsilikate. In einigen Ausführungsformen können verschiedene Leitungsschichten aus verschiedenen Materialien gebildet werden. Zwischen den Leitungsschichten sind dielektrische Schichten DL0-DL19. Beispielsweise ist die dielektrische Schicht DL10 oberhalb der Wortleitungsschicht WLL26 und unterhalb der Wortleitungsschicht WLL27. In einer Ausführungsform werden die dielektrischen Schichten aus SiO2 hergestellt. In anderen Ausführungsformen können andere dielektrische Materialien verwendet werden, um die dielektrischen Schichten zu bilden.
  • Die Speicherzellen sind entlang vertikaler Spalten gebildet, die sich durch alternierende Leitungs- und dielektrische Schichten in dem Stapel erstrecken. In einer Ausführungsform sind die Speicherzellen in NAND-Ketten bzw. NAND-Strings angeordnet. Die Wortleitungsschichten WLL0-WLL31 sind mit den Speicherzellen (auch Datenspeicherzellen genannt) verbunden. Dummy-Wortleitungsschichten DWLL1a, DWll1b, DWll2a und DWll2b sind mit den Dummy-Speicherzellen verbunden. Eine Dummy-Speicherzelle, auch als nicht-Datenspeicherzelle bezeichnet, speichert keine Anwenderdaten, während eine Datenspeicherzelle zur Speicherung von Anwenderdaten geeignet bzw. fähig ist Folglich können Datenspeicherzellen programmiert werden. Drain-seitige Auswahlschichten SGD1 und SGD1 werden verwendet, um NAND-Ketten bzw. NAND-Strings elektrisch mit den Bitleitungen zu verbinden und zu trennen. Die Source-seitigen Auswahlschichten SGD1 und SGD2 werden verwendet, um NAND-Ketten bzw. NAND-Strings mit der Source-Leitung SL zu verbinden und zu trennen.
  • 4C stellt eine perspektivische Ansicht der Leitungsschichten (SGD1, SGD1, SGS1, SGS2, DWLL1a, DWLL1b, DWLL2a, DWLL2b und WLL0-WLL31) des Blocks dar, der teilweise in 4C gezeigt ist. Wie oben in Bezug auf 4A erwähnt teilen die lokalen Interconnects 401, 404, 406, 408 und 410 jede Leitungsschicht in vier Regionen bzw. Bereiche. Beispielsweise wird die Drain-seitige Auswahl-Gate-Schicht SGD1 (die oberste Schicht) in vier Regionen bzw. Bereiche 420, 430, 440 und 450 unterteilt. Gleichermaßen wird die Wortleitungsschicht WLL31 in Regionen bzw. Bereiche 460, 462, 464 und 466 unterteilt Bei Wortleitungsschichten (Wll0-Wll31) werden die Regionen bzw. Bereiche als Wortleitungsfinger bezeichnet; beispielsweise wird die Wortleitungsschicht WLL31 in die Wortleitungsfinger 460, 462, 464 und 466 unterteilt.
  • 4D stellt eine Querschnittsansicht einer Region bzw. eines Bereiches 442 der 4B dar, die einen Teil einer vertikalen Spalte 432 beinhaltet. In einer Ausführungsform sind die vertikalen Spalten rund und weisen vier Schichten auf; jedoch können in anderen Ausführungsformen mehr oder weniger als vier Schichten beinhaltet sein und es können andere Formen verwendet werden. In einer Ausführungsform weist eine vertikale Spalte 432 eine innere Kernschicht 470 auf, die aus einem Dielektrikum besteht, wie beispielsweise SiO2. Andere Materialien können auch verwendet werden. Den inneren Kern 470 umgibt ein Polysiliziumkanal 471. Es können auch andere Materialien als Polysilizium verwendet werden. Es wird darauf hingewiesen, dass es der Kanal 471 ist, der mit der Bitleitung verbunden ist. Den Kanal 471 umgibt ein tunnelfähiges Dielektrikum 472. In einer Ausführungsform besitzt das tunnelfähige Dielektrikum 472 eine ONO-Struktur. Das tunnelfähige Dielektrikum 472 umgibt eine Ladungs-Trapping-Schicht 473, wie beispielsweise ein speziell formuliertes Siliziumnitrid, dass die TrapDichte erhöht.
  • 4D zeigt die dielektrischen Schichten DLL11, DLL12, DLL13, DLL14 und DLL15, sowie die Wortleitungsschichten WLL27, WLL28, WLL29, WLL30 und WLL31. Jede der Wortleitungsschichten beinhaltet eine Wortleitungsregion bzw. einen Wortleitungsbereich 476, welcher von einer Aluminiumoxidschicht 477 umgeben ist, die von einer Blockieroxid (SiO2)-Schicht 478 umgeben ist. Die physikalische Wechselwirkung der Wortleitungsschichten mit den vertikalen Spalten bildet die Speicherzellen. Somit weist eine Speicherzelle einen Kanal 471, ein tunnelfähiges Dielektrikum 472, eine Ladungs-Trapping-Schicht 473, eine Blockieroxidschicht 478, eine Aluminiumoxidschicht 477 und eine Wortleitungsregion bzw. einen Wortleitungsbereich 476 auf. Beispielsweise weisen die Wortleitungsschicht WLL31 und ein Teil der vertikalen Spalte 432 eine Speicherzelle MC1 auf. Die Wortleitungsschicht WLL30 und ein Teil der vertikalen Spalte 432 weisen eine Speicherzelle MC2 auf. Die Wortleitungsschicht WLL29 und ein Teil der vertikalen Spalte 432 weisen eine Speicherzelle MC3 auf. Die Wortleitungsschicht WLL28 und ein Teil der vertikalen Spalte 432 weisen eine Speicherzelle MC4 auf. Die Wortleitungsschicht WLL27 und ein Teil der vertikalen Spalte 432 weisen eine Speicherzelle MC5 auf.
  • Wenn eine Speicherzelle programmiert wird bzw. ist, werden Elektronen in einem Teil der Ladungs-Trapping-Schicht 473 gespeichert, die mit der Speicherzelle assoziiert ist Diese Elektronen werden in die Ladungs-Trapping-Schicht 473 des Kanals 471 gezogen, durch die tunnelfähige Schicht 473, als Reaktion darauf, dass eine geeignete Spannung an der Wortleitungsregion bzw. an dem Wortleitungsbereich 471 anliegt. Die Schwellenwertspannung (VT) einer Speicherzelle wird proportional mit der Menge gespeicherter Ladung erhöht Während einer Löschoperation kehren die Elektronen in den Kanal zurück.
  • 5A ist ein Flussdiagramm, das eine Ausführung eines Programmierprozesses 550 beschreibt, der einen oder mehrere Verifizierungs- bzw. Überprüfungsschritte beinhaltet. Jede der hier beschriebenen Programmiersequenzen können verwendet werden, sowie andere Programmiersequenzen. Beispielsweise kann Prozess 550 in einer LM-Sequenz verwendet werden, eine vollständige Programmiersequenz, eine intelligente Verifizierung bzw. Überprüfung, usw.
  • In Schritt 552 wird die Programmierspannung (Vpgm) auf einen Initial- bzw. Startwert festgesetzt. Zudem wird in Schritt 552 ein Programmzähler (PC) auf Null initialisiert bzw. eingestellt. In Schritt 554 wird ein Programmimpuls an das Kontrollgate der Speicherzelle angelegt Schritt 554 kann auch die Festlegung von Programmierbedingungen auf den Bitleitungen beinhalten. Bitleitungen, die mit Speicherzellen assoziiert bzw. verbunden sind, um programmiert zu werden, können mit einer Programmierungsfreigabespannung bereitgestellt werden; Bitleitungen, die mit Speicherzellen assoziiert bzw. verbunden sind, deren Programmierung verhindert werden soll, können mit einer Programmierungsverhinderungsspannung bereitgestellt werden.
  • In Schritt 556 wird ein Verifizierungs- bzw. Überprüfungsprozess durchgeführt. In Schritt 558 wird ermittelt, ob Speicherzellen verifiziert bzw. überprüft wurden, deren Schwellenwertspannung auf der Zielspannung dieser Speicherzelle liegen. Es wird darauf hingewiesen, dass es nicht erforderlich ist, dass jede Speicherzelle für einen bestimmten Zustand auf die dazugehörige Schwellenwertspannung verifiziert bzw. überprüft wird. Die Fehlerkorrektur kann korrigieren, dass einige Speicherzellen unterhalb ihrer ZielSchwellenwertspannung sind. Die Fehlerkorrektur ist dazu in der Lage, einige Speicherzellen zu korrigieren, die überprogrammiert wurden. Schritt 558 bezieht sich auf alle Zustände, die vollständig programmiert wurden.
  • Wenn die Verifizierung bzw. Überprüfung bestanden wurde, wird der Programmierungsprozess erfolgreich in Schritt 560 beendet (Status = bestanden). Wenn nicht alle Speicherzellen verifiziert bzw. überprüft wurden, wird ermittelt, ob der Programmzähler (PC) kleiner als ein Maximalwert wie beispielsweise 20 ist Wenn der Programmzähler nicht kleiner als ein Maximalwert ist (Schritt 562), dann ist der Programmierprozess fehlgeschlagen (Schritt 564). Wenn der Programmzähler (PC) kleiner als ein Maximalwert (z.B. 20) ist, dann wird der Programmzähler (PC) um 1 erhöht und die Programmierspannung auf den nächsten Impulsschritt in Schritt 556 angehoben. Nach Schritt 556 kehrt der Prozess zu Schritt 554 zurück und der nächste Programmierimpuls wird an die Speicherzellen angelegt.
  • Am Ende eines erfolgreichen Programmierprozesses (mit Verifizierung bzw. Überprüfung) sollte die Schwellenwertspannung der Speicherzelle innerhalb einer oder mehrerer Schwellenwertverteilungen für programmierte Speicherzellen oder dementsprechend innerhalb einer Verteilung von Schwellenwertspannungen für gelöschte Speicherzellen liegen. 5B zeigt beispielhaft VT-Verteilungen, die mit Datenzuständen des Speicherzellenarrays übereinstimmen, wenn in jeder Speicherzelle drei Bits Daten gespeichert sind. Jedoch können andere Ausführungsformen mehr oder weniger als drei Bits Daten pro Speicherzelle verwenden. Dies kann eine logarithmische Skala sein. Die andere Achse repräsentiert die Schwellenwertspannung (VT) der Speicherzellen.
  • 5B zeigt acht VT-Verteilungen, die mit einem gelöschten Zustand und den programmierten Zuständen A-G übereinstimmen. In einer Ausführungsform ist die Schwellenwertspannung in dem gelöschten Zustand negativ und die Schwellenwertspannung in den programmierten Zuständen A-G positiv. Jedoch kann die Schwellenwertspannung in einem oder in mehreren programmierten Zuständen A-G negativ sein. Einige oder alle der Schwellenwertspannungen in dem gelöschten Zustand könnten positiv sein.
  • An oder in der Nähe der unteren Kante der Schwellenwertverteilung für jeden programmierten Zustand befindet sich eine Verifizierungsreferenzspannung. Beispielsweise zeigt 5B VvA für den Zustand A, VvB für den Zustand B, VvC für den Zustand C, VvD für den Zustand D, VvE für den Zustand E, VvF für den Zustand F und VvG für den Zustand G. Wenn Speicherzellen auf einen bestimmten Zustand programmiert werden, prüft der Verwaltungsschaltkreis, ob diese Speicherzellen eine Schwellenwertspannung aufweisen, die größer oder gleich der Verifizierungs- bzw. Überprüfungsreferenzspannung ist.
  • Zwischen jedem benachbarten Paar der VT-Verteilungen liegen Lesereferenzspannungen, die dazu verwendet werden, Daten aus der Speicherzelle zu lesen. Beispielsweise zeigt 5B eine Lesereferenzspannung VrA zwischen dem gelöschten Zustand und dem Zustand A, eine Lesereferenzspannung VrB zwischen dem Zustand A und dem Zustand B, eine Lesereferenzspannung VrC zwischen dem Zustand B und dem Zustand C, eine Lesereferenzspannung VrD zwischen dem Zustand C und dem Zustand D, eine Lesereferenzspannung VrE zwischen dem Zustand D und dem Zustand E, eine Lesereferenzspannung VrF zwischen dem Zustand E und dem Zustand F und eine Lesereferenzspannung VrG zwischen dem Zustand F und dem Zustand G. Durch Prüfung, ob die Schwellenwertspannung einer bestimmten Speicherzelle oberhalb oder unterhalb der entsprechenden Lesereferenzspannung ist, kann der Verwaltungsschaltkreis bestimmen, in welchem Zustand sich die Speicherzelle befindet. Beispielsweise kann angenommen werden, dass sich eine Speicherzelle, deren Schwellenwertspannung größer als die VrD aber geringer als die VrE ist, in dem Zustand D befindet.
  • 5C zeigt, dass sich VT-Verteilungen teilweise überlappen können. Beispielsweise können, mit Verweis auf das Leseniveau VrB, einige Speicherzellen, die sich in Zustand A befinden, eine Schwellenwertspannung aufweisen, die größer als VrB ist. Auch können einige Speicherzellen, die sich in Zustand B befinden, eine Schwellenwertspannung aufweisen, die kleiner als VrB ist Ein gewisser Anteil an Überlapp ist akzeptabel, da ein Fehlerkorrekturalgorithmus einen bestimmten Prozentsatz von Zellen verarbeiten kann, deren VT außerhalb ihres vorgesehenen VT-Bereichs liegt.
  • Es wird darauf hingewiesen, dass in einigen Ausführungsformen direkt nach der Programmierung die Schwellenwertspannungsverteilung derjenigen aus 5C ähneln kann. Jedoch kann sich mit der Zeit die Schwellenwertspannung der Speicherzellen verschieben, beispielsweise so, dass zwischen den VT-Verteilungen ein Überlapp entstehen kann. Eine mögliche Ursache der Verschiebung kann ein Ladungsleck in der Ladungsspeicherregion der Speicherzelle sein. Eine andere mögliche Ursache der Verschiebung kann ein unbeabsichtigtes Hinzufügen von Ladung zur Ladungsspeicherregion der Speicherzellen sein.
  • Andererseits kann in einigen Fällen Überlappung zwischen den VT-Verteilungen sofort nach der Programmierung auftreten. Beispielsweise können einige Speicherzellen überprogrammiert sein. Ein Beispiel dafür ist, falls eine Speicherzelle in den Zustand A programmiert wird, kann deren Schwellenspannung unbeabsichtigt über VrB gehen. Es ist auch möglich, dass Unterprogrammierung auftritt. Ein Beispiel dafür ist, falls eine Speicherzelle in den Zustand B programmiert wird, ihre Schwellenwertspannung nicht ganz das VrB-Niveau erreicht. In beiden Fällen bedeutet dies nicht, dass die Programmierung fehlgeschlagen ist Wie oben erwähnt, kann ein Fehlerkorrekturalgorithmus einen bestimmten Prozentsatz von Zellen verarbeiten, deren Schwellenwertspannung nicht innerhalb ihrer vorgesehenen VT-Verteilung liegt.
  • Es wird auch darauf hingewiesen, dass im Gegensatz zum gleichen Abstand/ zur gleichen Breite der gezeigten Schwellenwertspannungsverteilungen unterschiedliche Verteilungen unterschiedliche Breiten/Abstände aufweisen können, um unterschiedlichen Anfälligkeiten von Datenerhaltungsverlusten sowie anderen Faktoren Rechnung zu tragen.
  • 5D ist ein Flussdiagramm einer Ausführungsform eines Prozesses 500 zur Programmierung nicht-flüchtiger Speicherelemente (z.B. Speicherzellen). Schritt 502 beinhaltet das Erhalten eines Befehls zur Programmierung einer Gruppe von Speicherzellen. In einer Ausführungsform ist jede Speicherzelle, die programmiert werden soll, mit der gleichen Wortleitung assoziiert bzw. verbunden. In einer Ausführungsform ist jede Speicherzelle, die programmiert werden soll, mit einer unterschiedlichen Bitleitung assoziiert bzw. verbunden. In einer Ausführungsform sendet die Steuerung 122 einen Befehl an einen Speicherdie 108 um eine Gruppe von Speicherzellen zu programmieren. Der Befehl kann an ein Speicherpaket gesendet werden, das mehrere Speicherdies enthält Es wird darauf hingewiesen, dass die Speicherzellen normalerweise vor der Programmierung gelöscht sind. Zudem wird darauf hingewiesen, dass sich die Gruppe der Speicherzellen vor dem Prozess 500 in einem gelöschten Zustand befinden können.
  • Der Prozess 500 kann in einer Reihe von Programmierungssequenzen verwendet werden. Ein Beispiel wird als vollständige Sequenzprogrammierung bezeichnet. In der vollständigen Sequenzprogrammierung können Speicherzellen aus dem gelöschten Zustand auf ihren entsprechenden Zielschwellenwert während einer einzigen Phase programmiert werden. Ein Beispiel wird als LM-Sequenzprogrammierung bezeichnet. Bei einer LM-Sequenzprogrammierung werden Speicherzellen, deren Zielschwellenwert am Höchsten ist, zuerst aus dem gelöschten Zustand auf einen Zwischenniveau in einer Phase programmiert. Dann werden Speicherzellen entweder von dem gelöschten Zustand oder von dem Zwischenniveau auf deren entsprechenden Zielschwellenwert während einer zweiten Phase programmiert. Es gibt viele andere Programmierungssequenzen, die im Prozess 500 verwendet werden können.
  • In einem Schritt 504 wird eine intelligente Verifizierung bzw. Überprüfung unter Verwendung einer Teilmenge der Speicherzellen, die programmiert werden, durchgeführt. Eine Ausführungsform der intelligenten Verifizierung bzw. Überprüfung wird unten diskutiert. Kurz gesagt, während der intelligenten Verifizierung bzw. Überprüfung wählt der Steuerungsschaltkreis eine Teilmenge der Speicherzellen aus, die während der intelligenten Verifizierung bzw. Überprüfung eine gewisse Menge an Programmierung erhalten sollen. Nicht ausgewählte Speicherzellen erhalten während der intelligenten Verifizierung bzw. Überprüfung keine Programmierung. Eine Vielzahl von Techniken kann verwendet werden, um Speicherzellen auszuwählen. Die intelligente Verifizierung bzw. Überprüfung wird in einer Ausführungsform dazu verwendet, zu bestimmen, wie schnell die Speicherzellen programmiert werden. Beispielsweise kann die intelligente Verifizierung bzw. Überprüfung die Anzahl an Programmierungsimpulsen sowie die Magnitude bzw. Größe der Programmimpulse untersuchen, die dazu benötigt werden, um die Schwellenwertspannung der Speicherzellen auf ein Zielniveau zu erhöhen. Es wird darauf hingewiesen, dass einige Speicherzellen schneller programmiert werden als andere, wodurch diese Überprüfung auf der Bestimmung basiert, wann ein bestimmter Prozentsatz der Speicherzellen das Zielniveau erreicht hat, oder auf einem anderen Verfahren.
  • In Schritt 506 wird eine Magnitude bzw. eine Größe eines Dummy-Programmierungsimpulses, basierend auf den Ergebnissen der intelligenten Verifizierung bzw. Überprüfung, bestimmt. Hier bezieht sich der Begriff „Dummy-Programmierungsimpuls“ auf einen Programmierungsimpuls, dem keine Programmierungsverifizierung bzw. -überprüfung folgt, um die Effizienz des Dummy-Programmierungsimpulses zu untersuchen. Natürlich kann eine Programmierungsverifizierung bzw. -überprüfung durchgeführt werden, nachdem später ein Programmierungsimpuls, der kein Dummy-Programmierungsimpuls ist, angewendet wird. Schritt 506 kann Magnituden bzw. Größen für mehrere unterschiedliche Dummy-Programmierungsimpulse ermitteln.
  • Schritt 508 beinhaltet die Freigabe zur Programmierung ausgewählter Speicherzellen, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde. In einer Ausführungsform beinhaltet Schritt 508 das Anlegen einer Spannung an die Bitleitungen, die es erlaubt, Speicherzellen, die mit diesen Bitleitungen assoziiert bzw. verbunden sind, zu programmieren. In diesem Schritt umfassen die ausgewählten Speicherzellen nicht notwendigerweise alle der Speicherzellen, die letztlich in diesem Prozess programmiert werden sollen. In einem Beispiel werden Speicherzellen, die auf einen Datenzustand in der Nähe eines intelligenten Verifizierungs- bzw. Überprüfungsniveaus (und für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde) programmiert werden sollen, ausgewählt. In einem Beispiel werden Speicherzellen, die auf einen Zwischenzustand (und für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde) programmiert werden sollen, ausgewählt. In einem Beispiel werden Speicherzellen, die auf einen bestimmten Zustand (und für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde) programmiert werden sollen, ausgewählt. In einem Beispiel werden Speicherzellen, die auf irgendeinen Zustand (und für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde) programmiert werden sollen, ausgewählt. Auch können einige Speicherzellen, für die die intelligente Verifizierung bzw. Überprüfung durchgeführt wurde, zur Programmierung freigegeben werden. Beispielsweise können Speicherzellen, die auf einen Zustand programmiert werden sollen, der signifikant oberhalb eines intelligenten Verifizierungs- bzw. Überprüfungsniveau liegt, zur Programmierung freigegeben werden. Viele Beispiele werden hier beschrieben.
  • Schritt 510 beinhaltet die Verhinderung der Programmierung ausgewählter Speicherzellen, für die die intelligente Überprüfung durchgeführt wurde. In einer Ausführungsform kann beinhaltet sein, dass Speicherzellen auf einen Zustand in der Nähe eines intelligenten Verifizierungs- bzw. Überprüfungsniveaus programmiert werden sollen, ist aber nicht darauf limitiert bzw. beschränkt Ein Grund für diese Auswahl ist, eine Überprogrammierung dieser Speicherzellen zu verhindern, die Teil der intelligenten Verifizierung bzw. Überprüfung waren und auf einen Zustand in der Nähe des intelligenten Verifizierungsreferenzniveaus programmiert werden sollen. Es wird darauf hingewiesen, dass nicht alle Speicherzellen, für die die intelligente Verifizierung bzw. Überprüfung durchgeführt wurde, in einigen Ausführungsformen ausgenommen bzw. ausgeschlossen sind. Andere Speicherzellen, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde, können auch daran gehindert werden, programmiert zu werden. Beispielsweise können Speicherzellen, die in dem gelöschten Zustand verbleiben, daran gehindert werden, programmiert zu werden. Auch könnte jede Speicherzelle, die in Schritt 508 nicht ausgewählt wurde, daran gehindert werden, in Schritt 510 programmiert zu werden. In einer Ausführungsform beinhaltet Schritt 510 das Anlegen einer Spannung an die Bitleitungen, die Speicherzellen die mit diesen Bitleitungen assoziiert bzw. verbunden sind daran hindert, programmiert zu werden.
  • Schritt 512 beinhaltet das Anlegen eines Dummy-Programmierungsimpulses (z.B. einen Spannungsimpuls) an die Speicherzellen in der Gruppe. In einer Ausführungsform wird der Dummy-Programmierungsspannungsimpuls an die Wortleitung angelegt, die mit der Gruppe Speicherzellen assoziiert bzw. verbunden ist In einer Ausführungsform wird der Dummy-Programmierungsimpuls an das Steuerungsgate jeder der Speicherzellen in der Gruppe angelegt. Schritt 512 kann das Anlegen von mehr als einem Dummy-Programmierungsimpuls an die Speicherzellen beinhalten. Es wird darauf hingewiesen, dass in einem Fall, in dem mehr als ein Dummy-Impuls angelegt wird, die Speicherzellen, die freigegeben wurden und diejenigen, die daran gehindert wurden, programmiert zu werden, wechseln bzw. geändert werden können.
  • Schritt 514 beinhaltet das Fortsetzen der Programmierung der Speicherzellen. Schritt 514 kann das Anlegen eines Programmierungspulses, dem das Durchführen einer Programmierungsverifizierung bzw. Überprüfung folgt, beinhalten. Dieses Muster kann so lange wiederholt werden, bis die Programmierung der Gruppe der Speicherzellen vollständig ist. Dementsprechend könnte ein Prozess, der dem aus 5A gleicht, verwendet werden.
  • 6 ist ein Flussdiagramm einer Ausführung eines Prozesses 600 der Ausführung einer intelligenten Verifizierung bzw. Überprüfung. Diese Information kann verwendet werden, um eine Magnitude bzw. Größe eines Dummy-Programmierungsimpulses zu bestimmen. Prozess 600 ist eine Ausführungsform der Stufe 504 aus Prozess 500. In einer Ausführungsform wird die intelligente Verifizierung bzw. Überprüfung verwendet, wenn die Speicherzellen auf einen Zwischenzustand programmiert werden. Dies kann auch als Programmierung einer unteren Seite von Daten bezeichnet werden. In diesem Beispiel kann das intelligente Verifizierungsreferenzniveau ein Verifizierungsniveau sein, das mit dem Zwischenzustand assoziiert ist. In diesem Fall können die Speicherzellen, die in der intelligenten Verifizierung bzw. Überprüfung involviert sind, diejenigen sein, die auf die Zustände D, E, F und G programmiert werden sollen. In einer Ausführungsform wird die intelligente Verifizierung bzw. Überprüfung während einer vollständigen Sequenzprogrammierung verwendet. In diesem Beispiel kann das intelligente Verifizierungsreferenzniveau ein Verifizierungsniveau sein, das mit dem untersten Datenzustand (z.B. dem Zustand A) assoziiert ist. Es wird darauf hingewiesen, dass das intelligente Verifizierungsniveau aus Gründen, die unten diskutiert werden, möglicherweise nicht exakt auf diesen Niveaus liegt. In dem vollständigen Sequenzbeispiel können die Speicherzellen, die in der intelligenten Verifizierung bzw. Überprüfung involviert sind, diese beinhalten, die auf die Zustände A, B, C, D, E, F und G programmiert werden sollen. Es wird darauf hingewiesen, dass dies nur zwei Beispiele sind. Auch kann die intelligente Verifizierung bzw. Überprüfung verwendet werden, wenn die VT-Verteilung am Ende der Programmierung mehr oder weniger als acht Zustände aufweist.
  • In Schritt 602 werden Bedingungen auf einem ersten Satz von Bitleitungen festgelegt, um die Programmierung zu ermöglichen. Dieser erste Satz von Bitleitungen ist mit den Speicherzellen assoziiert bzw. verbunden, die während der intelligenten Verifizierung bzw. Überprüfung programmiert werden. In einer Ausführungsform wird eine Programmierungsfreigabespannung an den ersten Satz von Bitleitungen angelegt. Dies ist eine Spannung, die die NAND-Ketten bzw. NAND-Strings ausgewählter Speicherzellen mit der Bitleitung in einer Ausführungsform verbindet. Dadurch kann diese Spannung ein Drain-seitiges Auswahlgate einschalten bzw. aktivieren.
  • In einer Ausführungsform beinhalten die Speicherzellen in Schritt 602 eine Teilmenge von Speicherzellen, die auf die Zustände D, E, F und G programmiert werden sollen. In einer Ausführungsform beinhalten die Speicherzellen eine Teilmenge von Speicherzellen die auf die Zustände A, B, C, D, E, F und G programmiert werden sollen. Ein unterschiedlicher Datensatz kann verwendet werden. Es wird darauf hingewiesen, dass nur das Auswählen einer Teilmenge der Speicherzellen den Stromverbrauch signifikant reduzieren kann.
  • In Schritt 604 werden Bedingungen auf einem zweiten Satz von Bitleitungen festgelegt, um eine Programmierung zu verhindern. Dieser zweite Satz von Bitleitungen ist mit den Speicherzellen, die nicht während der intelligenten Verifizierung bzw. Überprüfung programmiert werden sollen, assoziiert bzw. verbunden. In einer Ausführungsform wird eine Programmierungsverhinderungsspannung an den zweiten Satz von Bitleitungen angelegt Diese ist eine Spannung, die die NAND-Ketten bzw. NAND-Strings von nichtausgewählten Speicherzellen von der Bitleitung in einer Ausführungsform trennt. Somit kann diese Spannung ein Drain-seitiges Auswahlgate ausschalten bzw. deaktivieren.
  • In Schritt 606 wird ein Programmierungsimpuls an Steuerungsgates der Speicherzellen angelegt In einer Ausführungsform wird der Programmierungsimpuls an eine Wortleitung angelegt, die mit den Speicherzellen assoziiert ist Es wird darauf hingewiesen, dass in einigen Architekturen die Wortleitung mit dem Steuerungsgate all der Speicherzellen in der Gruppe verbunden ist Der Programmierungsimpuls kann an das Steuerungsgate all der Speicherzellen in der Gruppe angelegt werden, da die Bedingungen der Bitleitung die Programmierung dort verhindern können, wo sie nicht erwünscht ist. Jedoch ist es nicht erforderlich, dass der Programmierungsimpuls an das Steuerungsgate von Speicherzellen angelegt wird, die nicht Teil der intelligenten Verifizierung bzw. Überprüfung sind.
  • In Schritt 608 wird eine VT-Verifizierung bzw. -Überprüfung auf einem intelligenten Verifizierungsreferenzniveau durchgeführt. Dies kann das Anlegen einer Referenzspannung an das Steuerungsgate der Speicherzellen und das Abtasten der Bitleitungen als Reaktion darauf umfassen. Es wird darauf hingewiesen, dass es nicht notwendig ist, dass Bitleitungen, die mit allen Speicherzellen in der Gruppe assoziiert bzw. verbunden sind, abgetastet bzw. erfasst werden. Deshalb ist es nicht notwendig Abtastspannungen an all den Bitleitungen, die Strom und/oder Energie speichern können, aufzubauen. Somit schließt in einer Ausführungsform der Steuerungsschaltkreis alle Speicherzellen in der Gruppe von der Abtastung aus, die sich von denen der Teilmenge unterscheiden, die für die intelligente Verifizierung bzw. Überprüfung ausgewählt wurden. Das Ausschließen von der Abtastung kann beinhalten, dass die Bitleitungen nicht auf ein Niveau, welches das Abtasten erlaubt bzw. ermöglicht, vorgeladen werden. Speicherzellen, die abgetastet werden sollen, können ihre Bitleitungen auf einem Niveau vorgeladen haben, das eine Abtastung erlaubt bzw. ermöglicht.
  • In Schritt 610 wird bestimmt, ob die intelligente Verifizierung bzw. Überprüfung beendet ist Mit Verweis auf 7A befinden sich zu Beginn alle der Speicherzellen in dem gelöschten Zustand 702. Nachdem der erste Programmierungsimpuls angelegt wurde, rückt die Schwellenwertspannung der Speicherzellen, deren Bitleitungen aktiviert wurden, auf. Dies wird durch die intelligente Verifizierungs- bzw. Überprüfungsverteilung 704 in 7B repräsentiert. Die Löschverteilung 702 enthält nun weniger Speicherzellen.
  • In einer Ausführungsform bestimmt der Steuerungsschaltkreis, ob eine ausreichende Anzahl von Speicherzellen die intelligente Verifizierung bzw. Überprüfung bestanden bzw. durchlaufen haben. Schritt 610 kann überprüfen, ob die am schnellsten programmierten Speicherzellen das intelligente Verifizierungsniveau erreicht haben. Daher kann Schritt 610 auch dann passieren bzw. geschehen, wenn viele der langsamer programmierten Speicherzellen das intelligente Verifizierungsniveau noch nicht erreicht haben. Es wird darauf hingewiesen, dass einige der Speicherzellen, deren Bitleitungen aktiviert wurden, von der Überprüfung in Schritt 610 ausgeschlossen werden können. Beispielsweise sind einige Speicherzellen nicht repräsentativ für die typische Programmierungsgeschwindigkeit, sind aber enthalten, um bessere Ergebnisse für die Speicherzellen bereitzustellen, die repräsentativ für die typische Programmierungsgeschwindigkeit sind. In einem Beispiel könnte in einem 2D-NAND der Steuerungsschaltkreis Speicherzellen in Gruppen von vier benachbarten NAND-Ketten bzw. NAND-Strings aktivieren (in Schritt 602). Es können mehrere (oder viele) NAND-Ketten bzw. NAND-Strings zwischen jede der vier Gruppen sein, die nicht aktiviert sind. In diesem Fall können die Speicherzellen auf den zwei inneren NAND-Ketten bzw. NAND-Strings in jeder Gruppe der vier repräsentativ für die typischen Programmierungsbedingungen sein. Dadurch können die Bitleitungen der zwei inneren NAND-Ketten bzw. NAND-Strings in Schritt 610 abgetastet werden. Jedoch können die Speicherzellen auf den zwei äußeren NAND-Ketten bzw. NAND-Strings in jeder Gruppe der vier nicht repräsentativ für die typischen Programmierungsbedingungen sein. Eine Ursache dafür ist, dass diese einen Nachbar haben, der nicht Gegenstand der Programmierung ist Dadurch können die Bitleitungen der zwei äußeren NAND-Ketten bzw. NAND-Strings von der Abtastung in Schritt 610 ausgenommen bzw. ausgeschlossen werden.
  • Der Prozess 600 geht dann zu Schritt 606 über, um einen weiteren Programmierungsimpuls an die Steuerungsgates der Speicherzellen anzulegen, unter der Annahme, dass die intelligente Verifizierung bzw. Überprüfung noch nicht abgeschlossen ist Dieser Programmierungsimpuls kann die gleichen Eigenschaften wie der vorherige haben, oder die Eigenschaften können sich ändern. Beispielsweise kann der Programmierungsimpuls die gleiche Magnitude bzw. Größe wie der vorherige haben, oder die Magnitude bzw. Größe kann erhöht werden. Eine weitere Möglichkeit stellt dar, die Dauer des Programmierungsimpulses zu ändern. Beispielsweise könnte der Programmierungsimpuls länger als die Prozessdauer sein. Eine Kombination aus Magnituden- bzw. Größenänderung und Änderung der Dauer bzw. Laufzeit kann verwendet werden.
  • Die 7B - 7D zeigen die Ergebnisse nachdem jeweils ein zusätzlicher Programmierungsimpuls angelegt wurde. Nachdem das intelligente Verifizierungsniveau (Vsm) erreicht wurde (Schritt 610 = ja), werden Informationen bezüglich der intelligenten Verifizierung bzw. Überprüfung in Schritt 614 aufgezeichnet. Es wird darauf hingewiesen, dass in 7D die intelligente Verifizierung bzw. Überprüfung beendet ist, wenn die am schnellsten programmierten Speicherzellen das intelligente Verifizierungsniveau (Vsm) erreicht haben. In einer Ausführungsform wird die Anzahl von Programmierungsimpulsen, die angelegt wurden um das intelligente Verifizierungsniveau zu erreichen, aufgezeichnet. In einer Ausführungsform werden Information über die Magnitude bzw. Größe des Programmierungsimpulses aufgezeichnet. Beispielsweise könnte die Magnitude bzw. Größe des letzten Programmierungsimpulses in einer Ausführungsform, in welcher sich die Magnitude während des Prozesses ändert, aufgenommen werden. In einer Ausführungsform ermittelt der Steuerungsschaltkreis eine geeignete Magnitude bzw. Größe für einen Startprogrammierungsimpuls, basierend auf den Ergebnissen der intelligenten Verifizierung bzw. Überprüfung. Folglich könnte die aufgezeichnete Information eine Spannungsmagnitude bzw. -größe eines Dummy-Programmierungsimpulses sein. Die Information kann eine Zahl wie eins, zwei, drei ..., sein, die die Anzahl an Programmierungsschleifen identifiziert, die dazu verwendet wurden, um die schnellsten Speicherzellen auf einen Startwert zu programmieren, die Magnitude bzw. Größe einer Programmierungsspannung sein, die dazu verwendet wurde, um die schnellsten Speicherzellen auf einen Startwert zu programmieren, usw. Es wird darauf hingewiesen, dass Prozess 600 eine Ausführungsform ist, die dazu verwendet werden kann, zu bestimmen, wie schnell die Speicherzellen programmiert werden, aber auch andere Techniken können dazu verwendet werden.
  • Die aufgezeichnete Information kann extern zu dem Speicherarray 126 gespeichert werden, beispielsweise in Code/Parametern 113. Oder die Information kann extern zu dem Speicherdie 108 gespeichert werden. Ein Vorteil der Speicherung der Information in den nicht-flüchtigen Speicherzellen des Speicherarrays ist, dass die Information nicht verloren geht, falls in der Speichervorrichtung ein Stromausfall auftritt oder falls die Information überschrieben wird, wenn ein weiterer Block programmiert wird. Im Gegensatz dazu verwendet ein Datenregister typischerweise flüchtigen Speicher, wie z.B. RAM, in dem Daten bei einem Stromausfall verloren gehen. Ein weiterer Vorteil der Speicherung der Information in den nicht-flüchtigen Speicherzellen ist, dass diese günstiger als RAM sind.
  • 8 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 800 zur Programmierung von Speicherzellen unter Verwendung einer LM-Sequenz. Der Prozess 800 wird in einer LM-Sequenz verwendet, die einen Zwischenzustand (IM) in einer Ausführungsform beinhaltet. Der Prozess 800 ist eine Ausführungsform der Schritte 506 - 512 des Prozesses 500. Es wird darauf hingewiesen, dass somit eine intelligente Verifizierung bzw. Überprüfung einer Teilmenge der Speicherzellen vor dem Prozess 800 durchgeführt werden kann.
  • In Schritt 802 wird eine Magnitude bzw. Größe für einen oder mehrere Dummy-Programmierungsimpulse bestimmt, basierend auf den Ergebnissen der intelligenten Verifizierung bzw. Überprüfung. In einer Ausführungsform ist eine Magnitude dazu geeignet, eine Schwellenwertspannung aus dem gelöschten Zustand in die Nähe des Zustandes D anzuheben, ohne über Zustand D hinaus zu überprogrammieren. Dies kann konservativ sein, um Überprogrammierung zu verhindern bzw. zu vermeiden. Gleichermaßen können Magnituden bzw. Größen bestimmt werden, die geeignet sind, Schwellenwertspannungen aus dem gelöschten Zustand in die Nähe der Zustände E, F oder G anzuheben, wobei wiederum die jeweiligen Zustände bestimmt werden können ohne zu überprogrammieren. Anstatt direkt aus dem gelöschten Zustand in den Zustand E zu gehen, könnte die Programmierung aus dem gelöschten Zustand in die Nähe des Zustandes D gehen, und dann in den Zustand E. Es sind viele weitere Beispiele möglich. Weitere Details werden unten diskutiert.
  • In Schritt 804, von den Speicherzellen, die auf ein Niveau in der Nähe des intelligenten Verifizierungsniveaus programmiert werden sollen, werden diese, die nicht in der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, für die Programmierung freigegeben. In einer Ausführungsform liegt der Zustand D in der Nähe des intelligenten Verifizierungsniveaus. Daher können von den Speicherzellen, die in den Zustand D programmiert werden sollen, diejenigen, die nicht an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, in Schritt 804 freigegeben werden. Jedoch anstelle dessen kann das Schwellenwertniveau eines anderen Zustands als in der Nähe des intelligenten Verifizierungsniveaus liegend erachtet bzw. definiert werden. Ein Datenzustand kann als in der Nähe des intelligenten Verifizierungsniveaus befindlich seiend, definiert werden, basierend auf den Verifizierungsniveaus. Beispielsweise wenn das intelligente Verifizierungsniveau innerhalb eines Zustandes unterhalb des angegebenen Zustandes liegt, wird dieser als in der Nähe liegend betrachtet. Zum Beispiel wenn das intelligente Verifizierungsniveau zwischen VvC und VvD liegt, dann wird es als in der Nähe des Zustandes D liegend betrachtet. Jedoch kann das intelligente Verifizierungsniveau geringfügig oberhalb des Zustandes sein und trotzdem als in der Nähe liegend betrachtet werden. Es wird darauf hingewiesen, dass auch weitere Speicherzellen in Schritt 804 freigegeben werden können. Beispielsweise können Speicherzellen, die auf einen Datenzustand oberhalb des Zustandes D programmiert werden sollen, zur Programmierung freigegeben werden. Generell können Speicherzellen, die in einen Datenzustand oberhalb des oben genannten Zustandes in der Nähe des intelligenten Verifizierungsniveaus programmiert werden sollen, freigegeben werden.
  • In Schritt 806, von den Speicherzellen, die auf ein Niveau in der Nähe des intelligenten Verifizierungsniveaus programmiert werden sollen, werden diese, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, von der Programmierung ausgeschlossen. Es wird darauf hingewiesen, dass auch andere Speicherzellen von der Programmierung in Schritt 806 ausgeschlossen werden können.
  • In Schritt 808 wird bzw. werden ein oder mehrere Dummy-Programmierungsimpuls(e) an die Steuerungsgates der Speicherzellen angelegt. Es sei darauf hingewiesen, dass es keine Programmierungsverifizierung gibt, um die Ergebnisse der Dummy-Programmierungsimpulse zu überprüfen. Es wird zudem darauf hingewiesen, dass wenn mehr als ein Dummy-Programmierungsimpuls angelegt wird, sich die Speicherzellen, die für die Programmierung freigegeben wurden und diese die von der Programmierung ausgeschlossen wurden, ändern bzw. wechseln können. Es wird auch darauf hingewiesen, dass wenn mehr als ein Dummy-Programmierungsimpuls angelegt wird, die Magnitude bzw. Größe des Dummy-Programmierungsimpulses sich von den anderen unterscheiden kann, abhängig davon, wie viel Bewegung von VT gewünscht wird. Dies wird mit Verweis auf die 10 und 11 weiter erklärt.
  • 9 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 900 zur Programmierung von Speicherzellen unter Verwendung einer vollständigen Sequenz. Der Prozess 900 ist eine Ausführungsform der Schritte 506 - 512 von Prozess 500. Es wird darauf hingewiesen, dass dadurch eine intelligente Verifizierung bzw. Überprüfung einer Teilmenge der Speicherzellen vor Prozess 900 durchgeführt werden kann.
  • In Schritt 902 wird eine Magnitude bzw. Größe eines oder mehrerer Dummy-Programmierungsimpulse bestimmt, basierend auf den Ergebnissen der intelligenten Verifizierung bzw. Überprüfung. In einer Ausführungsform wird ein geeigneter Dummy-Programmierungsimpuls für unterschiedliche Zustände bestimmt. Beispielsweise wenn die Speicherzellen über einen Zustand G auf einen Zustand A programmiert werden sollen, kann ein geeigneter Dummy-Programmierungsimpuls zur Programmierung des gelöschten Zustands auf den Zustand A, bzw. des gelöschten Zustands direkt auf den Zustand B, usw., bestimmt werden. Eine weitere Möglichkeit ist, einen Dummy-Impuls, dessen Ziel die Programmierung des gelöschten Zustands auf den Zustand A ist, bereitzustellen, und dann einen Dummy aus der vorausgegangenen resultierenden Verteilung zur Programmierung auf einen Zustand B, bereitzustellen usw. Weitere Details werden unten diskutiert.
  • In Schritt 904 werden Speicherzellen, die nicht in der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben und die auf einen ausgewählten Satz der Zustände programmiert werden sollen, zur Programmierung freigegeben. Beispielsweise können Speicherzellen, die durch den Zustand G in den Zustand A programmiert werden sollen, freigegeben werden. Ein kleinerer Satz der Datenzustände könnte ausgewählt werden. Es kann wünschenswert sein, diese auszuwählen, die auf die höheren Schwellenwertspannungszustände programmiert werden sollen, da dabei eine größere Stromeinsparung in dem gesamten Programmierungsprozess kommen kann, um die höheren Schwellenwertspannungszustände zu Dummy-programmieren. Der Begriff „Dummy-Programmieren“ bezieht sich auf das Anlegen einer oder mehrerer Dummy-Programmierungsimpulse an eine Speicherzelle, die zur Programmierung freigegeben wurde.
  • In Schritt 906 werden Speicherzellen, die in Schritt 904 nicht ausgewählt wurden, von der Programmierung ausgeschlossen. Diese Speicherzellen können sowohl diejenigen, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, als auch diejenigen, die nicht an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben aber nicht in Schritt 904 ausgewählt wurden, enthalten.
  • In Schritt 908 wird bzw. werden ein oder mehrere Dummy-Programmierungsimpulse an die Steuerungsgates der Speicherzellen angelegt Es wird erneut darauf hingewiesen, dass keine Programmierungsverifizierung durchgeführt wird, um die Ergebnisse der Dummy-Programmierungsimpulse zu überprüfen. Es wird zudem darauf hingewiesen, dass wenn mehr als ein Dummy-Programmierungsimpuls angelegt wird, sich die Speicherzellen, die für die Programmierung freigegeben wurden und diese die von der Programmierung ausgeschlossen wurden, zwischen den Dummy-Impulsen ändern bzw. wechseln können. Dies wird weiter mit Verweis auf die 13 und 14 erläutert.
  • 10A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1000 des Anlegens von Dummy-Impulsen während einer IM-Programmierungssequenz. Der Prozess 1000 ist eine Ausführungsform der Schritte 804 - 808 aus Prozess 800. Somit kann die intelligente Verifizierung bzw. Überprüfung vor dem Prozess 1000 durchgeführt werden. 10B zeigt VT-Verteilungen vor einer Ausführungsform des Prozesses 1000. Auch sind beispielhaft die Verifizierungsreferenzniveaus VvA, VvB, VvC, VvD, VvE, VvF und VvG gezeigt. Dort sind eine Löschverteilung 702 und eine intelligente Verifizierungs- bzw. Überprüfungsverteilung 1050 gezeigt. In dieser Ausführungsform wurde die intelligente Verifizierungsverteilung 1050 so programmiert, dass die am schnellsten programmierbaren Speicherzellen auf einem oder unterhalb des Verifizierungsniveaus des Zustandes D (VvD) liegen. Die intelligente Verifizierungs- bzw. Überprüfungsverteilung 1050 könnte auf ein höheres oder niedrigeres VT programmiert werden. Ein Grund, warum das intelligente Verifizierungsniveau niedriger gehalten wird, ist, dass sich die VT der Speicherzellen nach oben verschieben kann, wenn eine benachbarte Speicherzelle programmiert wird. Durch die Festlegung des intelligenten Verifizierungsniveaus unterhalb von VvD, kann eine Überprogrammierung der Speicherzellen im Zustand D verhindert werden. Jedoch wird darauf hingewiesen, dass diese Effekte bzw. Auswirkungen von der Architektur abhängig sind, und es muss nicht immer notwendig sein, das intelligente Verifizierungsniveau unterhalb der VvD zu haben. In einer anderen Ausführungsform wird die intelligente Verifizierungsverteilung 1050 auf ein Verifizierungsniveau programmiert, das mit einem Zwischendatenzustand (z.B. VLM) assoziiert ist In einer anderen Ausführungsform wird die intelligente Verifizierungsverteilung 1050 auf ein Niveau programmiert, das etwas unterhalb des VLM, aus den eben diskutierten Gründen, liegt. Andere Verifizierungsniveaus können für die intelligente Verifizierungsverteilung 1050 verwendet werden. Aus Gründen der Übersichtlichkeit wird der Prozess 1000 anhand der beispielhaften intelligenten Verifizierungsverteilung 1050, die in 10B dargestellt ist, erläutert.
  • Es sei auch darauf hingewiesen, dass die Magnituden bzw. Größen der Dummy-Programmierungsimpulse gegebenenfalls schon in Schritt 802 aus Prozess 800 bestimmt wurden. Der Prozess 1000 ist für eine Ausführungsform, die acht Datenzustände aufweist Der Prozess 1000 kann modifiziert werden, um weniger oder mehr Datenzustände aufnehmen zu können. In Prozess 1000 wird angenommen, dass alle der Speicherzellen mit der gleichen Wortleitung assoziiert bzw. verbunden sind.
  • In Schritt 1002 bleiben Speicherzellen in dem gelöschten Zustand, und es werden diejenigen, die in die Zustände A, B und C programmiert werden sollen, ausgeschlossen. In Schritt 1004 werden von den Speicherzellen, die in den Zustand D programmiert werden sollen, diejenigen ausgeschlossen, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben. Auch werden die Speicherzellen im Zustand D, die nicht an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, zur Programmierung freigegeben. Es wird darauf hingewiesen, dass diese Speicherzellen durch die intelligente Verifizierungsverteilung 1050 in 10B repräsentiert werden. Die Schritte 1002-1004 werden aus Gründen der Übersichtlichkeit in dieser Art ausgedrückt. Eine andere Art dies zu beschreiben ist, dass alle Speicherzellen, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, ausgeschlossen werden und dass alle derjenigen, die auf einen Zustand A, B oder C programmiert werden sollen, ebenfalls ausgeschlossen werden.
  • In Schritt 1006 werden die Speicherzellen, die auf den Zustand E, F und G programmiert werden sollen, zur Programmierung freigegeben. Die Freigabe zur Programmierung kann durch die Festlegung von Bedingungen der assoziierten bzw. verbundenen Bitleitungen erfolgen, die die Programmierung freigeben.
  • In Schritt 1008 wird ein erster Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 10C zeigt ein Beispiel einer VT-Verteilung nach Schritt 1008. Die Verteilung 1052 betrifft die Speicherzellen, die auf den Zustand D, E, F oder G programmiert werden sollen und die nicht an der intelligenten Verifizierung bzw. Überprüfung involviert waren. Die Magnitude bzw. Größe des Dummy-Impulses wurde ausgewählt, um zu versuchen, die Schwellenwertspannungen in der Nähe des Verifizierungsniveaus VvD für den Zustand D in diesem Beispiel zu erhalten. Die Verteilung 1052 kann aufgrund der unterschiedlichen Programmierungsgeschwindigkeiten der individuellen Speicherzellen sehr breit sein. Das bedeutet, einige Speicherzellen können ihre VT signifikant bzw. deutlich mehr als die anderen verschieben. Die Magnitude bzw. Größe des Dummy-Impulses wurde ermittelt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel könnten einige der Speicherzellen eine VT oberhalb von VvD aufweisen, aber dies ist nicht erforderlich bzw. notwendig. Somit könnte die Verteilung 1052 niedriger sein. Andererseits könnte die Verteilung höher sein. Wenn die VT von Speicherzellen über VvE ansteigt, dann können sie überprogrammiert sein (für die Zellen im Zustand D). Somit könnte es vorteilhaft sein, zu verhindern, dass ein signifikanter Teil der Verteilung 1052 über VvE ansteigt Die kann erreicht werden, indem man mit dem Dummy-Programmierungsimpuls ziemlich konservativ vorgeht Wie auch oben erwähnt, kann bei einigen Speicherarchitekturen die VT einer Speicherzelle durch die kapazitive Kopplung mit einem Nachbarn, der später programmiert wird, anscheinend zunehmen. Dieser Effekt kann bei der Festlegung einer geeigneten Magnitude bzw. Größe des Dummy-Programmierungsimpulses berücksichtigt werden. Die Verteilung 1050 repräsentiert nun nur die Zellen im Zustand D, die in der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben. Die Verteilung 1051 repräsentiert die Zellen im Zustand E, F und G, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben.
  • In Schritt 1010 werden Speicherzellen im Zustand D von der weiteren Programmierung ausgeschlossen. In Schritt 1012 wird ein zweiter Dummy-Programmierungsimpuls an die Wortleitung angelegt, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist. 10D zeigt ein Beispiel von VT-Verteilungen nach Schritt 1012. Die Verteilung 1054 betrifft die Speicherzellen, die auf den Zustand E, F oder G programmiert werden sollen. Dies umfasst diejenigen, die bislang in der Verteilung 1051 und 1052 waren. Folglich werden einige der Zellen im Zustand E, F oder G von der Verteilung 1051 auf die Verteilung 1054 programmiert. Andere werden von der Verteilung 1052 zu 1054 programmiert. Die Magnitude bzw. Größe des Dummy-Impulses kann so ausgewählt werden, dass versucht wird, mit den Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvE des Zustandes E zu kommen. Die Magnitude bzw. Größe wird bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert werden. In diesem Beispiel weisen einige der Speicherzellen eine VT oberhalb von VvE auf, aber dies ist nicht notwendig. Somit könnte die Verteilung 1054 niedriger oder höher liegen.
  • Die Verteilung 1053 repräsentiert Zellen im Zustand D von Verteilungen 1050 und 1052. Das bedeutet, die Verteilung 1053 repräsentiert alle Zellen im Zustand D. Es wird darauf hingewiesen, dass die Verteilung 1053 aus 10C im Vergleich zu der Verteilung 1052 in 10D geschrumpft ist.
  • In Schritt 1014 werden Speicherzellen im Zustand E von der weiteren Programmierung ausgeschlossen. In Schritt 1016 wird ein dritter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 10E zeigt ein Beispiel einer VT-Verteilung nach Schritt 1016. Die Verteilung 1056 betrifft die Speicherzellen, die auf die Zustände F oder G programmiert werden sollen. Die Magnitude bzw. Größe des Dummy-Impulses wurde so ausgewählt, um mit den Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvF des Zustands F zu kommen. Die Magnitude bzw. Größe wurde bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel weisen einige der Speicherzellen eine VT über bzw. oberhalb von VvF auf, aber dies ist nicht notwendig. Folglich könnte die Verteilung 1056 niedriger oder höher sein. Es wird darauf hingewiesen, dass die Verteilung 1054 aus 10D im Vergleich zu der Verteilung 1054 aus 10E geschrumpft ist, da die Verteilung 1054 jetzt nur noch Speicherzellen im Zustand E beinhaltet.
  • In Schritt 1018 werden Speicherzellen im Zustand F von der weiteren Programmierung ausgeschlossen. In Schritt 1020 wird ein vierter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 10F zeigt ein Beispiel von VT-Verteilungen nach Schritt 1020. Die Verteilung 1058 weist die Speicherzellen auf, die auf den Zustand G programmiert werden sollen. Die Magnitude bzw. Größe des Dummy-Impulses wurde so ausgewählt, um mit den Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvG des Zustands G zu kommen. Die Magnitude bzw. Größe des Dummy-Impulses wurde bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel weisen einige der Speicherzellen eine VT oberhalb von VvG auf, aber dies ist nicht notwendig. Somit könnte die Verteilung 1058 niedriger oder höher liegen. Es wird darauf hingewiesen, dass die Verteilung 1056 aus 10E im Vergleich zu der Verteilung 1056 aus 10F geschrumpft ist.
  • Das Ergebnis aus 10F ist, dass die meisten der VT der Speicherzellen, die auf den Zustand E, F und G programmiert wurden, oberhalb von VvD angestiegen sind. Dies kann Strom einsparen, wenn in einen Zwischenzustand programmiert wird, wie unten erklärt wird. Jedoch wird vor dieser Erklärung eine weitere Ausführungsform diskutiert, die in VT-Verteilungen resultieren kann, die ähnlich zu denen aus 10F ist.
  • 11A ist ein Flussdiagramm einer weiteren Ausführungsform eines Prozesses 1100 der Anlegung von Dummy-Impulsen während einer IM-Programmierungssequenz. Prozess 1100 ist eine Ausführungsform der Schritte 804 - 808 aus Prozess 800. Somit kann die intelligente Verifizierung bzw. Überprüfung vor Prozess 1100 durchgeführt werden. Somit sind die VT-Verteilungen aus 10B auch auf die Bedingungen vor einer Ausführungsform des Prozesses 1100 anwendbar. Auch wurden die Magnituden bzw. Größen des Dummy-Programmierungsimpulses für Prozess 1100 schon in Schritt 802 aus Prozess 800 bestimmt. Der Prozess 1100 ist für eine Ausführungsform, die acht Datenzustände aufweist. Der Prozess 1100 kann modifiziert werden, um weniger oder mehrere Datenzustände aufzunehmen. In Prozess 1100 wird angenommen, dass alle Speicherzellen mit der gleichen Wortleitung assoziiert bzw. verbunden sind.
  • In Schritt 1102 werden Speicherzellen, die in dem gelöschten Zustand verbleiben sollen, und diejenigen, die auf die Zustände A, B, C, E, F und G programmiert werden sollen, ausgeschlossen. In Schritt 1104, der Programmierung der Speicherzellen auf den Zustand D, werden diejenigen, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, ausgeschlossen. Die Schritte 1002 - 1004 werden aus Gründen der leichteren Erklärbarkeit in dieser Art ausgedrückt. Eine andere Art dies auszudrücken ist, dass alle Speicherzellen, die an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, ausgeschlossen werden, und dass diejenigen, die auf die Zustände A, B, C, E, F und G programmiert werden sollen, genau wie diejenigen, die in dem gelöschten Zustand verbleiben sollen, auch ausgeschlossen werden.
  • In Schritt 1106, der Programmierung der Speicherzellen in den Zustand D, werden diejenigen, die nicht an der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, zur Programmierung freigegeben. Die Freigabe zur Programmierung kann durch die Festlegung von Bedingungen für die assoziierten bzw. verbundenen Bitleitungen erreicht werden, die die Programmierung ermöglichen.
  • In Schritt 1108 wird ein erster Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert ist, angelegt. 11B zeigt ein Beispiel von VT-Verteilungen nach Schritt 1108. Die Verteilung 1152 betrifft die Speicherzellen, die auf den Zustand D programmiert werden sollen und die nicht in der intelligenten Verifizierung bzw. Überprüfung involviert waren. Die Magnitude bzw. Größe des Dummy-Impulses wurde ausgewählt, um mit den Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvD des Zustandes D zu kommen. Die Magnitude bzw. Größe des Dummy-Impulses wird in einer Ausführungsform bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung programmiert wurden. Folglich könnte die Verteilung 1152 niedriger oder höher liegen. Die Verteilung 1150 bezieht sich auf die Speicherzellen in den Zuständen D, E, F und G, die in der intelligenten Verifizierung bzw. Überprüfung einbezogen wurden.
  • In Schritt 1110, werden alle Speicherzellen im Zustand D ausgeschlossen. Außerdem werden die Speicherzellen im Zustand E zur Programmierung freigegeben. Diejenigen, die in dem gelöschten Zustand verbleiben, und diejenigen, die auf die Zustände A, B, C, F und G programmiert werden sollen, verbleiben in dem ausgeschlossenen Zustand.
  • In Schritt 1112 wird ein zweiter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 11C zeigt ein Beispiel von VT-Verteilungen nach Schritt 1112. Die Verteilung 1154 betrifft die Speicherzellen, die in den Zustand E programmiert werden sollen. Einige dieser Speicherzellen stammen aus der intelligenten Verifizierungsverteilung 1150 (aus 11B), andere aus der Löschverteilung 702. Die Verteilung 1151 enthält Speicherzellen in den Zuständen D, F und G, die in der intelligenten Verifizierung bzw. Überprüfung waren. Die Magnitude bzw. Größe des Dummy-Impulses wurde ausgewählt, um die Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvE des Zustandes E zu bekommen. Die Magnitude bzw. Größe wurde ermittelt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel weisen einige der Speicherzellen eine VT oberhalb von VvE auf, aber dies ist nicht notwendig. Die Verteilung 1154 könnte somit niedriger oder höher sein.
  • In Schritt 1114 werden alle Speicherzellen im Zustand E ausgeschlossen. Außerdem werden die Speicherzellen im Zustand F zur Programmierung freigegeben. Diejenigen, die in dem gelöschten Zustand verbleiben sollen, und diejenigen, die auf die Zustände A, B, C, D und G programmiert werden sollen, verbleiben im ausgeschlossenen Zustand.
  • In Schritt 1116 wird ein dritter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 11D zeigt ein Beispiel von VT-Verteilungen nach Schritt 1112. Die Verteilung 1156 betrifft die Speicherzellen, die in den Zustand F programmiert werden sollen. Einige dieser Speicherzellen stammen aus der Löschverteilung 702, andere stammen aus der Verteilung 1151. Die Verteilung 1155 enthält die Zellen in Zustand bzw. dem Zuständen D und G, die an der intelligenten Verifizierung bzw. Überprüfung (bisher in Verteilung 1151) teilgenommen haben. Die Magnitude bzw. Größe des Dummy-Impulses wurde ausgewählt, um die Schwellenwertspannungen in die Nähe des Verifizierungsniveaus VvF des Zustands F zu bekommen. Die Magnitude bzw. Größe wurde bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel weisen einige der Speicherzellen eine VT oberhalb von VvF auf, aber dies ist nicht notwendig. Die Verteilung 1156 könnte somit niedriger oder höher sein.
  • In Schritt 1118 werden alle Speicherzellen in Zustand F ausgeschlossen. Außerdem werden Speicherzellen im Zustand G zur Programmierung freigegeben. Diejenigen, die im gelöschten Zustand verbleiben, und diejenigen, die auf die Zustände A, B, C, D und E programmiert werden sollen, verbleiben im ausgeschlossenen Zustand.
  • In Schritt 1120 wird ein vierter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt. 11E zeigt ein Beispiel von VT-Verteilungen nach Schritt 1120. Die Verteilung 1158 betrifft die Speicherzellen, die in den Zustand G programmiert werden sollen. Einige der Zellen stammen aus der Löschverteilung 702, andere stammen aus der Verteilung 1155. Figur 1155 ist in 11E nicht gezeigt. Die Verteilung 1159 repräsentiert alle Zellen in Zustand D (enthält diejenigen, die bisher in den Verteilungen 1155 und 1152 waren). Die Magnitude bzw. Größe des Dummy-Impulses wurde gewählt, um die Schwellenwertspannung in die Nähe des Verifizierungsniveaus VvG des Zustands G zu bekommen. Die Magnitude bzw. Größe wurde bestimmt, basierend darauf, wie schnell die Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung in einer Ausführungsform programmiert wurden. In diesem Beispiel weisen einige der Speicherzellen eine VT oberhalb von VvG auf, aber dies ist nicht notwendig. Die Verteilung 1158 könnte somit niedriger oder höher sein.
  • Es wird darauf hingewiesen, dass Ergebnisse aus 11E nach Prozess 1100 den Ergebnissen aus 10F nach Prozess 1000 gleichen bzw. ähneln können. Andere Variationen sind möglich. Beispielsweise könnte nach den Ergebnissen aus 10C, in der die Zellen in den Zuständen D, E, F und G in einer Verteilung 1052 vorliegen, ein Dummy-Impuls verwendet werden, um die Zellen im Zustand E in die Nähe der VvE, die Zellen im Zustand F in die Nähe der VvF (unter Verwendung eines Dummy-Impulses) und die Zellen in Zustand G in die Nähe der VvG (unter Verwendung eines Dummy-Impulses) zu bekommen bzw. zu schieben.
  • 12A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1200 der Programmierung von Speicherzellen auf einen LM-Zustand. Der Prozess 1200 kann verwendet werden, nachdem Prozess 1000 oder 1100 durchgeführt wurde. In Schritt 1202 werden Bedingungen auf den Bitleitungen festgelegt, um die Programmierung der Speicherzellen, die in die Zustände D, E, F und G programmiert werden sollen, zu ermöglichen. In Schritt 1204 werden Bedingungen auf den Bitleitungen festgelegt, um die Programmierung der Speicherzellen, die in dem gelöschten Zustand verbleiben sollen, sowie diejenigen, die in die Zustände A, B und C programmiert werden sollen, zu verhindern.
  • In Schritt 1206 wird eine Programmierungsspannung an die Wortleitung angelegt. In Schritt 1208 wird eine Programmierungsverifizierungsoperation durchgeführt. In Schritt 1210 wird bestimmt, ob die LM-Programmierung beendet ist. Dieser Schritt kann überprüfen, ob eine ausreichende Anzahl der Speicherzellen eine VT aufweisen, die größer als der LM-Zustand ist Wenn dies nicht der Fall ist, dann wird der Prozess bei Schritt 1212 fortgesetzt. In Schritt 1212 werden Speicherzellen, die die LM-Verifizierung bzw. -Überprüfung bestanden haben, ausgeschlossen. Prozess 1200 wird dann bei Schritt 1206 fortgesetzt. Nachdem Schritt 1210 anzeigt, dass die Programmierung des LM-Zustandes abgeschlossen ist, wird der Prozess beendet.
  • 12B zeigt Ergebnisse nach Prozess 1200. Die LM-Verteilung 1226 ist unmittelbar oberhalb des LM-Verifizierungsniveaus (VLM) gezeigt. Die Verteilung 1254 bezieht sich auf die Speicherzellen, die in der Verteilung 1054 aus 10F waren. Es wird darauf hingewiesen, dass einige der Speicherzellen, die in der Verteilung 1054 aus 10F waren, vielleicht ein wenig programmiert wurden, und nun als Teil der LM-Verteilung 1226 gezeigt werden. Ähnliche Gründe können für die Verteilungen 1056 und 1058 aus 10F gelten. Jedoch ist es möglich, dass eine Verteilung aus 10F so hoch liegt bzw. lag, dass keine Speicherzelle während des Prozesses 1200 programmiert wurde. Die Verteilung 1052 aus 10F hat keine entsprechende Verteilung aus 12B. Zum Zwecke der Diskussion wird angenommen, dass alle Speicherzellen der Verteilung 1052 nun in der LM-Verteilung 1226 sind.
  • Es wird auch darauf hingewiesen, dass einige der Speicherzellen, die in der intelligenten Verifizierungsverteilung 1050 waren, nun in der LM-Verteilung 1226 sind. Das bedeutet, dass Speicherzellen, die in die Zustände D, E, F und G programmiert werden sollen und die in der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, von der Verteilung 1050 in die LM-Verteilung 1226 programmiert wurden.
  • Die obenstehende Diskussion vergleicht die VT-Verteilungen aus 10F mit denjenigen der 12B. Ähnliche Begründungen betreffen die VT-Verteilungen 1152, 1154, 1156 und 1158 aus 11E.
  • Es wird darauf hingewiesen, dass eine beachtliche Menge Strom in Prozess 1200 aufgrund der folgenden Gründe eingespart wird. Viele der Speicherzellen in den Verteilungen 1054, 1056 und 1058 aus 10F können frühzeitig von dem Prozess ausgeschlossen werden. Dadurch wird die gesamte BL-Kapazität bzw. Kapazitanz, die während des Programmierungsprozesses vorgeladen werden muss, reduziert. Dies kann eine beachtliche Menge Strom einsparen, wenn die Programmierungsbedingungen festgelegt werden. Auch während der Programmverifizierung bzw. -überprüfung in Prozess 1200, werden sie keinen Strom leiten, da ihr VT oberhalb des LM-Verifizierungsniveaus liegt. Dadurch wird zusätzlicher Strom während der Programmverifizierung bzw. -Überprüfung eingespart.
  • Nach dem Prozess 1200 kann die LM-Programmierungssequenz durch Programmierung sämtlicher Speicherzellen in ihre Endzustände beendet werden. Dies kann die Programmierung der Speicherzellen aus der LM-Verteilung 1226 auf einen der Zustände D, E, F oder G; die Programmierung der Speicherzellen aus der Verteilung 1254 auf den Zustand E; die Programmierung der Speicherzellen aus der Verteilung 1256 auf den Zustand F; und die Programmierung der Speicherzellen aus der Verteilung 1258 auf den Zustand G enthalten. Außerdem werden einige der Speicherzellen in dem gelöschten Zustand 702 auf die Zustände A, B oder C programmiert. Die vorstehende Programmierung kann in einer einzigen oder in mehreren Phasen geschehen.
  • 13A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1300 der Programmierung unter Verwendung einer vollständigen Sequenz. Der Prozess 1300 ist eine Ausführungsform der Schritte 904 - 908 aus Prozess 900. Somit kann die intelligente Verifizierung vor dem Prozess 1300 durchgeführt werden. Es wird darauf hingewiesen, dass sich das intelligente Verifizierungsniveau von denen unterscheiden kann, die in den Prozessen 1000 und 1100 verwendet werden. Ein mögliches Verifizierungsniveau des Prozesses 1300 ist bei dem Verifizierungsniveau (VvA) des Zustandes A. Jedoch kann, wie oben beschrieben, das intelligente Verifizierungsniveau etwas unterhalb des Verifizierungsniveaus (VvA) des Zustandes A liegen, um einer eventuell auftretenden VT-Verschiebung der Speicherzellen aufgrund einer nachfolgenden Programmierung einer benachbarten Speicherzelle Rechnung zu tragen. Wie erwähnt kann dieser Effekt bzw. diese Auswirkung von der Speicherarchitektur abhängen.
  • Auch können die Magnituden bzw. Größen für den Dummy-Programmierungsimpuls des Prozesses 1300 schon in Schritt 902 des Prozesses 900 bestimmt worden sein. Der Prozess 1300 ist für eine Ausführungsform mit acht Datenzuständen. Der Prozess 1300 kann modifiziert werden, um weniger oder mehr Datenzustände aufzunehmen. In Prozess 1300 wird angenommen, dass alle der Speicherzellen mit der gleichen Wortleitung assoziiert bzw. verbunden sind.
  • In Schritt 1302 werden die Speicherzellen, die in dem gelöschten Zustand verbleiben sollen, ausgeschlossen. Speicherzellen im Zustand A, die die intelligente Verifizierung bzw. Überprüfung durchlaufen haben, können auch ausgeschlossen werden. In Schritt 1304 werden Speicherzellen, die auf die Zustände B bis G programmiert werden sollen, zur Programmierung freigegeben. Auch werden Speicherzellen im Zustand A, die an der intelligenten Verifizierung bzw. Überprüfung nicht teilgenommen haben, zur Programmierung freigegeben. In Schritt 1306 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, ermittelt werden. 13B zeigt die Ergebnisse nach einer Ausführungsform des Schritts 1306. 13B zeigt eine Löschverteilung 702 und eine Verteilung 1352. Die Verteilung 1352 beinhaltet diejenigen Speicherzellen, die aus dem Löschzustand 702 programmiert werden. Aus Gründen der Übersichtlichkeit wird eine intelligente Verifizierungsverteilung in 13B nicht gezeigt.
  • In Schritt 1308 werden Speicherzellen, die auf den Zustand A programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die in dem gelöschten Zustand verbleiben sollen, verbleiben in dem ausgeschlossenen Zustand. Die Speicherzellen, die in die Zustände B bis G programmiert werden sollen, verbleiben in dem zur Programmierung freigegebenen Zustand. In Schritt 1310 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13C zeigt Ergebnisse nach einer Ausführungsform von Schritt 1310. 13C zeigt die Verteilung 1354, die die Speicherzellen in den Zuständen B bis G repräsentiert, die aus der Verteilung 1352 programmiert wurden. Die Verteilung 1352 enthält nun nur noch die Speicherzellen in Zustand A.
  • In Schritt 1312 werden Speicherzellen, die auf den Zustand B programmiert werden sollen, ausgeschlossen. Andere Speicherzellen verbleiben in ihrem bisherigen Zustand. In Schritt 1314 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13D zeigt Ergebnisse nach einer Ausführungsform von Schritt 1314. 13D zeigt die Verteilung 1356, die die Speicherzellen in den Zuständen C bis G repräsentiert, die aus der Verteilung 1354 programmiert wurden. Die Verteilung 1354 enthält nun nur noch die Speicherzellen in Zustand B.
  • In Schritt 1316 werden Speicherzellen, die auf den Zustand C programmiert werden sollen, ausgeschlossen. Andere Speicherzellen verbleiben in ihren bisherigen Zuständen. In Schritt 1318 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13E zeigt Ergebnisse nach einer Ausführungsform von Schritt 1318. 13E zeigt die Verteilung 1358, die die Speicherzellen in den Zuständen D bis G repräsentiert, die aus der Verteilung 1356 programmiert wurden. Die Verteilung 1356 enthält nun nur noch die Speicherzellen in Zustand C.
  • In Schritt 1320 werden Speicherzellen, die auf den Zustand D programmiert werden sollen, ausgeschlossen. Andere Speicherzellen verbleiben in ihren bisherigen Zuständen. In Schritt 1322 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13F zeigt Ergebnisse nach einer Ausführungsform von Schritt 1322. 13F zeigt die Verteilung 1360, die die Speicherzellen in den Zuständen E bis G repräsentiert, die aus der Verteilung 1358 programmiert wurden. Die Verteilung 1358 enthält nun nur noch die Speicherzellen in Zustand D.
  • In Schritt 1324 werden Speicherzellen, die auf den Zustand E programmiert werden sollen, ausgeschlossen. Andere Speicherzellen verbleiben in ihren bisherigen Zuständen. In Schritt 1326 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13G zeigt Ergebnisse nach einer Ausführungsform von Schritt 1318. 13G zeigt die Verteilung 1362, die die Speicherzellen in den Zuständen F bis G repräsentiert, die aus der Verteilung 1360 programmiert wurden. Die Verteilung 1360 enthält nun nur noch die Speicherzellen in Zustand E.
  • In Schritt 1328 werden Speicherzellen, die auf den Zustand F programmiert werden sollen, ausgeschlossen. Andere Speicherzellen verbleiben in ihren bisherigen Zuständen. In Schritt 1330 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 13H zeigt Ergebnisse nach einer Ausführungsform von Schritt 1330. 13H zeigt die Verteilung 1364, die die Speicherzellen in den Zuständen G repräsentiert, die aus der Verteilung 1362 programmiert wurden. Die Verteilung 1360 enthält nun nur noch die Speicherzellen in Zustand F.
  • 14A ist ein Flussdiagram einer Ausführungsform eines Prozesses 1400 der Programmierung unter Verwendung einer vollständigen Sequenz. In Prozess 1400 befördert der Dummy-Programmierungsimpuls die VT direkt aus dem gelöschten Zustand in die Nähe ihres angestrebten bzw. beabsichtigten Programmierungszustandes. Der Prozess 1400 ist eine Ausführungsform der Schritte 904 - 908 aus Prozess 900. Somit kann die intelligente Verifizierung bzw. Überprüfung vor dem Prozess 1400 durchgeführt werden. In einer Ausführungsform liegt das intelligente Verifizierungsniveau bei dem AvV-Niveau, oder etwas unterhalb des AvV-Niveaus. Die Magnituden bzw. Größen des Dummy-Programmierungsimpulses des Prozesses 1400 können schon in Schritt 902 des Prozesses 900 bestimmt worden sein. Der Prozess 1400 ist für eine Ausführungsform mit acht Datenzuständen. Der Prozess 1400 kann modifiziert werden, um weniger oder mehr Datenzustände aufzunehmen. In Prozess 1400 wird angenommen, dass alle der Speicherzellen mit der gleichen Wortleitung assoziiert bzw. verbunden sind.
  • In Schritt 1402 werden die Speicherzellen, die in dem gelöschten Zustand und in den Zuständen B bis G verbleiben sollen, ausgeschlossen. Außerdem können die Speicherzellen im Zustand A, die in der intelligenten Verifizierung bzw. Überprüfung teilgenommen haben, ausgeschlossen werden. In Schritt 1404 werden die Speicherzellen, die in den Zustand A programmiert werden sollen, die an der intelligenten Verifizierung bzw. Überprüfung nicht teilgenommen haben, zur Programmierung freigegeben. In Schritt 1406 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung bzw. Überprüfung, bestimmt werden. 14B zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1406. 14B zeigt eine Löschverteilung 702 und eine Verteilung 1452. Die Verteilung 1452 enthält die Speicherzellen im Zustand A, die aus dem Löschzustand 702 programmiert wurden. Die Verteilung 1452 kann auch die Speicherzellen in den Zuständen A bis G enthalten, die während der intelligenten Verifizierung bzw. Überprüfung programmiert wurden.
  • In Schritt 1408 werden die Speicherzellen, die auf den Zustand A programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand B programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1410 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14C zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1410. 14C zeigt eine Verteilung 1454, die die Speicherzellen des Zustandes B repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • In Schritt 1412 werden die Speicherzellen, die auf den Zustand B programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand C programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1414 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14D zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1414. 14D zeigt eine Verteilung 1456, die die Speicherzellen des Zustandes C repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • In Schritt 1416 werden die Speicherzellen, die auf den Zustand C programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand D programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1418 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14E zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1418. 14E zeigt eine Verteilung 1458, die die Speicherzellen des Zustandes D repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • In Schritt 1420 werden die Speicherzellen, die auf den Zustand D programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand E programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1422 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14F zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1422. 14F zeigt eine Verteilung 1460, die die Speicherzellen des Zustandes E repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • In Schritt 1424 werden die Speicherzellen, die auf den Zustand E programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand F programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1426 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14G zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1426. 14G zeigt eine Verteilung 1462, die die Speicherzellen des Zustandes F repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • In Schritt 1428 werden die Speicherzellen, die auf den Zustand F programmiert werden sollen, ausgeschlossen. Die Speicherzellen, die auf den Zustand G programmiert werden sollen, werden zur Programmierung freigegeben. Andere Speicherzellen verbleiben im ausgeschlossenen Zustand. In Schritt 1430 wird ein Dummy-Programmierungsimpuls an die Wortleitung angelegt. Die Magnitude bzw. Größe dieses Dummy-Impulses kann, basierend auf der intelligenten Verifizierung, ermittelt werden. 14H zeigt die Ergebnisse nach einer Ausführungsform des Schrittes 1430. 14H zeigt eine Verteilung 1464, die die Speicherzellen des Zustandes G repräsentiert, die aus dem Löschzustand 702 programmiert wurden.
  • 15 ist ein Flussdiagramm eines Prozesses 1500 der Beendigung einer vollständigen Sequenzprogrammierung. Dieser Prozess kann nach Prozess 1300 oder 1400 durchgeführt werden. Der Prozess 1500 kann mit den VT-Verteilungen beginnen, die wie die Beispiele aus 13H oder 14H aussehen, aber ist nicht auf diese Beispiele limitiert bzw. beschränkt. Ein Ziel einer Ausführungsform des Prozesses 1500 ist, die VT-Verteilungen zu straffen. In Schritt 1502 werden Speicherzellen, die auf die Zustände A bis G programmiert werden sollen, zur Programmierung freigegeben. Speicherzellen im Löschzustand können ausgeschlossen werden. In einer Ausführungsform werden Information über die VT der Speicherzellen während der intelligenten Verifizierung bzw. Überprüfung beibehalten, so dass einige der Speicherzellen in Zustand A bis G ausgeschlossen werden können, um eine mögliche Überprogrammierung zu verhindern.
  • In Schritt 1504 wird eine Programmierungsspannung an die Wortleitung, die mit den Speicherzellen assoziiert bzw. verbunden ist, angelegt. In Schritt 1506 wird eine Programmierungsverifizierung bzw. -Überprüfung auf den verschiedenen Niveaus (z.B. VvA, VvB, VvC, VvD, VvE, VvF, Vvg) durchgeführt. In Schritt 1508 werden Speicherzellen, die die Verifizierung bzw. Überprüfung für ihre jeweiligen Zustände bestanden haben, von der weiteren Programmierung ausgeschlossen. In Schritt 1510 wird bestimmt, ob die Programmierung abgeschlossen ist Diese Überprüfung kann nur auf einer bestimmten Anzahl von Speicherzellen basieren, deren Programmverifizierung bzw. -überprüfung misslingt. Die Programmierungsspannung (Vpgm) wird in Schritt 1512 erhöht, wenn die Programmierung nicht beendet ist Der Prozess kehrt zu Schritt 1504 zurück, wenn die Programmierung nicht vollständig ist.
  • Es wird darauf hingewiesen, dass der Stromverbrauch während des Prozesses 1500 beachtlich reduziert werden kann. Weil viele der Speicherzellen solch eine hohe VT am Anfang des Prozesses 1500 aufweisen, werden sie keinen Strom leiten, wenn an vielen der Verifizierungsreferenzniveaus verifiziert bzw. überprüft wird. Dies steht im Gegensatz zu einem konventionellen bzw. herkömmlichen Prozess. Es sei in Erinnerung gerufen, dass der Prozess 1300 und 1400 Dummy-Impulse anlegt Folglich wurde kein Strom während einer Programmierungsverifizierung in diesen Prozessen 1300 und 1400 verwendet bzw. verbraucht.
  • 16 ist ein Diagramm eines Teils von 4A. Die Region bzw. der Bereich zwischen den lokalen Interconnects 404 und 406 ist dargestellt. 16 zeigt eine Technik zur Auswahl der Speicherzellen, die an einer intelligenten Verifizierung bzw. Überprüfung teilnehmen. Die Speicherzellen sind mit 1 - 8 nummeriert. Diese Nummerierung kann sich darauf beziehen, in welcher Weise diese adressiert werden. Die Speicherzellen, die mit 1, 2, 7 oder 8 beschriftet sind, sind näher an den lokalen Interconnects 404, und 406. Diese werden als „äußere Speicherzellen“ bezeichnet. Die Speicherzellen, die mit 3, 4, 5 und 6 beschriftet sind, sind weiter von den lokalen Interconnects entfernt. Diese werden als „innere Speicherzellen“ bezeichnet. Die Programmierungsmerkmale (z.B. Geschwindigkeit) der inneren Speicherzellen können sich von denen der äußeren Speicherzellen unterscheiden.
  • In einer Ausführungsform werden Speicherzellen für die intelligente Verifizierung bzw. Überprüfung, basierend darauf, ob diese innere oder äußere Speicherzellen sind, ausgewählt. Beispielsweise könnten innere Speicherzellen für die intelligente Verifizierung bzw. Überprüfung ausgewählt werden, während die äußeren Speicherzellen nicht ausgewählt werden. Alternativ können äußere Speicherzellen für die intelligente Verifizierung bzw. Überprüfung ausgewählt werden, während die inneren Speicherzellen nicht ausgewählt werden. Ein möglicher Grund dafür ist, dass schneller zu programmierende Speicherzellen für die intelligente Verifizierung bzw. Überprüfung ausgewählt werden. Die Auswahl schneller zu programmierender Zellen kann nützlich sein, um sicherzustellen, dass der (die) Dummy-Impuls(e), der aus der intelligenten Verifizierung bzw. Überprüfung abgeleitet wird, nicht zu hoch in der Magnitude bzw. Größe ist (sind). Andere Gründe können verwendet werden, um zwischen inneren und äußeren Speicherzellen zu wählen. Außerdem ist die Auswahl der inneren oder äußeren Speicherzellen ein Beispiel zur Auswahl von Speicherzellen für die intelligente Verifizierung, basierend auf deren physischen Lage. In diesem Beispiel basiert es auf der Entfernung der Speicherzellen von den lokalen Interconnects 404 und 406. Es können andere Konfigurationen vorhanden sein, in denen die physische Lage der Speicherzellen die Programmierungsgeschwindigkeit beeinflusst. Das Konzept der Auswahl von Speicherzellen, die schneller für die intelligente Verifizierung bzw. Überprüfung programmiert werden, kann auf weitere physische bzw. physikalische Bedingungen ausgeweitet werden.
  • Eine Ausführung wie hier offenbart enthält eine nicht-flüchtige Speichervorrichtung, die eine Vielzahl von nicht-flüchtigen Speicherelementen und einen Steuerungsschaltkreis, der mit den nicht-flüchtigen Speicherelementen in Verbindung steht, aufweist. Der Steuerungsschaltkreis ist dazu konfiguriert, einen Befehl zur Programmierung einer Gruppe der Vielzahl von nicht-flüchtigen Speicherelementen zu empfangen und eine Teilmenge der Gruppe von nicht-flüchtigen Speicherelementen zur Programmierung freizugeben und die übrigen Speicherelemente in der Gruppe für die Programmierung zu deaktivieren. Der Steuerungsschaltkreis ist dazu konfiguriert, eine intelligente Verifizierung bzw. Überprüfung auf der Teilmenge von nicht-flüchtigen Speicherelementen durchzuführen und eine Magnitude bzw. Größe des Dummy-Programmierungsimpulses, basierend auf der intelligenten Verifizierung bzw. Überprüfung, zu bestimmen. Der Steuerungsschaltkreis ist dazu konfiguriert, die ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde, zur Programmierung freizugeben. Der Steuerungsschaltkreis ist dazu konfiguriert, die Programmierung der ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung durchgeführt wurde, zu verhindern. Der Steuerungsschaltkreis ist dazu konfiguriert, den Dummy-Programmierungsimpuls an die Gruppe von nicht-flüchtigen Speicherelementen anzulegen, während die ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde, zur Programmierung freigegeben werden, und während die ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung durchgeführt wurde, von der Programmierung ausgeschlossen werden. Der Steuerungsschaltkreis ist dazu konfiguriert, die Gruppe von nicht-flüchtigen Speicherelementen zu programmieren, nachdem der Dummy-Programmierungsimpuls an die Gruppe angelegt wurde bzw. wird.
  • Eine Ausführungsform wie hier offenbart, enthält ein Verfahren zum Betrieb von nicht-flüchtigem Speicher. Das Verfahren umfasst das Erhalten eines Befehls zur Programmierung einer Gruppe von nicht-flüchtigen Speicherelementen, die Freigabe zur Programmierung einer Teilmenge der Gruppe von nicht-flüchtigen Speicherelementen und die Verhinderung der Programmierung der restlichen Speicherelemente in der Gruppe, die Durchführung einer intelligenten Verifizierung bzw. Überprüfung auf der Teilmenge von nicht-flüchtigen Speicherelementen. Basierend auf der intelligenten Verifizierung bzw. Überprüfung wird eine Magnitude bzw. Größe eines Dummy-Programmierungsimpulses bestimmt. Das Verfahren umfasst auch die Freigabe zur Programmierung von ausgewählten nicht-flüchtigen Speicherelementen in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde, das Ausschließen der ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe von der Programmierung, für die die intelligente Verifizierung durchgeführt wurde, und das Anlegen des Dummy-Programmierungsimpulses an die Gruppe von nicht-flüchtigen Speicherelementen während der Freigabe zur Programmierung ausgewählter nicht-flüchtiger Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung nicht durchgeführt wurde, und während die ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Verifizierung bzw. Überprüfung durchgeführt wurde, von der Programmierung ausgeschlossen werden. Das Verfahren umfasst ferner die Programmierung der Gruppe von nicht-flüchtigen Speicherelementen nachdem der Dummy-Programmierungsimpuls angelegt wurde.
  • Eine Ausführungsform enthält eine 3D-gestapelte nicht-flüchtige Speichervorrichtung, die ein Substrat, ein dreidimensionales Speicherarray, das oberhalb des Substrates liegt, und einen Steuerungsschaltkreis, der in Verbindung mit dem nicht-flüchtigen Speicherelement ist, aufweist. Das dreidimensionale Speicherarray weist eine Vielzahl von nicht-flüchtigen Speicherelementen auf, die jeweils ein Steuerungsgate aufweisen. Der Steuerungsschaltkreis empfängt einen Befehl zur Programmierung einer Gruppe der Vielzahl von nicht-flüchtigen Speicherelementen, legt Signale an die Steuerungsgates der Gruppe von nicht-flüchtigen Speicherelementen an, während ein erster Satz von nicht-flüchtigen Speicherelementen in der Gruppe zur Programmierung freigegeben werden und ein zweiter Satz von nicht-flüchtigen Speicherelementen in der Gruppe von der Programmierung ausgeschlossen werden. Der Steuerungsschaltkreis tastet ab bzw. erfasst den ersten Satz von nicht-flüchtigen Speicherelementen als Reaktion auf die angelegten Signale, bestimmt die Programmierungsmerkmale, basierend auf den angelegten Signalen und der Abtastung bzw. Erfassung des ersten Satzes von nicht-flüchtigen Speicherelementen, und bestimmt eine Magnitude bzw. Größe eines Dummy-Programmierungsimpulses, basierend auf den Programmierungsmerkmalen. Der Steuerungsschaltkreis gibt die ausgewählten nicht-flüchtigen Speicherelemente in dem zweiten Satz zur Programmierung frei, verhindert die Programmierung der ausgewählten nicht-flüchtigen Speicherelemente in dem ersten Satz, und legt den Dummy-Programmierungsimpuls an die Steuerungsgates der Gruppe der nicht-flüchtigen Speicherelemente an, während die ausgewählten nicht-flüchtigen Speicherelemente in dem zweiten Satz zur Programmierung freigegeben werden, während die ausgewählten nicht-flüchtigen Speicherelemente in dem ersten Satz von der Programmierung ausgeschlossen werden. Der Steuerungsschaltkreis programmiert die Gruppe von nicht-flüchtigen Speicherelementen nachdem der Dummy-Programmierungsimpuls angelegt wurde.

Claims (15)

  1. Nicht-flüchtige Speichervorrichtung, die aufweist: eine Vielzahl nicht-flüchtiger Speicherelemente (MC1, MC2, ...); einen Steuerungsschaltkreis (110, 122, 124, 128, 132) der mit den nicht-flüchtigen Speicherelementen kommuniziert, wobei der Steuerungsschaltkreis dazu konfiguriert ist, um: einen Befehl zur Programmierung einer Gruppe der Vielzahl nicht-flüchtiger Speicherelemente zu erhalten; eine Programmierungsgeschwindigkeit der Gruppe zu charakterisieren durch Anlegen eines Programmierungssignals an die Gruppe, während eine Teilmenge der Gruppe zur Programmierung freigegeben ist und die restlichen Mitglieder der Gruppe daran gehindert werden, programmiert zu werden, wobei bei der Charakterisierung der Programmierungsgeschwindigkeit eine Schwellenwertspannungs-Verifizierung auf einem intelligenten Verifizierungsreferenzniveau durchgeführt wird; basierend auf der Programmiergeschwindigkeit eine Magnitude bzw. Größe für einen Dummy-Programmierungsimpuls zu bestimmen; den Dummy-Programmierungsimpuls an die Gruppe anzulegen, während ausgewählte der restlichen Mitglieder der Gruppe zur Programmierung freigegeben sind und während die Teilmenge daran gehindert wird, programmiert zu werden; und die Gruppe nicht-flüchtiger Speicherelemente, nachdem der Dummy-Programmierungsimpuls an die Gruppe angelegt wurde, zu programmieren.
  2. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, wobei der Steuerungsschaltkreis, der dazu konfiguriert ist, die Programmierungsgeschwindigkeit der Gruppe zu charakterisieren, ferner dazu konfiguriert ist, um: die nicht-flüchtigen Speicherelemente in der Teilmenge zu erfassen bzw. anzutasten, nachdem das Programmierungssignal angelegt wurde, während die restlichen Mitglieder der Gruppe von der Erfassung ausgeschlossen werden.
  3. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, wobei die ausgewählten der restlichen Mitglieder der Gruppe die zur Programmierung freigegeben sind bzw. werden, während der Steuerungsschaltkreis den Dummy-Programmierungsimpuls an die Gruppe anlegt, auf eine Schwellenwertspannung programmiert werden sollen, die eine Zielschwellenwertspannung von einem oder mehreren Mitgliedern der Gruppe überschreitet
  4. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, wobei der Steuerungsschaltkreis dazu konfiguriert ist, die nicht-flüchtigen Speicherelemente als Reaktion darauf, dass der Dummy-Programmierungsimpuls angelegt werden, nicht zu überprüfen bzw. zu bestätigen.
  5. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, wobei die ausgewählten der restlichen Mitglieder der Gruppe, die zur Programmierung freigegeben sind bzw. werden, während der Steuerungsschaltkreis den Dummy-Programmierungsimpuls an die Gruppe anlegt, von einem Löschzustand in einen Zwischenzustand programmiert werden sollen.
  6. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, wobei die ausgewählten der restlichen Mitglieder der Gruppe, die zur Programmierung freigegeben sind bzw. werden, während der Steuerungsschaltkreis den Dummy-Programmierungsimpuls an die Gruppe anlegt, von einem Löschzustand in irgendeinen einer Vielzahl von Datenzuständen programmiert werden sollen.
  7. Nicht-flüchtige Speichervorrichtung nach Anspruch 1, die ferner ein dreidimensionales Speicherarray bzw. eine Speichermatrix aufweist, die eine Vielzahl an Wortleitungsschichten aufweist, wobei die Gruppe der nicht-flüchtigen Speicherelemente in der gleichen Wortleitungsschicht liegen.
  8. Nicht-flüchtige Speichervorrichtung nach Anspruch 7, wobei nicht-flüchtige Speicherelemente in der Gruppe unterschiedliche Entfernungen von einer lokalen Verbindung bzw. einem lokalen Interconnect aufweisen, wobei die Teilmenge, zur Charakterisierung der Programmierungsgeschwindigkeit der Gruppe basierend auf der Entfernung von der lokalen Verbindung ausgewählt wird.
  9. Verfahren zum Betrieb eines nicht-flüchtigen Speichers, das umfasst: Erhalten eines Befehls zur Programmierung einer Gruppe nicht-flüchtiger Speicherelemente (502); Freigabe zur Programmierung einer Teilmenge der Gruppe nicht-flüchtiger Speicherelemente und Verhinderung der Programmierung restlicher Speicherelemente in der Gruppe (504); Durchführen einer intelligenten Überprüfung bzw. Verifizierung der Teilmenge nicht-flüchtiger Speicherelemente (504); Bestimmen einer Magnitude bzw. einer Größe eines Dummy-Programmierungsimpulses (506) basierend auf der intelligenten Überprüfung; Freigabe zur Programmierung ausgewählter nicht-flüchtiger Speicherelemente in der Gruppe, für die die intelligente Überprüfung nicht durchgeführt wurde (508); Ausschließen von der Programmierung ausgewählter nicht-flüchtiger Speicherelemente in der Gruppe, für die die intelligente Überprüfung durchgeführt wurde (510); Anlegen des Dummy-Programmierungsimpulses an die Gruppe nicht-flüchtiger Speicherelemente während der Freigabe zur Programmierung ausgewählter nicht-flüchtiger Speicherelemente in der Gruppe, für die die intelligente Überprüfung nicht durchgeführt wurde, und während des Ausschließens von der Programmierung (512) der ausgewählten nicht-flüchtigen Speicherelemente in der Gruppe, für die die intelligente Überprüfung durchgeführt wurde; und Fortsetzen der Programmierung der gesamten Gruppe nicht-flüchtiger Speicherelemente, nachdem der Dummy-Programmierungsimpuls angelegt wurde (514).
  10. Verfahren nach Anspruch 9, wobei das Durchführen einer intelligenten Überprüfung der Teilmenge nicht-flüchtiger Speicherelemente umfasst: Ausschließen aller nicht-flüchtigen Speicherelemente in der Gruppe, die nicht in der Teilmenge sind, von der Programmierung; Freigabe zur Programmierung nicht-flüchtiger Speicherelemente in der Teilmenge, die von einem Löschzustand in einen Datenzustand programmiert werden sollen; Anlegen eines Programmierungssignals an Steuerungsgates der Gruppe nicht-flüchtiger Speicherelemente; und Abtasten bzw. Erfassen der nicht-flüchtigen Speicherelemente in der Teilmenge.
  11. Verfahren nach Anspruch 10, wobei das Abtasten der nicht-flüchtigen Speicherelemente in der Teilmenge umfasst: Ausschließen aller nicht-flüchtiger Speicherelemente in der Gruppe, die nicht in der Teilmenge sind, von der Abtastung; und Freigabe zur Abtastung der nicht-flüchtigen Speicherelemente in der Teilmenge, die von einem Löschzustand in einen Datenzustand programmiert werden sollen.
  12. Verfahren nach einem der Ansprüche 9 bis 11, das ferner das Auswählen der Teilmenge, basierend auf der physischen Adresse bzw. dem physischen Ort der nicht-flüchtigen Speicherelemente in der Gruppe, umfasst
  13. Verfahren nach Anspruch 9, wobei die Freigabe zur Programmierung ausgewählter nicht-flüchtiger Speicherelemente in der Gruppe, für die die intelligente Überprüfung nicht durchgeführt wurde, umfasst: Freigabe zur Programmierung nicht-flüchtiger Speicherelemente, die nicht von der intelligenten Überprüfung betroffen waren, und die in einen ersten Datenzustand nahe einem Referenzzustand für die intelligente Überprüfung programmiert werden sollen.
  14. Verfahren nach Anspruch 13, das ferner die Freigabe zur Programmierung nicht-flüchtiger Speicherelemente, die von der intelligenten Überprüfung betroffen waren, und die in einen zweiten Datenzustand oberhalb des ersten Datenzustandes programmiert werden sollen, umfasst.
  15. Verfahren nach Anspruch 14, wobei die Bestimmung einer Magnitude bzw. Größe eines Dummy-Programmierungsimpulses umfasst: Bestimmung einer Magnitude bzw. Größe eines Dummy-Programmierungsimpulses zur Änderung einer Schwellenwertspannung unmittelbar von einem Löschzustand in einen Zustand der nahe an aber nicht über dem zweiten Datenzustand liegt
DE112016003568.3T 2015-10-30 2016-09-13 Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher Active DE112016003568B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,436 2015-10-30
US14/928,436 US9564226B1 (en) 2015-10-30 2015-10-30 Smart verify for programming non-volatile memory
PCT/US2016/051452 WO2017074576A1 (en) 2015-10-30 2016-09-13 Smart verify for programming non-volatile memory

Publications (2)

Publication Number Publication Date
DE112016003568T5 DE112016003568T5 (de) 2018-06-14
DE112016003568B4 true DE112016003568B4 (de) 2023-12-21

Family

ID=56940477

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016003568.3T Active DE112016003568B4 (de) 2015-10-30 2016-09-13 Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher

Country Status (4)

Country Link
US (1) US9564226B1 (de)
CN (1) CN108028069B (de)
DE (1) DE112016003568B4 (de)
WO (1) WO2017074576A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102903B1 (en) * 2017-03-31 2018-10-16 Intel Corporation Write process for a non volatile memory device
US10381095B1 (en) 2018-02-28 2019-08-13 Sandisk Technologies Llc Non-volatile memory with smart erase verify
US11081198B2 (en) 2019-05-16 2021-08-03 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US10839928B1 (en) 2019-05-16 2020-11-17 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
CN115512747A (zh) 2021-06-23 2022-12-23 桑迪士克科技有限责任公司 用于具有相邻平面干扰检测的智能验证的设备和方法
US11967383B2 (en) 2022-01-20 2024-04-23 Western Digital Technologies, Inc. Non-volatile memory with enhanced program operation for last state on slow plane

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323429A1 (en) 2008-06-27 2009-12-31 Dana Lee Programming algorithm to reduce disturb with minimal extra time penalty

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
EP1946323B1 (de) 2005-10-27 2011-07-27 SanDisk Corporation Verfahren zur programmierung eines nichtflüchtigen mehrzustandsspeichers unter verwendung einer intelligenten verifizierung
US7224614B1 (en) 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
US7630253B2 (en) * 2006-04-05 2009-12-08 Spansion Llc Flash memory programming and verification with reduced leakage current
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7606091B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US7599223B2 (en) 2006-09-12 2009-10-06 Sandisk Corporation Non-volatile memory with linear estimation of initial programming voltage
KR100822805B1 (ko) * 2006-10-20 2008-04-18 삼성전자주식회사 다중 배속 동작 모드를 가지는 플래시 메모리 장치
US7570520B2 (en) 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7564711B2 (en) 2007-02-20 2009-07-21 Sandisk Corporation Multiple pass write sequence for non-volatile storage
CN102067233B (zh) * 2008-06-12 2014-03-12 桑迪士克科技股份有限公司 使用索引编程和减少的验证的非易失性存储器和方法
KR100976696B1 (ko) 2008-07-10 2010-08-18 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
JP5172555B2 (ja) 2008-09-08 2013-03-27 株式会社東芝 半導体記憶装置
US7768836B2 (en) 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
JP2010135023A (ja) 2008-12-05 2010-06-17 Toshiba Corp 半導体記憶装置
US8755229B1 (en) 2009-06-23 2014-06-17 Micron Technology, Inc. Limiting flash memory over programming
KR101633018B1 (ko) 2009-12-28 2016-06-24 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US8130551B2 (en) 2010-03-31 2012-03-06 Sandisk Technologies Inc. Extra dummy erase pulses after shallow erase-verify to avoid sensing deep erased threshold voltage
JP2011258260A (ja) 2010-06-07 2011-12-22 Toshiba Corp 不揮発性半導体記憶装置
WO2013043602A2 (en) * 2011-09-19 2013-03-28 SanDisk Technologies, Inc. High endurance non-volatile storage
JP2013122799A (ja) 2011-12-09 2013-06-20 Toshiba Corp 不揮発性半導体記憶装置
US9142298B2 (en) 2013-02-11 2015-09-22 Sandisk Technologies Inc. Efficient smart verify method for programming 3D non-volatile memory
US8958249B2 (en) * 2013-03-04 2015-02-17 Sandisk Technologies Inc. Partitioned erase and erase verification in non-volatile memory
US9269446B1 (en) * 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323429A1 (en) 2008-06-27 2009-12-31 Dana Lee Programming algorithm to reduce disturb with minimal extra time penalty

Also Published As

Publication number Publication date
DE112016003568T5 (de) 2018-06-14
US9564226B1 (en) 2017-02-07
WO2017074576A1 (en) 2017-05-04
CN108028069B (zh) 2021-05-25
CN108028069A (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
DE112016003568B4 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher
DE112017004208B4 (de) 3d-nand mit teilblocklöschen
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE102008034003B4 (de) Nichtflüchtige Speicher mit Ketten von gestapelten resistiven Speicherzellen eines NAND-Typs und Verfahren zum Fertigen derselben
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE112019000164T5 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE112019000152T5 (de) Verschachteltes programmieren und prüfen in nichtflüchtigem speicher
DE112018003426T5 (de) Reduzieren der lesestörung der art durch injektion heisser elektronen in 3d-speichervorrichtung mit verbundenen sourceendauswahlgates
DE112019000157T5 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE102017104265A1 (de) Dummy-Spannung zum Verringern des Erst-Lese-Effekts in einem Speicher
DE112019000148T5 (de) Dynamische Bitabtastungstechniken für die Programmierung von Speichervorrichtungen
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE112014005480T5 (de) Systeme, Verfahren und Vorrichtung für Speicherzellen mit gemeinsamen Source-Leitungen
DE102019124668A1 (de) Transistorschwellenspannungshaltung in 3d-speicher
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE112019005518T5 (de) Mehrzustandsprogrammierung in einer speichervorrichtung mit schleifenabhängiger bitleitungsspannung während der verifizierung
DE112019000159T5 (de) Ramp-down-abtastung zwischen programmspannung und prüfspannung in einer speichervorrichtung
DE102022102591A1 (de) Systeme und verfahren zum einstellen der schwellenspannungsverteilung aufgrund von halbkreis-sgd
DE102020107504A1 (de) Nichtflüchtiges speicher-array, das zur leistungsverbesserung von beiden seiten angesteuert wird
DE102015117496A1 (de) Steuerung der zeitbereich-anstiegsquote für die löschsperre im flash-speicher
DE102021107268A1 (de) Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine
DE102021106907A1 (de) Lochvorladeschema mit gate-induzierter drain-leckstromerzeugung
DE112008000750T5 (de) NAN-Flash-Speicher mit hierarchischer Bitleitungs-und-Wortleitungs-Architektur

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