DE112016003568B4 - Intelligent checking or verification for programming non-volatile memory - Google Patents

Intelligent checking or verification for programming non-volatile memory 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
German (de)
Other versions
DE112016003568T5 (en
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/en
Application granted granted Critical
Publication of DE112016003568B4 publication Critical patent/DE112016003568B4/en
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

Landscapes

  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

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.A non-volatile memory device comprising:a plurality of non-volatile memory elements (MC1, MC2, ...);a control circuit (110, 122, 124, 128, 132) communicating with the non-volatile memory elements, the control circuit thereto is configured to:obtain a command to program a group of the plurality of non-volatile memory elements;characterize a programming speed of the group by applying a programming signal to the group while a subset of the group is enabled for programming and the remaining members of the group thereon be prevented from being programmed, wherein in characterizing the programming speed, a threshold voltage verification is performed at an intelligent verification reference level; determining a magnitude for a dummy programming pulse based on the programming speed; applying the dummy programming pulse to the group, while selected of the remaining members of the group are cleared for programming and while the subset is prevented from being programmed; andprogram the group of non-volatile memory elements after the dummy programming pulse is applied to the group.

Description

Hintergrundbackground

Die vorliegende Offenbarung bezieht sich auf Technologie für nicht-flüchtige Speicherung.The present disclosure relates to non-volatile storage technology.

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.Semiconductor memories are used in various electronic devices. For example, non-volatile semiconductor memories are used in cell phones, digital cameras, personal digital assistants, portable computing devices, non-portable computing devices, and other devices. Electrical Eraseable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories.

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.Some non-volatile memories store information in a charge storage region that is isolated from a channel region in a semiconductor memory substrate. For example, a floating gate is positioned over a channel region of a semiconductor substrate and is isolated from the channel region in the semiconductor substrate. The floating gate is positioned between the source region and the drain region. A control gate is provided across the floating gate and is isolated from the floating gate. The threshold voltage of the transistor is controlled by the amount of charge retained in the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to allow conduction between its source and drain is controlled by the charge level on the floating gate.

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.Some non-volatile memories use a charge trapping layer to store information. One such example has an oxide-nitride-oxide (ONO) region in which the nitride (e.g. SiN) serves as a charge trapping layer to store information. When such a memory cell is to be programmed, electrons are stored in the charge trapping layer.

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.Non-volatile memory could have a 2D architecture or a 3D architecture. Recently, ultra-high density memory devices that have a 3D stacked memory structure comprising strings of memory cells have been proposed. Such a storage device is sometimes referred to as a “Bit Cost Scalable” (BiCS) architecture. For example, a 3D NAND stacked memory device may be formed from an array of alternating conductor and insulator layers. A storage hole is drilled into the layers to define or delimit many storage layers simultaneously. A NAND chain is then formed by filling the memory hole with appropriate materials. A straight NAND chain extends in a memory hole, while a tube or U-shaped NAND chain (P-BiCS) is a pair of vertical columns of memory cells that extend in two memory holes and that are connected via a pipe connection. Control gates of the memory cells are provided by the conductor layers.

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.Prior to programming certain non-volatile memory devices, such as a NAND flash memory device, the memory cells are erased. The erase operation removes electrons from the floating gate in some devices. In some devices, the erase operation removes electrons from the charge trapping layer. Consequently, erasing can reduce the threshold voltage of the memory cell.

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.Programming the memory cells can be accomplished by applying a programming voltage to the control gate to increase the threshold voltage of the memory cell. Typically, a sampling operation, called program monitoring or program verification, is performed after the program voltage is applied to determine whether the memory cell has reached its intended threshold voltage. This process can be repeated in a number of program loops. Memory cells can be excluded from further programming after they have reached their target threshold voltage to prevent overprogramming.

US 2009 / 0 323 429 A1 offenbart ein Verfahren zum Programmieren eines nicht-flüchtigen Speichers, das Programmierstörungen reduziert. US 2009 / 0 323 429 A1 discloses a method for programming non-volatile memory that reduces programming errors.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

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.
Elements that have the same reference numbers refer to the same components or components in different drawings.
  • 1 is a perspective view of a 3D stacked non-volatile memory device.
  • 2 is a functional block diagram of a memory device, such as the 3D stacked non-volatile memory device according to 1 .
  • 3 is a block diagram of a storage structure that has two levels
  • 4A shows a portion of a block of memory cells in a top view.
  • 4B shows a portion of a block of memory cells in a cross-sectional view.
  • 4C represents the view of the selected gate layers and wordline layers.
  • 4D shows a vertical column of memory cells in a cross-sectional view.
  • 5A shows a flowchart of an embodiment of a programming process.
  • 5B illustrates, by way of example, V T distributions that correspond to data states of the memory cell array when each memory cell stores three bits of data
  • 5C illustrates that V T distributions can partially overlap.
  • 5D is a flowchart of one embodiment of a process 500 for programming non-volatile memory elements.
  • 6 is a flowchart of one embodiment of a process 600 for performing intelligent verification.
  • 7A - /D show threshold voltage distributions during an embodiment of intelligent verification.
  • 8th is a flowchart of one embodiment of a process 800 for programming memory cells using an LM sequence.
  • 9 is a flowchart of one embodiment of a process 900 for programming memory cells using a complete sequence.
  • 10A is a flowchart of one embodiment of a process 1000 for applying a dummy programming pulse during an IM programming sequence.
  • 10B shows V T distributions before an embodiment of a process 1000 10A .
  • 10C - 10F show V T distributions during an embodiment of a process 1000 according to 10A .
  • 11A is a flowchart of another embodiment of a process 1100 for applying a dummy programming pulse during an IM programming sequence.
  • 11B - 11E show V T distributions during one embodiment of a process 1100 11A .
  • 12A is a flowchart of one embodiment of a process 1200 for programming memory cells into an LM state.
  • 12B shows results according to one embodiment of process 1200.
  • 13A is a flowchart of one embodiment of a process 1300 for programming using a complete sequence.
  • 13B - 13H show V T distributions during one embodiment of process 1300 13A .
  • 14A is a flowchart of one embodiment of a process 1400 for programming using a complete sequence.
  • 14B - 14H show V T distributions during one embodiment of process 1400 14A .
  • 15 is a flowchart of one embodiment of a process 1500 for completing complete sequence programming.
  • 16 is a diagram illustrating an embodiment for selecting memory cells for intelligent verification.

Ausführliche BeschreibungDetailed description

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.Techniques and methods for programming non-volatile memory are presented. In general, programming can consume significant amounts of power. A significant portion of the power may be consumed during the programming verification operation. One reason for this power consumption is that memory cells that have not gone through the programming check are turning on and conducting current because their threshold voltage is not yet high enough to go through the programming check. Techniques disclosed herein reduce the amount of power used during the program verification operation. A significant amount of power can also be used when setting up programming. Techniques disclosed herein reduce the amount of power used during programming conditions adjustment.

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.In one embodiment, intelligent verification is performed using a subset of memory cells to be programmed. By applying intelligent verification to only a subset of the memory cells electricity is saved. Intelligent verification applies a programming pulse to memory cells and then detects the subset, in one embodiment. In one embodiment, the memory cells in the group that are being programmed but for which the intelligent verification is not to be performed are excluded during the intelligent verification so that their threshold voltages are not affected by the programming pulse. They can also be excluded during capture to save electricity. One factor in reducing power consumption is that bitlines do not need to be precharged. Another factor to reduce power consumption is that these memory cells do not conduct power during the acquisition operation because they have been excluded.

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.The intelligent checking or verification can be used to characterize the programming of the memory cells. For example, intelligent verification may provide information to determine how quickly the memory cells are programmed. In one embodiment, intelligent verification is used to determine a magnitude of a dummy programming pulse that is applied later in the memory cell programming process. The dummy programming pulse is not followed by a programming check, reducing power consumption. The dummy programming pulse can be used to raise the threshold voltage of selected memory cells to a higher voltage before applying another programming pulse, followed by a programming check. This can reduce power consumption due to the following reasons. If the dummy programming pulse shifts the threshold voltages high enough, then these memory cells will not conduct current when checked. This reduces power consumption during program verification. A variety of techniques or methods of using dummy programming impulses are discussed.

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.In some embodiments, techniques disclosed herein are applied in a 3D stacked non-volatile memory device. The following example is an example of a 3D stacked storage device. Embodiments disclosed herein are not limited to this 3D example. Embodiments disclosed herein are not limited to 3D memory. For example, techniques or methods disclosed herein can also be used in 3D memory, but also in 2D NAND, but are not limited thereto. Embodiments are not limited to NAND.

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.The following discussion provides details of an example of a suitable structure for a memory device that can implement the proposed technology. 1 is a perspective view of a three-dimensional (3D) stacked non-volatile memory device. The memory device 100 includes a substrate 101. On and above the substrate are example blocks BLK0 and BLK1 of memory cells (non-volatile memory elements). Also on the substrate 101 is a peripheral area 104 with support circuits used by the blocks. Substrate 101 may also support circuitry beneath the blocks, along with one or more lower metal layers patterned into traces to carry signals from the circuitry. The blocks are formed in an intermediate region 102 of the storage device. In an upper region 103 of the memory device, one or more upper metal layers are patterned into conductive traces to carry circuit travel signals. Each block has a stacked area of memory cells where alternating levels of the stacks represent word lines. Although two blocks are shown as an example, additional blocks extending in the x and/or y directions can be used.

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.In an example implementation, the length of the plane in the x direction represents a direction in which signal traces for word lines extend (word line or SGD line direction), and the width of the plane in the y direction represents a direction in which signal traces extend for bit lines extend (bit line direction). The z-direction represents a height of the storage device.

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. 2 is a functional block diagram of an example of a memory device such as the 3D stacked non-volatile memory device 100 1 . Memory device 100 includes one or more memories 108. Each memory 108 includes a three-dimensional memory structure 126 of memory cells (such as a 3D array of memory cells), a control circuit 110, and read/write circuits 128. The memory structure 126 is addressable by word lines via a row decoder 124 and through bit lines via a column decoder 132. The read/write circuits 128 include multiple sense blocks SB1, SB2, ..., SBp (sense circuits) and enable a page of memory cells to be read or programmed in parallel. In some systems, a controller 122 is in the same memory device device 100 (e.g. a removable memory card) such as the one or more memory dies 108 included. However, in other systems, control may be separate from memory 108. In some embodiments, a controller 122 communicates with multiple memories 108. In other embodiments, each memory 108 has its own controller. Commands and data are transferred between the host 140 and the controller 122 over a data bus 120, and between the controller 122 and the one or more memory dies 108 over lines 118. In one embodiment, memory 108 includes a set of input and/or output (I/O) pins connected to lines 118.

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.The memory structure 126 may include one or more arrays of memory cells, including a 3D array. The memory structure may include a monolithic three-dimensional memory structure in which multiple memory levels are formed over (rather than in) a single substrate, such as a wafer, with no intervening substrates. The memory structure may include any type of non-volatile memory that is monolithically formed in one or more physical levels of arrays of memory cells having an active region disposed over a silicon substrate. The memory structure may be in a non-volatile memory device that includes circuitry associated with the operation of the memory cells, regardless of whether the associated circuitry is above or in the substrate.

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).The control circuit 110 cooperates with the read/write circuits 128 to perform memory operations (e.g., erase, program, read, and others) on the memory structures 126 and includes a state machine 112, an on-chip address decoder 114, and a power control module 116. The state machine 112 provides chip-level control of memory operations. Code and parameter memory 113 may be provided to store operational parameters and software. In one embodiment, the state machine 112 is programmable by software stored in the code and parameter memory 113. In other embodiments, the state machine 112 does not use software and is entirely hardware implemented (e.g., electronic circuits).

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.The on-chip address decoder 114 provides an address interface between the addresses used by the host 140 or memory controller 122 and the hardware address used by the decoders 124 and 132. The power or control module 116 controls the power and voltages delivered to the word lines and bit lines during memory operations. It may include drivers for the word line layers (discussed below) in a 3D configuration, selected transistors (e.g. SGS and SGD transistors, described below) and source lines. The power control module 116 may include charge pumps to generate voltages. The capture blocks include bitline drivers. An SGS transistor is a select gate transistor at a source end of a NAND chain and an SGD transistor is a select gate transistor at a drain end of a NAND chain.

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.Any or any combination of control circuit 110, state machine 112, decoder 114/124/132, memory 113, power control module 116, acquisition blocks SB1, SB2, ..., SBp, read/write circuits 128, and controller 122 can be used as management or . Line circuit that performs the functions described here can be considered.

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.The (on-chip or off-chip) controller 122 may include a processor 122c and storage devices (memory) such as ROM 122a and RAM 122b. The storage devices include code, such as a set of instructions, and the processor 122c is capable of executing the set of instructions to provide the functionality described herein. Alternatively or additionally, processor 122c may access code from a memory device in the memory structure, such as a reserved area of memory cells connected to one or more word lines.

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.Multiple memory elements in memory structure 126 may be configured to be connected in series or connected such that each element is individually accessible. As a non-limiting example, flash memory devices in a NAND (NAND flash memory) configuration typically include memory elements connected in series. A NAND chain or NAND string is an example of a set of memory cells and select gate transistors connected in series.

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.A NAND flash memory array can be configured so that the array consists of multiple memory cells that share a single bitline and are accessed as a group. Alternatively, storage elements can be configured like this It must be ensured that each element is individually accessible or can be accessed individually, e.g. a NOR memory array. NAND and NOR configurations are exemplary, and memory cells may be configured otherwise.

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.The memory cells may be arranged in the individual memory device level in an ordered array, such as a plurality of rows and/or columns. However, the memory elements may be arranged in an irregular or non-orthogonal configuration or in structures that are not considered arrays.

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.A three-dimensional memory array is arranged so that memory cells occupy multiple levels or multiple memory device levels, thereby forming structures in three dimensions (i.e., in the x, y, and z directions, with the z direction being essentially perpendicular and the x and y directions are substantially parallel to the main surface of the substrate.

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.As a non-limiting example, a three-dimensional memory structure may be arranged vertically as a stack of multiple two-dimensional memory device levels. As a further non-limiting example, a three-dimensional memory array may be arranged as multiple vertical columns (e.g., columns that extend substantially perpendicular to the main surface of the substrate, for example in the y-direction), with each column having multiple memory cells. The vertical columns can be arranged in a two-dimensional configuration, for example in an xy plane, resulting in a three-dimensional arrangement of memory cells, with memory cells in multiple or several vertically stacked spoke levels. Further configurations of memory elements in three dimensions can also produce a three-dimensional memory array or form.

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.As a non-limiting example of a three-dimensional NAND memory array, the memory elements may be coupled together to form a vertical NAND chain that extends across multiple horizontal memory device levels. Other three-dimensional configurations are conceivable, with some NAND chains or NAND strings having storage elements in a single storage level, while other chains or strings have storage elements that extend through multiple storage levels. Three-dimensional memory arrays can also be designed in a NOR configuration and in a ReRAM configuration.

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.One skilled in the art will recognize that this technology is not limited to a single specific memory structure, but covers many relevant memory structures within the spirit and scope of the technology as described herein and will be understood by one skilled in the art as such.

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. 3 is a block diagram illustrating an example of the organization of the memory structure 126, which is divided into two levels 302 and 304. Each level is also divided into M blocks. In one example, each level has approximately 2000 blocks. However, different numbers of blocks and levels can be used.

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 is a block diagram showing a top view of a portion of a block of memory structure 126. The part of the block that is in 4A shown corresponds to a part 306 in block 2 4A agree. How out 4A can be seen, extends the block that is in 4A is shown, in arrow direction 330 and in arrow direction 332. In one embodiment, the memory array has 48 layers. Other embodiments have fewer or more than 48 layers. However, shows 4A only the top layer.

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 shows a variety of circles representing vertical columns. Each of the vertical columns includes multiple select transistors and multiple memory cells. In one embodiment, each vertical column implements a NAND string. More details of the vertical columns are provided below Since the in 4A The block shown extends in the direction of arrow 330 and in the direction of arrow 332, the block contains more vertical columns than in 4A shown.

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. 4A also shows a set of bit lines 412. 4A shows twenty-four bit lines because only a portion of the block is shown. It is contemplated that more than twenty-four bit lines are connected to the vertical columns of the block. Each of the circles representing vertical columns has an “x” to indicate its connection to a bitline.

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).The block that is in 4A 402, 404, 406, 408 and 410 connecting the various layers to a source line under the vertical column. Local interconnects 402, 404, 406, 408, and 410 also serve to divide each layer of the block into four regions; for example, the top layer, which is in 4A is shown divided into regions 420, 430, 440 and 450. In the layers of the block that implement memory cells, the four regions are referred to as wordline fins ger, which are separated by the local interconnects. In one embodiment, the wordline fingers connect at a common level of a block at the end of the block to form a single wordline. In another embodiment, the wordline fingers are not connected to each other at the same level. In an exemplary implementation, a bitline connects to only one vertical column from each of regions 420, 430, 440, and 450. In such an implementation, each block has sixteen rows of active columns and each bitline connects to four rows every block. In one embodiment, all four rows connected to a common bitline are connected to the same wordline (via different wordline fingers at the same level connected to each other); therefore, the management circuit uses the source-side select lines and the drain-side select lines to select one (or another subset) of the four to subject it to a memory operation (program, verify, read, and/or erase).

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.Although 4A shows that each region has four rows of vertical columns, four regions and sixteen rows of vertical columns in a block, these exact numbers are only an exemplary embodiment. Other embodiments may include more or fewer regions per block, more or fewer rows of vertical columns per region, and more or fewer vertical columns per block.

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. 4A also shows the vertical columns in a staggered or staggered design. In other embodiments, different stagger patterns may be used. In some embodiments, the vertical columns are not staggered.

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. 4B illustrates a portion of an embodiment of a three-dimensional memory structure 126, which is a cross-sectional view taken along line AA 4A shows. This cross-sectional view cuts through vertical columns 432 and 434 and through region 430 (see 4A) . The structure 4B includes two drain-side selection layers SGD1 and SGD1; two source-side selection layers SGS1 and SGS2; four dummy word line layers DWLL1a, DWLL1b, DWLL2a and DWLL2b; and thirty-two word line layers WLL0 - WLL31 for connection to data memory cells. Other embodiments may include more or less than two drain-side selection layers, more or less than two source-side selection layers, more or less than four dummy wordline layers, and more or less than thirty-two wordline layers. Vertical columns 432 and 434 are shown extending through the drain-side select layers, through the source-side select layers, through the dummy wordline layers, and through the wordline layers. In one embodiment, each vertical column includes a NAND chain. Among the vertical columns and layers listed below is substrate 101, an insulating film 454 on the substrate, and a source line SL. The NAND chain of the vertical columns 432 has a source end at the bottom of the stack and a drain end at the top of the stack. In accordance with 4A , shows 4B a vertical column 432 connected to a bit line 414 through a connector 415. Local interconnects 404 and 406 are also shown.

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.For easier orientation, drain-side selection layers are SGD1 and SGD1; Source-side selection layers SGS1 and SGS2; dummy word line layers DWLL1a, DWLL1b, DWLL2a and DWLL2b; and word line layers WLL0-WLL31 are collectively referred to as the line layers. In one embodiment, the conduction layers are formed from a combination of TiN and tungsten. In other embodiments, other materials may be used to form the conduction layers, such as doped polysilicon, metals such as tungsten, or metal silicates. In some embodiments, different conductive layers may be formed from different materials. Between the conduction layers are dielectric layers DL0-DL19. For example, the dielectric layer DL10 is above the word line layer WLL26 and below the word line layer WLL27. In one embodiment, the dielectric layers are made from SiO2. In other embodiments, other dielectric materials may be used to form the dielectric layers.

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.The memory cells are formed along vertical columns that extend through alternating conductive and dielectric layers in the stack. In one embodiment, the memory cells are arranged in NAND chains or NAND strings. The word line layers WLL0-WLL31 are connected to the memory cells (also called data memory cells). Dummy word line layers DWLL1a, DWll1b, DWll2a and DWll2b are connected to the dummy memory cells. A dummy memory cell, also called a non-data memory cell, does not store user data while a data memory cell is suitable or capable of storing user data. Consequently, data storage cells can be programmed. Drain-side selection layers SGD1 and SGD1 are used to electrically connect and disconnect NAND chains and NAND strings from the bit lines. The source-side selection layers SGD1 and SGD2 are used to connect and disconnect NAND chains and NAND strings to the source line SL, respectively.

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. 4C represents a perspective view of the line layers (SGD1, SGD1, SGS1, SGS2, DWLL1a, DWLL1b, DWLL2a, DWLL2b and WLL0-WLL31) of the block, which is partially in 4C is shown. As above regarding 4A As mentioned, the local interconnects 401, 404, 406, 408 and 410 divide each line layer into four regions. For example, the drain-side select gate layer SGD1 (the top layer) is divided into four regions 420, 430, 440 and 450. Likewise, the word line layer WLL31 is divided into regions 460, 462, 464 and 466. For word line layers (Wll0-Wll31), the regions or areas are referred to as word line fingers; for example, the word line layer WLL31 is divided into word line fingers 460, 462, 464 and 466.

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 represents a cross-sectional view of a region or area 442 of the 4B which includes part of a vertical column 432. In one embodiment, the vertical columns are round and have four layers; however, in other embodiments, more or less than four layers may be included and other shapes may be used. In one embodiment, a vertical column 432 includes an inner core layer 470 composed of a dielectric such as SiO 2 . Other materials can also be used. A polysilicon channel 471 surrounds the inner core 470. Materials other than polysilicon can also be used. Note that it is channel 471 that is connected to the bit line. A tunnel-capable dielectric 472 surrounds the channel 471. In one embodiment, the tunnel-capable dielectric 472 has an ONO structure. The tunnelable dielectric 472 surrounds a charge trapping layer 473, such as a specially formulated silicon nitride, that increases trap density.

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. 4D shows the dielectric layers DLL11, DLL12, DLL13, DLL14 and DLL15, as well as the word line layers WLL27, WLL28, WLL29, WLL30 and WLL31. Each of the wordline layers includes a wordline region 476 surrounded by an aluminum oxide layer 477 surrounded by a blocking oxide (SiO 2 ) layer 478. The physical interaction of the wordline layers with the vertical columns forms the memory cells. Thus, a memory cell has a channel 471, a tunnel-capable dielectric 472, a charge trapping layer 473, a blocking oxide layer 478, an aluminum oxide layer 477 and a word line region 476. For example, the word line layer WLL31 and a part of the vertical column 432 include a memory cell MC1. The word line layer WLL30 and a part of the vertical column 432 have a memory cell MC2. The word line layer WLL29 and a part of the vertical column 432 have a memory cell MC3. The word line layer WLL28 and a part of the vertical column 432 have a memory cell MC4. The word line layer WLL27 and a part of the vertical column 432 have a memory cell MC5.

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.When a memory cell is programmed, electrons are stored in a portion of the charge trapping layer 473 associated with the memory cell. These electrons are drawn into the charge trapping layer 473 of the channel 471, through the tunnelable layer 473 , in response to an appropriate voltage being applied to the wordline region 471. The threshold voltage (V T ) of a memory cell increases proportionally with the amount of stored charge. During an erase operation, the electrons return to the channel.

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. 5A is a flowchart describing an execution of a programming process 550 that includes one or more verification steps. Any of the programming sequences described here can be used, as well as other programming sequences. For example, process 550 may be used in an LM sequence, a full programming sequence, an intelligent verification, etc.

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 step 552, the programming voltage (Vpgm) is set to an initial value. In addition, in step 552 a program counter (PC) is initialized or set to zero. In step 554, a program pulse is applied to the control gate of the memory cell. Step 554 may also include setting programming conditions on the bit lines. Bit lines associated with memory cells to be programmed may be provided with a program enable voltage; Bit lines associated with memory cells that prevent them from being programmed can be provided with a programming prevention voltage.

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.In step 556, a verification process is performed. In step 558 it is determined whether memory cells whose threshold voltage is at the target voltage of this memory cell have been verified or checked. It should be noted that it is not necessary for each memory cell to be verified or checked for the associated threshold voltage for a specific state. Error correction can correct for some memory cells to be below their target threshold voltage. Error correction is able to correct some memory cells that have been over-programmed. Step 558 refers to all states that have been fully programmed.

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.If the verification was passed, the programming process is successfully completed in step 560 (status = passed). If not all memory cells have been verified, a determination is made as to whether the program counter (PC) is less than a maximum value, such as 20. If the program counter is not less than a maximum value (step 562), then the programming process has failed (step 564). . If the program counter (PC) is less than a maximum value (e.g., 20), then the program counter (PC) is incremented by 1 and the programming voltage is increased to the next pulse increment in step 556. After step 556, the process returns to step 554 and the next programming pulse is applied to the memory cells.

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.At the end of a successful programming process (with verification), the threshold voltage of the memory cell should lie within one or more threshold value distributions for programmed memory cells or, accordingly, within a distribution of threshold voltages for erased memory cells. 5B shows, by way of example, V T distributions that correspond to data states of the memory cell array when three bits of data are stored in each memory cell. However, other embodiments may use more or less than three bits of data per memory cell. This can be a logarithmic scale. The other axis represents the threshold voltage (V T ) of the memory cells.

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. 5B shows eight V T distributions corresponding to a cleared state and the programmed states AG. In one embodiment, the threshold voltage in the erased state is negative and the threshold voltage in the programmed states AG is positive. However, the threshold voltage may be negative in one or more programmed states AG. Some or all of the threshold voltages in the erased state could be positive.

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.At or near the bottom of the threshold distribution for each programmed state is a verification reference voltage. For example shows 5B VvA for state A, VvB for state B, VvC for state C, VvD for state D, VvE for state E, VvF for state F and VvG for state G. When memory cells are programmed to a specific state , the management circuit checks whether these memory cells have a threshold voltage that is greater than or equal to the verification reference voltage.

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.Between each adjacent pair of V T distributions are read reference voltages that are used to read data from the memory cell. For example shows 5B a read reference voltage VrA between the erased state and the state A, a read reference voltage VrB between the state A and the state B, a read reference voltage VrC between the state B and the state C, a read reference voltage VrD between the state C and the state D, a read reference voltage VrE between state D and state E, a read reference voltage VrF between state E and state F, and a read reference voltage VrG between state F and state G. By checking whether the threshold voltage of a particular memory cell is above or below the corresponding read reference voltage , the management circuit can determine what state the memory cell is in. For example, a memory cell whose threshold voltage is greater than VrD but less than VrE can be assumed to be in state D.

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. 5C shows that V T distributions can partially overlap. For example, with reference to the read level VrB, some memory cells that are in state A may have a threshold voltage greater than VrB. Also, some memory cells that are in state B may have a threshold voltage that is less than VrB. Some amount of overlap is acceptable because an error correction algorithm can handle a certain percentage of cells whose V T is outside their intended V T range lies.

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.It is noted that in some embodiments, immediately after programming, the threshold voltage distribution of those out of 5C can resemble. However, over time, the threshold voltage of the memory cells can shift, for example in such a way that an overlap can arise between the V T distributions. A possible cause of the shift may be a charge leak in the charge storage region of the memory cell. Another possible cause of the shift may be an unintentional addition of charge to the charge storage region of the memory cells.

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.On the other hand, in some cases, overlap between the V T distributions may occur immediately after programming. For example, some memory cells may be overprogrammed. An example of this is if a memory cell is programmed to state A, its threshold voltage may inadvertently go above VrB. It is also possible that underprogramming occurs. An example of this is if a memory cell is programmed into state B, its threshold voltage does not quite reach the VrB level. In either case, this does not mean that the programming has failed. As mentioned above, an error correction algorithm may handle a certain percentage of cells whose threshold voltage is not within their intended V T distribution.

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.It is also noted that, as opposed to the same spacing/width of the threshold voltage distributions shown, different distributions may have different widths/spacing to account for different susceptibilities to data retention loss as well as other factors.

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. 5D is a flowchart of one embodiment of a process 500 for programming non-volatile memory elements (eg, memory cells). Step 502 involves receiving a command to program a group of memory cells. In one embodiment, each memory cell to be programmed is associated with the same word line. In one embodiment, each memory cell to be programmed is associated with a different bit line. In one embodiment, controller 122 sends a command to memory 108 to program a group of memory cells. The command can be sent to a memory packet that contains multiple memories. Note that the memory cells are usually erased before programming. It is also noted that the group of memory cells may be in an erased state prior to process 500.

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.Process 500 can be used in a number of programming sequences. One example is called full sequence programming. In full sequence programming, memory cells can be programmed from the erased state to their corresponding target threshold during a single phase. One example is called LM sequence programming. In LM sequence programming, memory cells whose target threshold is the highest are first programmed from the erased state to an intermediate level in one phase. Memory cells are then programmed from either the erased state or the intermediate level to their corresponding target threshold during a second phase. There are many other programming sequences that can be used in process 500.

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 a step 504, intelligent verification is performed using a subset of the memory cells that are being programmed. One embodiment of intelligent verification is discussed below. In short, during intelligent verification, the control circuitry selects a subset of memory cells to receive some amount of programming during intelligent verification. Unselected memory cells do not receive programming during intelligent verification. A variety of techniques can be used to select memory cells. The intelligent verification is used in one embodiment to determine how quickly the memory cells are programmed. For example, intelligent verification may examine the number of programming pulses and the magnitude of the program pulses needed to increase the threshold voltage of the memory cells to a target level. It should be noted that some memory cells are programmed faster than others, making this verification based on determining when a certain percentage of memory cells have reached the target level or on some other method.

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.In step 506, a magnitude of a dummy programming pulse is determined based on the results of the intelligent verification. Here, the term “dummy programming pulse” refers to a programming pulse that is not followed by programming verification or checking to examine the effectiveness of the dummy programming pulse. Of course a pro can Programming verification or checking can be carried out after a programming pulse that is not a dummy programming pulse is later applied. Step 506 may determine magnitudes for several different dummy programming pulses.

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.Step 508 includes enabling programming of selected memory cells for which intelligent verification has not been performed. In one embodiment, step 508 includes applying a voltage to the bit lines that allows memory cells associated with those bit lines to be programmed. In this step, the selected memory cells do not necessarily include all of the memory cells that will ultimately be programmed in this process. In one example, memory cells that are to be programmed to a data state near an intelligent verification level (and for which intelligent verification has not been performed) are selected. In one example, memory cells that are to be programmed to an intermediate state (and for which intelligent verification has not been performed) are selected. In one example, memory cells that are to be programmed to a particular state (and for which intelligent verification has not been performed) are selected. In one example, memory cells that are to be programmed to some state (and for which intelligent verification has not been performed) are selected. Some memory cells for which intelligent verification has been carried out can also be released for programming. For example, memory cells that are to be programmed to a state that is significantly above an intelligent verification level can be released for programming. Many examples are described here.

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.Step 510 includes preventing programming of selected memory cells for which the intelligent check was performed. In one embodiment, it may include, but is not limited to, that memory cells be programmed to a state near an intelligent verification level. One reason for this selection is to prevent over-programming of these memory cells, which are part of intelligent verification and should be programmed to a state close to the intelligent verification reference level. It is noted that not all memory cells for which intelligent verification was performed are excluded in some embodiments. Other memory cells for which intelligent verification has not been performed may also be prevented from being programmed. For example, memory cells that remain in the erased state may be prevented from being programmed. Also, any memory cell that was not selected in step 508 could be prevented from being programmed in step 510. In one embodiment, step 510 includes applying a voltage to the bitlines that prevents memory cells associated with those bitlines from being programmed.

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.Step 512 involves applying a dummy programming pulse (e.g., a voltage pulse) to the memory cells in the group. In one embodiment, the dummy programming voltage pulse is applied to the word line associated with the group of memory cells. In one embodiment, the dummy programming pulse is applied to the control gate of each of the memory cells in the group. Step 512 may include applying more than one dummy programming pulse to the memory cells. It is noted that in a case where more than one dummy pulse is applied, the memory cells that have been enabled and those that have been prevented from being programmed may be changed.

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.Step 514 involves continuing to program the memory cells. Step 514 may include applying a programming pulse followed by performing a programming verification. This pattern can be repeated until the programming of the group of memory cells is complete. Accordingly, a process that could 5A same, can be used.

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. 6 is a flowchart of an execution of a process 600 of executing intelligent verification. This information can be used to determine a magnitude of a dummy programming pulse. Process 600 is an embodiment of step 504 of process 500. In one embodiment, intelligent verification is used when programming the memory cells to an intermediate state. This can also be called programming a lower page of data. In this example, the intelligent verification reference level may be a verification level associated with the intermediate state. In this case, the memory cells used in the intelligent verification ation or verification are those that are to be programmed to the states D, E, F and G. In one embodiment, intelligent verification is used during full sequence programming. In this example, the intelligent verification reference level may be a verification level associated with the lowest data state (e.g., state A). It should be noted that the intelligent verification level may not be exactly at these levels for reasons discussed below. In the full sequence example, the memory cells involved in intelligent verification may include those to be programmed to states A, B, C, D, E, F, and G. It should be noted that these are just two examples. Intelligent verification can also be used if the V T distribution has more or fewer than eight states at the end of programming.

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 step 602, conditions are set on a first set of bitlines to enable programming. This first set of bit lines is associated with the memory cells that are programmed during intelligent verification. In one embodiment, a programming enable voltage is applied to the first set of bit lines. This is a voltage that connects the NAND chains of selected memory cells to the bit line in one embodiment. This allows this voltage to turn on or activate a drain-side select gate.

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 one embodiment, the memory cells in step 602 include a subset of memory cells to be programmed to states D, E, F, and G. In one embodiment, the memory cells include a subset of memory cells to be programmed to states A, B, C, D, E, F and G. A different data set can be used. It is noted that only selecting a subset of memory cells can significantly reduce power consumption.

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 step 604, conditions are set on a second set of bitlines to prevent programming. This second set of bit lines is associated with the memory cells that are not to be programmed during intelligent verification. In one embodiment, a program prohibition voltage is applied to the second set of bit lines. This is a voltage that isolates the NAND strings of non-selected memory cells from the bit line in one embodiment. Thus, this voltage can turn off or deactivate a drain-side selection gate.

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 step 606, a programming pulse is applied to control gates of the memory cells. In one embodiment, the programming pulse is applied to a wordline associated with the memory cells. Note that in some architectures, the wordline is connected to the control gate of all of the memory cells in the group The programming pulse may be applied to the control gate of all of the memory cells in the group because bitline conditions may prevent programming where it is not desired. However, it is not necessary that the programming pulse be applied to the control gate of memory cells that are not part of the intelligent verification.

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 step 608, a V T verification is performed at an intelligent verification reference level. This may include applying a reference voltage to the control gate of the memory cells and sampling the bit lines in response. Note that it is not necessary that bitlines associated with all memory cells in the group be sampled. Therefore, it is not necessary to build up sampling voltages on all the bit lines that can store current and/or energy. Thus, in one embodiment, the control circuitry excludes from scanning all memory cells in the group that are different from those of the subset selected for intelligent verification. Excluding sampling may include not precharging the bitlines to a level that allows sampling. Memory cells that are to be scanned may have their bitlines precharged to a level that allows scanning.

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 step 610, it is determined whether the intelligent verification is completed. Referring to 7A Initially, all of the memory cells are in the erased state 702. After the first programming pulse is applied, the threshold voltage of the memory cells whose bit lines have been activated moves up. This is done by the intelligent verification distribution 704 in 7B represented. The erase distribution 702 now contains fewer memory cells.

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.In one embodiment, the control circuit determines whether a sufficient number of memory cells have passed or gone through the intelligent verification or checking. Step 610 may check whether the fastest programmed memory cells have reached the intelligent verification level. Therefore, step 610 can occur even if many of the slower programmed memory cells have not yet reached the intelligent verification level. Note that some of the memory cells whose bit lines have been activated may be excluded from checking in step 610. For example, some memory cells are not representative of typical programming speed, but are included to provide better results for those memory cells that are representative of typical programming speed. In one example, in a 2D NAND, the control circuitry could activate memory cells in groups of four adjacent NAND strings (in step 602). There may be multiple (or many) NAND chains or NAND strings between each of the four groups that are not enabled. In this case, the memory cells on the two inner NAND chains or NAND strings in each group of the four may be representative of the typical programming conditions. This allows the bit lines of the two inner NAND chains or NAND strings to be sampled in step 610. However, the memory cells on the two outer NAND strings in each group of four may not be representative of typical programming conditions. One reason for this is that they have a neighbor that is not the subject of the programming. This means that the bit lines of the two outer NAND chains or NAND strings can be excluded or excluded from the scanning in step 610.

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.The process 600 then proceeds to step 606 to apply another programming pulse to the control gates of the memory cells, assuming that the intelligent verification has not yet been completed. This programming pulse may have the same properties as the previous one, or the properties can change. For example, the programming pulse may have the same magnitude as the previous one, or the magnitude may be increased. Another option is to change the duration of the programming pulse. For example, the programming pulse could be longer than the process duration. A combination of changing the magnitude or size and changing the duration or running time can be used.

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.The 7B - 7D show the results after each additional programming pulse has been applied. After the intelligent verification level (Vsm) is reached (step 610 = yes), information regarding the intelligent verification is recorded in step 614. It is noted that in 7D the intelligent verification or checking is completed when the fastest programmed memory cells have reached the intelligent verification level (Vsm). In one embodiment, the number of programming pulses applied to achieve the intelligent verification level is recorded. In one embodiment, information about the magnitude of the programming pulse is recorded. For example, the magnitude of the last programming pulse could be recorded in an embodiment in which the magnitude changes during the process. In one embodiment, the control circuit determines an appropriate magnitude for a start programming pulse based on the results of the intelligent verification. Thus, the recorded information could be a voltage magnitude of a dummy programming pulse. The information may be a number such as one, two, three..., identifying the number of programming loops used to program the fastest memory cells to a starting value, the magnitude of a programming voltage used to do so was used to program the fastest memory cells to a starting value, etc. It should be noted that process 600 is one embodiment that can be used to determine how quickly the memory cells are programmed, but other techniques can also be used become.

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.The recorded information may be stored externally to the memory array 126, for example in code/parameters 113. Or the information may be stored externally to the memory 108. An advantage of storing the information in the non-volatile memory cells of the memory array is that the information is not lost if a power failure occurs in the storage device or if the information is overwritten when another block is programmed. In contrast, a data register typically uses volatile memory, such as RAM, in which data is lost in the event of a power failure. Another advantage of storing information in non-volatile memory cells is that they are cheaper than RAM.

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. 8th is a flowchart of one embodiment of a process 800 for programming memory cells using an LM sequence. Process 800 is in an LM sequence used, which includes an intermediate state (IM) in one embodiment. Process 800 is an embodiment of steps 506-512 of process 500. It is noted that intelligent verification of a subset of the memory cells may thus be performed prior to process 800.

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 step 802, a magnitude for one or more dummy programming pulses is determined based on the results of the intelligent verification. In one embodiment, a magnitude is suitable for raising a threshold voltage from the erased state to near state D without overprogramming beyond state D. This can be conservative to prevent or avoid over-programming. Likewise, magnitudes can be determined that are suitable for raising threshold voltages from the erased state to the vicinity of states E, F or G, whereby the respective states can again be determined without overprogramming. Instead of going directly from the erased state to state E, the programming could go from the erased state to near state D, and then to state E. Many more examples are possible. Further details are discussed below.

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 step 804, of the memory cells to be programmed to a level near the intelligent verification level, those that did not participate in the intelligent verification are enabled for programming. In one embodiment, state D is near the intelligent verification level. Therefore, of the memory cells to be programmed into state D, those that did not participate in intelligent verification may be released in step 804. However, instead, the threshold level of another state may be considered to be close to the intelligent verification level. A data state can be defined as being near the intelligent verification level based on the verification levels. For example, if the intelligent verification level within a state is below the specified state, it is considered to be close. For example, if the intelligent verification level is between VvC and VvD, then it is considered to be close to state D. However, the intelligent verification level can be slightly above the state and still be considered close. It is noted that additional memory cells can also be released in step 804. For example, memory cells that are to be programmed to a data state above state D can be released for programming. In general, memory cells that are to be programmed into a data state above the above-mentioned state near the intelligent verification level can be released.

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 step 806, of the memory cells to be programmed to a level near the intelligent verification level, those that participated in the intelligent verification are excluded from programming. It is noted that other memory cells may also be excluded from programming in step 806.

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.In step 808, one or more dummy programming pulses are applied to the control gates of the memory cells. It should be noted that there is no programming verification to verify the results of the dummy programming pulses. It should also be noted that if more than one dummy programming pulse is applied, the memory cells enabled for programming and those excluded from programming may change. It is also noted that if more than one dummy programming pulse is applied, the magnitude of the dummy programming pulse may differ from the others depending on how much movement of V T is desired. This is done with reference to the 10 and 11 explained further.

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. 9 is a flowchart of one embodiment of a process 900 for programming memory cells using a complete sequence. Process 900 is an embodiment of steps 506-512 of process 500. It is noted that this allows intelligent verification of a subset of the memory cells to be performed prior to process 900.

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 step 902, a magnitude of one or more dummy programming pulses is determined based on the results of the intelligent verification. In one embodiment, an appropriate dummy programming pulse is determined for different states. For example, if the memory cells are to be programmed to a state A via a state G, a suitable dummy programming pulse can be used to program the erased state to the State A, or the deleted state, can be determined directly to state B, etc. Another possibility is to provide a dummy pulse whose goal is to program the erased state to state A, and then provide a dummy from the previous resulting distribution for programming to state B, etc. Further details are discussed below.

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 step 904, memory cells that did not participate in intelligent verification and that are to be programmed to a selected set of states are enabled for programming. For example, memory cells that are to be programmed into state A through state G can be released. A smaller set of the data states could be selected. It may be desirable to select those to be programmed to the higher threshold voltage states, as greater power savings may be gained in the overall programming process to dummy program the higher threshold voltage states. The term “dummy programming” refers to the application of one or more dummy programming pulses to a memory cell that has been enabled for programming.

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 step 906, memory cells that were not selected in step 904 are excluded from programming. These memory cells may include both those that participated in the intelligent verification and those that did not participate in the intelligent verification but were not selected in step 904.

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.In step 908, one or more dummy programming pulses are applied to the control gates of the memory cells. Again, note that no programming verification is performed to verify the results of the dummy programming pulses. It should also be noted that if more than one dummy programming pulse is applied, the memory cells enabled for programming and those excluded from programming may change between the dummy pulses. This will be further discussed with reference to the 13 and 14 explained.

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. 10A is a flowchart of one embodiment of a process 1000 of applying dummy pulses during an IM programming sequence. Process 1000 is an embodiment of steps 804 - 808 from process 800. Thus, intelligent verification may be performed prior to process 1000. 10B shows V T distributions before an embodiment of the process 1000. The verification reference levels VvA, VvB, VvC, VvD, VvE, VvF and VvG are also shown as examples. A delete distribution 702 and an intelligent verification distribution 1050 are shown there. In this embodiment, the intelligent verification distribution 1050 has been programmed so that the fastest programmable memory cells are at or below the state D (VvD) verification level. The intelligent verification distribution 1050 could be programmed for a higher or lower V T. One reason why the intelligent verification level is kept lower is that the V T of the memory cells can shift upward when an adjacent memory cell is programmed. By setting the intelligent verification level below VvD, overprogramming of the memory cells in state D can be prevented. However, it is noted that these effects are architecture dependent and it may not always be necessary to have the intelligent verification level below VvD. In another embodiment, the intelligent verification distribution 1050 is programmed to a verification level associated with an intermediate data state (e.g., VLM). In another embodiment, the intelligent verification distribution 1050 is programmed to a level slightly below the VLM, for the reasons just discussed. lies. Other verification levels may be used for intelligent verification distribution 1050. For clarity, the process 1000 is based on the example intelligent verification distribution 1050 shown in 10B is shown, explained.

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.It should also be noted that the magnitudes of the dummy programming pulses may have already been determined in step 802 from process 800. Process 1000 is for an embodiment that has eight data states. Process 1000 can be modified to accommodate fewer or more data states. In process 1000, it is assumed that all of the memory cells are associated with the same word line.

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 step 1002, memory cells remain in the erased state and those to be programmed into states A, B and C are excluded. In step 1004, of the memory cells to be programmed into state D, those that participated in the intelligent verification are excluded. Also the memory cells in state D that did not take part in the intelligent verification or checking are released for programming. It is noted that these memory cells are protected by intelligent verification distribution 1050 in 10B be represented. Steps 1002-1004 are expressed this way for clarity. Another way to describe this is that all memory cells that have participated in intelligent verification are excluded and all of those that are to be programmed to a state A, B or C are also excluded.

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 step 1006, the memory cells to be programmed to states E, F and G are enabled for programming. Enabling programming can be done by specifying conditions on the associated or connected bit lines that enable programming.

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 step 1008, a first dummy programming pulse is applied to the word line associated with the group of memory cells. 10C shows an example of a V T distribution after step 1008. The distribution 1052 affects the memory cells that are to be programmed to the D, E, F or G state and that were not involved in the intelligent verification. The magnitude of the dummy pulse was chosen to attempt to obtain the threshold voltages near the verification level VvD for state D in this example. The distribution 1052 can be very wide due to the different programming speeds of the individual memory cells. This means that some memory cells can shift their V T significantly or significantly more than the others. The magnitude of the dummy pulse was determined based on how quickly the memory cells were programmed during intelligent verification in one embodiment. In this example, some of the memory cells could have a V T above VvD, but this is not required. So the distribution could be 1052 lower. On the other hand, the distribution could be higher. If the V T of memory cells rises above VvE, then they may be overprogrammed (for the cells in state D). Thus, it could be advantageous to prevent a significant portion of the distribution 1052 from rising above VvE. This can be achieved by being fairly conservative with the dummy programming pulse. As also mentioned above, in some memory architectures, the V T of a memory cell can be determined by the capacitive coupling with a neighbor that is programmed later appears to increase. This effect can be taken into account when determining a suitable magnitude of the dummy programming pulse. The distribution 1050 now only represents the cells in state D that took part in the intelligent verification. Distribution 1051 represents the cells in states E, F and G that participated in intelligent verification.

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.In step 1010, memory cells in state D are excluded from further programming. In step 1012, a second dummy programming pulse is applied to the word line associated with the group of memory cells. 10D shows an example of V T distributions after step 1012. Distribution 1054 concerns the memory cells to be programmed to the E, F or G state. This includes those previously in the 1051 and 1052 distribution. Consequently, some of the cells in state E, F or G are programmed from distribution 1051 to distribution 1054. Others are programmed from the 1052 to 1054 distribution. The magnitude of the dummy pulse can be selected in such a way that an attempt is made to get close to the verification level VvE of state E with the threshold voltages. The magnitude is determined based on how quickly the memory cells are programmed during intelligent verification in one embodiment. In this example, some of the memory cells have a V T above VvE, but this is not necessary. So the distribution 1054 could be lower or higher.

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.Distribution 1053 represents cells in state D from distributions 1050 and 1052. That is, distribution 1053 represents all cells in state D. Note that distribution 1053 from 10C compared to the distribution 1052 in 10D has shrunk.

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 step 1014, memory cells in state E are excluded from further programming. In step 1016, a third dummy programming pulse is applied to the word line associated with the group of memory cells. 10E shows an example of a V T distribution after step 1016. Distribution 1056 concerns the memory cells to be programmed to states F or G. The magnitude of the dummy pulse was chosen to come close to the verification level VvF of state F with the threshold voltages. The magnitude was determined based on how fast the memory cells protruded during intelligent verification in one embodiment were grammed. In this example, some of the memory cells have a V T above VvF, but this is not necessary. Consequently, the 1056 distribution could be lower or higher. It is noted that the distribution is 1054 10D compared to the distribution 1054 10E has shrunk because the distribution 1054 now only contains memory cells in state E.

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.In step 1018, memory cells in state F are excluded from further programming. In step 1020, a fourth dummy programming pulse is applied to the word line associated with the group of memory cells. 10F shows an example of V T distributions after step 1020. Distribution 1058 has the memory cells to be programmed to state G. The magnitude of the dummy pulse was selected to come close to the verification level VvG of state G with the threshold voltages. The magnitude of the dummy pulse was determined based on how quickly the memory cells were programmed during intelligent verification in one embodiment. In this example, some of the memory cells have a V T above VvG, but this is not necessary. So the distribution could be 1058 lower or higher. It is noted that the distribution is 1056 10E compared to the distribution 1056 10F has shrunk.

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.The result 10F is that most of the V T of the memory cells programmed to the E, F and G states have increased above VvD. This can save power when programming to an intermediate state, as explained below. However, prior to this explanation, another embodiment will be discussed that may result in V T distributions similar to those of 10F is.

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. 11A is a flowchart of another embodiment of a process 1100 of applying dummy pulses during an IM programming sequence. Process 1100 is an embodiment of steps 804 - 808 from process 800. Thus, the intelligent verification can be performed before process 1100. Thus the V T distributions are off 10B also applicable to the conditions prior to an embodiment of the process 1100. The magnitudes of the dummy programming pulse for process 1100 were also already determined in step 802 from process 800. Process 1100 is for an embodiment that has eight data states. The process 1100 can be modified to accommodate fewer or more data states. In process 1100, it is assumed that all memory cells are associated with the same word line.

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 step 1102, memory cells that are to remain in the erased state and those that are to be programmed to the A, B, C, E, F and G states are excluded. In step 1104, programming the memory cells to state D, those who participated in the intelligent verification are excluded. Steps 1002 - 1004 are expressed this way for ease of explanation. Another way of saying this is that all memory cells that have participated in the intelligent verification are excluded, and those that are to be programmed to the states A, B, C, E, F and G, just like those that should remain in the deleted state should also be excluded.

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 step 1106, programming the memory cells to state D, those that did not participate in intelligent verification are enabled for programming. Enabling programming can be achieved by setting conditions for the associated bit lines that enable programming.

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 step 1108, a first dummy programming pulse is applied to the word line associated with the group of memory cells. 11B shows an example of V T distributions after step 1108. Distribution 1152 concerns the memory cells that are to be programmed to state D and that were not involved in the intelligent verification. The magnitude of the dummy pulse was selected to come close to the verification level VvD of state D with the threshold voltages. The magnitude of the dummy pulse is determined in one embodiment based on how quickly the memory cells were programmed during intelligent verification. Consequently, the distribution 1152 could be lower or higher. The distribution 1150 refers to the memory cells in states D, E, F and G that were included in the intelligent verification.

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 step 1110, all memory cells in state D are excluded. In addition, the memory cells in state E are released for programming. Those remaining in the erased state and those to be programmed to states A, B, C, F, and G remain in the excluded state.

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 step 1112, a second dummy programming pulse is applied to the word line associated with the group of memory cells. 11C shows an example of V T distributions after step 1112. Distribution 1154 concerns the memory cells that are to be programmed to the E state. Some of these memory cells come from the intelligent verification distribution 1150 (from 11B) , others from erase distribution 702. Distribution 1151 contains memory cells in states D, F and G that were in intelligent verification. The magnitude of the dummy pulse was chosen to get the threshold voltages close to the verification level VvE of state E. The magnitude was determined based on how quickly the memory cells were programmed during intelligent verification in one embodiment. In this example, some of the memory cells have a V T above VvE, but this is not necessary. The distribution 1154 could therefore be lower or higher.

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 step 1114, all memory cells in state E are excluded. In addition, the memory cells in state F are released for programming. Those intended to remain in the erased state and those to be programmed to states A, B, C, D, and G remain in the excluded state.

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 step 1116, a third dummy programming pulse is applied to the word line associated with the group of memory cells. 11D shows an example of V T distributions after step 1112. Distribution 1156 concerns the memory cells to be programmed to the F state. Some of these memory cells come from erase distribution 702, others come from distribution 1151. Distribution 1155 contains the cells in state(s) D and G that participated in intelligent verification (previously in distribution 1151). The magnitude of the dummy pulse was chosen to get the threshold voltages close to the verification level VvF of state F. The magnitude was determined based on how quickly the memory cells were programmed during intelligent verification in one embodiment. In this example, some of the memory cells have a V T above VvF, but this is not necessary. The distribution 1156 could therefore be lower or higher.

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 step 1118, all memory cells in state F are excluded. In addition, memory cells in state G are released for programming. Those remaining in the erased state and those to be programmed to states A, B, C, D, and E remain in the excluded state.

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.In step 1120, a fourth dummy programming pulse is applied to the word line associated with the group of memory cells. 11E shows an example of V T distributions after step 1120. Distribution 1158 concerns the memory cells to be programmed into the G state. Some of the cells are from deletion distribution 702, others are from distribution 1155. Figure 1155 is in 11E Not shown. Distribution 1159 represents all cells in state D (including those previously in distributions 1155 and 1152). The magnitude of the dummy pulse was chosen to get the threshold voltage close to the verification level VvG of state G. The magnitude was determined based on how quickly the memory cells were programmed during intelligent verification in one embodiment. In this example, some of the memory cells have a V T above VvG, but this is not necessary. The distribution 1158 could therefore be lower or higher.

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.It is noted that results from 11E after process 1100 the results 10F according to process 1000 can be the same or similar. Other variations are possible. For example, according to the results 10C , in which the cells in states D, E, F and G are in a distribution 1052, a dummy pulse is used to bring the cells in state E close to VvE, the cells in state F close to VvF (using a dummy pulse) and to get or push the cells in state G close to the VvG (using a dummy pulse).

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. 12A is a flowchart of one embodiment of a process 1200 of programming memory cells to an LM state. Process 1200 can be used after process 1000 or 1100 has been performed. In step 1202, conditions are set on the bit lines to enable programming of the memory cells to be programmed into the D, E, F and G states. In step 1204, conditions are set on the bit lines to prevent programming of the memory cells that are to remain in the erased state as well as those that are to be programmed to the A, B and C states.

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.In step 1206, a programming voltage is applied to the word line. In step 1208, a programming verification operation is performed. In step 1210, it is determined whether LM programming is complete. This step may check whether a sufficient number of the memory cells have a V T greater than the LM state. If not, then the process continues at step 1212. In step 1212, memory cells that have passed LM verification are excluded. Process 1200 then continues at step 1206. After step 1210 indicates that programming of the LM state is complete, the process is terminated.

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. 12B shows results after process 1200. The LM distribution 1226 is shown immediately above the LM verification level (VLM). The distribution 1254 refers to the memory cells that are in the distribution 1054 10F were. It is noted that some of the memory cells in the distribution are 1054 10F were, perhaps programmed a little, and are now shown as part of the LM distribution 1226. Similar reasons can apply to distributions 1056 and 1058 10F apply. However, it is possible for a distribution to be made 10F is or was so high that no memory cell was programmed during process 1200. The distribution is 1052 10F has no corresponding distribution 12B . For purposes of discussion, assume that all memory cells in distribution 1052 are now in LM distribution 1226.

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.It is also noted that some of the memory cells that were in the intelligent verification distribution 1050 are now in the LM distribution 1226. This means that memory cells that are to be programmed into states D, E, F and G and which participated in the intelligent verification have been programmed from the distribution 1050 into the LM distribution 1226.

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.The discussion above compares the V T distributions 10F with those of 12B . Similar justifications concern the V T distributions 1152, 1154, 1156 and 1158 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.It is noted that a significant amount of power is saved in process 1200 due to the following reasons. Many of the memory cells in distributions 1054, 1056 and 1058 10F can be excluded from the process at an early stage. This reduces the total BL capacity or capacitance that must be precharged during the programming process. This can save a significant amount of power when programming conditions are specified. Also during program verification in process 1200, they will not conduct current because their V T is above the LM verification level. This saves additional power during program verification or verification.

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.After process 1200, the LM programming sequence may be completed by programming all memory cells to their final states. This can involve programming the memory cells from the LM distribution 1226 to one of the states D, E, F or G; programming the memory cells from distribution 1254 to state E; programming the memory cells from distribution 1256 to state F; and programming the memory cells from distribution 1258 to state G. Additionally, some of the memory cells in the erased state 702 are programmed to states A, B, or C. The above programming can be done in a single phase or in multiple phases.

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. 13A is a flowchart of one embodiment of a process 1300 of programming using a complete sequence. Process 1300 is an embodiment of steps 904 - 908 from process 900. Thus, intelligent verification may be performed prior to process 1300. It should be noted that the intelligent verification level may differ from those used in processes 1000 and 1100. A possible verification level of the process 1300 is at the verification level (VvA) of state A. However, as described above, the intelligent verification level may be slightly below the verification level (VvA) of state A in order to accommodate any V T shift of the memory cells that may occur to take into account subsequent programming of an adjacent memory cell. As mentioned, this effect or impact may depend on the memory architecture.

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.The magnitudes for the dummy programming pulse of process 1300 may also have already been determined in step 902 of process 900. Process 1300 is for an embodiment with eight data states. The process 1300 can be modified to accommodate fewer or more data states. In process 1300, it is assumed that all of the memory cells are associated with the same word line.

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 step 1302, the memory cells that are to remain in the erased state are excluded. Memory cells in state A that have undergone intelligent verification can also be excluded. In step 1304, memory cells to be programmed to states B through G are enabled for programming. Memory cells in state A that did not take part in the intelligent verification or checking are also released for programming. In step 1306, a dummy programming pulse is applied to the word line. The magnitude or size of this dummy pulse can be determined based on the intelligent verification or checking. 13B shows the results according to one embodiment of step 1306. 13B shows an erase distribution 702 and a distribution 1352. The distribution 1352 includes those memory cells that are programmed from the erase state 702. For the sake of clarity, an intelligent verification distribution is included in 13B Not shown.

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 step 1308, memory cells that are to be programmed to state A are excluded. The memory cells that are to remain in the erased state remain in the excluded state. The memory cells that are to be programmed into states B to G remain in the state enabled for programming. In step 1310, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13C shows results according to one embodiment of step 1310. 13C shows distribution 1354, which represents the memory cells in states B through G that were programmed from distribution 1352. The distribution 1352 now only contains the memory cells in state 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 step 1312, memory cells to be programmed to state B are excluded. Other memory cells remain in their previous state. In step 1314, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13D shows results according to one embodiment of step 1314. 13D shows distribution 1356, which represents the memory cells in states C through G that were programmed from distribution 1354. The distribution 1354 now only contains the memory cells in state 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 step 1316, memory cells that are to be programmed to state C are excluded. Other memory cells remain in their previous states. In step 1318, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13E shows results according to one embodiment of step 1318. 13E shows distribution 1358, which represents the memory cells in states D through G that were programmed from distribution 1356. The distribution 1356 now only contains the memory cells in state 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 step 1320, memory cells that are to be programmed to state D are excluded. Other memory cells remain in their previous states. In step 1322, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13F shows results according to one embodiment of step 1322. 13F shows distribution 1360, which represents the memory cells in states E through G programmed from distribution 1358. The distribution 1358 now only contains the memory cells in state 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 step 1324, memory cells that are to be programmed to state E are excluded. Other memory cells remain in their previous states. In step 1326, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13G shows results according to one embodiment of step 1318. 13G shows distribution 1362, which represents the memory cells in states F through G that were programmed from distribution 1360. The distribution 1360 now only contains the memory cells in state 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.In step 1328, memory cells that are to be programmed to state F are excluded. Other memory cells remain in their previous states. In step 1330, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 13H shows results according to one embodiment of step 1330. 13H shows distribution 1364, which represents the memory cells in states G programmed from distribution 1362. The distribution 1360 now only contains the memory cells in state 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. 14A is a flowchart of one embodiment of a process 1400 of programming using a complete sequence. In process 1400, the dummy programming pulse advances the V T directly from the erased state to near its intended programming state. Process 1400 is an embodiment of steps 904 - 908 from process 900. Thus, intelligent verification may be performed prior to process 1400. In one embodiment, the intelligent verification level is at the AvV level, or slightly below the AvV level. The magnitudes of the dummy programming pulse of process 1400 may have already been determined in step 902 of process 900. Process 1400 is for an eight data state embodiment. The process 1400 can be modified to accommodate fewer or more data states. In process 1400, it is assumed that all of the memory cells are associated with the same word line.

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 step 1402, the memory cells that are to remain in the erased state and in states B through G are excluded. In addition, the memory cells in state A that took part in the intelligent verification can be excluded. In step 1404, the memory cells to be programmed into state A that did not participate in the intelligent verification are enabled for programming. In step 1406, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14B shows the results according to one embodiment of step 1406. 14B shows an erase distribution 702 and a distribution 1452. The distribution 1452 contains the memory cells in state A that were programmed from the erase state 702. The distribution 1452 may also include the memory cells in states A through G that were programmed during intelligent verification.

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 step 1408, the memory cells to be programmed to state A are excluded. The memory cells that are to be programmed to state B are released for programming. Other memory cells remain in the excluded state. In step 1410, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14C shows the results according to one embodiment of step 1410. 14C shows a distribution 1454 representing the state B memory cells programmed from the erase state 702.

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 step 1412, the memory cells to be programmed to state B are excluded. The memory cells that are to be programmed to state C are released for programming. Other memory cells remain in the excluded state. In step 1414, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14D shows the results according to one embodiment of step 1414. 14D shows a distribution 1456 representing the state C memory cells programmed from the erase state 702.

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 step 1416, the memory cells to be programmed to state C are excluded. The memory cells that are to be programmed to state D are released for programming. Other memory cells remain in the excluded state. In step 1418, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14E shows the results according to one embodiment of step 1418. 14E shows a distribution 1458 representing the memory cells of state D that were programmed from the erase state 702.

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 step 1420, the memory cells to be programmed to state D are excluded. The memory cells that are to be programmed to state E are released for programming. Other memory cells remain in the excluded state. In step 1422, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14F shows the results according to one embodiment of step 1422. 14F shows a distribution 1460 representing the memory cells of state E that were programmed from the erase state 702.

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 step 1424, the memory cells to be programmed to state E are excluded. The memory cells that are to be programmed to state F are released for programming. Other memory cells remain in the excluded state. In step 1426, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14G shows the results according to one embodiment of step 1426. 14G shows a distribution 1462 representing the memory cells of state F that were programmed from the erase state 702.

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.In step 1428, the memory cells to be programmed to state F are excluded. The memory cells that are to be programmed to state G are released for programming. Other memory cells remain in the excluded state. In step 1430, a dummy programming pulse is applied to the word line. The magnitude of this dummy pulse can be determined based on the intelligent verification. 14H shows the results according to one embodiment of step 1430. 14H shows a distribution 1464 representing the memory cells of state G that were programmed from the erase state 702.

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. 15 is a flowchart of a process 1500 of completing complete sequence programming. This process can be done after process 1300 or 1400. The process 1500 can begin with the V T distributions like the examples from 13H or 14H look, but is not limited or limited to these examples. A goal of one embodiment of process 1500 is to tighten V T distributions. In step 1502, memory cells to be programmed to states A through G are enabled for programming. Memory cells in the erase state can be excluded. In one embodiment, information about the V T of the memory cells is maintained during intelligent verification so that some of the memory cells in states A to G can be excluded to prevent possible overprogramming.

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.In step 1504, a programming voltage is applied to the word line associated with the memory cells. In step 1506, programming verification is performed at the various levels (e.g., VvA, VvB, VvC, VvD, VvE, VvF, Vvg). In step 1508, memory cells that have passed verification for their respective states are excluded from further programming. Step 1510 determines whether programming is complete. This check can only be based on a certain number of memory cells that fail program verification. The programming voltage (Vpgm) is increased in step 1512 if programming is not complete. The process returns to step 1504 if programming is not complete.

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.It is noted that power consumption during the process 1500 can be significantly reduced. Because many of the memory cells have such a high V T at the beginning of process 1500, they will not conduct current when verifying at many of the verification reference levels. This is in contrast to a conventional or traditional process. Recall that processes 1300 and 1400 apply dummy pulses. Consequently, no power was used or consumed during programming verification in these processes 1300 and 1400.

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. 16 is a diagram of a part of 4A . The region between local interconnects 404 and 406 is shown. 16 shows a technique for selecting the memory cells that participate in intelligent verification. The memory cells are numbered 1 - 8. This numbering may refer to how they are addressed. The memory cells labeled 1, 2, 7, or 8 are closer to the local interconnects 404, and 406. These are referred to as “outer memory cells.” The memory cells labeled 3, 4, 5, and 6 are further away from the local interconnects. These are called “internal memory cells”. The programming characteristics (e.g. speed) of the inner memory cells may differ from those of the outer memory cells.

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.In one embodiment, memory cells are selected for intelligent verification based on whether they are inner or outer memory cells. For example, inner memory cells could be selected for intelligent verification while the outer memory cells are not selected. Alternatively, outer memory cells can be selected for intelligent verification while the inner memory cells are not selected. One possible reason for this is that memory cells that can be programmed more quickly are selected for intelligent verification. Selecting fast cells to program can be useful to ensure that the dummy pulse(s) derived from the intelligent verification is not too high in magnitude. Other reasons can be used to choose between inner and outer memory cells. Additionally, the selection of inner or outer memory cells is an example of selecting memory cells for intelligent verification based on their physical location. In this example, it is based on the distance of the memory cells from the local interconnects 404 and 406. There may be other configurations in which the physical location of the memory cells affects the programming speed. The concept of selecting memory cells that are programmed more quickly for intelligent verification den, can be extended to other physical or physical conditions.

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.An embodiment as disclosed herein includes a non-volatile memory device having a plurality of non-volatile memory elements and control circuitry in communication with the non-volatile memory elements. The control circuit is configured to receive a command to program a group of the plurality of non-volatile memory elements and to enable a subset of the group of non-volatile memory elements for programming and to disable the remaining memory elements in the group for programming. The control circuit is configured to perform an intelligent verification on the subset of non-volatile memory elements and to determine a magnitude of the dummy programming pulse based on the intelligent verification. The control circuit is configured to release for programming the selected non-volatile memory elements in the group for which intelligent verification has not been performed. The control circuit is configured to prevent programming of the selected non-volatile memory elements in the group for which the intelligent verification was performed. The control circuit is configured to apply the dummy programming pulse to the group of non-volatile memory elements while enabling the selected non-volatile memory elements in the group for which the intelligent verification has not been performed to be programmed, and while the selected non-volatile memory elements in the group for which the intelligent verification was carried out are excluded from programming. The control circuit is configured to program the group of non-volatile memory elements after the dummy programming pulse is applied to the group.

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.An embodiment as disclosed herein includes a method of operating non-volatile memory. The method includes receiving a command to program a group of non-volatile memory elements, enabling programming of a subset of the group of non-volatile memory elements and preventing programming of the remaining memory elements in the group, performing an intelligent verification on the subset of non-volatile memory elements. Based on the intelligent verification or checking, a magnitude of a dummy programming pulse is determined. The method also includes enabling the programming of selected non-volatile memory elements in the group for which the intelligent verification has not been carried out, excluding the selected non-volatile memory elements in the group from programming for which the intelligent verification has been carried out and applying the dummy programming pulse to the group of non-volatile memory elements during the release to program selected non-volatile memory elements in the group for which the intelligent verification was not performed and while the selected non-volatile memory elements Volatile memory elements in the group for which intelligent verification has been carried out are excluded from programming. The method further includes programming the group of non-volatile memory elements after the dummy programming pulse is applied.

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.One embodiment includes a 3D stacked non-volatile memory device that includes a substrate, a three-dimensional memory array overlying the substrate, and control circuitry in communication with the non-volatile memory element. The three-dimensional memory array includes a plurality of non-volatile memory elements, each having a control gate. The control circuit receives a command to program a group of the plurality of non-volatile memory elements, applies signals to the control gates of the group of non-volatile memory elements while enabling a first set of non-volatile memory elements in the group for programming and a second Set of non-volatile memory elements in the group are excluded from programming. The control circuit samples the first set of non-volatile memory elements in response to the applied signals, determines the programming characteristics based on the applied signals and the sampling of the first set of non-volatile memory elements, and determines a magnitude or size of a dummy programming pulse based on the programming characteristics. The control circuit enables the selected non-volatile memory elements in the second set for programming, prohibits programming of the selected non-volatile memory elements in the first set, and applies the dummy programming pulse to the control gates of the group of non-volatile memory elements while the selected non-volatile memory elements in the second set are released for programming, whichever Rend the selected non-volatile memory elements in the first set from programming. The control circuit programs the group of non-volatile memory elements after the dummy programming pulse is applied.

