DE112016003568B4 - Intelligent checking or verification for programming non-volatile memory - Google Patents
Intelligent checking or verification for programming non-volatile memory Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 534
- 238000012795 verification Methods 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 claims description 157
- 238000005070 sampling Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 396
- 238000009826 distribution Methods 0.000 description 149
- 230000008569 process Effects 0.000 description 116
- 239000010410 layer Substances 0.000 description 80
- 239000000758 substrate Substances 0.000 description 17
- 101000578349 Homo sapiens Nucleolar MIF4G domain-containing protein 1 Proteins 0.000 description 10
- 102100027969 Nucleolar MIF4G domain-containing protein 1 Human genes 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 101100186130 Arabidopsis thaliana NAC052 gene Proteins 0.000 description 3
- 101100301219 Arabidopsis thaliana RDR6 gene Proteins 0.000 description 3
- 101100529509 Arabidopsis thaliana RECQL4A gene Proteins 0.000 description 3
- 101100203168 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SGS1 gene Proteins 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 229910052751 metal Inorganic materials 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 3
- 229920005591 polysilicon Polymers 0.000 description 3
- 229910004298 SiO 2 Inorganic materials 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- TWNQGVIAIRXVLR-UHFFFAOYSA-N oxo(oxoalumanyloxy)alumane Chemical compound O=[Al]O[Al]=O TWNQGVIAIRXVLR-UHFFFAOYSA-N 0.000 description 2
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 2
- 239000010937 tungsten Substances 0.000 description 2
- 229910052721 tungsten Inorganic materials 0.000 description 2
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 229910052681 coesite Inorganic materials 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 229910052906 cristobalite Inorganic materials 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 229910052914 metal silicate Inorganic materials 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- REQCZEXYDRLIBE-UHFFFAOYSA-N procainamide Chemical compound CCN(CC)CCNC(=O)C1=CC=C(N)C=C1 REQCZEXYDRLIBE-UHFFFAOYSA-N 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052682 stishovite Inorganic materials 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000003949 trap density measurement Methods 0.000 description 1
- 229910052905 tridymite Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits 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.
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 einesProzesses 500 zur Programmierung nicht-flüchtiger Speicherelemente. -
6 ist ein Flussdiagramm einer Ausführungsform einesProzesses 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 einesProzesses 800 zur Programmierung von Speicherzellen unter Verwendung einer LM-Sequenz. -
9 ist ein Flussdiagramm einer Ausführungsform einesProzesses 900 zur Programmierung von Speicherzellen unter Verwendung einer vollständigen Sequenz. -
10A ist ein Flussdiagramm einer Ausführungsform einesProzesses 1000 zur Anwendung eines Dummy-Programmierungsimpulses während einer IM-Programmierungssequenz. -
10B zeigt VT-Verteilungen vor einer Ausführungsform einesProzesses 1000 aus10A . -
10C -10F zeigen VT-Verteilungen während einer Ausführungsform einesProzesses 1000 gemäß10A . -
11A ist ein Flussdiagramm einer anderen Ausführungsform einesProzesses 1100 zur Anwendung eines Dummy-Programmierungsimpulses während einer IM-Programmierungssequenz. -
11B -11E zeigen VT-Verteilungen während einer Ausführungsform einesProzesses 1100 aus11A . -
12A ist ein Flussdiagramm einer Ausführungsform einesProzesses 1200 zur Programmierung von Speicherzellen in einen LM-Zustand. -
12B zeigt Ergebnisse nach einer Ausführungsform desProzesses 1200. -
13A ist ein Flussdiagramm einer Ausführungsform einesProzesses 1300 zur Programmierung unter Verwendung einer vollständigen Sequenz. -
13B -13H zeigen VT-Verteilungen während einer Ausführungsform desProzesses 1300 aus13A . -
14A ist ein Flussdiagramm einer Ausführungsform einesProzesses 1400 zur Programmierung unter Verwendung einer vollständigen Sequenz. -
14B -14H zeigen VT-Verteilungen während einer Ausführungsform desProzesses 1400 aus14A . -
15 ist ein Flussdiagramm einer Ausführungsform einesProzesses 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.
-
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 to1 . -
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 aprocess 500 for programming non-volatile memory elements. -
6 is a flowchart of one embodiment of aprocess 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 aprocess 800 for programming memory cells using an LM sequence. -
9 is a flowchart of one embodiment of aprocess 900 for programming memory cells using a complete sequence. -
10A is a flowchart of one embodiment of aprocess 1000 for applying a dummy programming pulse during an IM programming sequence. -
10B shows V T distributions before an embodiment of aprocess 100010A . -
10C -10F show V T distributions during an embodiment of aprocess 1000 according to10A . -
11A is a flowchart of another embodiment of aprocess 1100 for applying a dummy programming pulse during an IM programming sequence. -
11B -11E show V T distributions during one embodiment of aprocess 110011A . -
12A is a flowchart of one embodiment of aprocess 1200 for programming memory cells into an LM state. -
12B shows results according to one embodiment ofprocess 1200. -
13A is a flowchart of one embodiment of aprocess 1300 for programming using a complete sequence. -
13B -13H show V T distributions during one embodiment ofprocess 130013A . -
14A is a flowchart of one embodiment of aprocess 1400 for programming using a complete sequence. -
14B -14H show V T distributions during one embodiment ofprocess 140014A . -
15 is a flowchart of one embodiment of aprocess 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.
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.
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
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
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-
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
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)
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
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.
Der Block, der in
Obwohl
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.
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
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
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
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
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.
An oder in der Nähe der unteren Kante der Schwellenwertverteilung für jeden programmierten Zustand befindet sich eine Verifizierungsreferenzspannung. Beispielsweise zeigt
Zwischen jedem benachbarten Paar der VT-Verteilungen liegen Lesereferenzspannungen, die dazu verwendet werden, Daten aus der Speicherzelle zu lesen. Beispielsweise zeigt
Es wird darauf hingewiesen, dass in einigen Ausführungsformen direkt nach der Programmierung die Schwellenwertspannungsverteilung derjenigen aus
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.
Der Prozess 500 kann in einer Reihe von Programmierungssequenzen verwendet werden. Ein Beispiel wird als vollständige Sequenzprogrammierung bezeichnet. In der vollständigen Sequenzprogrammierung können Speicherzellen aus dem gelöschten Zustand auf ihren entsprechenden Zielschwellenwert während einer einzigen Phase programmiert werden. Ein Beispiel wird als LM-Sequenzprogrammierung bezeichnet. Bei einer LM-Sequenzprogrammierung werden Speicherzellen, deren Zielschwellenwert am Höchsten ist, zuerst aus dem gelöschten Zustand auf einen Zwischenniveau in einer Phase programmiert. Dann werden Speicherzellen entweder von dem gelöschten Zustand oder von dem Zwischenniveau auf deren entsprechenden Zielschwellenwert während einer zweiten Phase programmiert. Es gibt viele andere Programmierungssequenzen, die im Prozess 500 verwendet werden können.
In einem Schritt 504 wird eine intelligente Verifizierung bzw. Überprüfung unter Verwendung einer Teilmenge der Speicherzellen, die programmiert werden, durchgeführt. Eine Ausführungsform der intelligenten Verifizierung bzw. Überprüfung wird unten diskutiert. Kurz gesagt, während der intelligenten Verifizierung bzw. Überprüfung wählt der Steuerungsschaltkreis eine Teilmenge der Speicherzellen aus, die während der intelligenten Verifizierung bzw. Überprüfung eine gewisse Menge an Programmierung erhalten sollen. Nicht ausgewählte Speicherzellen erhalten während der intelligenten Verifizierung bzw. Überprüfung keine Programmierung. Eine Vielzahl von Techniken kann verwendet werden, um Speicherzellen auszuwählen. Die intelligente Verifizierung bzw. Überprüfung wird in einer Ausführungsform dazu verwendet, zu bestimmen, wie schnell die Speicherzellen programmiert werden. Beispielsweise kann die intelligente Verifizierung bzw. Überprüfung die Anzahl an Programmierungsimpulsen sowie die Magnitude bzw. Größe der Programmimpulse untersuchen, die dazu benötigt werden, um die Schwellenwertspannung der Speicherzellen auf ein Zielniveau zu erhöhen. Es wird darauf hingewiesen, dass einige Speicherzellen schneller programmiert werden als andere, wodurch diese Überprüfung auf der Bestimmung basiert, wann ein bestimmter Prozentsatz der Speicherzellen das Zielniveau erreicht hat, oder auf einem anderen Verfahren.In a
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
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,
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
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
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
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
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
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
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
In Schritt 610 wird bestimmt, ob die intelligente Verifizierung bzw. Überprüfung beendet ist Mit Verweis auf
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
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
Die
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
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
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
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
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
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
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
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
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
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
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
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
In Schritt 1008 wird ein erster Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt.
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.
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
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.
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.
Das Ergebnis aus
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
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
In Schritt 1108 wird ein erster Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert ist, angelegt.
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
In Schritt 1112 wird ein zweiter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt.
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
In Schritt 1116 wird ein dritter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt.
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
In Schritt 1120 wird ein vierter Dummy-Programmierungsimpuls an die Wortleitung, die mit der Gruppe von Speicherzellen assoziiert bzw. verbunden ist, angelegt.
Es wird darauf hingewiesen, dass Ergebnisse aus
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
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
Die obenstehende Diskussion vergleicht die VT-Verteilungen aus
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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)
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)
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)
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)
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 |
-
2015
- 2015-10-30 US US14/928,436 patent/US9564226B1/en active Active
-
2016
- 2016-09-13 DE DE112016003568.3T patent/DE112016003568B4/en active Active
- 2016-09-13 CN CN201680053927.9A patent/CN108028069B/en active Active
- 2016-09-13 WO PCT/US2016/051452 patent/WO2017074576A1/en active Application Filing
Patent Citations (1)
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 |