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