Claims (15)

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.A non-volatile memory device comprising: a plurality of non-volatile memory elements (MC1, MC2, ...); a control circuit (110, 122, 124, 128, 132) communicating with the non-volatile memory elements, the control circuit configured to: receive an instruction for programming a group of the plurality of non-volatile memory elements; to characterize a programming speed of the group by applying a programming signal to the group while a subset of the group is enabled for programming and the remaining members of the group are prevented from being programmed, wherein in characterizing the programming speed a threshold voltage verification on an intelligent verification reference level is carried out; determine a magnitude for a dummy programming pulse based on the programming speed; applying the dummy programming pulse to the group while selected ones of the remaining members of the group are enabled for programming and while the subset is prevented from being programmed; and program the group of non-volatile memory elements after the dummy programming pulse is applied to the group. 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.Non-volatile storage device Claim 1 , wherein the control circuit configured to characterize the programming speed of the group is further configured to: sense the non-volatile memory elements in the subset after the programming signal is applied while the remaining members of the group be excluded from recording. 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 überschreitetNon-volatile storage device Claim 1 , wherein the selected ones of the remaining members of the group that are enabled for programming while the control circuit applies the dummy programming pulse to the group are to be programmed to a threshold voltage that exceeds a target threshold voltage of one or more members of the group 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.Non-volatile storage device Claim 1 , wherein the control circuit is configured to not validate the non-volatile memory elements in response to the dummy programming pulse being applied. 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.Non-volatile storage device Claim 1 , wherein the selected ones of the remaining members of the group that are enabled for programming are to be programmed from a clear state to an intermediate state while the control circuit applies the dummy programming pulse to the group. 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.Non-volatile storage device Claim 1 , wherein the selected ones of the remaining members of the group that are enabled for programming while the control circuit applies the dummy programming pulse to the group are to be programmed from a clear state to any one of a plurality of data states. 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.Non-volatile storage device Claim 1 , which further comprises a three-dimensional memory array or a memory matrix having a plurality of word line layers, the group of non-volatile memory elements lying in the same word line layer. 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.Non-volatile storage device Claim 7 , wherein non-volatile memory elements in the group have different distances from a local connection or a local interconnect, the subset being selected to characterize the programming speed of the group based on the distance from the local connection. 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).A method of operating a non-volatile memory, comprising: receiving an instruction to program a group of non-volatile memory elements (502); enabling programming of a subset of the group of non-volatile memory elements and preventing programming of remaining memory elements in the group (504); performing intelligent verification of the subset of non-volatile memory elements (504); determining a magnitude of a dummy programming pulse (506) based on the intelligent verification; Release for programming selected non- volatile memory elements in the group for which intelligent checking was not performed (508); excluding from programming selected non-volatile memory elements in the group for which the intelligent check was performed (510); Applying the dummy programming pulse to the group of non-volatile memory elements during enabling to program selected non-volatile memory elements in the group for which the intelligent check has not been performed and during excluding from programming (512) the selected non-volatile memory elements Storage items in the group for which smart scanning was performed; and continuing to program the entire group of non-volatile memory elements after the dummy programming pulse is applied (514). 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.Procedure according to Claim 9 , wherein performing an intelligent check on the subset of non-volatile memory elements includes: excluding from programming all non-volatile memory elements in the group that are not in the subset; enabling programming of non-volatile memory elements in the subset to be programmed from an erase state to a data state; applying a programming signal to control gates of the group of non-volatile memory elements; and sensing the non-volatile memory elements in the subset. 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.Procedure according to Claim 10 , wherein scanning the non-volatile memory elements in the subset includes: excluding from the sampling all non-volatile memory elements in the group that are not in the subset; and enabling scanning of the non-volatile memory elements in the subset to be programmed from an erase state to a data state. 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, umfasstProcedure according to one of the Claims 9 until 11 , further comprising selecting the subset based on the physical address or physical location of the non-volatile memory elements in the group 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.Procedure according to Claim 9 , wherein the release to program selected non-volatile memory elements in the group for which the intelligent check was not performed includes: Release to program non-volatile memory elements that were not affected by the intelligent check and which are close to a first data state should be programmed to a reference state for intelligent checking. 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.Procedure according to Claim 13 , which further includes enabling the programming of non-volatile memory elements that were affected by the intelligent check and which are to be programmed into a second data state above the first data state. 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 liegtProcedure according to Claim 14 , wherein determining a magnitude of a dummy programming pulse includes: determining a magnitude of a dummy programming pulse for changing a threshold voltage immediately from an erase state to a state close to but not above the second data state
DE112016003568.3T 2015-10-30 2016-09-13 Intelligent checking or verification for programming non-volatile memory Active DE112016003568B4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,436 US9564226B1 (en) 2015-10-30 2015-10-30 Smart verify for programming non-volatile memory
US14/928,436 2015-10-30
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 (en) 2018-06-14
DE112016003568B4 true DE112016003568B4 (en) 2023-12-21

