-
HINTERGRUND
-
Die Verwendung von Halbleiterspeichern in verschiedenen elektronischen Vorrichtungen Mobiltelefonen, Digitalkameras, PDAs, medizinischer Elektronik, mobilen Rechenvorrichtungen, Servern, Solid-State-Laufwerken, nicht mobilen Rechenvorrichtungen und anderen Vorrichtungen ist weit verbreitet. Ein Halbleiterspeicher kann einen nichtflüchtigen Speicher oder einen flüchtigen Speicher aufweisen. Ein nichtflüchtiger Speicher ermöglicht, dass Informationen gespeichert und behalten werden, selbst wenn der nichtflüchtige Speicher nicht mit einer Stromquelle (z. B. einer Batterie) verbunden ist. Ein Beispiel für einen nichtflüchtigen Speicher ist ein Flash-Speicher (z. B. Flash-Speicher vom NAND-Typ und NOR-Typ).
-
Benutzer von Speichersystemen, die einen nichtflüchtigen Speicher einschließen, können Daten in den nichtflüchtigen Speicher schreiben und diese Daten später zurücklesen. Zum Beispiel kann eine Digitalkamera ein Foto aufnehmen und das Foto in einem nichtflüchtigen Speicher speichern. Später kann ein Benutzer der Digitalkamera das Foto betrachten, indem er das Foto aus dem nichtflüchtigen Speicher lesen lässt. Die Leistungsfähigkeit von Speichersystemen ist für Benutzer wichtig. Das heißt, Benutzer wollen in der Regel nicht darauf warten, dass das Speichersystem in den nichtflüchtigen Speicher schreibt oder daraus liest. Zum Beispiel möchte ein Benutzer einer Digitalkamera mit nichtflüchtigem Speicher nicht darauf warten, dass ein erstes Foto gespeichert wird, bevor er weitere Fotos aufnimmt. Daher besteht ein Wunsch nach Hochleistungsspeichersystemen, die nichtflüchtigen Speicher verwenden.
-
Figurenliste
-
Gleich nummerierte Elemente beziehen sich auf gemeinsame Komponenten in den verschiedenen Figuren.
- 1 ist ein Blockdiagramm, das eine Ausführungsform eines Speichersystems darstellt.
- 2 ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe.
- 3 ist ein Blockdiagramm einer Ausführungsform einer Lese-/Schreibschaltung und einer ECC-Schaltung einer integrierten Speicherbaugruppe.
- 4 ist ein Blockdiagramm, das eine Ausführungsform eines Erfassungsblocks darstellt.
- 5 ist ein Blockdiagramm einer Speicherstruktur, die vier Ebenen einschließt.
- 6 stellt eine Draufsicht auf einen Abschnitt eines Blocks von Speicherzellen dar.
- 7 stellt eine Querschnittsansicht eines Abschnitts eines Blocks von Speicherzellen dar.
- 8 ist eine Querschnittsansicht einer vertikalen Speicherzellenspalte.
- 9 ist eine Querschnittsansicht einer Ausführungsform eines Abschnitts von zwei Blöcken von Speicherzellen.
- 10 ist eine schematische Darstellung einer Vielzahl von NAND-Ketten mit mehreren Unterblöcken.
- 11 ist eine Querschnittsansicht einer Ausführungsform eines Abschnitts von zwei Blöcken von Speicherzellen.
- 12 ist eine Querschnittsansicht eines Abschnitts von zwei Blöcken von Speicherzellen.
- Die 12A und 12B sind Tabellen, die Vorspannungen für die oberen und unteren Auswahlleitungen darstellen.
- 13 ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe.
- 14 ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe.
- 15 stellt eine Ausführungsform eines Grundrisses für einen Steuer-Die dar.
- 16 stellt eine Ausführungsform eines Grundrisses für einen Speicher-Die dar.
- 17 stellt eine Ausführungsform eines Grundrisses für einen Steuer-Die dar.
- 18 stellt eine Ausführungsform eines Grundrisses für einen Speicher-Die dar.
- 19 stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicherbaugruppe dar.
- 20 ist ein Blockdiagramm einer Speicherstruktur mit zwei Ebenen.
- 21 ist ein Blockdiagramm einer Speicherstruktur mit zwei Ebenen.
- 22 stellt eine Draufsicht auf einen Abschnitt eines Blocks von Speicherzellen dar.
- 23 stellt eine Draufsicht auf einen Abschnitt eines Blocks von Speicherzellen dar.
- 24 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Betreiben eines Speichers beschreibt.
- 25 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen eines Schreibvorgangs beschreibt.
- 26 stellt Schwellenspannungsverteilungen dar.
- 27 ist eine Tabelle, die ein Beispiel einer Zuordnung von Datenwerten Datenzuständen beschreibt.
- 28 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren von nichtflüchtigem Speicher beschreibt.
- 29 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Lesen von nichtflüchtigem Speicher beschreibt.
- 30 ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe.
-
DETAILLIERTE BESCHREIBUNG
-
Die Leistung eines Speichersystems wird durch Erhöhen der Parallelität während Speichervorgängen (z. B. Schreiben und Lesen) erhöht. Einige Speichersysteme können Steuerschaltungen (z. B. einschließlich Erfassungsverstärkern) auf demselben Die wie das Speicherarray einschließen, zum Beispiel unter dem Speicherarray. Andere Speichersysteme können Steuerschaltungen (z. B. einschließlich Erfassungsverstärkern) auf einem anderen Die als das Speicherarray einschließen. In jedem Fall ist der Grad an Parallelität (z. B. Datenmenge, die gleichzeitig geschrieben oder gelesen werden kann) eine Funktion der Anzahl von Erfassungsverstärkern. Durch Einschließen von Steuerschaltungen (z. B. einschließlich Erfassungsverstärkern) auf demselben Die wie das Speicherarray und auf einem anderen Die als das Speicherarray kann die Anzahl von Erfassungsverstärkern erhöht werden. Eine Erhöhung der Anzahl von Erfassungsverstärkern erhöht den Grad an Parallelität, was zu einer Erhöhung der Leistung des Speichersystems führt. Außerdem kann das Erhöhen des Grads an Parallelität zu einer effizienteren Nutzung von Leistung und zusätzlicher Funktionalität führen.
-
Eine Ausführungsform eines hierin eingeführten Speichersystems schließt eine integrierte Speicherbaugruppe ein, die einen Speicher-Die und einen Steuer-Die aufweist, der mit dem Speicher-Die gebondet (oder anderweitig verbunden) ist. Der Speicher-Die weist eine dreidimensionale nichtflüchtige Speicherstruktur und eine erste Steuerschaltung auf. Die dreidimensionale nichtflüchtige Speicherstruktur (z. B. Speicherarray) weist eine Vielzahl von nichtflüchtigen Speicherzellen auf. Die erste Steuerschaltung ist auf einem Substrat des Speicher-Dies positioniert. Die nichtflüchtigen Speicherzellen sind direkt über (z. B. oben, aber getrennt durch eine oder mehrere Schichten aus nichtleitendem Material, wie einem Dielektrikum) der ersten Steuerschaltung positioniert. Die erste Steuerschaltung ist mit den Speicherzellen der dreidimensionalen nichtflüchtigen Speicherstruktur verbunden. Der Steuer-Die weist eine zweite Steuerschaltung auf, die mit den Speicherzellen der dreidimensionalen nichtflüchtigen Speicherstruktur verbunden ist. Die erste Steuerschaltung ist eingerichtet, um verwendet zu werden, um einen Speichervorgang an einem ersten Teilsatz der nichtflüchtigen Speicherzellen durchzuführen, während die zweite Steuerschaltung eingerichtet ist, um verwendet zu werden, um gleichzeitig einen Speichervorgang an einem zweiten Teilsatz der nichtflüchtigen Speicherzellen durchzuführen.
-
Zum Beispiel schließt in einer Ausführungsform die erste Steuerschaltung eine erste Vielzahl von Erfassungsverstärkern ein, die mit einem ersten Unterblock der nichtflüchtigen Speicherzellen verbunden sind, und die zweite Steuerschaltung schließt eine zweite Vielzahl von Erfassungsverstärkern ein, die mit einem zweiten Unterblock der nichtflüchtigen Speicherzellen verbunden sind. Die erste Vielzahl von Erfassungsverstärkern und die zweite Vielzahl von Erfassungsverstärkern sind eingerichtet, um verwendet zu werden, um gleichzeitig Speichervorgänge an dem ersten Unterblock und dem zweiten Unterblock durchzuführen, wobei der erste Unterblock und der zweite Unterblock Teil desselben Blocks von Speicherzellen sind.
-
1 ist ein Blockdiagramm einer Ausführungsform eines Speichersystems 100, das die hierin beschriebene Technologie implementiert. In einer Ausführungsform ist das Speicherungssystem 100 ein Solid-State-Laufwerk („SSD“). Das Speicherungssystem 100 kann auch eine Speicherkarte, ein USB-Laufwerk, eingebetteten Speicher, ein Solid-State-Laufwerk oder eine andere Art von Speicherungssystem sein. Die vorgeschlagene Technologie ist nicht auf eine Art von Speichersystem beschränkt. Das Speichersystem 100 ist mit dem Host 102 verbunden, der ein Computer, Server, elektronische Vorrichtung (z. B. Smartphone, Tablet oder andere mobile Vorrichtung), ein Gerät oder eine andere Einrichtung sein kann, die Speicher verwendet und Datenverarbeitungsfähigkeiten aufweist. In einigen Ausführungsformen ist der Host 102 von dem Speichersystem 100 getrennt, aber mit diesem verbunden. In anderen Ausführungsformen ist das Speichersystem 100 in den Host 102 eingebettet.
-
Die Komponenten des in 1 dargestellten Speichersystems 100 sind elektrische Schaltungen. Das Speichersystem 100 schließt eine Speichersteuerung 120, die mit einem oder mehreren integrierten Speichermodulen 130 verbunden ist, und einen lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 (z. B. DRAM) ein. Der eine oder die mehreren Speichermodule 130 weisen jeweils eine Vielzahl von nichtflüchtigen Speicherzellen auf. Mehr Informationen über die Struktur jeder integrierten Speicherbaugruppe 130 sind nachstehend aufgeführt. Der lokale flüchtige Hochgeschwindigkeitsspeicher 140 wird von der Steuerung 120 verwendet, um bestimmte Funktionen auszuführen. Zum Beispiel speichert der lokale flüchtige Hochgeschwindigkeitsspeicher 140 Tabellen der Übersetzung von logischen Adressen in physische („L2P-Tabellen“).
-
Die Speichersteuerung 120 weist eine Host-Schnittstelle 152 auf, die mit dem Host 102 verbunden ist und mit diesem in Kommunikation steht. In einer Ausführungsform stellt die Host-Schnittstelle 152 eine PCIe-Schnittstelle bereit. Andere Schnittstellen können ebenfalls verwendet werden, wie SCSI, SATA usw. Die Host-Schnittstelle 152 ist ebenfalls mit einem Network-on-Chip (NOC) 154 verbunden. Ein NOC ist ein Kommunikationssubsystem auf einer integrierten Schaltung. NOCs können synchrone und asynchrone Taktdomänen umspannen oder eine ungetaktete asynchrone Logik verwenden. Die NOC-Technologie wendet Netzwerktheorie und -verfahren auf On-Chip-Kommunikationen an und liefert beträchtliche Verbesserungen gegenüber herkömmlichen Bus- und Crossbar-Verbindungen. Ein NOC verbessert die Skalierbarkeit von Systemen auf einem Chip (SoC) und die Leistungseffizienz komplexer SoCs im Vergleich zu anderen Designs. Die Drähte und die Verbindungen des NOC werden von vielen Signalen gemeinsam genutzt. Eine hohe Parallelität wird erreicht, da alle Verbindungen in dem NOC gleichzeitig an unterschiedlichen Datenpaketen arbeiten können. Daher stellt ein NOC, wenn die Komplexität integrierter Subsysteme wächst, eine verbesserte Leistung (wie Durchsatz) und Skalierbarkeit im Vergleich zu früheren Kommunikationsarchitekturen (z. B. dedizierten Punkt-zu-Punkt-Signaldrähten, gemeinsam genutzten Bussen oder segmentierten Bussen mit Brücken) bereit. In anderen Ausführungsformen kann NOC 154 durch einen Bus ersetzt werden. Mit dem NOC 154 verbunden und in Kommunikation mit ihm sind der Prozessor 156, die ECC-Engine 158, die Speicherschnittstelle 160 und die DRAM-Steuerung 164. Die DRAM-Steuerung 164 wird verwendet, um mit einem lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 (z. B. DRAM) zu arbeiten und damit zu kommunizieren. In anderen Ausführungsformen kann der lokale flüchtige Hochgeschwindigkeitsspeicher 140 ein SRAM oder eine andere Art eines flüchtigen Speichers sein.
-
Die ECC-Engine 158 führt Fehlerkorrekturdienste durch. Zum Beispiel führt die ECC-Engine 158 Datencodierung und -decodierung gemäß der implementierten ECC-Technik durch. In einer Ausführungsform ist die ECC-Engine 158 eine elektrische Schaltung, die durch Software programmiert wird. Zum Beispiel kann die ECC-Engine 158 ein Prozessor sein, der programmiert werden kann. In anderen Ausführungsformen ist die ECC-Engine 158 eine kundenspezifische und dedizierte Hardware-Schaltung ohne jegliche Software. In einer anderen Ausführungsform wird die Funktion der ECC-Engine 158 durch Programmieren des Prozessors 156 implementiert.
-
Der Prozessor 156 führt die verschiedenen Vorgänge wie Programmieren, Löschen, Lesen sowie Speicherverwaltungsprozesse durch. In einer Ausführungsform wird der Prozessor 156 durch Firmware programmiert. In anderen Ausführungsformen ist der Prozessor 156 eine kundenspezifische und dedizierte Hardware-Schaltung ohne jegliche Software. Der Prozessor 156 implementiert auch ein Übersetzungsmodul, als ein Software/Firmware-Prozess oder als eine dedizierte Hardware-Schaltung. In vielen Systemen wird der nichtflüchtige Speicher innerhalb des Speicherungssystems unter Verwendung von physischen Adressen, verbunden mit einem oder mehreren Speicher-Dies, adressiert. Jedoch verwendet das Host-System logische Adressen, um die verschiedenen Speicherorte zu adressieren. Dies ermöglicht dem Host, Daten aufeinander folgenden logischen Adressen zuzuweisen, während das Speicherungssystem die Daten an beliebigen Orten des einen oder der mehreren Speicher-Dies frei speichern kann. Um dieses System zu implementieren, führt die Steuerung (z. B. das Übersetzungsmodul) eine Adressübersetzung zwischen den logischen Adressen, die von dem Host verwendet werden, und den physischen Adressen, die von den Speicher-Dies verwendet werden, durch. Eine beispielhafte Implementierung besteht darin, Tabellen (d. h. die vorstehend erwähnten L2P-Tabellen) beizubehalten, die die aktuelle Übersetzung zwischen logischen Adressen und physischen Adressen identifizieren. Ein Eintrag in der L2P-Tabelle kann eine Identifikation einer logischen Adresse und einer entsprechenden physischen Adresse einschließen. Obwohl Tabellen mit einer Zuordnung von logischer Adresse zu physischer Adresse (oder L2P-Tabellen) das Wort „Tabellen“ einschließen, müssen sie nicht tatsächlich Tabellen sein. Die Tabellen mit einer Zuordnung von logischer Adresse zu physischer Adresse (oder L2P-Tabellen) können vielmehr jede Art von Datenstruktur sein. In einigen Beispielen ist der Speicherplatz eines Speicherungssystems so groß, dass der lokale Speicher 140 nicht alle L2P-Tabellen tragen kann. In einem solchen Fall wird der gesamte Satz von L2P-Tabellen in einem Speicher-Die 130 gespeichert, und ein Teilsatz der L2P-Tabellen wird in dem lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 zwischengespeichert (L2P-Cache).
-
Die Speicherschnittstelle 160 kommuniziert mit einem oder mehreren integrierten Speichermodulen 130. In einer Ausführungsform stellt die Speicherschnittstelle 160 eine Schaltmodus-Schnittstelle bereit. Es können auch andere Schnittstellen verwendet werden. In einigen beispielhaften Implementierungen implementiert die Speicherschnittstelle 160 (oder ein anderer Abschnitt der Steuerung 120) einen Scheduler und Puffer zum Übertragen von Daten an und Empfangen von Daten von einem oder mehreren Speicher-Dies.
-
2 ist ein Funktionsblockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe 130. Bei einer Ausführungsform schließt die integrierte Speicherbaugruppe 130 zwei Halbleiter-Dies (oder kürzer „Die“) ein: Speicher-Die 302 und Steuer-Die 304. In einigen Ausführungsformen sind der Speicher-Die 302 und der Steuer-Die 304 direkt verbunden oder zusammengebondet, wie nachstehend ausführlicher beschrieben wird. Für Zwecke dieses Dokuments beziehen sich die Ausdrücke direkt verbunden und direkt gebondet auf den Speicher-Die, der mit dem Steuer-Die verbunden/gebondet ist, ohne dass ein anderer Die zwischen dem Speicher-Die und dem Steuer-Die vorhanden ist. Der Begriff „Speicher-Die“, „Speicherhalbleiter-Die“ oder dergleichen steht hierin für einen Halbleiter-Die, der nichtflüchtige Speicherzellen zum Speichern von Daten enthält. Hierin bedeutet der Begriff „Steuer-Die“, „Steuerhalbleiter-Die“ oder dergleichen einen Halbleiter-Die, der eine Steuerschaltlogik zum Durchführen von Speichervorgängen an nichtflüchtigen Speicherzellen auf einem Speicher-Die enthält.
-
Der Speicher-Die 302 schließt die Speicherstruktur 326 ein. Die Speicherstruktur 326 schließt nichtflüchtige Speicherzellen ein. In einer Ausführungsform weist die Speicherstruktur 326 ein monolithisches dreidimensionales Speicherarray von nichtflüchtigen Speicherzellen auf, in denen mehrere Speicherebenen über einem einzigen Substrat, wie einem Wafer, ausgebildet sind. Die Speicherstruktur kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einer oder mehreren physischen Ebenen von Arrays von Speicherzellen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Silicium- (oder andere Art von) Substrat angeordnet ist. In einem Beispiel weisen die nichtflüchtigen Speicherzellen der Speicherstruktur 326 vertikale NAND-Ketten mit ladungseinfangendem Material auf, wie es zum Beispiel im
US-Patent 9.721.662 beschrieben ist, auf das hierin seiner Gesamtheit Bezug genommen wird. Eine NAND-Zeichenkette weist Speicherzellen auf, die durch einen Kanal verbunden sind.
-
In einer anderen Ausführungsform weist die Speicherstruktur 326 ein zweidimensionales Speicherarray von nichtflüchtigen Speicherzellen auf. In einem Beispiel, sind die nichtflüchtigen Speicherzellen NAND-Flash-Speicherzellen unter Verwendung von Floating-Gates wie beschrieben, zum Beispiel, im
U.S. Patentschrift 9.082.502 , das hierin durch Bezugnahme in seiner Gesamtheit aufgenommen ist. Andere Arten von Speicherzellen (z. B. NOR-Typ-Flashspeicher) können ebenfalls verwendet werden.
-
Die exakte Art der Speicherarray-Architektur oder der Speicherzelle, die in der nichtflüchtigen Speicherstruktur 326 eingeschlossen ist, ist nicht auf die vorstehenden Beispiele beschränkt. Viele unterschiedliche Arten von Speicherarrayarchitekturen oder Speicherzelltechnologien können verwendet werden, um die Speicherstruktur 326 zu bilden. Es ist keine spezielle nichtflüchtige Speichertechnologie für die Zwecke der neuen beanspruchten Ausführungsformen, die hier vorgeschlagen werden, erforderlich. Andere Beispiele geeigneter Technologien für Speicherzellen der Speicherstruktur 326 schließen ferroelektrische Speicher (FeRAM oder FeFET), ReRAM-Speicher, magnetoresistive Speicher (z. B. MRAM, Spin-Transfer-Torque-MRAM, Spin-Orbit-Torque-MRAM), Phasenänderungsspeicher (z. B. PCM), und dergleichen ein. Beispiele von geeigneten Technologien für die Architekturen der Speicherstruktur 326 schließen zweidimensionale Arrays, dreidimensionale Arrays, Kreuzpunkt-Arrays, gestapelte zweidimensionale Arrays, vertikale Bitleitungs-Arrays und dergleichen ein.
-
Der Durchschnittsfachmann wird erkennen, dass die hierin beschriebene Technologie nicht auf eine einzige spezifische Speicherstruktur beschränkt ist, sondern viele relevante Speicherstrukturen gemäß dem Geist und Umfang der Technologie, wie hierin beschrieben und wie einem Fachmann der Technik bekannt, abdeckt.
-
Eine Steuerschaltung im Sinne dieses Dokuments ist eine elektrische Schaltung, die zur Steuerung bzw. Verwaltung von nichtflüchtigem Speicher dient. In einer Ausführungsform schließt der Speicher-Die 302 eine Steuerschaltung ein, die auf dem Siliziumsubstrat des Speicher-Dies 302 positioniert ist, und die nichtflüchtige Speicherstruktur 326 ist direkt über der Steuerschaltung auf dem Siliziumsubstrat des Speicher-Dies 302 positioniert. Somit wird die Steuerschaltung auf dem Siliziumsubstrat des Speicher-Dies 302 als unter dem Speicherarray liegend bezeichnet. In einer Ausführungsform weist die Steuerschaltlogik auf dem Siliziumsubstrat des Speicher-Dies 302 Lese-/Schreibschaltungen 340 und eine Steuerschaltlogik 342 auf, die beide nachstehend ausführlicher erläutert werden.
-
Der Steuer-Die 304 schließt eine Steuerschaltlogik 310 ein, die auf dem Siliziumsubstrat des Steuer-Dies 304 positioniert ist. In einer Ausführungsform ist die Steuerschaltlogik 310 ein Beispiel einer Steuerschaltlogik für die Speicherstruktur 326. Die Steuerschaltlogik 310 weist einen Satz elektrischer Schaltungen auf, die Speichervorgänge (z. B. Schreiben, Lesen, Löschen und andere) auf Speicherstruktur 326 durchführen. In einigen Ausführungsformen bezieht sich „Schreiben“ auf Programmieren. In einigen Ausführungsformen bezieht sich „Schreiben“ auch auf Löschen. Manche Ausführungsformen verwenden das Konzept des Schreibens, ohne sich auf das Programmieren und Löschen zu beziehen.
-
Steuerschaltlogiken 310 schließen Zustandsmaschine 312, einen On-Die-Adressdecoder 314, eine Leistungssteuerschaltung 316, Speicherungsbereich 318, Lese-/Schreibschaltungen 328, ECC-Engine 330, Speichersteuerungsschnittstelle 332 und Speicher-Die-Schnittstelle 340 ein. Zustandsmaschine 312 ist eine elektrische Schaltung, die die von Steuer-Die 304 durchgeführten Vorgänge steuert. Bei einigen Ausführungsformen ist Zustandsmaschine 312 durch einen Mikroprozessor, Mikrocontroller und/oder RISC-Prozessor implementiert oder ersetzt. Speicherungsbereich 318 kann flüchtiger Speicher sein, der zum Speichern von Software zum Programmieren eines Prozessors (z. B. des RISC-Prozessors zum Implementieren oder Ersetzen der Zustandsmaschine 312) und zur Speicherung von Daten (z. B. Daten für den Decodierprozess und Codierprozess und Betriebsparameter) verwendet wird. Bei einer Ausführungsform ist Speicherungsbereich 312 mit SRMA oder DRAM implementiert.
-
Der On-Chip-Adressdecoder 314 stellt eine Adressschnittstelle zwischen Adressen, die von Host 120 oder Speichersteuerung 120 verwendet werden, zu der Hardwareadresse, die von Zeilendecodern und Spaltendecodern verwendet wird, bereit (in 2 nicht extra dargestellt). Die Leistungssteuerschaltung 316 steuert die Leistung und Spannungen, mit denen die Wortleitungen, Bitleitungen und Auswahlleitungen bei Speichervorgängen versorgt werden. In einer Ausführungsform schließt die Leistungssteuerschaltlogik 316 Spannungsschaltungen ein. Leistungssteuerschaltung 316 kann Ladungspumpen, Hochspannungspumpen oder andere Spannungsquellen zum Erzeugen von Spannungen einschließen. Die Leistungssteuerschaltung 316 wird unter der Kontrolle der Zustandsmaschine 312 ausgeführt.
-
Lese-/Schreibschaltungen 328 schließen Erfassungsblöcke ein, die Erfassungsverstärker enthalten können. Die Erfassungsverstärker schließen Bitleitungstreiber ein. Die Lese-/Schreibschaltungen 328 werden unter Kontrolle der Zustandsmaschine 312 ausgeführt. Jede Speicherstruktur 326 ist durch Wortleitungen mittels Zeilendecoder (in 2 nicht dargestellt) und durch Bitleitungen mittels Spaltendecoder (in 2 nicht dargestellt) adressierbar.
-
Die Fehlerkorrekturcode-Engine (ECC-Engine) 330 ist eine Schaltung, die zum Decodieren und Fehlerkorrigieren von Codewörtern eingerichtet ist. Die ECC-Maschine 330 kann hierin als On-Die-ECC-Maschine bezeichnet werden. Bei einer Ausführungsform ist die On-Die-ECC-Engine 330 dafür eingerichtet, Datenbits von Speichersteuerung 120 in Codewörter zu codieren, die die Datenbits und Paritätsbits enthalten. Die Steuerschaltlogik speichert die Codewörter in der Speicherstruktur 326. Bei einer Ausführungsform ist die On-Die-ECC-Engine 330 auch dafür eingerichtet, die Codewörter zu decodieren, die aus der Speicherstruktur 326 gelesen werden. In einigen Ausführungsformen sendet, wenn die On-Die-ECC-Maschine 330 beim Decodieren eines Codeworts erfolgreich ist, der Steuer-Die 304 nur die Datenbits an die Speichersteuerung 120 zurück. Bei einigen Ausführungsformen kann, wenn die On-Die-ECC-Engine 330 beim Decodieren eines Codeworts nicht erfolgreich ist, die Speichersteuerungs-ECC-Engine zum Decodieren des Codeworts verwendet werden.
-
Bei einer Ausführungsform können alle oder ein Teilsatz der Schaltungen der Steuerschaltlogik 310 (kollektiv oder einzeln) als eine Steuerschaltlogik betrachtet werden. Die Steuerschaltung kann nur Hardware (z. B. elektrische Schaltungen) oder eine Kombination von Hardware und Software (einschließlich Firmware) einschließen. Zum Beispiel ist eine Steuerung, die durch Firmware programmiert ist, ein Beispiel einer Steuerschaltung. Die Steuerschaltung kann einen Prozessor, ein PGA (Programmable Gate Array, FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), Mikrocontroller, eine integrierte Schaltung oder eine andere Art von Schaltung einschließen.
-
Die Speicherschnittstelle 340 ist eine elektrische Schnittstelle zwischen dem Steuer-Die 304 und dem Speicher 302, die Pfade 344 verwendet. Pfade 344 sind Pfade zwischen einer oder mehreren Komponenten in der Steuerschaltlogik 310 und den Komponenten (z. B. Speicherstruktur 326, Lese-/Schreibschaltungen 340 und Steuerschaltlogik 342) auf dem Speicher-Die 302. Ein Abschnitt jedes Pfads befindet sich in Speicher-Die 302, und ein Abschnitt jedes Pfads befindet sich in Steuer-Die 304. Der Begriff Pfad kann für einen Abschnitt der Pfade 344 verwendet werden, der sich vollständig innerhalb eines der Dies befindet. Somit kann angegeben werden, dass der Speicher-Die 302 eine erste Vielzahl von Pfaden hat und dass der Steuer-Die 304 eine zweite Vielzahl von Pfaden hat, sodass die erste Vielzahl von Pfaden direkt mit der zweiten Vielzahl von Pfaden verbunden ist (z. B. keine dazwischenliegenden Pfade). In einer Ausführungsform sind der Steuer-Die 304 und der Speicher-Die 302 dafür eingerichtet, Signale durch Pfadpaare der ersten Vielzahl von Pfaden und der zweiten Vielzahl von Pfaden zu übertragen. In einigen Ausführungsformen sind der Speicher-Die 302 und der Steuer-Die 304 zusammengebondet oder auf andere Weise aneinander befestigt, um die Signalübertragung durch die Pfadpaare zu erleichtern.
-
Ein Pfad kann verwendet werden, um ein Signal (z. B. Spannung, Strom) bereitzustellen oder zu empfangen. Ein Pfad schließt einen elektrisch leitenden Pfad ein. Ein Pfad kann einen oder mehrere von, einem Bondpad, einer Metallzwischenverbindung, einer Durchkontaktierung, einem Transistor, einem elektrisch leitenden Material und einem anderen Material einschließen, das ein elektrisches Signal übertragen oder tragen kann. Ist aber nicht darauf beschränkt. Bei einer Ausführungsform ermöglichen die Pfade 344 es der Steuerschaltlogik 310, Spannungen für Wortleitungen, Auswahlleitungen und Bitleitungen auf Speicher-Die 302 bereitzustellen. Pfade 344 können verwendet werden, um Signale zum Beispiel von Bitleitungen zu empfangen. In einer Ausführungsform gibt es ungefähr 100.000 Pfade 344. Es könnten jedoch mehr oder weniger als 100.000 Pfade vorhanden sein. Mit einer so großen Anzahl von Pfaden 344 kann eine sehr große Menge an Daten oder anderen Signalen parallel weitergeleitet werden.
-
Speichersteuerungsschnittstelle 332 ist eine elektrische Schnittstelle zur Kommunikation mit Speichersteuerung 120. Zum Beispiel kann Speichersteuerungsschnittstelle 332 eine Schaltmodus-Schnittstelle implementieren, die mit der Speichersteuerung 120 verbunden ist. Die Speicherschnittstelle 340 ist wesentlich breiter als die Speichersteuerschnittstelle 332, da die Speicherschnittstelle 340 wesentlich mehr Signale hat als die Speichersteuerschnittstelle 332. Daher können mehr Daten für die Speicherschnittstelle 340 im Vergleich zur Speichersteuerschnittstelle 332 parallel gesendet werden. In einigen Beispielen ist die Speicherschnittstelle 340 4x, 10x, 20x oder 50x breiter als die Speichersteuerschnittstelle 332.
-
Der Kommunikationskanal 336 ist zur Verallgemeinerung als mit der integrierten Speicherbaugruppe 130 verbunden dargestellt. Der Kommunikationskanal 336 kann mit einem oder beiden von Die 302 und/oder 304 verbunden sein. Bei einer Ausführungsform verbindet Kommunikationskanal 336 Speichersteuerung 120 direkt mit Steuer-Die 304. Bei einer Ausführungsform verbindet Kommunikationskanal 336 Speichersteuerung 120 direkt mit Speicher-Die 302. Wenn Kommunikationskanal 336 Speichersteuerung 120 direkt mit Speicher-Die 302 verbindet, kann Pfad 344 verwendet werden, um die Kommunikation zwischen Speichersteuerung 120 und Steuerschaltlogik 310 zu ermöglichen.
-
Obwohl 2 einen Steuer-Die 304 und einen Speicher-Die 302 in einer integrierten Speicherbaugruppe 130 darstellt, kann es mehr als einen Steuer-Die 304 und mehr als einen Speicher-Die 302 in einer integrierten Speicherbaugruppe 130 geben.
-
3 ist ein Blockdiagramm einer Ausführungsform der Lese-/Schreibschaltungen 328 und ECC-Engine 330 des Steuer-Dies 304. Die Lese-/Schreibschaltungen 328 weisen Erfassungsverstärker 350 und Haltespeicher 352 auf. Die Haltespeicher 352 können Datenhaltespeicher 354a und Paritätshaltespeicher 354b einschließen. In einer Ausführungsform speichern die Datenhaltespeicher 354a Datenbits des Codeworts und speichern die Paritätshaltespeicher Paritätsbits des Codeworts. Es ist nicht erforderlich, dass spezielle Haltespeicher für Datenbits und für Paritätsbits vorhanden sind. 3 zeigt vier Sätze Datenhaltespeicher 354(1), 354(2), 354(3), 354(4). Jeder Satz kann verwendet werden, um ein Codewort für eine andere Seite zu speichern. In einer Ausführungsform, bei der vier Bits pro Speicherzelle gespeichert werden, werden vier Seiten in einem Satz Speicherzellen gespeichert. Die vier Seiten können als untere Seite (Lower Page, LP), untere mittlere Seite (Lower-Middle Page, LMP), obere mittlere Seite (Upper-Middle Page, UMP) und obere Seite (Upper Page, UP) bezeichnet werden. Bei einer Ausführungsform, bei der drei Bits pro Speicherzelle gespeichert werden, werden drei Seiten in einem Satz Speicherzellen gespeichert und können die vier Seiten als untere Seite (LP), mittlere Seite (MP) und obere Seite (UP) bezeichnet werden.
-
Die On-Die-ECC-Engine 330 ist in der Lage, von der Speichersteuerung 120 empfangene Datenbits zu codieren. In einer Ausführungsform bildet die On-Die-ECC-Maschine 330 Codewörter, die jeweils Datenbits und Paritätsbits enthalten. Bei einer bestimmten Ausführungsform stellt Speichersteuerung 120 die Codewörter für den Speicher-Die 304 bereit. Steuerschaltlogik 310 speichert die Codewörter in nichtflüchtigen Speicherzellen in der Speicherstruktur 326. Auf eine Anforderung von Speichersteuerung 120, Daten zu lesen, liest die Steuerschaltlogik 310 Codewörter aus Speicherstruktur 326. Die On-Die-ECC-Maschine 330 ist auch in der Lage die aus der Speicherstruktur 326 ausgelesenen Codewörter zu decodieren und zu fehlerkorrigieren. In einigen Ausführungsformen berechnet die On-Die-ECC-Maschine 330 Paritätsbits für jede Dateneinheit (z. B. Seite), die gespeichert wird. Die Paritätsbits (auch als Fehlerkorrekturcode oder Fehlerkorrekturinformation bezeichnet) können mit der Dateneinheit (z. B. Seite) gespeichert werden. Die Kombination der Dateneinheit und ihrer zugehörigen Paritätsbits wird als Codewort bezeichnet. In einer Ausführungsform werden die Paritätsbits entfernt von der Dateneinheit (z. B. Seite) gespeichert.
-
Bei einer Ausführungsform sendet Steuer-Die 304 nach erfolgreichem Decodieren eines Codeworts nur die Datenbits, nicht jedoch die Paritätsbits an Speichersteuerung 120. Somit wird Bandbreite über Kommunikationsleitungen zwischen Speichersteuerung 120 und der integrierten Speicherbaugruppe 130 eingespart. Außerdem kann erheblich Leistung eingespart werden. Zum Beispiel könnte die Schnittstelle zwischen dem Steuer-Die und der Steuerung eine Hochgeschwindigkeitsschnittstelle sein.
-
Die On-Die-ECC-Engine 330 schließt Syndromberechnungslogik 356, einen Codierer 358 und einen Decoder 394 ein. Der Codierer 380 ist dafür eingerichtet, Daten unter Verwendung eines ECC-Schemas zu codieren wie eines Low-Density-Parity-Check-Codierers (LDPC-Codierers), eines Reed-Solomon-Codierers, eines Bose-Chaudhuri-Hocquenghem-Codierers (BCH-Codierers), eines Turbo-Code-Codierers, eines Codierers, der dafür eingerichtet ist, ein oder mehrere andere ECC-Codierschemata zu codieren, oder einer beliebigen Kombination davon. Der Codierer 380 kann ein Codewort bilden, das Datenbits 360 und Paritätsbits 362 enthält. Die Datenbits können von Speichersteuerung 120 bereitgestellt werden.
-
Basierend auf den Bits in den Haltespeicher 352 können die Erfassungsverstärker 350 Bitleitungsspannungen in der Speicherstruktur 326 steuern, wenn die nichtflüchtigen Speicherzellen programmiert/gelesen werden. Auf diese Weise können die Codewörter in nichtflüchtige Speicherzellen in der Speicherstruktur 326 programmiert werden. Es versteht sich, dass auch andere Spannungen an die Speicherstruktur 326 angelegt werden können wie Anlegen einer Programmierspannung an Speicherzellen, die zum Programmieren durch einen Spannungsgenerator auf Steuer-Die 304 ausgewählt sind, der die Programmierspannung und Boosting-Spannungen an verschiedene Wortleitungen von Speicherstruktur 326 anlegt.
-
Decoder 364 ist dafür eingerichtet, die Codewörter zu decodieren, die im Speicher-Die 302 gespeichert wurden. In einer Ausführungsform lesen Erfassungsverstärker 350 Bitleitungen in der Speicherstruktur 326, um ein Codewort zu lesen. Die Erfassungsverstärker 350 können das gelesene Codewort in Haltespeicher 352 speichern. Der Decodierer 364 ist in der Lage Fehler im Codewort zu erkennen und zu korrigieren. Bei einer Ausführungsform ist der Decoder 364 ein Decoder mit relativ geringer Leistung im Vergleich zu einem Decoder in Speichersteuerung 120. Bei einer Ausführungsform ist der Decoder in Speichersteuerung 120 in der Lage, mehr Bitfehler im Codewort zu korrigieren als üblicherweise von Decoder 364 korrigiert werden können. Somit kann der Decodierer 364 einen Kompromiss zwischen Leistung und Fehlerkorrekturfähigkeit bereitstellen. Zum Beispiel kann Decodierer 364 sehr effizient in Bezug auf Leistungsverbrauch sein, wobei dann jedoch möglicherweise keine große Anzahl von Fehlern in einem Codewort korrigiert werden kann.
-
In einigen Ausführungsformen basiert Decodierer 364 auf einem dünn besetzten zweiteiligen Graphen mit Bit- (oder variablen) Knoten und Prüfknoten. Der Decodierer 364 kann Nachrichten zwischen den Bitknoten und den Prüfknoten übermitteln. Das Übermitteln einer Nachricht zwischen einem Bitknoten und einem Prüfknoten wird durch Durchführen einer Message Passing-Berechnung erreicht. Die Message Passing-Berechnung kann auf Belief-Propagation basieren.
-
Syndromberechnungslogik 356 (z. B. eine elektrische Schaltung und/oder Software) ist in der Lage, ein Syndromgewicht für Codewörter zu bestimmen. Die Syndromgewichtung bezieht sich auf die Anzahl von Paritätsprüfungsgleichungen, die nicht erfüllt sind. Die anfängliche Syndromgewichtung eines Codeworts kann mit der Bitfehlerrate (BER) dieses Codeworts korrelieren. Somit kann der Steuer-Die 304 eine BER für ein Codewort auf Basis der anfänglichen Syndromgewichtung schätzen. In einer Ausführungsform ist die Syndromlogik in der Hardware implementiert. Die Syndromgewichtung kann ohne vollständiges Decodieren eines Codeworts bestimmt werden. Daher kann die anfängliche Syndromgewichtung in weniger Zeit und mit weniger Leistung berechnet werden als für das Decodieren eines Codeworts. In einigen Ausführungsformen trifft Steuer-Die 304 Verwaltungsentscheidungen auf Basis der geschätzten BER. Zum Beispiel kann Steuer-Die 304 auf Basis der geschätzten BER bestimmen, welche Technik zum Decodieren eines Codeworts verwendet werden sollte, welche Lesereferenzspannungen zum Lesen von Speicherzellen verwendet werden sollten usw.
-
4 ist ein Blockdiagramm, das eine Ausführungsform eines Erfassungsblocks 370 darstellt, der Teil der Lese-/Schreibschaltungen 328 ist. Ein einzelner Erfassungsblock 450 kann in einen oder mehrere Kernabschnitte, die als Erfassungsschaltungen oder Erfassungsverstärker 350(1) bis 350(4) bezeichnet werden, und in einen gemeinsamen Abschnitt, der als Verwaltungsschaltung 371 bezeichnet wird, unterteilt sein. In einer Ausführungsform gibt es eine getrennte Erfassungsschaltung für jede Bitleitung/NAND-Kette und eine gemeinsame Verwaltungsschaltung 371 für einen Satz von mehreren, z. B. vier oder acht, Erfassungsschaltungen. Jede der Erfassungsschaltungen in einer Gruppe kommuniziert mit der zugehörigen Verwaltungsschaltung über Datenbus 372. Somit gibt es eine oder mehrere Verwaltungsschaltungen, die mit den Erfassungsschaltungen eines Satzes von Speicherungselementen (Speicherzellen) kommunizieren.
-
Der Erfassungsverstärker 350(1) weist zum Beispiel eine Erfassungsschaltlogik 373 auf, die Erfassung durchführt, indem sie bestimmt, ob ein Leitungsstrom in einer verbundenen Bitleitung oberhalb oder unterhalb eines vorbestimmten Schwellenwertpegels liegt. Das Abtasten kann in einem Lese- oder Verifizierungsvorgang erfolgen. Die Erfassungsschaltung liefert auch eine Bitleitungsspannung während des Anlegens einer Programmierspannung bei einem Programmiervorgang (z. B. Schreibvorgang).
-
Die Erfassungsschaltlogik 373 kann einen Vbl-Selektor 374, einen Erfassungsknoten 375, eine Vergleichsschaltung 376 und eine Auslöseverriegelung 377 einschließen. Während des Anlegens einer Programmierspannung kann der Vbl-Selektor 374 eine Programmieraktivierungsspannung (z. B. V_pgm_enable) oder eine Programmierhemmspannung (z. B. Vbl_inh) an eine mit einer Speicherzelle verbundene Bitleitung übermitteln. Der Vbl-Selektor 374 kann auch während Abtastvorgängen verwendet werden. Hierin ist eine „Programmaktivierungsspannung“ als eine an eine Speicherzelle angelegte Spannung definiert, die das Programmieren der Speicherzelle ermöglicht, während eine Programmspannung (z. B. Vpgm) ebenfalls an die Speicherzelle angelegt wird. In bestimmten Ausführungsformen wird eine Programmaktivierungsspannung an eine mit der Speicherzelle gekoppelte Bitleitung angelegt, während eine Programmspannung an ein Steuer-Gate der Speicherzelle angelegt wird. Hierin wird eine „Programmhemmspannung“ als eine Spannung definiert, die an eine mit einer Speicherzelle gekoppelte Bitleitung angelegt wird, um die Programmierung der Speicherzelle zu hemmen, während eine Programmspannung (z. B. Vpgm) ebenfalls an die Speicherzelle angelegt wird (z. B. an das Steuer-Gate der Speicherzelle angelegt wird). Es sei zu beachten, dass Verstärkungsspannungen (z. B. Vpass) auf nicht ausgewählte Wortleitungen zusammen mit der Programmhemmspannung angelegt werden können, die an die Bitleitung angelegt wird. Die Bitleitungen sind Teil der Speicherstruktur 326 auf Speicher-Die 302.
-
Programmhemmspannungen werden an Bitleitungen angelegt, die mit Speicherzellen gekoppelt sind, die nicht programmiert werden sollen, und/oder Bitleitungen mit Speicherzellen, die durch Ausführung eines Programmierprozesses ihre jeweilige Zielschwellenspannung erreicht haben. Diese können als „nicht ausgewählte Bitleitungen“ bezeichnet werden. Programmierhemmspannungen werden nicht an Bitleitungen („ausgewählte Bitleitungen“) mit einer zu programmierenden Speicherzelle angelegt. Wenn eine Programmhemmspannung an eine nicht ausgewählte Bitleitung angelegt wird, wird die Bitleitung in einer Ausführungsform vom NAND-Kanal abgeschnitten. Daher wird in einer Ausführungsform die Programmhemmspannung nicht an den NAND-Kanal übermittelt. Verstärkungsspannungen werden an nicht ausgewählte Wortleitungen angelegt, um das Potential des NAND-Kanals zu erhöhen, wodurch die Programmierung einer Speicherzelle gehemmt wird, welche die Programmspannung an ihrem Steuer-Gate empfängt.
-
Ein Transistor 380 (z. B. ein nMOS) kann als Pass-Gate eingerichtet sein, um Vbl vom Vbl-Selektor 374 weiterzuleiten, indem die Steuer-Gate-Spannung des Transistors ausreichend hoch eingestellt wird, z. B. höher als die vom Vbl-Selektor weitergeleitete Vbl. Beispielsweise kann ein Selektor 379 eine Versorgungsspannung Vdd, z. B. 3-4 V, an das Steuer-Gate des Transistors 380 weiterleiten.
-
Die Erfassungsschaltung 350(1) ist dafür eingerichtet, den Zeitpunkt zu steuern, zu dem die Spannungen an die Bitleitung angelegt werden. Bei Abtastvorgängen wie Lese- und Verifizierungsvorgängen wird die Bitleitungsspannung vom Transistor 380 auf Basis der vom Selektor 379 weitergeleiteten Spannung eingestellt. Die Bitleitungsspannung entspricht grob der Steuer-Gate-Spannung des Transistors minus seiner Vt (z. B. 3 V). Wenn beispielsweise Vbl+Vt vom Selektor 379 weitergeleitet wird, ist die Bitleitungsspannung Vbl. Dies setzt voraus, dass die Sourceleitung bei 0 V liegt. Der Transistor 380 klemmt die Bitleitungsspannung gemäß der Steuer-Gate-Spannung ein und dient eher als Source-Follower denn als Pass-Gate. Der Vbl-Selektor 374 kann eine relativ hohe Spannung wie Vdd weiterleiten, die höher als die Steuer-Gate-Spannung auf dem Transistor 380 ist, um den Source-Follower-Modus bereitzustellen. Während des Abtastens lädt der Transistor 380 somit die Bitleitung auf.
-
In einem Ansatz kann der Selektor 379 jedes Erfassungsverstärkers getrennt von den Selektoren anderer Erfassungsverstärker gesteuert werden, um Vbl oder Vdd weiterzuleiten. Der Vbl-Selektor 462 jedes Erfassungsverstärkers kann auch getrennt von den Vbl-Selektoren anderer Erfassungsverstärker gesteuert werden.
-
Während des Erfassungsens wird der Erfassungsknoten 375 auf eine Anfangsspannung wie Vsense_init=3 V geladen. Der Erfassungsknoten wird dann über den Transistor 380 mit der Bitleitung verbunden, und anhand eines Abfallbetrags des Erfassungsknotens wird bestimmt, ob sich eine Speicherzelle in einem leitenden oder nicht leitenden Zustand befindet. In einer Ausführungsform entlädt ein Strom, der in der Bitleitung fließt, den Erfassungsknoten (z. B. Erfassungskondensator). Die Zeitdauer, die der Erfassungsknoten abfallen darf, kann hierin als „Integrationszeit“ bezeichnet werden. Die Vergleichsschaltung 466 wird verwendet, um die Erfassungsknotenspannung mit einer Auslösespannung zu einer Erfassungszeit zu vergleichen. Wenn die Erfassungsknotenspannung unter die Auslösespannung Vtrip abfällt, befindet sich die Speicherzelle in einem leitenden Zustand und ihr Vt befindet sich oberhalb oder unterhalb der Spannung des Verifizierungssignals. Wenn die Erfassungsknotenspannung nicht unter Vtrip abfällt, befindet sich die Speicherzelle in einem nicht leitenden Zustand und ihr Vt liegt oberhalb der Spannung des Verifizierungssignals. Der Erfassungsverstärker 350(1) schließt eine Auslöseverriegelung 468 ein, die von der Vergleichsschaltung 466 in Abhängigkeit davon eingestellt wird, ob sich die Speicherzelle in einem leitenden oder nicht leitenden Zustand befindet. Die Daten in dem Auslösehaltespeicher können ein Bit sein, das vom Prozessor 381 ausgelesen wird.
-
Die Verwaltungsschaltung 371 weist einen Prozessor 381, vier exemplarische Sätze Datenhaltespeicher 382, 383, 384, 385 und eine E/A-Schnittstelle 387 auf, die zwischen die Sätze Datenhaltespeicher und Datenbus 332 gekoppelt ist (Datenbus kann mit Speichersteuerung 102 gekoppelt sein). Für jeden Erfassungsverstärker kann ein Satz Datenhaltespeicher, der z. B. einzelne Haltespeicher LDL, LMDL, UMDL und UDL aufweist, bereitgestellt sein. In einigen Fällen können weniger oder zusätzliche Datenhaltespeicher verwendet sein. LDL speichert ein Bit für eine untere Datenseite, LMDL speichert ein Bit für eine untere-mittlere Datenseite, UMDL speichert ein Bit für eine obere-mittlere Datenseite und UDL speichert ein Bit für eine obere Datenseite. Dies gilt für eine Speichereinrichtung mit sechzehn Ebenen oder vier Bits pro Speicherzelle. Bei einer Ausführungsform gibt es acht Ebenen oder drei Bits pro Speicherzelle und daher nur drei Haltespeicher (LDL, MDL, UDL) pro Erfassungsverstärker.
-
Der Prozessor 381 führt Berechnungen durch, um etwa die Daten, die in der erfassten Speicherzelle gespeichert sind, zu bestimmen und die bestimmten Daten in dem Satz von Datenhaltespeicher zu speichern. Jeder Satz Datenhaltespeicher 382 bis 385 wird verwendet, um Datenbits zu speichern, die von Prozessor 381 während eines Lesevorgangs bestimmt werden, und um vom Datenbus 332 während eines Programmiervorgangs importierte Datenbits zu speichern, die Schreibdaten darstellen, die in den Speicher programmiert werden sollen. E/A-Schnittstelle 488 stellt eine Schnittstelle zwischen Datenhaltespeicher 382 bis 385 und dem Datenbus 332 bereit.
-
Der Prozessor 381 kann auch verwendet werden, um auf Basis des Zustands der Haltespeicher zu bestimmen, welche Spannung an die Bitleitung anzulegen ist.
-
Während des Lesens steht der Betrieb des Systems unter der Kontrolle der Zustandsmaschine 312, die die Versorgung der adressierten Speicherzelle mit unterschiedlichen Steuer-Gate-Spannungen steuert (z. B. durch Anlegen von Spannungen von der Leistungssteuerung 316 an Wortleitungen auf der Speicherstruktur 326 über die Pfade zwischen Steuer-Die 304 und Speicher-Die 302, wie hierin erörtert). Beim Durchgehen der verschiedenen vordefinierten Steuer-Gate-Spannungen entsprechend den verschiedenen Speicherzuständen, die vom Speicher unterstützt werden, kann die Erfassungsschaltung bei einer dieser Spannungen auslösen, und eine entsprechende Ausgabe wird von der Erfassungsschaltung an Prozessor 482 über den Datenbus 454 bereitgestellt. An diesem Punkt bestimmt Prozessor 482 den resultierenden Speicherzustand unter Berücksichtigung des/der Auslöseereignisse(s) der Erfassungsschaltung und der Information über die angelegte Steuer-Gate-Spannung von der Zustandsmaschine über Eingabeleitungen 490. Er berechnet dann eine binäre Codierung für den Speicherzustand und speichert die resultierenden Datenbits in Datenhaltespeicher 484 bis 487.
-
Einige Implementierungen können mehrere Prozessoren 381 einschließen. In einer Ausführungsform schließt jeder Prozessor 381 eine (nicht dargestellte) Ausgabeleitung ein, sodass jede der Ausgabeleitungen miteinander über eine ODER-Leitung verdrahtet ist. In einigen Ausführungsformen werden die Ausgabeleitungen invertiert, bevor sie mit der verdrahteten ODER-Leitung verbunden werden. Diese Einrichtung ermöglicht eine schnelle Bestimmung während eines Programmierverifizierungstests, wann der Programmierprozess abgeschlossen ist, weil die Zustandsmaschine, die das verdrahtete ODER empfängt, bestimmen kann, wann alle programmierten Bits den gewünschten Pegel erreicht haben. Wenn beispielsweise jedes Bit seinen gewünschten Pegel erreicht hat, wird eine logische Null für dieses Bit an die verdrahtete ODER-Leitung gesendet (oder eine Daten-Eins wird invertiert). Wenn alle Bits eine Daten-0 (oder eine invertierte Daten-Eins) ausgeben, dann weiß die Zustandsmaschine, dass sie das Programmierverfahren zu beenden hat. Da (bei einer Ausführungsform) jeder Prozessor mit vier Erfassungsverstärkern kommuniziert, muss die Zustandsmaschine die verdrahtete ODER-Leitung viermal lesen, oder dem Prozessor 381 wird Logik hinzugefügt, um die Ergebnisse der zugeordneten Bitleitungen so zu akkumulieren, dass die Zustandsmaschine die verdrahtete ODER-Leitung nur einmal lesen muss. In ähnlicher Art und Weise kann die globale Zustandsmaschine durch korrektes Wählen der Logikstufe erkennen, wann das erste Bit seinen Zustand ändert, und die Algorithmen entsprechend ändern.
-
Während Programmier- oder Verifizierungsvorgängen für Speicherzellen werden die zu programmierenden Daten (Schreibdaten) in dem Satz Datenhaltespeicher 382 bis 385 von dem Datenbus 332 in den LDL-, LMDL-, MDL- und UDL-Haltespeicher in einer Implementierung mit vier Bits pro Speicherzelle gespeichert.
-
Der Programmiervorgang unter der Steuerung der Zustandsmaschine legt einen Satz von Programmierspannungsimpulsen an die Steuer-Gates der adressierten Speicherzellen an. Jeder Spannungsimpuls kann in der Größenordnung eines vorhergehenden Programmierimpulses um eine Schrittgröße in einem Prozess, das als inkrementelle Schrittpulsprogrammierung bezeichnet wird, hochgesetzt werden. Jeder Programmspannung folgt ein Verifizierungsvorgang, um zu bestimmen, ob die Speicherzellen in den gewünschten Speicherzustand programmiert wurden. In einigen Fällen überwacht der Prozessor 381 den Zustand des zurückgelesenen Speichers in Bezug auf den gewünschten Speicherzustand. Wenn die zwei übereinstimmen, setzt der Prozessor 381 die Bitleitung in einen Programmierhemmspannung, wie durch Aktualisieren seiner Haltespeicher. Dies verhindert, dass die Speicherzelle, die an die Bitleitung gekoppelt ist, weiter programmiert wird, selbst wenn zusätzliche Programmimpulse an ihr Steuer-Gate angelegt werden.
-
Jeder Satz Datenhaltespeicher 382 bis 385 kann als Stapel von Datenhaltespeicher für jeden Erfassungsverstärker implementiert sein. In einer Ausführungsform gibt es drei Datenhaltespeicher pro Erfassungsverstärker 350. Bei einigen Implementierungen sind die Datenhaltespeicher als Schieberegister implementiert, sodass die darin gespeicherten parallelen Daten in serielle Daten für Datenbus 332 umgewandelt werden und umgekehrt. Alle Datenhaltespeicher, die dem Lese-/Schreibblock von Speicherzellen entsprechen, können miteinander verbunden werden, um ein Blockschieberegister zu bilden, sodass ein Datenblock durch serielle Übertragung eingegeben oder ausgegeben werden kann. Insbesondere ist die Bank von Lese/Schreibschaltungen so angepasst, dass jeder von ihrem Satz von Datenhaltespeicher Daten sequentiell in den Datenbus hinein oder aus diesem heraus verschiebt, als ob sie Teil eines Schieberegisters für den gesamten Lese-/Schreibblock sind.
-
Die Datenhaltespeicher identifizieren, wann eine zugehörige Speicherzelle bestimmte Abschnitte in einem Programmiervorgang erreicht hat. Zum Beispiel können Haltespeicher identifizieren, dass sich eine Vt einer Speicherzelle unterhalb einer bestimmten Verifizierungsspannung befindet. Die Datenhaltespeicher geben an, ob eine Speicherzelle gegenwärtig ein oder mehrere Bits von einer Seite von Daten speichert. Zum Beispiel können die LDL-Haltespeicher dazu verwendet werden, eine untere Seite von Daten zu speichern. Ein LDL-Haltespeicher wird umgeschaltet (z. B. von 0 zu 1), wenn ein unteres Seitenbit in einer zugehörigen Speicherzelle gespeichert ist. Ein LMDL-, UMDL- oder UDL-Haltespeicher wird umgeschaltet, wenn ein unteres mittleres, oberes mittleres bzw. oberes Seitenbit in einer zugehörigen Speicherzelle gespeichert ist. Dies tritt auf, wenn eine zugeordnete Speicherzelle die Programmierung abschließt.
-
In einer Ausführungsform schließt die Speicherstruktur 326 eine Vielzahl von nichtflüchtigen Speicherzellen ein, die als vertikale NAND-Ketten angeordnet sind. Zum Beispiel kann die Speicherstruktur einen Stapel alternierender dielektrischer Schichten und leitfähiger Schichten einschließen, wobei Speicherlöcher in dem Stapel ausgebildet sind. NAND-Ketten werden gebildet, indem die Speicherlöcher mit Materialien gefüllt werden, die ein Ladungsfängermaterial einschließen, um eine vertikale Spalte von Speicherzellen zu erzeugen. Jede Speicherzelle kann eines oder mehrere Datenbits speichern. Mehr Details des dreidimensionalen monolithischen Speicherarrays, das die Speicherstruktur 326 aufweist, werden nachstehend in Bezug auf 4-12 bereitgestellt.
-
5 ist ein Blockdiagramm zur Erläuterung einer beispielhaften Organisation der Speicherstruktur 326, die in vier Ebenen P0, P1, P2 und P3 unterteilt ist. Jede Ebene wird dann in M Blöcke unterteilt. In einem Beispiel hat jede Ebene etwa 2000 Blöcke. Doch es können auch andere Anzahlen von Blöcken und Ebenen verwendet werden. In einer Ausführungsform ist ein Block von Speicherzellen eine Einheit zum Löschen. D. h. alle Speicherzellen eines Blocks werden zusammen gelöscht. Daher kann ein Block auch als Löschblock bezeichnet werden. In anderen Ausführungsformen können Speicherzellen aus anderen Gründen in Blöcken gruppiert werden, wie zum Organisieren der Speicherstruktur 326 für die Signalisierungs- und Auswahlschaltungen. In einigen Ausführungsforme stellt ein Block eine Gruppe von verbundenen Speicherzellen dar, da die Speicherzellen eines Blocks einen gemeinsamen Satz von Wortleitungen teilen.
-
6-9 stellen eine beispielhafte dreidimensionale („3D“) NAND-Struktur dar, die verwendet werden kann, um die Speicherstruktur 326 zu implementieren. 6 ist ein Blockdiagramm zum Darstellen einer Draufsicht auf einen Abschnitt eines Blocks der Speicherstruktur 326. Der Abschnitt des Blocks, der in 6 dargestellt ist, entspricht Abschnitt 401 in Block 2 aus 5. Wie in 6 ersichtlich, verläuft der in 6 dargestellte Block in der Richtung von 431. In einer Ausführungsform hat das Speicherarray viele Schichten; Jedoch zeigt 6 nur die obere Schicht.
-
6 stellt eine Vielzahl von Kreisen dar, die für die vertikalen Spalten stehen. Jede der vertikalen Spalten schließt mehrere Auswahltransistoren (auch als Auswahlgate bezeichnet) und mehrere Speicherzellen ein. In einer Ausführungsform implementiert jede vertikale Spalte eine NAND-Kette. Zum Beispiel stellt 6 vertikale Spalten 422, 432, 442 und 452 dar. Die vertikale Spalte 422 implementiert die NAND-Kette 482. Die vertikale Spalte 432 implementiert die NAND-Kette 484. Die vertikale Spalte 442 implementiert die NAND-Kette 486. Die vertikale Spalte 452 implementiert die NAND-Kette 488. Mehr Details der vertikalen Spalten werden nachstehend bereitgestellt. Da der in 6 dargestellte Block in Richtung des Pfeils 431 verläuft, schließt der Block mehr vertikale Spalten als in 6 dargestellt ein.
-
6 stellt auch einen Satz Bitleitungen 415 einschließlich Bitleitungen 411, 412, 413, 414, ... 419 dar. 6 zeigt vierundzwanzig Bitleitungen, da nur ein Abschnitt des Blocks dargestellt ist. Es wird in Betracht gezogen, dass mehr als vierundzwanzig Bitleitungen mit vertikalen Spalten des Blocks verbunden sind. Einige der Kreise, die vertikale Spalten darstellen, hat ein „x“ zur Kennzeichnung seiner Verbindung mit jeweils einer Bitleitung. Zum Beispiel ist die Bitleitung 414 mit den vertikalen Spalten 422 und 432 verbunden. Der in 6 dargestellte Block schließt einen Satz voller Schlitze 402 und 410 ein, die von der Oberseite der vertikalen Spalten zur Unterseite der vertikalen Spalten geätzt und mit Oxid gefüllt werden. Teilschlitze 404, 406 und 408 werden durch die Oberseite der Schichten geätzt, um die Auswahlleitungen zu unterteilen, wie nachstehend beschrieben, um jede Schicht des Blocks in vier Bereiche (420, 430, 440 und 450) zu unterteilen, die als Unterblöcke bezeichnet werden (und nachstehend ausführlicher erörtert werden). In einer beispielhaften Implementierung ist eine Bitleitung mit nur (höchstens) einer vertikalen Spalte in jedem der Unterblöcke 420, 430, 440 und 450 verbunden. In dieser Implementierung hat jeder Block sechzehn Reihen aktiver Spalten und ist jede Bitleitung mit zwei Reihen in jedem Block verbunden. In einer Ausführungsform sind alle zwei Reihen, die mit einer gemeinsamen Bitleitung verbunden sind, mit derselben Wortleitung, aber unterschiedlichen Auswahlleitungen verbunden; daher verwendet das System die sourceseitigen Auswahlleitungen und die drainseitigen Auswahlleitungen, um einen (oder eine andere Untermenge) der vier zu wählen, die einem Speichervorgang unterzogen werden sollen. Obwohl 6 jeden Bereich mit vier Reihen vertikaler Spalten, vier Bereichen und sechzehn Reihen vertikaler Spalten in einem Block darstellt, sind diese genauen Zahlen eine beispielhafte Implementierung. Andere Ausführungsformen können mehr oder weniger Bereiche pro Block, mehr oder weniger Reihen vertikaler Spalten pro Bereich und mehr oder weniger Reihen vertikaler Spalten pro Block beinhalten. 6 zeigt auch, dass die vertikalen Spalten gestaffelt sind. In anderen Ausführungsformen können verschiedene Staffelungsmuster verwendet werden. In einigen Ausführungsformen sind die vertikalen Spalten nicht gestaffelt.
-
7 stellt einen Abschnitt einer Ausführungsform einer dreidimensionalen Speicherstruktur 326 dar, die eine Querschnittsansicht entlang der Linie AA von 6 zeigt. Diese Querschnittsansicht schneidet durch vertikale Spalten 432 und 434 und einen Bereich/Unterblock abbilden 430 (siehe 6). Die Struktur von 7 schließt vier oberseitige Auswahlschichten TSGL0, TSGL1, TSGL2 und TSGL3; vier unterseitige Auswahlschichten BSGLO, BSGL1, BSGL2 und BSGL3; sechs Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL, WLDU; und sechsundneunzig Datenwortleitungsschichten WLL0-WLL95 zum Verbinden mit Datenspeicherzellen ein. Andere Ausführungsformen können mehr oder weniger als vier oberseitige Auswahlschichten, mehr oder weniger als vier unterseitige Auswahlschichten, mehr oder weniger als sechs Dummy-Wortleitungsschichten und mehr oder weniger als sechsundneunzig Wortleitungen implementieren. Vertikale Spalten 432 und 434 sind als durch die oberseitigen Auswahlschichten, sourceseitigen Auswahlschichten, Dummy-Wortleitungsschichten und Wortleitungsschichten hervorstehend dargestellt. In einer Ausführungsform weist jede vertikale Spalte eine vertikale NAND-Kette auf. Zum Beispiel weist die vertikale Spalte 432 die NAND-Kette 484 auf. Direkt unter den vertikalen Spalten und den nachfolgend aufgeführten Schichten befindet sich eine Steuerschaltung (in 7 nicht dargestellt), und direkt unter der Steuerschaltung befindet sich ein Substrat (nicht dargestellt). für Zwecke dieses Dokuments bedeutet der Ausdruck „direkt unter“ darunter, nicht zur Seite. Die NAND-Kette der vertikalen Spalte 432 hat ein Source-Ende an einer Unterseite des Stapels und ein Drain-Ende an einer Oberseite des Stapels. Wie in Übereinstimmung mit 6 zeigt 6 die vertikale Spalte 432, die mit der Bitleitung 414 über den Verbinder 417 verbunden ist. Lokale Verbindungen 404 und 406 sind ebenfalls dargestellt.
-
Zur leichteren Bezugnahme werden oberseitige Auswahlschichten TSGL0, TSGL1, TSGL2 und TSGL3; unterseitige Auswahlschichten BSGLO, BSGL1, BSGL2 und BSGL3; Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL und WLDU; und Wortleitungsschichten WLL0-WLL95 zusammen als die leitenden Schichten bezeichnet. In einer Ausführungsform sind die leitenden Schichten aus einer Kombination von TiN und Wolfram hergestellt. In anderen Ausführungsformen können andere Materialien verwendet werden, um die leitenden Schichten zu bilden, wie dotiertes Polysilicium, Metall wie Wolfram oder Metallsilizid. In einigen Ausführungsformen können verschiedene leitende Schichten aus unterschiedlichen Materialien gebildet werden. Zwischen leitenden Schichten befinden sich dielektrische Schichten DL0-DL111. Beispielsweise befinden sich dielektrische Schichten DL104 über einer Wortleitungsschicht WLL94 und unter einer Wortleitungsschicht WLL95. In einer Ausführungsform sind die dielektrischen Schichten aus SiO2 hergestellt. In anderen Ausführungsformen können andere dielektrische Materialien verwendet werden, um die dielektrischen Schichten zu bilden.
-
Die nichtflüchtigen Speicherzellen sind entlang vertikaler Spalten ausgebildet, die durch alternierende leitende und dielektrische Schichten im Stapel verlaufen. In einer Ausführungsform sind die Speicherzellen in NAND-Ketten angeordnet. Die Wortleitungsschichten WLL0-WLL95 sind mit Speicherzellen (auch Datenspeicherzellen genannt) verbunden. Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL und WLDU sind mit Dummy-Speicherzellen verbunden. Eine Dummy-Speicherzelle speichert keine Host-Daten (Daten, die von dem Host bereitgestellt werden, wie Daten von einem Benutzer des Hosts) und ist nicht dazu geeignet, sie zu speichern, während eine Datenspeicherzelle dazu geeignet ist, Host-Daten zu speichern. In einigen Ausführungsformen können Datenspeicherzellen und Dummy-Speicherzellen die gleiche Struktur aufweisen. Eine Dummy-Wortleitung ist mit Dummy-Speicherzellen verbunden. Oberseitige Auswahlschichten TSGL0, TSGL1, TSGL2 und TSGL3 werden zum elektrischen Verbinden und Trennen von NAND-Ketten von Bitleitungen oder Sourceleitungen verwendet (wie nachstehend erörtert). Unterseitige Auswahlschichten BSGLO, BSGL1, BSGL2 und BSGL3 werden zum elektrischen Verbinden und Trennen von NAND-Ketten von Sourceleitungen oder Bitleitungen verwendet (wie nachstehend erörtert).
-
7 zeigt auch einen Stoßbereich. In einer Ausführungsform ist es teuer und/oder schwierig, sechsundneunzig Wortleitungsschichten zu ätzen, die mit dielektrischen Schichten vermischt sind. Zur Erleichterung dieser Belastung schließt eine Ausführungsform das Ablegen eines ersten Stapels von achtundvierzig Wortleitungsschichten, die sich mit dielektrischen Schichten abwechseln, das Ablegen des Stoßbereichs und das Ablegen eines zweiten Stapels von achtundvierzig Wortleitungsschichten, die sich mit dielektrischen Schichten abwechseln, ein. Der Stoßbereich ist zwischen dem ersten Stapel und dem zweiten Stapel positioniert. Der Stoßbereich wird dazu verwendet, um den ersten Stapel mit dem zweiten Stapel zu verbinden. In 7 wird der erste Stapel als „Unterer Satz von Wortleitungen“ und der zweite Stapel als „Oberer Satz von Wortleitungen“ bezeichnet. In einer Ausführungsform besteht der Stoßbereich aus den gleichen Materialien wie die Wortleitungsschichten. In einem beispielhaften Satz von Ausführungsformen besteht die Vielzahl von Wortleitungen (Steuerleitungen) aus einem ersten Stapel von abwechselnden Wortleitungsschichten und dielektrischen Schichten, einem zweiten Stapel von abwechselnden Wortleitungsschichten und dielektrischen Schichten und einem Stoßbereich zwischen dem ersten Stapel und dem zweiten Stapel, wie in 7 dargestellt.
-
8 stellt eine Querschnittsansicht des Bereichs 429 aus 7 dar, der einen Abschnitt der vertikalen Spalte 432 (Speicherloch) einschließt. In einer Ausführungsform sind die vertikalen Spalten rund; in anderen Ausführungsformen können jedoch andere Formen verwendet werden. In einer Ausführungsform beinhaltet die vertikale Säule 432 eine innere Kernschicht 470, die aus einem Dielektrikum, wie beispielsweise SiO2, hergestellt ist. Es können auch andere Materialien verwendet werden. Der umgebende innere Kern 470 ist ein Polysiliziumkanal 471. Es können auch andere Materialien als Polysilicium verwendet werden. Es ist zu beachten, dass es der Kanal 471 ist, der mit der Bitleitung und der Source-Leitung verbunden ist. Der umgebende Kanal 471 ist ein Tunneldielektrikum 472. In einer Ausführungsform hat das Tunneldielektrikum 472 eine ONO-Struktur. Das umgebende Tunneldielektrikum 472 ist eine Ladungsfängerschicht 473, wie (zum Beispiel) Siliziumnitrid. Andere Speichermaterialien und Strukturen können ebenfalls verwendet werden. Die hierin beschriebene Technologie ist nicht auf ein spezifisches Material oder eine spezifische Struktur beschränkt.
-
8 zeigt die dielektrischen Schichten DLL105, DLL104, DLL103, DLL102 und DLL101 sowie Wortleitungsschichten WLL95, WLL94, WLL93, WLL92 und WLL91. Jede der Wortleitungsschichten schließt einen Wortleitungsbereich 476 ein, der von einer Aluminiumoxidschicht 477 umgeben ist, die von einer Blockieroxidschicht 478 umgeben ist. In anderen Ausführungsformen kann die Blockieroxidschicht eine vertikale Schicht sein, die parallel zu und angrenzend an die Ladungsfängerschicht 473 ist. Die physikalische Wechselwirkung der Wortleitungsschichten mit der vertikalen Spalte bildet die Speicherzellen. Somit weist eine Speicherzelle in einer Ausführungsform Kanal 471, Tunneldielektrikum 472, Ladungsfängerschicht 473, Blockieroxidschicht 478, Aluminiumoxidschicht 477 und Wortleitungsbereich 476 auf. Beispielsweise weisen die Wortleitungsschicht WLL95 und ein Abschnitt der vertikalen Spalte 432 eine Speicherzelle MC1 auf. Die Wortleitungsschicht WLL94 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC2 auf. Die Wortleitungsschicht WLL93 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC3 auf. Die Wortleitungsschicht WLL92 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC4 auf. Die Wortleitungsschicht WLL91 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC5 auf. In anderen Architekturen kann eine Speicherzelle eine andere Struktur haben; die Speicherzelle wäre jedoch immer noch die Speicherungseinheit.
-
Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Teil der Ladungsfängerschicht 473 gespeichert, der der Speicherzelle zugeordnet ist. Diese Elektronen werden in die Ladungsfängerschicht 473 aus dem Kanal 471, durch das Tunneldielektrikum 472 in Reaktion auf eine entsprechende Spannung im Wortleitungsbereich 476 gezogen. Die Schwellenspannung (Vth) einer Speicherzelle wird proportional zur Menge der gespeicherten Ladung erhöht. In einer Ausführungsform wird die Programmierung durch Fowler Nordheim-Tunneln der Elektronen in die Ladungsfängerschicht erreicht. Während eines Löschvorgangs kehren die Elektronen in den Kanal zurück oder werden Löcher in die Ladungsfängerschicht injiziert, um sich mit Elektronen zu rekombinieren. In einer Ausführungsform wird Löschen unter Verwendung von Löcherinjektion in die Ladungsfängerschicht über einen physikalischen Mechanismus, wie durch Gate induziertes Drain-Leck (GIDL), erreicht.
-
Wie vorstehend erörtert, schließt die integrierte Speicherbaugruppe eine erste Steuerschaltung auf dem Speicher-Die (unterhalb der Speicherstruktur 326) und eine zweite Steuerschaltung auf dem Steuer-Die ein, sodass die erste Steuerschaltung eingerichtet ist, um verwendet zu werden, um einen Speichervorgang an einem ersten Teilsatz der nichtflüchtigen Speicherzellen (z. B. ersten Unterblock) durchzuführen, während die zweite Steuerschaltung eingerichtet ist, um gleichzeitig verwendet zu werden, um denselben Speichervorgang an einem zweiten Teilsatz der nichtflüchtigen Speicherzellen (z. B. zweiter Unterblock desselben Blocks) durchzuführen. 9 ist eine Querschnittsansicht einer Ausführungsform eines Abschnitts von zwei Blöcken von Speicherblöcken (Block N und Block N+1) der Speicherstruktur 326, die besser erläutert, wie die verschiedenen Speicherlöcher/ NAND-Ketten mit den Bitleitungen und Sourceleitungen verbunden sind, um es der ersten Steuerschaltung zu ermöglichen, einen Speichervorgang an einem ersten Teilsatz der nichtflüchtigen Speicherzellen durchzuführen, während die zweite Steuerschaltung gleichzeitig einen Speichervorgang an einem zweiten Teilsatz der nichtflüchtigen Speicherzellen durchführt. In einer Ausführungsform ist jeder Block in vier Unterblöcke SB0, SB1, SB2 und SB3 unterteilt. Unterblock SB0 entspricht solchen vertikalen NAND-Ketten, die durch TSGL0 und BSGL0 gesteuert werden, Unterblock SB1 entspricht solchen vertikalen NAND-Ketten, die durch TSGL1 und BSGL1 gesteuert werden, Unterblock SB2 entspricht solchen vertikalen NAND-Ketten, die durch TSGL2 und BSGL2 gesteuert werden, und Unterblock SB3 entspricht solchen vertikalen NAND-Ketten, die durch TSGL3 und BSGL3 gesteuert werden. Zu Beispielszwecken und um das Lesen der Zeichnung zu erleichtern, zeigt 9 zwei Speicherlöcher/NAND-Ketten für jeden Unterblock (SB0, SB1, SB2, SB3) von Block N und Block N+1; in den meisten Ausführungsformen schließt jedoch jeder Unterblock mehr als zwei Speicherlöcher/NAND-Ketten ein.
-
Die Speicherstruktur 326 schließt Bitleitungen über der Speicherstruktur 326 und unter der Speicherstruktur 326 ein. Zum Beispiel liegen die Bitleitungen Top_BLn und Top_ BLn+1 über der Speicherstruktur 326, während die Bitleitungen Bottom_BLn und Bottom_BLn+ 1 unter der Speicherstruktur 326 liegen. Es wird in Betracht gezogen, dass es mehr als zwei Bitleitungen über der Speicherstruktur 326 und mehr als zwei Bitleitungen unter der Speicherstruktur 326 gibt; 9 zeigt jedoch nur zwei, damit die Zeichnung leichter zu lesen ist. In einer Ausführungsform sind die oberen Bitleitungen mit der Steuerschaltung (einschließlich Erfassungsverstärkern) des Steuer-Dies 304 (CCAA) verbunden und die unteren Bitleitungen sind mit der Steuerschaltung (einschließlich Erfassungsverstärkern) des Speicher-Dies 302 (CCUA) verbunden. In der in 9 dargestellten Implementierung sind NAND-Ketten der Unterblöcke SB0 und SB1 mit Bitleitungen über der Speicherstruktur und dadurch mit den Erfassungsverstärkern des Steuer-Dies 304 (CCAA) verbunden, während NAND-Ketten der Unterblöcke SB2 und SB3 mit Bitleitungen unter der Speicherstruktur und dadurch mit den Erfassungsverstärkern des Speicher-Dies 302 (CCUA) verbunden sind. Zum Beispiel ist die NAND-Kette a des Unterblocks SB0 mit Top_ Ln verbunden, die NAND-Kette b des Unterblocks SB0 ist mit Top_BLn+1 verbunden, die NAND-Kette c des Unterblocks SB1 ist mit Top_BLn verbunden, die NAND-Kette d des Unterblocks SB1 ist mit Top_BLn+1 verbunden, NAND-Kette e des Unterblocks SB2 ist mit Bottom_BLn verbunden, NAND-Kette f des Unterblocks SB2 ist mit Bottom_BLn+1 verbunden, NAND-Kette g des Unterblocks SB3 ist mit Bottom_BLn verbunden, NAND-Kette h des Unterblocks SB3 ist mit Bottom_BLn+1 verbunden, NAND-Kette i des Unterblocks SB0 ist mit Top_BLn verbunden, NAND-Kette j des Unterblocks SB0 ist mit Top_BLn+1 verbunden, NAND-Kette k des Unterblocks SB1 ist mit Top_BLn verbunden, NAND-Kette I des Unterblocks SB1 ist mit Top_BLn+1 verbunden, Die NAND-Kette m des Unterblocks SB2 ist mit Bottom_BLn verbunden, die NAND-Kette n des Unterblocks SB2 ist mit Bottom_BLn+1 verbunden, die NAND-Kette o des Unterblocks SB3 ist mit Bottom_BLn verbunden und die NAND-Kette p des Unterblocks SB3 ist mit Bottom_BLn+1 verbunden.
-
Die Speicherstruktur 326 schließt eine Sourceleitung (Top_SL) über der Speicherstruktur 326 und eine Sourceleitung (Bottom_SL) unter der Speicherstruktur 326 ein. Die Sourceleitungen werden in einzelne und getrennte nicht kontinuierliche Abschnitte unterteilt gezeigt. Jeder der einzelnen Abschnitte der Sourceleitung Top_ SL ist miteinander verbunden (z. B. miteinander kurzgeschlossen oder zu einer gemeinsamen Verbindung geführt). Jeder der einzelnen Abschnitte der Sourceleitung Bottom_SL ist miteinander verbunden (z. B. miteinander kurzgeschlossen oder zu einer gemeinsamen Verbindung geführt). In einer Ausführungsform sind Top_ SL und Bottom_SL beide mit der Steuerschaltung des Steuer-Dies 304 verbunden. In einer anderen Ausführungsform sind Top_SL und Bottom_SL beide mit der Steuerschaltung des Speicher-Dies 302 verbunden. In einer anderen Ausführungsform ist Top_SL mit der Steuerschaltung des Steuer-Dies 304 verbunden, und Bottom_SL ist mit der Steuerschaltung des Speicher-Dies 302 verbunden.
-
In der Anordnung von 9 kann ein Speichervorgang an NAND-Ketten von Unterblock SB0 (z. B. NAND-Ketten a und b) über Erfassungsverstärker auf dem Steuer-Die 304 (CCAA) durchgeführt werden, während der Speichervorgang gleichzeitig an NAND-Ketten von Unterblock SB2 (z. B. NAND-Ketten e und f) über Erfassungsverstärker auf dem Speicher-Die 302 (CCUA) durchgeführt wird; ein Speichervorgang kann an NAND-Ketten von Unterblock SB0 (z. B. NAND-Ketten a und b) über Erfassungsverstärker auf dem Steuer-Die 304 durchgeführt werden, während ein Speichervorgang gleichzeitig an NAND-Ketten von Unterblock SB3 (z. B. NAND-Ketten g und h) über Erfassungsverstärker auf dem Speicher-Die 302 durchgeführt wird; ein Speichervorgang kann an NAND-Ketten von Unterblock SB1 (z. B. NAND-Ketten c und d) über Erfassungsverstärker auf dem Steuer-Die 304 durchgeführt werden, während ein Speichervorgang gleichzeitig an NAND-Ketten von Unterblock SB2 (z. B. NAND-Ketten e und f) über Erfassungsverstärker auf dem Speicher-Die 302 durchgeführt wird; und ein Speichervorgang kann an NAND-Ketten von Unterblock SB1 (z. B. NAND-Ketten c und d) über Erfassungsverstärker auf dem Steuer-Die 304 durchgeführt werden, während ein Speichervorgang gleichzeitig an NAND-Ketten von Unterblock SB3 (z. B. NAND-Ketten g und h) über Erfassungsverstärker auf dem Speicher-Die 302 durchgeführt wird.
-
In einem Beispiel kann das Speichersystem eine erste Seite von Daten (z. B. 16 KB) über Erfassungsverstärker auf dem Steuer-Die 304 in SB0 oder SB1 schreiben, während gleichzeitig eine zweite Seite von Daten über Erfassungsverstärker auf dem Speicher-Die 302 in SB2 oder SB3 geschrieben wird, wodurch der Grad an Parallelität verdoppelt wird, was zu einer Erhöhung der Geschwindigkeit/Leistung des Speichersystems führt. Auf ähnliche Weise kann das Speichersystem eine erste Seite von Daten (z. B. 16 KB) über Erfassungsverstärker aus dem Steuer-Die 304 in SB0 oder SB1 lesen, während gleichzeitig eine zweite Seite von Daten über Erfassungsverstärker aus dem Speicher-Die 302 in SB2 oder SB3 gelesen wird, wodurch der Grad an Parallelität verdoppelt wird, was zu einer Erhöhung der Geschwindigkeit/Leistung des Speichersystems führt. Da außerdem alle Speicherzellen der zwei Unterblöcke, die einen Speichervorgang erfahren, mit derselben Wortleitung verbunden sind, wird die Wortleitungsspannung (z. B. Leistung) effizienter genutzt. Das heißt, die gleiche Wortleitungsspannung wird verwendet, um auf doppelt so viele Speicherzellen zu schreiben oder aus doppelt so vielen Speicherzellen zu lesen. Bisherige Speichersysteme konnten diesen Grad an Parallelität nicht erreichen, da auf einem einzigen Die nicht genügend Platz für genügend Erfassungsverstärker vorhanden war.
-
Für die Zwecke dieses Dokuments schließt der Begriff „gleichzeitig“ eine zeitliche Überlappung ein, selbst wenn sie zu unterschiedlichen Zeiten starten oder stoppen. Es ist zu beachten, dass 9 Top_BLn+1, Top_BLn, Top_SL und CCAA über der Speicherstruktur zeigt, während Bottom_BLn, Bottom_BLn+1, Bottom_SL und CCUA unter der Speicherstruktur liegen. Die Begriffe oben und unten werden in Bezug auf die Speicherstruktur 326 und das Substrat des Speicher-Dies 302 verwendet, sodass etwas zwischen der Speicherstruktur 326 und dem Substrat des Speicher-Dies 302 unter der Speicherstruktur betrachtet wird und etwas, das sich auf der gegenüberliegenden Seite der Speicherstruktur wie das Substrat des Speicher-Dies 302 befindet, über der Speicherstruktur betrachtet wird, unabhängig von der Ausrichtung der integrierten Speicherbaugruppe.
-
9 zeigt die oberseitige Auswahlleitung Top_SGL, welche die oberseitigen Auswahlleitungen TSGL0, TSGL1, TSGL2 und TSGL3 darstellt; daher zeigt 9 Top_SGL als vier nicht verbundene Metallleitungen (mit der gleichen Schraffur). 9 zeigt auch die unterseitige Auswahlleitung Bottom_SGL, welche die unterseitigen Auswahlleitungen BSGLO, BSGL1, BSGL2 und BSGL3 darstellt; daher zeigt 9 Bottom_SGL als vier nicht verbundene Metallleitungen (mit der gleichen Schraffur). Für NAND-Ketten von Unterblöcken SB0 und SB1 (z. B. a, b, c, d, i, j, k, I) arbeitet Top_SGL als drainseitige Auswahlleitung und Bottom_SGL als sourceseitige Auswahlleitung; daher sind die Auswahlgates, die mit Top_SGL verbunden sind, drainseitige Auswahlgates und die Auswahlgates, die mit Bottom_SGL verbunden sind, sind sourceseitige Auswahlgates. Für NAND-Ketten von Unterblöcken SB2 und SB3 (z. B. e, f, g, h, m, n, o, p) arbeitet Top_SGL als sourceseitige Auswahlleitung und Bottom_SGL als drainseitige Auswahlleitung; daher sind die Auswahlgates, die mit Top_SGL verbunden sind, sourceseitige Auswahlgates und die Auswahlgates, die mit Bottom_SGL verbunden sind, sind drainseitige Auswahlgates. Somit kann dieselbe Auswahlleitung gleichzeitig eine drainseitige Auswahlleitung für einige Unterblöcke und eine sourceseitige Auswahlleitung für andere Unterblöcke sein.
-
10 ist ein Schaltplan für die Ausführungsform von 9, der einen Abschnitt des in den 5-8 beschriebenen Speichers darstellt. Insbesondere zeigt 10 einen Abschnitt eines Blocks, der eine NAND-Kette a im Unterblock SB0, eine NAND-Kette c im Unterblock SB1, eine NAND-Kette e im Unterblock SB2, eine NAND-Kette g im Unterblock SB0, obere Bitleitungen (411, 412, 413, 414, 419), untere Bitleitungen (423, 425, 427, 429), Bottom_SL und Top_SL einschließt. Die oberen Bitleitungen 411 und 412 entsprechen den Bitleitungen Top_BLn und Top_BLn+1 von 9. Die unteren Bitleitungen 423 und 425 entsprechen den Bitleitungen Bottom_BLn und Bottom_BLn+1 von 9. Um 10 leichter lesen zu können und als Beispiel ist nur eine NAND-Kette für jeden der Unterblöcke SB0, SB1, SB2 und SB3 dargestellt. 10 zeigt physikalische Wortleitungen WLL0-WLL95, die über den gesamten Block verlaufen. Die Struktur von 10 entspricht Abschnitt 401 in Block 2 von 5. Innerhalb des Blocks ist jede Bitleitung mit zwei NAND-Ketten verbunden. Oberseitige Auswahlleitungen TSGL0, TSGL1, TSGL2 und TSGL3 und unterseitige Auswahlleitungen BSGLO, BSGL1, BSGL2 und BSGL3 werden verwendet, um zu bestimmen, welche der NAND-Ketten mit den zugehörigen Bitleitungen und Sourceleitung(en) verbunden sind.
-
11 ist eine Querschnittsansicht einer Ausführungsform eines Abschnitts von zwei Blöcken von Speicherzellen. Die Struktur von 11 ähnelt der Struktur von 9, mit der Ausnahme, dass die Sourceleitungen (Top_SL und Bottom_SL) kontinuierlich sind und nicht in separate nicht kontinuierliche Abschnitte unterteilt sind (wie in 9 dargestellt). In der Struktur von 11 sind die Sourceleitungen (Top_ SL und Bottom_ SL) geätzt worden (z. B. ein Loch wird durch die Sourceleitungen geätzt), um den Bitleitungskontakten (und dem Dielektrikum, das die Bitleitungskontakte umgibt) zu ermöglichen, durch die Sourceleitungen hindurchzugehen.
-
Wie vorstehend erörtert, sind NAND-Ketten in der Hälfte der Unterblöcke eines Blocks mit Erfassungsverstärkern über der Speicherstruktur verbunden (z. B. auf dem Steuer-Die 304), und NAND-Ketten in der Hälfte der Unterblöcke eines Blocks sind mit Erfassungsverstärkern unter der Speicherstruktur verbunden (z. B. auf dem Speicher-Die 302). In den Ausführungsformen der 9 und 11 verbinden sich NAND-Ketten von SB0 und SB1 mit Erfassungsverstärkern über der Speicherstruktur (z. B. auf dem Steuer-Die 304) und NAND-Ketten von SB2 und SB3 verbinden sich mit Erfassungsverstärkern unter der Speicherstruktur (z. B. auf dem Speicher-Die 302). 12 ist eine Querschnittsansicht einer anderen Ausführungsform eines Abschnitts von zwei Speicherzellblöcken, in denen NAND-Ketten von SB0 und SB2 mit Erfassungsverstärkern über der Speicherstruktur (z. B. auf dem Steuer-Die 304) verbunden sind und NAND-Ketten von SB1 und SB3 mit Erfassungsverstärkern unter der Speicherstruktur (z. B. auf dem Speicher-Die 302) verbunden sind. Somit sind in der Ausführungsform von 12 NAND-Ketten von SB0 und SB2 mit Bitleitungen (Top_ BLn und Top_ BLn+ 1) über der Speicherstruktur verbunden und mit einer Sourceleitung (Bottom_ SL) unter der Speicherstruktur verbunden, während NAND-Ketten von SB1 und SB3 mit Bitleitungen (Bottom_BLn und Bottom_BLn+ 1) unter der Speicherstruktur verbunden sind und mit einer Sourceleitung (Top_ SL) über der Speicherstruktur verbunden sind. Daher kann ein Speichervorgang an SB0 gleichzeitig mit entweder SB1 oder SB3 durchgeführt werden. In ähnlicher Weise kann ein Speichervorgang an SB2 gleichzeitig mit entweder SB1 oder SB3 durchgeführt werden.
-
Die 12A und 12B schließen Tabellen Ein, die beispielhafte Spannungsvorspannungen identifizieren, die an die oberseitigen Auswahlleitungen TSGL0, TSGL1, TSGL2 und TSGL3 (kollektiv Top_SGL) und die unterseitigen Auswahlleitungen BSGL0, BSGL1, BSGL2 und BSGL3 (kollektiv Bottom_SGL) anzulegen sind, um das Schreiben und Lesen von Daten durchzuführen. Die Tabelle von 12A gilt für die Ausführungsform von 9-11. Die Tabelle von 12B gilt für die Ausführungsform von 12. Zum Beispiel lehrt die dritte Spalte von 12A, gleichzeitig eine NAND-Kette in SB0 (z. B. NAND-Kette a) und eine NAND-Kette in SB2 (z. B. NAND-Kette e) zu programmieren/ darauf zu schreiben, wobei die Systeme VSGD auf TSGL0, VSS auf TSGL1, VSS auf TSGL2, VSS auf TSGL3, VSS auf BSGLO, VSS auf BSGL1, VSGD auf BSGL2 und VSS auf BSGL3 anwenden. Die Spannung VSGD beträgt etwa 2,5 Volt. Die Spannung VSS beträgt etwa 0 Volt. Die Spannung VSG beträgt etwa 7 Volt. Gemäß der konkreten Implementierung können auch andere Spannungen verwendet werden. Es ist zu beachten, dass in der Tabelle von 12B, obwohl eine positive Spannung an Top_SGL und Bottom_SGL für eine ausgewählte NAND-Kette angelegt wird, diese ausgewählte NNAD-KETTE entweder von oben oder unten durch Verwenden einer geeigneten Schwellenspannung für den Transistor, der das Auswahlgate ist, abgetrennt werden kann.
-
13 ist ein Blockdiagramm, das weitere Details einer Ausführungsform einer integrierten Speicherbaugruppe darstellt, das den Steuer-Die 304 darstellt, der mit dem Speicher-Die 302 gebondet ist. Steuer-Die schließt eine Vielzahl von Erfassungsverstärkern 350, eine Vielzahl von Wortleitungstreibern 502(1)...502(n) und andere Schaltungen (in 13 nicht dargestellt) ein, die kumulativ eine Steuerschaltung bilden. Auf der Oberfläche des Substrats des Speicher-Dies 302 (und zwischen dem Substrat und der Speicherstruktur 326) befinden sich eine Vielzahl von Erfassungsverstärkern 350 und einer anderen Steuerlogik, die zusammen eine Steuerschaltung bilden. Speicher-Die 302 enthält mindestens eine Ebene 530 von Speicherzellen. Ebene 530 ist die Gesamtheit oder ein Teil einer beispielhaften Ausführungsform der Speicherstruktur 326. Speicher-Die 302 kann zusätzliche Ebenen aufweisen. Die Ebene ist dann in M Blöcke unterteilt.
-
Jeder Erfassungsverstärker 350 ist mit einer Bitleitung verbunden. Für Ebene 530 sind zwei repräsentative Bitleitungen (BL1 und BL2) dargestellt. Es kann Tausende oder Zehntausende solcher Bitleitungen für jede Ebene geben. Die Bitleitung BL1 befindet sich oben auf der Ebene 530 und ist mit einem Erfassungsverstärker 350 auf dem Steuer-Die 304 verbunden. Die Bitleitung BL2 befindet sich unterhalb der Ebene 530 und ist mit einem Erfassungsverstärker 350 auf dem Speicher-Die 302 (positioniert auf dem Substrat des Speicher-Dies 302) verbunden. Die Erfassungsverstärker enthalten Bitleitungstreiber. Auf diese Weise kann der Erfassungsverstärker eine Spannung an die Bitleitung bereitstellen, mit der er verbunden ist. Die Erfassungsverstärker ist auch eingerichtet, um einen Zustand der Bitleitung zu erfassen. In einer Ausführungsform sind die Erfassungsverstärker eingerichtet, um einen Strom zu erfassen, der in der Bitleitung fließt. In einer Ausführungsform sind die Erfassungsverstärker eingerichtet, um eine Spannung auf der Bitleitung zu erfassen.
-
Der Steuer-Die 304 schließt eine Anzahl von Wortleitungstreibern 502(1) - 502(n) ein. Die Wortleitungstreiber 560 sind eingerichtet, um Spannungen an Wortleitungen bereitzustellen. In diesem Beispiel gibt es „n“ Wortleitungen pro Block von Speicherzellen. In einer Ausführungsform wird jeweils einer der Blöcke in der Ebene 530 für einen Speicherarrayvorgang ausgewählt. Wenn der Speichervorgang ein Programm oder ein Lesevorgang ist, wird in einer Ausführungsform eine Wortleitung innerhalb des ausgewählten Blocks für den Speichervorgang ausgewählt. Falls der Speichervorgang ein Löschen ist, werden in einer Ausführungsform alle Wortleitungen innerhalb des ausgewählten Blocks zum Löschen ausgewählt. Die Wortleitungstreiber 502 (z. B. Teil von Leistungssteuerung 316) stellen Spannungen für die Wortleitungen in einem ersten gewählten Block (z. B. Block 2) im Speicher-Die 302 bereit. Der Steuer-Die 304 kann auch Ladungspumpen, Spannungsgeneratoren und dergleichen einschließen, die verwendet werden können, um Spannungen für die Wortleitungstreiber 502 und/oder die Bitleitungstreiber bereitzustellen.
-
Speicher-Die 302 weist eine Anzahl von Bondpads 572a, 572b auf einer ersten Hauptoberfläche 586 des Steuer-Dies 302 auf. Es können „n“ Bondpads 572a vorhanden sein, um Spannungen von entsprechenden „n“ Wortleitungstreibern 502(1) bis 502(n) zu empfangen. Für jede der Ebene 530 zugeordnete Bitleitung kann ein Bondpad 572b vorhanden sein. Das Bezugszeichen 572 wird verwendet, um sich allgemein auf Bondpads auf der Hauptoberfläche 586 zu beziehen.
-
Der Steuer-Die 304 weist eine Anzahl von Bondpads 576a, 576b auf einer ersten Hauptoberfläche 588 von Steuer-Die 304 auf. Es können „n“ Bondpads 576a vorhanden sein, um Spannungen von entsprechenden „n“ Wortleitungstreibern 502(1) - 502(n) an den Speicher-Die 302 zu liefern. Für jede der Ebene 530 zugeordnete Bitleitung kann ein Bondpad 576b vorhanden sein. Das Bezugszeichen 576 wird verwendet, um sich allgemein auf Bondpads auf der Hauptoberfläche 588 zu beziehen. Es ist zu beachten, dass es Bondpadpaare 572a/576a und Bondpadpaare 572b/572b geben kann. In einigen Ausführungsformen sind die Bondpads 570 und/oder 574 Flip-Chip-Bondpads (andere Arte können ebenfalls verwendet werden).
-
Bei einer Ausführungsform entspricht das Muster von Bondpads 572 dem Muster von Bondpads 576. Bondpads 572 sind mit Bondpads 576 gebondet (z. B. Flip-Chip-Bonding). Somit koppeln die Bondpads 572, 576 den Speicher-Die 302 elektrisch und physikalisch mit dem Steuer-Die 304. Außerdem ermöglichen die Bondpads 572, 576 eine interne Signalübertragung zwischen dem Speicher-Die 302 und dem Steuer-Die 304. Somit sind der Speicher-Die 302 und der Steuer-Die 304 mit Bondpads zusammengebondet. Obwohl 13 einen Steuer-Die 304 darstellt, der mit einem Speicher-Die 302 zusammengebondet ist, ist bei einer anderen Ausführungsform ein Steuer-Die 304 mit mehreren Speicher-Dies 302 zusammengebondet.
-
Hierin bedeutet „interne Signalübertragung“ eine Signalübertragung zwischen dem Steuer-Die 304 und dem Speicher-Die 302. Die interne Signalübertragung ermöglicht es der Schaltlogik auf dem Steuer-Die 304, Speichervorgänge im Speicher-Die 302 über die Bondpads zu steuern. Daher können die Bondpads 572, 576 zur Speichervorgang-Signalübertragung verwendet werden. Eine Speichervorgang-Signalübertragung könnte das Bereitstellen einer Spannung, das Bereitstellen eines Stroms, das Empfangen einer Spannung, das Empfangen eines Stroms, das Abtasten einer Spannung und/oder das Abtasten eines Stroms einschließen, ist aber nicht darauf beschränkt.
-
Die Bondpads 572, 576 können zum Beispiel aus Kupfer, Aluminium und Legierungen davon gebildet sein. Zwischen den Bondpads 572, 576 und den Hauptoberflächen (586, 588) kann sich eine Auskleidung befinden. Die Auskleidung kann beispielsweise aus einem Titan-/Titannitrid-Stapel gebildet sein. Die Bondpads 572, 576 und die Auskleidung können durch Aufdampfen und/oder Plattieren aufgebracht sein. Die Bondpads und die Auskleidungen zusammen können eine Dicke von 720 nm aufweisen, obwohl diese Dicke in weiteren Ausführungsformen größer oder kleiner sein kann.
-
Metallverbindungen und/oder Durchkontaktierungen können verwendet werden, um verschiedene Elemente in den Dies elektrisch mit den Bondpads 572, 576 zu verbinden. Dargestellt sind mehrere leitende Pfade, die mit Metallzwischenverbindungen und/oder Durchkontaktierungen implementiert sein können. Zum Beispiel kann ein Erfassungsverstärker 350 durch einen Pfad elektrisch mit Bondpad 576b verbunden sein. Es kann Tausende solcher Erfassungsverstärker, Pfade und Bondpads geben. Es ist zu beachten, dass die BL nicht notwendigerweise eine direkte Verbindung zu Bondpad 572b herstellt. Die Wortleitungstreiber 560 können durch Pfade 508 elektrisch mit Bondpads 576a verbunden sein. Es ist zu beachten, dass die Pfade 508 einen separaten leitenden Pfad für jeden Wortleitungstreiber 502(1) bis 502(n) aufweisen können. Ebenso kann es für jeden Wortleitungstreiber 502(1) bis 502(n) ein separates Bondpad 576a geben. Die Wortleitungen in Block 2 des Speicher-Dies 302 können über Pfade 508 elektrisch mit Bondpads 572a verbunden sein.
-
14 ist ein Blockdiagramm, das zusätzliche Details einer Ausführungsform einer integrierten Speicherbaugruppe darstellt, die einen Speicher-Die 302 einschließt, der direkt mit dem Steuer-Die 304 gebondet ist. Diese direkte Bonding-Konfiguration ähnelt der Ausführungsform, die in 13 dargestellt ist. Es ist zu beachten, dass, obwohl ein Spalt zwischen den Paaren benachbarter Dies dargestellt ist, ein solcher Spalt mit einem Epoxidharz oder einem anderen Harz oder Polymer gefüllt sein kann.
-
Speicherstruktur 326 auf Speicher-Die 302 schließt eine Anzahl von Wortleitungsschichten (WL) ein, die durch dielektrische Schichten getrennt sind. Die dielektrischen Schichten sind durch Spalte zwischen den Wortleitungsschichten dargestellt. Somit bilden die Wortleitungsschichten und dielektrischen Schichten einen Stapel. Es kann viel mehr Wortleitungsschichten geben als in 14 dargestellt. Wie bei dem Beispiel von 13 gibt es eine Anzahl von Spalten, die sich durch den Stapel erstrecken. Eine Spalte wird in dem Stapel mit dem Bezugszeichen 656 bezeichnet. Die Spalten enthalten Speicherzellen. Zum Beispiel kann jede Spalte eine NAND-Kette enthalten. Es gibt eine Anzahl von Bitleitungen (BL) über und unter dem Stapel.
-
Speicher-Die 302 schließt ein Substrat 640 ein. Auf der oberen Oberfläche des Substrats 640 befinden sich Schaltlogik 642, Schaltlogik 644 und eine Vielzahl von Erfassungsverstärkern 350 (14 stellt nur einen Erfassungsverstärker dar), die zusammen eine Steuerschaltung bilden. In einigen Ausführungsformen weisen die Erfassungsverstärker 350 und/oder andere Schaltlogik 642/644 elektrische CMOS-Schaltlogiken auf. Die Speicherstruktur 326 ist direkt über Schaltlogik 642, Schaltlogik 644 und einer Vielzahl von Erfassungsverstärkern 350 positioniert. Die Speicherstruktur 326 schließt Bitleitungen 650 oberhalb der Speicherstruktur und Bitleitungen 652 unterhalb der Speicherstruktur ein. Jeder Erfassungsverstärker 350 auf dem Substrat 640 ist mit einer Bitleitung 652 unter dem Stapel verbunden. Jedes der Speicherlöcher (NAND-Ketten), wie Speicherloch 656, ist mit einer der Bitleitungen 650 oder 652 verbunden, wie vorstehend beschrieben.
-
Steuer-Die 304 schließt ein Substrat 602 ein. Auf der oberen Oberfläche des Substrats 602 befindet sich eine Steuerschaltlogik, die eine Vielzahl von Erfassungsverstärkern 350 (nur ein Erfassungsverstärker ist in 14 dargestellt), Schaltlogik 664, Schaltlogik 666, Schaltlogik 668 und eine Vielzahl von Wortleitungstreibern 502 (nur ein Wortleitungstreiber ist in 14 dargestellt) aufweist. In einigen Ausführungsformen weisen Erfassungsverstärker 350, Wortleitungstreiber 502 und/oder eine andere Schaltlogik 664/666/668 elektrische CMOS-Schaltungen auf. Ein Erfassungsverstärker 350 ist mit einer der Bitleitungen 650 oben auf der Speicherstruktur 326 über eine Leiterbahn 624, TSV 622, Bondpad 576b, Bondpad 572b und Leiterbahn 630 verbunden. Ein Wortleitungstreiber 502 ist mit einer der Wortleitungen (WL) 632 Leitungen über Leiterbahn 616, TSV 618, Bondpad 576a, Bondpad 572a und Leiterbahn 508 verbunden.
-
Es gibt einen externen Signalpfad, der es Schaltlogik auf dem Steuer-Die 304 ermöglicht, mit einer Entität außerhalb der integrierten Speicherbaugruppe 130, wie Speichersteuerung 120, zu kommunizieren. Daher kommuniziert die Schaltlogik 668 auf dem Steuer-Die 304 mit der Speichersteuerung 120 und stellt dieser eine Schnittstelle bereit. Daher kann die Schaltlogik 668 optional auf dem Steuer-Die 304 mit Host 120 kommunizieren. Der externe Signalpfad schließt über 670 im Steuer-Die 304 und Bondpad 672 ein.
-
15 stellt eine Ausführungsform eines Grundrisses 704 für den Steuer-Die 304 dar und 16 stellt eine Ausführungsform eines Grundrisses 702 für den Speicher-Die 302 dar. Der Grundriss 704 zeigt eine Ausführungsform der Platzierung einiger der Komponenten, welche die Steuerschaltung aufweisen, auf dem Steuer-Die 304. Zum Beispiel zeigt der Grundriss 704 die Platzierung von acht Modulen mit der Bezeichnung SA/DL, was Erfassungsverstärkern und Datenhaltespeicher entspricht. Der Grundriss 704 schließt auch acht Module ein, die als HVP (High Voltage Pump), Ein-/Ausgabeschaltungen (I/O), Zeilendecodierer (RD) und andere Logik bezeichnet werden, um verschiedene Steuerfunktionen (Logik) zu implementieren. In einer Ausführungsform sind jede der Komponenten des Grundrisses 704 elektrische Schaltungen, die auf der Oberfläche des Substrats des Steuer-Dies 304 positioniert sind. In anderen Ausführungsformen kann der Grundriss 704 die dargestellten Komponenten an anderen Stellen platzieren, andere Komponenten einschließen und/oder weniger als alle der in 15 dargestellten Komponenten einschließen.
-
Der Grundriss 702 zeigt eine Ausführungsform der Platzierung einiger der Komponenten, welche die Speicherschaltung aufweisen, auf dem Steuer-Die 302. Zum Beispiel zeigt der Grundriss 702 die Platzierung von acht Modulen mit der Bezeichnung SA/DL, was Erfassungsverstärkern und Datenhaltespeicher entspricht. Der übrige Grundriss 702 dient der Logik zur Realisierung verschiedener Steuerungsfunktionen (Logik). In einer Ausführungsform sind alle Komponenten des Grundrisses 702 elektrische Schaltungen, die auf der Oberfläche des Substrats des Speicher-Dies 302 positioniert sind, und sind unter der Speicherstruktur 326 positioniert, sodass sich die Komponenten des Grundrisses 702 zwischen dem Substrat und der Speicherstruktur befinden. In anderen Ausführungsformen kann der Grundriss 702 die dargestellten Komponenten an anderen Stellen platzieren, andere Komponenten einschließen und/oder weniger als alle der in 16 dargestellten Komponenten einschließen. In einer Ausführungsform kann die Logik zum Implementieren verschiedener Steuerfunktionen (Logik) verwendet werden, um einige der Funktionen zu implementieren, die als Teil des Steuer-Dies 304 in 2 dargestellt sind.
-
17 stellt eine weitere Ausführungsform eines Grundrisses 714 für den Steuer-Die 304 dar und 18 stellt eine weitere Ausführungsform eines Grundrisses 712 für den Speicher-Die 302 dar. Der Grundriss 714 zeigt eine Ausführungsform der Platzierung einiger der Komponenten, welche die Steuerschaltung aufweisen, auf dem Steuer-Die 304. Zum Beispiel zeigt der Grundriss 714 die Platzierung von acht Modulen mit der Bezeichnung SA/DL, was Erfassungsverstärkern und Datenhaltespeicher entspricht. Der Grundriss 714 schließt auch Logik ein, um verschiedene Steuerfunktionen (Logik) und Ein-/Ausgabeschaltungen (I/O) zu implementieren. In einer Ausführungsform sind jede der Komponenten des Grundrisses 714 elektrische Schaltungen, die auf der Oberfläche des Substrats des Steuer-Dies 304 positioniert sind. In anderen Ausführungsformen kann der Grundriss 704 die dargestellten Komponenten an anderen Stellen platzieren, andere Komponenten einschließen und/oder weniger als alle der in 17 dargestellten Komponenten einschließen.
-
Der Grundriss 712 zeigt eine weitere Ausführungsform der Platzierung einiger der Komponenten, welche die Speicherschaltung aufweisen, auf dem Steuer-Die 302. Zum Beispiel zeigt der Grundriss 712 die Platzierung von acht Modulen mit der Bezeichnung SA/DL, was Erfassungsverstärkern und Datenhaltespeicher entspricht. Der Grundriss 712 schließt auch acht Module ein, die als HVP (High Voltage Pump), Zeilendecodierer (RD) und andere Logik bezeichnet werden, um verschiedene Steuerfunktionen (Logik) zu implementieren. In einer Ausführungsform sind alle Komponenten des Grundrisses 712 elektrische Schaltungen, die auf der Oberfläche des Substrats des Speicher-Dies 302 positioniert sind, und sind unter der Speicherstruktur 326 positioniert, sodass sich die Komponenten des Grundrisses 712 zwischen dem Substrat und der Speicherstruktur befinden. In anderen Ausführungsformen kann der Grundriss 712 die dargestellten Komponenten an anderen Stellen platzieren, andere Komponenten einschließen und/oder weniger als alle der in 18 dargestellten Komponenten einschließen.
-
Bei einigen Ausführungsformen kann es mehr als einen Steuer-Die 304 und mehr als einen Speicher-Die 302 in einer integrierten Speicherbaugruppe 130 geben. In einigen Ausführungsformen schließt die integrierte Speicherbaugruppe 130 einen Stapel aus mehreren Steuer-Dies 304 und mehreren Speicher-Dies 302 ein. 19 zeigt eine Seitenansicht einer Ausführungsform einer integrierten Speicherbaugruppe 130, das auf einem Substrat 802 gestapelt ist. Die integrierte Speicherbaugruppe 130 weist drei Steuer-Dies 304 und drei Speicher-Dies 302 auf. Jeder Steuer-Die 304 ist direkt mit einem der Speicher-Dies 302 gebondet. Einige der Bondpads 8730, 824 sind dargestellt. Es kann viel mehr Bondpads geben. Ein Raum zwischen zwei Dies 302, 304, die zusammengebondet sind, ist mit einer festen Schicht 848 gefüllt, die aus Epoxid oder einem anderen Harz oder Polymer gebildet sein kann. Diese feste Schicht 848 schützt die elektrischen Verbindungen zwischen den Dies 302, 304 und befestigt die Dies weiter miteinander. Verschiedene Materialien können als feste Schicht 848 verwendet werden, doch in Ausführungsformen kann es sich um Hysol-Epoxidharz von Henkel Corp. handeln.
-
Die integrierte Speicherbaugruppe 130 kann zum Beispiel mit einem gestuften Versatz gestapelt werden, wobei die Bondpads 804 auf jeder Ebene unbedeckt und von oben zugänglich bleiben. Drahtbonds 806, die mit den Bondpads 804 verbunden sind, verbinden den Steuer-Die 304 mit dem Substrat 802. Eine Anzahl solcher Drahtbonds kann über die Breite jedes Steuer-Dies 304 gebildet werden.
-
Eine Siliziumdurchkontaktierung (TSV) 812 kann verwendet werden, um Signale durch einen Steuer-Die 304 zu leiten. Eine Siliziumdurchkontaktierung (TSV) 814 kann verwendet werden, um Signale durch einen Speicher-Die 302 zu leiten. Die TSV 812, 814 können vor, während oder nach Bilden der integrierten Schaltungen in den Halbleiter-Dies 302, 304 gebildet werden. Die TSV können durch Ätzen von Löchern durch die Wafer gebildet werden. Die Löcher können dann mit einer Barriere gegen Metalldiffusion ausgekleidet werden. Die Sperrschicht kann wiederum mit einer Impfschicht ausgekleidet sein, und die Impfschicht kann mit einem elektrischen Leiter wie Kupfer beschichtet sein, obwohl andere geeignete Materialien wie Aluminium, Zinn, Nickel, Gold, dotiertes Polysilicium und Legierungen oder Kombinationen davon verwendet werden können.
-
Lötkugeln 808 können optional an Kontaktpads 810 auf einer unteren Oberfläche des Substrats 802 befestigt werden. Lötkugeln 808 können verwendet werden, um die integrierte Speicherbaugruppe 130 elektrisch und mechanisch mit einer Hostvorrichtung, wie einer Leiterplatte, zu koppeln. Lötkugeln 808 können weggelassen werden, wenn die integrierte Speicherbaugruppe 130 als LGA-Gehäuse verwendet werden soll. Lötkugeln 808 können einen Teil der Schnittstelle zwischen der integrierten Speicherbaugruppe 130 und der Speichersteuerung 102 bilden.
-
Bei der Ausführungsform von 19 sind die Speicher-Dies 302 und die Steuer-Dies 304 paarweise angeordnet. D. h. jeder Speicher-Die 302 ist mit einem entsprechenden/passenden/gepaarten Steuer-Die gebondet und mit diesem in Kommunikation.
-
20 ist ein Blockdiagramm einer Speicherstruktur 900, die vier Ebenen 902, 904, 906 und 908 einschließt und die hierin vorgeschlagene Technologie nicht nutzt. Das heißt, die Speicherstruktur 900 wird in einem Speichersystem verwendet, das keine Erfassungsverstärker sowohl auf dem Speicher-Die als auch auf dem Steuer-Die einschließt. Für einen Speichervorgang kann daher jeweils nur ein Unterblock pro Ebene ausgewählt werden. 20 zeigt eine Schattierung für die Unterblöcke, sodass die horizontale Schattierung nicht ausgewählte Unterblöcke darstellt und die Kreuzschattierung ausgewählte Unterblöcke veranschaulicht. 20 zeigt vier Unterblöcke eines gleichen Blocks für jede Ebene 902, 904, 906 und 908. Zum Beispiel sind Unterblöcke 902-0, 902-1, 902-2 und 902-3 für einen gleichen Block in der Ebene 902 dargestellt. Von den Unterblöcken 902-0, 902-1, 902-2 und 902-3 wird nur Unterblock 902-3 für einen Speichervorgang ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 904-0, 904-1, 904-2 und 904-3 sind für einen gleichen Block in der Ebene 904 dargestellt. Von Unterblöcken 904-0, 904-1, 904-2 und 902-3 wird nur Unterblock 904-3 für einen Speichervorgang ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 906-0, 906-1, 906-2 und 906-3 sind für einen gleichen Block in der Ebene 906 dargestellt. Von Unterblöcken 906-0, 906-1, 906-2 und 906-3 wird nur Unterblock 906-3 für einen Speichervorgang ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 908-0, 908-1, 908-2 und 908-3 sind für einen gleichen Block in der Ebene 908 dargestellt. Von Unterblöcken 908-0, 908-1, 908-2 und 908-3 wird nur Unterblock 908-3 für einen Speichervorgang ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf).
-
21 ist ein Blockdiagramm einer Speicherstruktur 920, die vier Ebenen von Speicherzellen 922, 924, 926 und 928 einschließt und die hierin vorgeschlagene Technologie nutzt/einbindet. Das heißt, die Speicherstruktur 920 wird in einem Speichersystem verwendet, das Erfassungsverstärker auf dem Speicher-Die und Erfassungsverstärker auf dem Steuer-Die einschließt, wie vorstehend in Bezug auf die 1-19 erörtert. Daher können zwei Unterblöcke pro Ebene ausgewählt werden, um gleichzeitig einen Speichervorgang durchzuführen, der doppelt so groß ist wie das System von 20. 21 zeigt vier Unterblöcke eines gleichen Blocks für jede Ebene 922, 924, 926 und 928. Zum Beispiel sind Unterblöcke 922-0, 922-1, 922-2 und 922-3 für einen gleichen Block in der Ebene 922 dargestellt. Von Unterblöcken 922-0, 922-1, 922-2 und 922-3 werden nur Unterblöcke 922-1 und 922-3 für das gleichzeitige Durchführen eines Speichervorgangs ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 924-0, 924-1, 924-2 und 924-3 sind für einen gleichen Block in der Ebene 924 dargestellt. Von Unterblöcken 924-0, 924-1, 924-2 und 922-3 werden nur Unterblöcke 924-1 und 924-3 für das gleichzeitige Durchführen eines Speichervorgangs ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 926-0, 926-1, 926-2 und 926-3 sind für einen gleichen Block in der Ebene 926 dargestellt. Von Unterblöcken 926-0, 926-1, 926-2 und 926-3 werden nur Unterblöcke 926-1 und 926-3 für das gleichzeitige Durchführen eines Speichervorgangs ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Unterblöcke 928-0, 928-1, 928-2 und 928-3 sind für einen gleichen Block in der Ebene 928 dargestellt. Von Unterblöcken 928-0, 928-1, 928-2 und 928-3 werden nur Unterblöcke 908-1 und 908-3 für das gleichzeitige Durchführen eines Speichervorgangs ausgewählt, wobei die anderen Unterblöcke während des Speichervorgangs nicht ausgewählt werden (z. B. Leerlauf). Daher ist ersichtlich, dass das Verwenden der hierin beschriebenen Technologie eine Leistungsverbesserung bereitstellt, da doppelt so viele Speicherzellen gleichzeitig beschrieben und/oder gelesen werden können. Es ist zu beachten, dass, wenn zwei Unterblöcke desselben Blocks zum gleichzeitigen Schreiben oder Lesen ausgewählt werden, die Speicherzellen der zwei ausgewählten Unterblöcke, die mit derselben Wortleitung verbunden sind, gleichzeitig beschrieben und/oder gelesen werden.
-
21 zeigt, dass ein Speichersystem mit vier Ebenen gleichzeitig in Speicherzellen in acht Unterblöcken (zwei in jeder Ebene) schreiben und/oder lesen kann. In ähnlicher Weise kann ein Speichersystem mit acht Ebenen gleichzeitig in Speicherzellen in sechzehn Unterblöcken (zwei in jeder Ebene) schreiben und/oder lesen.
-
Wie vorstehend erörtert, zeigt 6 eine Draufsicht eines Abschnitts eines Blocks aus der Speicherstruktur 326 gemäß der Ausführungsform von 9 (Unterblöcke SB0 und SB1 sind mit Bitleitungen über der Speicherstruktur 326 verbunden und Unterblöcke SB2 und SB3 sind mit Bitleitungen unter der Speicherstruktur 326 verbunden). 22 stellt eine Draufsicht eines Abschnitts desselben einen Blocks der Speicherstruktur 326 gemäß der Ausführungsform von 12 (Unterblöcke SB0 und SB2 sind mit Bitleitungen über der Speicherstruktur 326 verbunden und Unterblöcke SB1 und SB3 sind mit Bitleitungen unter der Speicherstruktur 326 verbunden) dar. In dieser Ausführungsform der 12 und 22 können Teilschlitze 404 und 408 entfernt werden. Der Teilschlitz 404 wird verwendet, damit der Unterblock SB0 getrennt vom Unterblock SB1 ausgewählt werden kann. Da SB0 jedoch mit Bitleitungen oberhalb der Speicherstruktur 326 und SB1 mit Bitleitungen unterhalb der Speicherstruktur 326 verbunden ist, ist der Teilschlitz 404 optional. In ähnlicher Weise wird der Teilschlitz 408 verwendet, damit der Unterblock SB2 getrennt vom Unterblock SB3 ausgewählt werden kann. Da SB2 jedoch mit Bitleitungen oberhalb der Speicherstruktur 326 und SB3 mit Bitleitungen unterhalb der Speicherstruktur 326k ist, ist der ist der Teilschlitz 408 optional. 23 stellt die gleiche Draufsicht auf den gleichen Abschnitt des gleichen Blocks wie 22 dar; es wurden jedoch Teilschlitze 404 und 408 entfernt. Durch Entfernen der Teilschlitze 404 und 408 kann der Block von Speicherzellen kleiner sein, da die Breite W23 von 23 kleiner ist als die Breite W22 von 22. Dies kann eine geringere Werkzeuggröße zur Folge haben, was Kosten und Platz spart.
-
24 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen eines Speichervorgangs unter Verwendung der vorstehend in den 1-23 erörterten Strukturen beschreibt. In Schritt 1002 von 24 wird eine Anforderung zum Durchführen eines Speichervorgangs (z. B. Schreiben oder Lesen) an der integrierten Speicherbaugruppe 130 empfangen. Zum Beispiel wird die Anforderung am Steuer-Die 304 empfangen. Die Anforderung kann von einer Speichersteuerung, einem Host oder einer anderen integrierten Baugruppe erfolgen. In Schritt 1004 führt die integrierte Speicherbaugruppe 130 den Speichervorgang an einem ersten Abschnitt eines ersten Blocks der nichtflüchtigen Speicherzellen unter Verwendung einer ersten Vielzahl von Erfassungsverstärkern durch. Zum Beispiel wird die Steuerschaltung (einschließlich Erfassungsverstärkern), die sich auf dem Speicher-Die 302 befindet, verwendet, um den Speichervorgang in Schritt 1004 durchzuführen. Die Steuerschaltung des Steuer-Dies 304 kann (in einigen Ausführungsformen) auch verwendet werden, um die Speichervorgänge durchzuführen. Zum Beispiel kann der Speichervorgang in der Richtung der Zustandsmaschine auf dem Steuer-Die 304 unter Verwendung der Erfassungsverstärker des Speicher-Dies, die mit einem ersten Unterblock eines ausgewählten Blocks von Speicherzellen auf dem Speicher-Die 302 verbunden sind, durchgeführt werden. In Schritt 1006 führt die integrierte Speicherbaugruppe 130 gleichzeitig den Speichervorgang an einem zweiten Abschnitt eines ersten Blocks der nichtflüchtigen Speicherzellen unter Verwendung einer ersten Vielzahl von Erfassungsverstärkern durch. Zum Beispiel wird die Steuerschaltung (einschließlich Erfassungsverstärkern), die sich auf dem Steuer-Die 304 befindet, verwendet, um den Speichervorgang durchzuführen. In einer Ausführungsform werden die Schritte 1004 und 1006 gleichzeitig durchgeführt wie vorstehend erläutert. Der Prozess von 24 kann mit jeder der vorstehend erörterten Ausführungsformen verwendet werden. Weitere Einzelheiten der Schritte von 24 werden nachstehend mit Bezug auf 25-29 bereitgestellt.
-
25 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen eines Schreibvorgangs beschreibt. Der Prozess von 25 ist ein Implementierungsbeispiel für den Prozess von 24. In Schritt 1102 von 25 empfängt die integrierte Speicherbaugruppe 130 eine Anforderung, einen Schreibvorgang an der integrierten Speicherbaugruppe durchzuführen. Zum Beispiel kann der Steuer-Die 304 (von einer Speichersteuerung) einen Schreibbefehl, Hostdaten für den Schreibbefehl und eine oder mehrere Schreibadressen in der Speicherstruktur empfangen, um die Hostdaten zu schreiben. Die angeforderten Daten werden vom Host empfangen. In einer Ausführungsform empfängt die Speichersteuerung die Hostdaten von dem Host und leitet sie an die integrierte Speicherbaugruppe weiter. In Schritt 1104 legt der Steuer-Die 304 ein Programmierspannungssignal an eine ausgewählte Wortleitung der Speicherstruktur 326 an. Zusätzlich sind die Auswahlleitungen (Top_SGL und Bottom_SGL) Vorspannungen, wie in den 12A oder 12B (oder einem anderen geeigneten Vorspannungsschema) dargestellt. In Schritt 1106 stellen eine erste Vielzahl von Erfassungsverstärkern auf dem Speicher-Die 302 Programmierbedingungen auf der ersten Vielzahl von Bitleitungen bereit, während die Programmierspannung auf der ausgewählten Wortleitung getrieben wird. Die erste Vielzahl von Erfassungsverstärkern auf dem Speicher-Die 302 ist mit Bitleitungen unter der Speicherstruktur 326 verbunden, wie vorstehend erörtert. In Schritt 1108 stellen die zweite Vielzahl von Erfassungsverstärkern auf dem Steuer-Die 304 Programmierbedingungen auf der zweiten Vielzahl von Bitleitungen bereit, während die Programmierspannung auf der ausgewählten Wortleitung getrieben wird. Die zweite Vielzahl von Erfassungsverstärkern auf dem Steuer-Die 304 ist mit Bitleitungen über der Speicherstruktur 326 verbunden, wie vorstehend erörtert. In einer Ausführungsform stellen die Erfassungsverstärker Programmierbedingungen durch Anlegen einer kleinen Spannung oder 0 Volt an die Bitleitungen bereit. Durch die Schritte 1102-1108 werden Host-Daten in die Speicherstruktur 326 einprogrammiert. In einer Ausführungsform wird Schritt 1106 gleichzeitig mit Schritt 1108 durchgeführt, sodass Speicherzellen, die mit einer gemeinsamen Wortleitung, aber in zwei Unterblöcken verbunden sind, gleichzeitig beschrieben werden.
-
Am Ende eines erfolgreichen Programmierprozesses sollten die Schwellenspannungen der Speicherzellen innerhalb einer oder mehrerer Verteilungen von Schwellenspannungen für programmierte Speicherzellen oder gegebenenfalls innerhalb einer Verteilung von Schwellenspannungen für gelöschte Speicherzellen liegen. 26 ist ein Diagramm der Schwellenspannung in Abhängigkeit von der Anzahl der Speicherzellen und veranschaulicht exemplarische Schwellenspannungsverteilungen für die Speicherstruktur 326, wenn jede Speicherzelle drei Datenbits speichert. Andere Ausführungsformen können jedoch andere Datenkapazitäten pro Speicherzelle verwenden (wie ein, zwei, vier oder fünf Bits an Daten pro Speicherzelle). 26 zeigt acht Schwellenspannungsverteilungen, die acht Datenzuständen entsprechen. Bei einem Datenzustand N hat dieser Datenzustand N höhere Schwellenspannungen als der Datenzustand N-1 und niedrigere Schwellenspannungen als der Datenzustand N+1. Die erste Schwellenspannungsverteilung (Datenzustand) S0 steht für Speicherzellen, die gelöscht sind. Die anderen sieben Schwellenspannungsverteilungen (Datenzustände) S1-S7 stellen Speicherzellen dar, die programmiert sind und daher auch programmierte Zustände oder programmierte Datenzustände genannt werden. In einigen Ausführungsformen können sich die Datenzustände S1 bis S7 überlappen, wobei sich die Steuerung 122 auf die Fehlerkorrektur stützt, um die korrekten Daten, die gespeichert werden, zu identifizieren.
-
26 zeigt sieben Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 zum Lesen von Daten aus Speicherzellen. Durch Testen (z. B. Ausführen von Lesevorgängen), ob die Schwellenspannung einer gegebenen Speicherzelle über oder unter den sieben Lesereferenzspannungen liegt, kann das System bestimmen, in welchem Datenzustand (d. h. S0, S1, S2, S3, ...) sich eine Speicherzelle befindet.
-
26 zeigt auch sieben Verifizierungsreferenzspannungen, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 (auch als Verifizierungszielspannungen bezeichnet). Wenn Speicherzellen auf Datenzustand S1 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv1 ist. Wenn Speicherzellen auf den Datenzustand S2 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv2 ist. Wenn Speicherzellen auf den Datenzustand S3 programmiert werden, bestimmt das System, ob Speicherzellen ihre Schwellenspannung aufweisen, die größer oder gleich Vv3 ist. Wenn Speicherzellen auf Datenzustand S4 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv4 ist. Wenn Speicherzellen auf Datenzustand S5 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv5 ist. Wenn Speicherzellen auf Datenzustand S6 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv6 ist. Wenn Speicherzellen auf Datenzustand S7 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv7 ist.
-
In einer Ausführungsform, die als Vollsequenzprogrammierung bekannt ist, können Speicherzellen aus dem gelöschten Datenzustand S0 direkt auf einen der programmierten Datenzustände S1 bis S7 programmiert werden. Zum Beispiel kann eine Population von zu programmierenden Speicherzellen (z. B. Speicherzellen, die sich in zwei Unterblöcken einer Ebene befinden und mit einer gleichen Wortleitung verbunden sind) zuerst gelöscht werden, sodass sich alle Speicherzellen in der Population im gelöschten Datenzustand S0 befinden. Dann wird ein Programmierprozess verwendet, um Speicherzellen direkt in Datenzustände S1, S2, S3, S4, S5, S6 und/oder S7 zu programmieren. Während zum Beispiel einige Speicherzellen von dem Datenzustand S0 auf den Datenzustand S1 programmiert werden, werden andere Speicherzellen vom Datenzustand S0 auf den Datenzustand S2 und/oder vom Datenzustand S0 auf den Datenzustand S3 und so weiter programmiert. Die Pfeile von 26 stellen die Vollsequenzprogrammierung dar. Die hierin beschriebene Technologie kann auch mit anderen Programmierarten zusätzlich zur Vollsequenzprogrammierung einschließlich (aber nicht beschränkt auf) Mehrstufen-/Phasenprogrammierung verwendet werden.
-
Jede Schwellenspannungsverteilung (Datenzustand) in 26 entspricht vorbestimmten Werten für den Satz von Datenbits, die in den Speicherzellen gespeichert sind. Die spezifische Beziehung zwischen den in die Speicherzelle programmierten Daten und den Schwellenspannungspegeln der Speicherzelle hängt von dem Datencodierschema ab, das für die Speicherzellen verwendet wird. In einer Ausführungsform werden Datenwerte den Schwellenspannungsbereichen unter Verwendung einer Gray-Code-Zuweisung zugewiesen, sodass, wenn sich die Schwellenspannung eines Speichers fälschlicherweise in seinen benachbarten physikalischen Zustand verschiebt, nur ein Bit betroffen ist.
-
27 ist eine Tabelle, die ein Beispiel einer Zuordnung von Datenwerten Datenzuständen beschreibt. In der Tabelle von 27, S0=111 (gelöschter Zustand), S1=110, S2=100, S3=000, S4=010, S5=011, S6=001 und S7=101. Andere Datencodierungen können ebenfalls verwendet werden. Keine spezifische Datencodierung ist von der hier offenbarten Technologie erforderlich. In einer Ausführungsform werden, wenn ein Block einem Löschvorgang unterzogen wird, alle Speicherzellen in den Datenzustand S0, den gelöschten Zustand, gebracht.
-
Im Allgemeinen wird die ausgewählte Wortleitung während der Verifizierungsvorgänge und Lesevorgänge mit einer Spannung (ein Beispiel eines Referenzsignals) verbunden, deren Pegel für jeden Lesevorgang (siehe z. B. Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 von 26) oder Verifizierungsvorgang (siehe z. B. Verifizierungsreferenzspannungen Ev, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 von 26) spezifiziert ist, um zu bestimmen, ob eine Schwellenspannung der betreffenden Speicherzelle einen derartigen Pegel erreicht hat. Nach Anlegen der Wortleitungsspannung wird der Leitungsstrom der Speicherzelle gemessen, um zu bestimmen, ob die Speicherzelle in Reaktion auf die an die Wortleitung angelegte Spannung eingeschaltet ist (Strom leitet). Wenn der Leitungsstrom gemäß Messungen größer als ein bestimmter Wert ist, dann wird angenommen, dass die Speicherzelle eingeschaltet ist und die an die Wortleitung angelegte Spannung größer als die Schwellenspannung der Speicherzelle ist. Falls der Leitungsstrom gemäß Messungen nicht größer als der bestimmte Wert ist, dann wird angenommen, dass die Speicherzelle nicht eingeschaltet ist und die an die Wortleitung angelegte Spannung nicht größer als die Schwellenspannung der Speicherzelle ist. Während eines Lese- oder Verifizierungsprozesses werden die nicht ausgewählten Speicherzellen mit einer oder mehreren Lesedurchgangsspannungen (die auch als Bypass-Spannungen bezeichnet werden) an ihren Steuer-Gates versehen, sodass diese Speicherzellen als Pass-Gates fungieren (z. B. Strom leiten ungeachtet dessen, ob sie programmiert oder gelöscht sind).
-
Es gibt viele Wege, um den Leitungsstrom einer Speicherzelle während eines Lese- oder Verifizierungsvorgangs zu messen. In einem Beispiel wird der Leitungsstrom einer Speicherzelle durch die Rate gemessen, mit der sie einen dedizierten Kondensator in dem Erfassungsverstärker entlädt oder lädt. In einem anderen Beispiel ermöglicht der Leitungsstrom der ausgewählten Speicherzelle der NAND-Kette, welche die Speicherzelle einschließt (bzw. ermöglicht dieser nicht), eine entsprechende Bitleitung zu entladen. Die Spannung auf der Bitleitung wird nach einer gewissen Zeit gemessen, um zu sehen, ob sie entladen wurde. Es ist zu beachten, dass die hierin beschriebene Technologie mit verschiedenen Verfahren verwendet werden kann, die nach dem Stand der Technik zum Verifizieren/Lesen bekannt sind. Andere Lese- und Verifizierungstechniken, die nach dem Stand der Technik bekannt sind, können ebenfalls verwendet werden.
-
28 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren der Speicherstruktur 326 beschreibt. In einer beispielhaften Ausführungsform wird der Prozess von 28 auf dem Steuer-Die 302 unter Verwendung der Erfassungsverstärker auf dem Steuer-Die und der Erfassungsverstärker auf dem Speicher-Die, wie vorstehend erörtert, in Richtung der Zustandsmaschine 312 durchgeführt. Der Prozess von 28 wird durchgeführt, um die vollständige Sequenzprogrammierung von 26 sowie andere Programmierschemata einschließlich Mehrstufenprogrammierung zu implementieren. Wenn eine Mehrstufenprogrammierung implementiert wird, wird der Prozess von 28 verwendet, um jede/alle Stufen des Mehrstufenprogrammierprozesses zu implementieren. Der Prozess von 28 kann verwendet werden, um den Prozess von 25 durchzuführen.
-
Üblicherweise wird die Programmierspannung, die an die Steuer-Gates (über eine ausgewählte Wortleitung) während eines Programmiervorgangs angelegt wird, als eine Reihe von Programmierimpulsen (Spannungsimpulsen) angelegt. Zwischen Programmierimpulsen befindet sich ein Satz von Verifizierimpulsen, um eine Verifizierung durchzuführen. In vielen Implementierungen wird die Größe der Programmierimpulse mit jedem sukzessiven Impuls um eine vorbestimmte Schrittgröße erhöht. In Schritt 1202 von 28 wird die Programmierspannung (Vpgm) auf die Startgröße (z. B. -12 bis 16 V oder einen anderen geeigneten Pegel) initialisiert und wird ein von Zustandsmaschine 312 geführter Programmierzähler (Program Counter, PC) auf 1 initialisiert. In Schritt 1204 wird ein Programmierimpuls des Programmsignals Vpgm an die ausgewählte Wortleitung (die zur Programmierung ausgewählte Wortleitung) angelegt. In einer Ausführungsform sind alle Speicherzellen der Gruppe von Speicherzellen, die gleichzeitig programmiert werden, mit derselben Wortleitung (der ausgewählten Wortleitung) verbunden. Die nicht ausgewählten Wortleitungen empfangen eine oder mehrere Verstärkungsspannungen (z. B. ~7 bis 11 Volt), um Verstärkungsschemata durchzuführen, die nach dem Stand der Technik bekannt sind. Der Programmierimpuls, der an die ausgewählte Wortleitung angelegt wird, ist ein Beispiel des Programmierspannungssignals von Schritt 1104 von 25. Wenn in einer Ausführungsform eine Speicherzelle programmiert werden sollte, dann ist die entsprechende Bitleitung geerdet (z. B. die Programmierbedingung der Schritte 1106 und 1108 von 25). Wenn andererseits die Speicherzelle auf ihrer gegenwärtigen Schwellenspannung bleiben sollte, dann wird die entsprechende Bitleitung mit Vdd verbunden, um eine Programmierung zu verhindern. In Schritt 1204 wird der Programmierimpuls gleichzeitig an alle Speicherzellen angelegt, die mit der ausgewählten Wortleitung verbunden sind, sodass alle Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, gleichzeitig programmiert werden. Das heißt, sie werden zur gleichen Zeit oder während überlappenden Zeiten (die beide als gleichzeitig betrachtet werden) programmiert. Auf diese Weise ändern alle Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, gleichzeitig ihre Schwellenspannung, sofern sie nicht aus der Programmierung ausgeschlossen wurden.
-
In Schritt 1206 werden die entsprechenden Speicherzellen unter Verwendung des geeigneten Satzes von Prüfreferenzspannungen verifiziert, um einen oder mehrere Verifizierungsvorgänge durchzuführen. In einer Ausführungsform wird der Verifizierungsprozess durchgeführt, indem geprüft wird, ob die Schwellenspannungen der zur Programmierung ausgewählten Speicherzellen die geeignete Verifizierungsreferenzspannung erreicht haben. In Schritt 1208 wird bestimmt, ob alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (bestehen). Falls dies der Fall ist, ist der Programmierprozess vollständig und erfolgreich, weil alle ausgewählten Speicherzellen auf ihre Zielzustände programmiert und verifiziert wurden. In Schritt 1210 wird ein Status von „BESTANDEN“ (oder Erfolg) gemeldet. Wenn in Schritt 1208 bestimmt wird, dass nicht alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (durchgefallen), fährt der Programmierprozess mit Schritt 1212 fort. In Schritt 1212 zählt das System die Anzahl von Speicherzellen, die ihre jeweilige Zielschwellenspannungsverteilung noch nicht erreicht haben. Das heißt, das System zählt die Anzahl von Speicherzellen, die den Verifizierungsprozess bisher nicht bestanden haben. Dieses Zählen kann von der Zustandsmaschine 312, der Steuerung 120 oder einer anderen Logik ausgeführt werden. In einer Implementierung speichert jeder der Erfassungsblöcke den Status (bestanden/fehlgeschlagen) seiner jeweiligen Speicherzellen. In einer Ausführungsform gibt es einen Gesamtzählwert, der die Gesamtzahl der gegenwärtig programmierten Speicherzellen wiedergibt, die den letzten Verifizierungsschritt nicht bestanden haben. In einer anderen Ausführungsform werden separate Zählwerte für jeden Datenzustand ermittelt.
-
In Schritt 1214 wird bestimmt, ob der Zählwert von Schritt 1212 kleiner oder gleich einer vorgegebenen Grenze ist. In einer Ausführungsform ist die vorbestimmte Grenze eine Anzahl von Bits, die durch ECC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden können. Wenn die Anzahl durchgefallener Speicherzellen kleiner oder gleich der vorbestimmten Grenze ist, kann der Programmierprozess beendet werden und in Schritt 1210 wird der Status „BESTANDEN“ gemeldet. In dieser Situation können ausreichend Speicherzellen korrekt programmiert werden, sodass die wenigen verbleibenden Speicherzellen, die nicht vollständig programmiert worden sind, unter Verwendung von ECC während des Lesevorgangs korrigiert werden können. In einigen Ausführungsformen zählt Schritt 1212 die Anzahl ausgefallener Zellen für jeden Sektor, jeden Zieldatenzustand oder jede andere Einheit, und diese Zählwerte werden einzeln oder kollektiv mit einer oder mehreren Schwellen in Schritt 1214 verglichen.
-
In einer Ausführungsform kann die vorbestimmte Grenze kleiner als die Gesamtzahl von Bits sein, die durch ECC während eines Leseprozesses korrigiert werden können, um zukünftige Fehler einzuplanen. Wenn weniger als alle Speicherzellen für eine Seite programmiert werden oder ein Zählwert für nur einen Datenzustand (oder weniger als alle Zustände) verglichen wird, kann die vorbestimmte Grenze ein Anteil (pro rata oder nicht pro rata) der Anzahl von Bits sein, die durch ECC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden können. In einigen Ausführungsformen ist die Grenze nicht vorbestimmt. Stattdessen ändert sie sich basierend auf der Anzahl der bereits gezählten Fehler für die Seite, der Anzahl der durchgeführten Programmier-/Löschzyklen oder anderer Kriterien.
-
Wenn die Anzahl fehlerhafter Speicherzellen nicht kleiner als die vorbestimmte Grenze ist, dann fährt der Programmierprozess mit Schritt 1216 fort und der Programmzähler PC wird gegen den Programmgrenzwert (PL) überprüft. Beispiele für Programmgrenzwerte schließen 6, 20 und 30 ein; jedoch können andere Werte verwendet werden. Wenn der Programmzähler PC nicht kleiner als der Programmgrenzwert PL ist, dann wird der Programmprozess als durchgefallen betrachtet und der Status „DURCHGEFALLEN“ wird in Schritt 1218 gemeldet. Wenn der Programmzähler PC kleiner als der Programmgrenzwert PL ist, dann fährt der Prozess mit Schritt 1220 fort, während der Programmzähler PC um 1 erhöht wird und die Programmierspannung Vpgm auf die nächste Größe erhöht wird. Zum Beispiel hat der nächste Impuls eine Größe, die um eine Schrittgröße (z. B. eine Schrittgröße von 0,1 bis 0,8 Volt) größer als der vorherige Impuls ist. Nach Schritt 1220 kehrt der Prozess zu Schritt 1204 zurück und ein weiterer Programmierimpuls wird an die ausgewählte Wortleitung angelegt, sodass eine weitere Iteration (Schritte 1204 bis 1220) des Programmierprozesses aus 28 durchgeführt wird.
-
Da es möglich ist, dass Fehler beim Programmieren oder Lesen auftreten können und Fehler beim Speichern von Daten auftreten können (z. B. aufgrund von Driften von Elektronen, Datenhalteproblemen oder anderen Phänomenen), wird eine Fehlerkorrektur mit der Programmierung von Daten verwendet. Speichersysteme verwenden oft Error Correction Codes (ECC), um Daten vor einer Beschädigung zu schützen. Viele ECC-Codierungsschemata sind nach dem Stand der Technik gut bekannt. Diese herkömmlichen Fehlerkorrekturcodes sind besonders nützlich bei großen Speichern, einschließlich Flash-Speichern (und anderen nichtflüchtigen), aufgrund der beträchtlichen Auswirkung auf die Produktionsausbeute und die Zuverlässigkeit der Vorrichtung, die derartige Codierungsschemata bereitstellen können, wenn sie Vorrichtungen, die einige nicht programmierbare oder defekte Zellen aufweisen, dahingehend ändern, dass sie nutzbar werden. Natürlich besteht ein Kompromiss zwischen der Ertragseinsparung und den Kosten des Bereitstellens zusätzlicher Speicherzellen, um die Codebits zu speichern (d. h. die Code-„Rate“). Als solches sind einige ECC-Codes besser geeignet für Flash-Speichereinrichtungen als andere. Generell neigen ECC-Codes für Flash-Speichereinrichtungen dazu, höhere Code-Raten (d. h. ein niedrigeres Verhältnis von Codebits zu Datenbits) als die in Datenkommunikationsanwendungen verwendeten Codes (die Code-Raten von nur 1/2 haben können) aufzuweisen. Beispiele für gut bekannte ECC-Codes, die üblicherweise in Verbindung mit einer Flash-Speicherspeicherung verwendet werden, schließen Reed-Solomon-Codes, andere BCH-Codes, Hamming-Codes und dergleichen ein. Manchmal sind die in Verbindung mit Flash-Speicherspeicherung verwendeten Fehlerkorrekturcodes dahingehend „systematisch“, dass der Datenteil des letztendlichen Codeworts von den eigentlichen Daten, die codiert werden, unverändert ist, wobei die Code- oder Paritätsbits an die Datenbits angehängt sind, um das vollständige Codewort zu bilden.
-
Die spezifischen Parameter für einen bestimmten Fehlerkorrekturcode schließen die Art des Codes, die Größe des Blocks tatsächlicher Daten, von denen das Codewort abgeleitet wird, und die Gesamtlänge des Codeworts nach der Codierung ein. Zum Beispiel kann ein typischer BCH-Code, der auf einen Sektor von 512 Bytes (4096 Bits) von Daten angewendet wird, bis zu vier Fehlerbits korrigieren, wenn mindestens 60 ECC- oder Paritätsbits verwendet werden. Reed-Solomon-Codes sind eine Teilsatz von BCH-Codes und werden auch allgemein zur Fehlerkorrektur verwendet. Zum Beispiel kann ein typischer Reed-Solomon-Code bis zu vier Fehler in einem 512 Byte-Datensektor korrigieren, wobei etwa 72 ECC-Bits verwendet werden. Im Kontext von Flash-Speichern bietet Fehlerkorrektur-Codierung eine wesentliche Verbesserung bei der Produktionsausbeute sowie bei der Zuverlässigkeit des Flash-Speichers im Zeitverlauf.
-
In einigen Ausführungsformen empfängt die Steuerung 120 Hostdaten (auch als Benutzerdaten oder Daten von einer Entität außerhalb des Speichersystems bezeichnet), auch als Informationsbits bezeichnet, die in der nichtflüchtigen Speicherstruktur 326 gespeichert werden sollen. Die Informationsbits werden durch die Matrix i=[1 0] dargestellt (es ist zu beachten, dass zwei Bits nur als Beispiel verwendet werden und viele Ausführungsformen Codeworte aufweisen, die länger als zwei Bits sind). Ein Fehlerkorrektur-Codierungsprozess (wie einer der vor- bzw. nachstehend erwähnten Prozesse) wird von der ECC-Maschine 158 der Steuerung 120 implementiert, bei dem Paritätsbits zu den Informationsbits hinzugefügt werden, um Daten bereitzustellen, die durch die Matrix oder das Codewort v=[1 0 1 0] dargestellt sind, was anzeigt, dass zwei Paritätsbits an die Datenbits angehängt worden sind. Andere Techniken können verwendet werden, die Eingangsdaten auf komplexere Weise zu Ausgangsdaten zuweisen. Beispielsweise können Paritätsprüfcodes niedriger Dichte (LDPC), die auch als Gallager-Codes bezeichnet werden, verwendet werden. Mehr Details über LDPC-Codes sind in R. G. Gallager, „Low-density parity-check codes“, Inform. Theory, Band IT 8, S. 21 28, Januar 1962; und D. MacKay, Information Theory, Inference and Learning Algorithms, Cambridge University Press 2003, Kapitel 47, zu finden. In der Praxis werden derartige LDPC-Codes üblicherweise auf mehrere Seiten (z. B. von ECC-Maschine 158) angewendet, die über eine Anzahl von Speicherungselementen codiert sind, aber sie müssen nicht über mehrere Seiten angewendet werden. In einigen Ausführungsformen kann der ECC-Prozess (Codieren von Daten und/oder Decodieren von Daten) von der ECC-Engine 330 auf dem Steuer-Die 304 durchgeführt werden. In einigen Ausführungsformen kann der ECC-Prozess (Codieren von Daten und/oder Decodieren von Daten) von einer ECC-Engine auf dem Speicher-Die 302 durchgeführt werden (z. B. ist die ECC-Engine Teil der in 16 dargestellten Logik.
-
In einer Ausführungsform dient die Programmierung dazu, die Schwellenspannung der Speicherzellen auf einen der programmierten Datenzustände S1-S7 anzuheben. Das Löschen dient dazu, die Schwellenspannung der Speicherzellen auf den Datenlöschzustand S0 zu senken.
-
Eine Technik zum Löschen von Speicherzellen in einigen Speichereinrichtungen ist das Vorspannen eines p-Well-Substrats (oder andere Arten von Substraten) auf eine Hochspannung, um einen NAND-Kanal aufzuladen. Eine Löschfreigabespannung (z. B. Niederspannung) wird an die Steuer-Gates von Speicherzellen angelegt, während sich der NAND-Kanal auf einer Hochspannung befindet, um die nichtflüchtigen Speicherungselemente (Speicherzellen) zu löschen. Dies wird hierin als p-Well-Löschvorgang bezeichnet.
-
Ein anderer Ansatz zum Löschen von Speicherzellen besteht darin, Gate-induzierten Drain-Leckstrom (GIDL-Strom) zu erzeugen, um den NAND-Kettenkanal aufzuladen. An Steuer-Gates der Speicherzellen wird eine Löschfreigabespannung angelegt, während das NAND-Ketten-Kanal-Potential aufrechterhalten wird, um die Speicherzellen zu löschen. Dies wird hierin als GIDL-Löschvorgang bezeichnet. Sowohl p-Well-Löschvorgang als auch GIDL-Löschvorgang können verwendet werden, um die Schwellenspannung (Vt) von Speicherzellen zu senken.
-
In einer Ausführungsform wird der GIDL-Strom durch Bewirken einer Drain-zu-Gate-Spannung an einem Auswahltransistor (z. B. SGD und/oder SGS) erzeugt. Eine Transistor-Drainzu-Gate-Spannung, die einen GIDL-Strom erzeugt, wird hierin als eine GIDL-Spannung bezeichnet. Der GIDL-Strom kann entstehen, wenn die Drain-Spannung des Auswahltransistors deutlich höher ist als die Steuer-Gate-Spannung des Auswahltransistors. Der GIDL-Strom ist ein Ergebnis der Trägererzeugung, d. h. der Elektronenloch-Paarerzeugung aufgrund von Band-zu-Band-Tunneln und/oder fallenunterstützter Erzeugung. In einer Ausführungsform kann der GIDL-Strom dazu führen, dass eine Art von Trägern, z. B. Löcher, sich vorwiegend in den NAND-Kanal bewegen, wodurch das Potential des Kanals angehoben wird. Die anderen Arten von Trägern, z. B. Elektronen, werden aus dem Kanal in Richtung einer Bitleitung oder in Richtung einer Sourceleitung durch ein elektrisches Feld extrahiert. Während des Löschens können die Löcher vom Kanal zu einem Ladungsspeicherungsbereich von Speicherzellen durchtunneln und dort mit Elektronen rekombinieren, um die Schwellenspannung der Speicherzellen zu senken.
-
Der GIDL-Strom kann an jedem Ende der NAND-Kette erzeugt werden. Eine erste GIDL-Spannung kann zwischen zwei Anschlüssen eines Auswahltransistors (z. B. des drainseitigen Auswahltransistors) erzeugt werden, der mit einer Bitleitung verbunden ist, um einen ersten GIDL-Strom zu erzeugen. Eine zweite GIDL-Spannung kann zwischen zwei Anschlüssen eines Auswahltransistors (z. B. des sourceseitigen Auswahltransistors) erzeugt werden, der mit einer Sourceleitung verbunden ist, um einen zweiten GIDL-Strom zu erzeugen. Das Löschen basierend auf dem GIDL-Strom an nur einem Ende der NAND-Kette wird als ein einseitiger GIDL-Löschvorgang bezeichnet. Das Löschen basierend auf dem GIDL-Strom an beiden Enden der NAND-Kette wird als ein zweiseitiger GIDL-Löschvorgang bezeichnet.
-
29 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen eines Lesevorgangs beschreibt. Der Prozess von 29 ist ein Implementierungsbeispiel für den Prozess von 24. In Schritt 1302 von 29 empfängt die integrierte Speicherbaugruppe 130 eine Anforderung zum Durchführen eines Lesevorgangs, einschließlich des Empfangens einer oder mehrerer Leseadressen. Zum Beispiel kann der Steuer-Die 302 einen Lesebefehl und eine Leseadresse von einer Speichersteuerung empfangen. In Schritt 1304 legt der Steuer-Die 304 eine oder mehrere Lesereferenzspannungen an. Zum Beispiel können die vorstehend erörterten Wortleitungstreiber durch den Steuer-Die 304 verwendet werden, um eine der Lesereferenzspannungen (z. B. Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und/oder Vr7) auf der ausgewählten Wortleitung anzusteuern. Zusätzlich sind die Auswahlleitungen (Top_SGL und Bottom_SGL) Vorspannungen, wie in den 12A oder 12B (oder einem anderen geeigneten Vorspannungsschema) dargestellt. In Schritt 1306 erfassen die erste Vielzahl von Erfassungsverstärkern auf dem Speicher-Die Zustände der ersten Vielzahl von Speicherzellen (z. B. des ersten Unterblocks) über die erste Vielzahl von Bitleitungen (z. B. Bitleitungen unter der Speicherstruktur) als Reaktion auf die eine oder mehrere Lesereferenzspannungen auf der ausgewählten Wortleitung. In Schritt 1308 erfassen die zweite Vielzahl von Erfassungsverstärkern auf dem Steuer-Die Zustände der zweiten Vielzahl von Speicherzellen (z. B. des zweiten Unterblocks desselben Blocks wie dem ersten Unterblock) über die zweite Vielzahl von Bitleitungen (z. B. Bitleitungen unter der Speicherstruktur) als Reaktion auf die eine oder mehrere Lesereferenzspannungen auf der ausgewählten Wortleitung. Die Schritte 1306 und 1308 werden gleichzeitig ausgeführt, sodass zwei Unterblöcke pro Ebene gleichzeitig gelesen werden.
-
30 ist ein Blockdiagramm, das weitere Details einer Ausführungsform einer integrierten Speicherbaugruppe darstellt, die ein Drei-Die-System implementiert. Zum Beispiel stellt 30 den Steuer-Die 304 dar, der mit dem Speicher-Die 302 gebondet ist, wie vorstehend in Bezug auf 13 beschrieben, und stellt auch einen zusätzlichen Steuer-Die 1400 (dritter Die) dar, der mit dem Speicher-Die 302 gebondet (verbunden) ist. In einer Ausführungsform hat der Steuer-Die 1400 die gleiche Struktur wie der Steuer-Die 304, einschließlich einer Steuerschaltung, die eine Vielzahl von Erfassungsverstärkern 350 aufweist. In einigen Ausführungsformen hat der Steuer-Die 1400 eine Vielzahl von Erfassungsverstärkern 350 wie der Steuer-Die 304, jedoch schließt der Steuer-Die 1400 keine Wortleitungstreiber und andere Logik ein, die im Steuer-Die 1400 nicht dupliziert werden muss (im Vergleich zum Steuer-Die 304).
-
Jeder Erfassungsverstärker 350 ist mit einer Bitleitung verbunden. Dargestellt sind drei repräsentative Bitleitungen (BL1, BL2 und BL3). Die Bitleitung BL3 kann unterhalb oder oberhalb der Speicherzellen angeordnet sein. Zum Beispiel zeigt 9 die Hälfte der Bitleitungen, die mit den Erfassungsverstärkern auf dem Speicher-Die 302 verbunden sind, und die Hälfte der Bitleitungen, die mit den Erfassungsverstärkern auf dem Steuer-Die 304 verbunden sind, während in Ausführungsformen von 30 null oder mehr der Bitleitungen unter dem Speicherarray mit Erfassungsverstärkern des Steuer-Dies 1400 verbunden sein können und null oder mehr der Bitleitungen über dem Speicherarray mit Erfassungsverstärkern des Steuer-Dies 1400 verbunden sein können. Auf diese Weise sind die Erfassungsverstärker auf dem Speicher-Die 302 mit einem ersten Satz von Speicherzellen in einem Block verbunden, die Erfassungsverstärker auf dem Steuer-Die 304 sind mit einem zweiten Satz von Speicherzellen in demselben Block verbunden, und die Erfassungsverstärker auf dem Steuer-Die 1400 sind mit einem dritten Satz von Speicherzellen in demselben Block verbunden. In einer beispielhaften Ausführungsform sind die Erfassungsverstärker auf dem Speicher-Die 302 mit Speicherzellen in einem ersten Unterblock eines Blocks verbunden, die Erfassungsverstärker auf dem Steuer-Die 304 sind mit Speicherzellen in einem zweiten Unterblock desselben Blocks verbunden, und die Erfassungsverstärker auf dem Steuer-Die 1400 sind mit Speicherzellen in einem dritten Unterblock desselben Blocks verbunden.
-
Der Speicher-Die 302 schließt weiterhin Bondpads 1402 ein. Der Steuer-Die 1404 schließt Bondpads 1404 ein, die mit Bondpads 1402 verbunden sind. Es können „n“ Bondpads 1402 und „n“ Bondpads 1404 vorhanden sein, um Signale zwischen den Bitleitungen des Speicher-Dies 302 und den Erfassungsverstärkern des Steuer-Dies 1404 zu übertragen.
-
In der Ausführungsform von 13 führt die Steuerschaltung des Speicher-Dies 302 einen Speichervorgang an einem ersten Teilsatz der Speicherzellen gleichzeitig mit der Steuerschaltung des Steuer-Dies 304 durch, die den Speichervorgang an einem zweiten Teilsatz der Speicherzellen durchführt. In der Ausführungsform von 30 ist die Steuerschaltung des Steuer-Dies 1400 eingerichtet, um verwendet zu werden, um den Speichervorgang an einem dritten Teilsatz der Speicherzellen gleichzeitig mit der Steuerschaltung des Speicher-Dies 302, die den Speichervorgang an dem ersten Teilsatz der Speicherzellen durchführt, und der Steuerschaltung des Steuer-Dies 304, die den Speichervorgang an dem zweiten Teilsatz der Speicherzellen durchführt, durchzuführen. Andere Ausführungsformen können zusätzliche Steuer-Dies (z. B. mehr als zwei Steuer-Dies mit Erfassungsverstärkern, die mit Bitleitungen auf dem Speicher-Die verbunden sind) einschließen.
-
Es wurde ein Speicher beschrieben, der Steuerschaltungen (z. B. einschließlich Erfassungsverstärkern) auf demselben Die wie das Speicherarray und Steuerschaltungen (z. B. einschließlich Erfassungsverstärkern) auf einem anderen Die als dem Speicherarray einschließt, sodass die Anzahl von Erfassungsverstärkern (oder äquivalenten Schaltungen) erhöht werden kann. Eine Erhöhung der Anzahl von Erfassungsverstärkern erhöht den Grad an Parallelität, was zu einer Erhöhung der Leistung des Speichersystems führt. Außerdem kann das Erhöhen des Grads an Parallelität zu einer effizienteren Nutzung von Leistung und zusätzlicher Funktionalität führen.
-
Eine Ausführungsform schließt eine nichtflüchtige Speicherungseinrichtung ein, die einen ersten Halbleiter-Die und einen zweiten Halbleiter-Die verbunden aufweist. Der erste Halbleiter-Die weist ein Substrat, eine erste Steuerschaltung, die auf dem Substrat positioniert ist, und nichtflüchtige Speicherzellen, die direkt über der ersten Steuerschaltung positioniert sind, auf. Der zweite Halbleiter-Die weist eine zweite Steuerschaltung auf einem Substrat auf. Der zweite Halbleiter-Die weist weiterhin eine Schnittstelle zu einer Speichersteuerung und eine Schnittstelle zu dem ersten Halbleiter-Die auf. Der zweite Halbleiter-Die ist direkt mit dem ersten Halbleiter-Die verbunden. Die erste Steuerschaltung ist eingerichtet, um verwendet zu werden, um einen Speichervorgang an einem ersten Teilsatz der nichtflüchtigen Speicherzellen durchzuführen, während die zweite Steuerschaltung eingerichtet ist, um verwendet zu werden, um gleichzeitig einen Speichervorgang an einem zweiten Teilsatz der nichtflüchtigen Speicherzellen durchzuführen.
-
In einer beispielhaften Implementierung sind die nichtflüchtigen Speicherzellen in Gruppen von verbundenen nichtflüchtigen Speicherzellen organisiert; der erste Teilsatz der nichtflüchtigen Speicherzellen und der zweite Teilsatz der nichtflüchtigen Speicherzellen sind Teil eines ersten Blocks und mit der einer ersten Wortleitung verbunden; der erste Block ist in mehrere Unterblöcke unterteilt, die einen ersten Unterblock und einen zweiten Unterblock einschließen; der erste Teilsatz der nichtflüchtigen Speicherzellen befindet sich in dem ersten Unterblock; der zweite Teilsatz der nichtflüchtigen Speicherzellen befindet sich in dem zweiten Unterblock; die erste Steuerschaltung weist einen ersten Satz von Erfassungsverstärkern auf, die mit dem ersten Teilsatz der nichtflüchtigen Speicherzellen in dem ersten Unterblock verbunden sind; und die zweite Steuerschaltung weist einen zweiten Satz von Erfassungsverstärkern auf, die mit dem zweiten Teilsatz von nichtflüchtigen Speicherzellen in dem zweiten Unterblock verbunden sind.
-
Eine beispielhafte Implementierung weist weiterhin einen dritten Halbleiter-Die auf, der eine dritte Steuerschaltung aufweist, wobei der dritte Halbleiter-Die mit dem ersten Halbleiter-Die verbunden ist, die dritte Steuerschaltung ist eingerichtet, um verwendet zu werden, um den Speichervorgang an einem dritten Teilsatz der nichtflüchtigen Speicherzellen gleichzeitig mit der ersten Steuerschaltung, die den Speichervorgang an dem ersten Teilsatz der nichtflüchtigen Speicherzellen durchführt, und der zweiten Steuerschaltung, die den Speichervorgang an dem zweiten Teilsatz der nichtflüchtigen Speicherzellen durchführt, durchzuführen.
-
Eine Ausführungsform schließt eine nichtflüchtige Speicherungseinrichtung ein, die eine Speichersteuerung und eine integrierte Speicherbaugruppe getrennt von der Speichersteuerung und in Kommunikation mit der Speichersteuerung über einen Kommunikationspfad aufweist. Die integrierte Speicherbaugruppe weist einen Speicher-Die und einen Steuer-Die auf, der mit dem Speicher-Die zusammengebondet ist. Der Speicher-Die weist eine dreidimensionale nichtflüchtige Speicherstruktur und eine erste Vielzahl von Erfassungsverstärkern auf. Die erste Vielzahl von Erfassungsverstärkern ist mit der Speicherstruktur verbunden und auf einem Substrat des Speicher-Dies zwischen der Speicherstruktur und dem Substrat positioniert, sodass sich die Speicherstruktur direkt über der ersten Vielzahl von Erfassungsverstärkern befindet. Der Steuer-Die hat eine erste Schnittstelle zur Kommunikation mit der Speichersteuerung und eine zweite Schnittstelle zur Kommunikation mit dem Speicher-Die. Die zweite Schnittstelle ist breiter als die erste Schnittstelle. Der Steuer-Die weist eine zweite Vielzahl von Erfassungsverstärkern auf, die über die zweite Schnittstelle mit der Speicherstruktur verbunden sind. Die erste Vielzahl von Erfassungsverstärkern und die zweite Vielzahl von Erfassungsverstärkern sind eingerichtet, um gleichzeitig zum Schreiben von Daten in die Speicherstruktur verwendet zu werden.
-
In einer beispielhaften Implementierung sind die erste Vielzahl von Erfassungsverstärkern und die zweite Vielzahl von Erfassungsverstärkern eingerichtet, um verwendet zu werden, um Daten aus der Speicherstruktur zu lesen, sodass die erste Vielzahl von Erfassungsverstärkern verwendet werden, um Daten aus einem ersten Abschnitt der Speicherstruktur zu lesen, während die zweite Vielzahl von Erfassungsverstärkern verwendet werden, um gleichzeitig Daten aus einem zweiten Abschnitt der Speicherstruktur zu lesen.
-
Eine Ausführungsform schließt ein Verfahren zum Betreiben einer nichtflüchtigen Speicherungseinrichtung ein, aufweisend: Empfangen einer Anforderung zum Durchführen eines Speichervorgangs an einer integrierten Speicherbaugruppe, wobei die integrierte Speicherbaugruppe einen Speicher-Die und einen Steuer-Die aufweist, der mit dem Speicher-Die gebondet ist, der Speicher-Die weist eine dreidimensionale nichtflüchtige Speicherstruktur und eine erste Vielzahl von Erfassungsverstärkern auf, der Steuer-Die weist eine zweite Vielzahl von Erfassungsverstärkern auf, die mit der Speicherstruktur verbunden sind, die Speicherstruktur ist in Blöcken nichtflüchtiger Speicherzellen organisiert; und Durchführen des Speichervorgangs an einem ersten Abschnitt eines ersten Blocks der nichtflüchtigen Speicherzellen unter Verwendung der ersten Vielzahl von Erfassungsverstärkern, während gleichzeitig der Speichervorgang an einem zweiten Abschnitt des ersten Blocks der nichtflüchtigen Speicherzellen unter Verwendung der zweiten Vielzahl von Erfassungsverstärkern durchgeführt wird.
-
Für die Zwecke dieses Dokuments kann eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „einige Ausführungsformen“ oder „eine andere Ausführungsform“ verwendet werden, um verschiedene Ausführungsformen oder dieselbe Ausführungsform zu beschreiben.
-
Für die Zwecke dieses Dokuments kann eine Verbindung eine direkte Verbindung oder eine indirekte Verbindung sein (z. B. über einen oder mehrere andere Teile). In einigen Fällen, wenn ein Element als mit einem anderen Element verbunden oder gekoppelt bezeichnet wird, kann das Element direkt mit dem anderen Element verbunden sein oder indirekt über eine oder mehrere zwischenliegende Elemente mit dem anderen Element verbunden sein. Wenn ein Element als direkt mit einem anderen Element verbunden bezeichnet wird, gibt es keine Zwischenelemente zwischen dem Element und dem anderen Element. Zwei Vorrichtungen sind „in Kommunikation“, wenn sie direkt oder indirekt miteinander verbunden sind, sodass sie elektronische Signale untereinander übertragen können.
-
Für die Zwecke dieses Dokumentes kann der Begriff „basierend auf“ als „mindestens teilweise basierend auf“ gelesen werden.
-
Für die Zwecke dieses Dokuments impliziert ohne zusätzlichen Kontext die Verwendung numerischer Ausdrücke, wie ein „erstes“ Objekt, ein „zweites“ Objekt und ein „drittes“ Objekt möglicherweise keine Sortierung von Objekten, sondern kann stattdessen zu Identifikationszwecken verwendet werden, um verschiedene Objekte zu identifizieren.
-
Für die Zwecke dieses Dokuments kann sich der Ausdruck „Satz“ von Objekten auf einen „Satz“ von einem oder mehreren der Objekte beziehen.
-
Die vorhergehende detaillierte Beschreibung wurde zu Zwecken der Veranschaulichung und Beschreibung vorgelegt. Sie soll nicht erschöpfend sein oder die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind unter Berücksichtigung der vorstehend genannten Lehre möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der vorgeschlagenen Technologie und ihre praktische Anwendung am besten zu erläutern und damit anderen Fachleuten die Möglichkeit zu geben, sie in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, die für die jeweilige vorgesehene Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Umfang durch die hier beigefügten Ansprüche definiert wird.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 9721662 [0014]
- US 9082502 [0015]