Family

ID=56940477

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016003568.3T Active DE112016003568B4 (en) 2015-10-30 2016-09-13 Intelligent checking or verification for programming non-volatile memory

Country Status (4)

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

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
US10839928B1 (en) 2019-05-16 2020-11-17 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US11081198B2 (en) 2019-05-16 2021-08-03 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
CN115512747A (en) 2021-06-23 2022-12-23 桑迪士克科技有限责任公司 Apparatus and method for intelligent verification with adjacent plane interference detection
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
ATE518229T1 (en) 2005-10-27 2011-08-15 Sandisk Corp METHOD FOR PROGRAMMING A MULTI-STATE NON-VOLATILE MEMORY USING INTELLIGENT VERIFICATION
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 (en) * 2006-10-20 2008-04-18 삼성전자주식회사 Flash memory device having multiple speed operation mode
US7570520B2 (en) 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7564715B2 (en) 2007-02-20 2009-07-21 Sandisk Corporation Variable initial program voltage magnitude for non-volatile storage
JP5529858B2 (en) * 2008-06-12 2014-06-25 サンディスク テクノロジィース インコーポレイテッド Nonvolatile memory and method with index programming and reduced verify
KR100976696B1 (en) 2008-07-10 2010-08-18 주식회사 하이닉스반도체 Method for programming of non volatile memory device
JP5172555B2 (en) 2008-09-08 2013-03-27 株式会社東芝 Semiconductor memory device
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 (en) 2008-12-05 2010-06-17 Toshiba Corp Semiconductor memory device
US8755229B1 (en) 2009-06-23 2014-06-17 Micron Technology, Inc. Limiting flash memory over programming
KR101633018B1 (en) 2009-12-28 2016-06-24 삼성전자주식회사 Flash memory device and program method thereof
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 (en) 2010-06-07 2011-12-22 Toshiba Corp Nonvolatile semiconductor memory device
US9361986B2 (en) * 2011-09-19 2016-06-07 Sandisk Technologies Inc. High endurance non-volatile storage
JP2013122799A (en) 2011-12-09 2013-06-20 Toshiba Corp Nonvolatile semiconductor storage device
US9142298B2 (en) 2013-02-11 2015-09-22 Sandisk Technologies Inc. Efficient smart verify method for programming 3D non-volatile memory
EP2965319B1 (en) * 2013-03-04 2017-04-19 SanDisk Technologies LLC Dynamic erase depth for improved endurance of 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 (en) 2018-06-14
CN108028069A (en) 2018-05-11
CN108028069B (en) 2021-05-25
WO2017074576A1 (en) 2017-05-04
US9564226B1 (en) 2017-02-07

Similar Documents

Publication Publication Date Title
DE112016003568B4 (en) Intelligent checking or verification for programming non-volatile memory
DE112017004208B4 (en) 3D NAND WITH PARTIAL BLOCK ERASE
DE112017001761B4 (en) NAND structure with stage select gate transistors
DE102008034003B4 (en) Non-volatile memory with strings of stacked NAND-type resistive memory cells and method of making same
DE112017003298T5 (en) Schema for shutting down wordlines to remove residual electrons
DE112019000164T5 (en) MEMORY DEVICE WITH LINKED WORDLINES FOR QUICK PROGRAMMING
DE112019000152T5 (en) NESTED PROGRAMMING AND CHECKING IN NON-VOLATILE STORAGE
DE112018003426T5 (en) REDUCING THE READING DISTURBANCE BY INJECTING HOT ELECTRONES IN 3D MEMORY DEVICE WITH CONNECTED SOURCE END SELECTION GATES
DE112019000157T5 (en) MEMORY DEVICE WITH BIT LINES SEPARATED BY NAND CHAINS FOR FAST PROGRAMMING
DE102018105685A1 (en) Multi-state program that uses controlled low-power boosting for a nonvolatile memory
DE102017104265A1 (en) Dummy voltage for reducing the first-read effect in a memory
DE112019000148T5 (en) Dynamic bit sampling techniques for programming memory devices
DE112015003651T5 (en) ADAPTIVE SELECTIVE BITLE LOADING FOR POWER SAVINGS AND FAST PROGRAMMING
DE112016000654T5 (en) Multi-state programming for non-volatile memory
DE102019124668A1 (en) TRANSISTOR THRESHOLD VOLTAGE HOLDING IN 3D MEMORY
DE112014005480T5 (en) Systems, methods and apparatus for memory cells having common source lines
DE102020105991A1 (en) SUBBLOCK SIZE REDUCTION FOR NON-VOLATILE 3D MEMORY
DE112019005518T5 (en) MULTI-STATE PROGRAMMING IN A STORAGE DEVICE WITH LOOP-DEPENDENT BIT LINE VOLTAGE DURING VERIFICATION
DE112019000159T5 (en) RAMP DOWN SCAN BETWEEN PROGRAM VOLTAGE AND TEST VOLTAGE IN A STORAGE DEVICE
DE102022102591A1 (en) SYSTEMS AND METHODS FOR ADJUSTING THE THRESHOLD VOLTAGE DISTRIBUTION DUE TO SEMI-CIRCLE SGD
DE102020107504A1 (en) NON-VOLATILE MEMORY ARRAY THAT IS DRIVEN BY BOTH SIDES TO IMPROVE PERFORMANCE
DE102022102593A1 (en) MEMORY PROGRAMMING WITH SELECTIVELY SKIP VERIFICATION PULSE TO IMPROVE PERFORMANCE
DE102021107268A1 (en) PROGRAMMING MEMORY CELLS USING CODED TLC-FINE
DE102021106907A1 (en) HOLE PRE-CHARGING SCHEME WITH GATE-INDUCED DRAIN LEAKAGE GENERATION
DE112023000257T5 (en) TIME TAGGING OF MULTIPLE WORDLINE READ LEVELS FOR DATA RETENTION IN OPEN BLOCKS

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