DE102021107268A1 - Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine - Google Patents

Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine Download PDF

Info

Publication number
DE102021107268A1
DE102021107268A1 DE102021107268.9A DE102021107268A DE102021107268A1 DE 102021107268 A1 DE102021107268 A1 DE 102021107268A1 DE 102021107268 A DE102021107268 A DE 102021107268A DE 102021107268 A1 DE102021107268 A1 DE 102021107268A1
Authority
DE
Germany
Prior art keywords
data
memory cells
memory
block data
parity bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021107268.9A
Other languages
English (en)
Inventor
Xue Pitner
Ravi J. Kumar
Deepanshu Dutta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE102021107268A1 publication Critical patent/DE102021107268A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/561Multilevel memory cell aspects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

Speichervorrichtung einschließlich einer Steuerschaltlogik, die kommunikativ mit einem nichtflüchtigen Speicher gekoppelt und eingerichtet ist, um ein Paritätsbit zu empfangen, das unter Verwendung einer Datenstruktur gespeichert wurde, und um einen ersten Teilsatz von Hostdaten zu empfangen, der Blockdaten in Bezug auf einen Satz von Speicherzellen einschließt. Die Steuerschaltlogik kann eingerichtet sein, um einen Lesevorgang durchzuführen, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. Die Steuerschaltlogik kann eingerichtet sein, um den zweiten Teilsatz von Hostdaten unter Verwendung des Paritätsbits zu dekodieren. Die Steuerschaltlogik kann eingerichtet sein, um einen Schreibvorgang durchzuführen, um die Blockdaten in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind.

Description

  • HINTERGRUND
  • Die vorliegende Technologie bezieht sich auf den Betrieb von Speichervorrichtungen.
  • Speichervorrichtungen werden üblicherweise als interne, halbleitende, integrierte Schaltungen in Rechnern oder anderen elektronischen Vorrichtungen bereitgestellt. Es gibt viele verschiedene Speichertypen, einschließlich Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), dynamischer Direktzugriffsspeicher (DRAM), synchroner dynamischer Direktzugriffsspeicher (SDRAM), ein elektrisch löschbarer programmierbarer Nurlesespeicher (EEPROM), ein Flash-Speicher und/oder dergleichen. In einer EEPROM- oder Flash-NAND-Array-Architektur können die Speicherzellen in einer Matrix aus Zeilen und Spalten angeordnet sein, so dass die Gates jeder Speicherzelle über Zeilen mit Wortleitungen gekoppelt sind. Die Speicherzellen können in Ketten zusammen angeordnet werden, so dass die Speicherzellen in einer gegebenen Kette in Reihe miteinander gekoppelt sind, von der Quelle zum Drain, zwischen einer gemeinsamen Sourceleitung und einer gemeinsamen Bitleitung.
  • KURZDARSTELLUNG
  • Ein Gesichtspunkt der vorliegenden Erfindung bezieht sich auf eine Speichervorrichtung, die eine Steuerschaltlogik einschließt, die kommunikativ mit einem nichtflüchtigen Speicher gekoppelt ist. Die Steuerschaltlogik kann eingerichtet sein, um ein Paritätsbit zu empfangen, das unter Verwendung einer Datenstruktur gespeichert wurde, und um einen ersten Teilsatz von Hostdaten zu empfangen, der Blockdaten in Bezug auf einen Satz von Speicherzellen einschließt. Die Steuerschaltlogik kann eingerichtet sein, um einen Lesevorgang durchzuführen, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. Die Steuerschaltlogik kann eingerichtet sein, um den zweiten Teilsatz von Hostdaten unter Verwendung des Paritätsbits zu dekodieren. Die Steuerschaltlogik kann eingerichtet sein, um einen Schreibvorgang durchzuführen, um die Blockdaten in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind.
  • Ein weiterer Gesichtspunkt der vorliegenden Erfindung bezieht sich auf ein Verfahren zum Durchführen eines Programmiervorgangs zum Programmieren eines Satzes von Speicherzellen, wobei das Verfahren das Empfangen eines Paritätsbits umfasst, das unter Verwendung einer Datenstruktur gespeichert wurde. Das Verfahren umfasst ferner das Empfangen eines ersten Teilsatzes von Hostdaten, der Blockdaten einschließt, die sich auf den Satz von Speicherzellen beziehen. Das Verfahren umfasst ferner das Durchführen eines Lesevorgangs, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. Das Verfahren umfasst ferner das Dekodieren des zweiten Teilsatzes von Hostdaten unter Verwendung des Paritätsbits. Das Verfahren umfasst ferner das Durchführen eines Schreibvorgangs zum Schreiben der Blockdaten in mindestens eine oder mehrere Speicherzellen, die Teil des Satzes von Speicherzellen sind.
  • Ein weiterer Gesichtspunkt der vorliegenden Erfindung bezieht sich auf eine Speichervorrichtung umfassend einen nichtflüchtigen Speicher und eine Steuerschaltlogik. Die Steuerschaltlogik kann kommunikativ mit dem nichtflüchtigen Speicher gekoppelt sein. Die Steuerschaltlogik kann zum Programmieren eines Satzes von Speicherzellen dienen. Die Steuerschaltlogik kann eingerichtet sein, um ein unter Verwendung einer Datenstruktur gespeichertes Paritätsbit zu empfangen. Die Steuerschaltlogik kann ferner eingerichtet sein, um einen ersten Teilsatz von Hostdaten zu empfangen, der Blockdaten für eine obere Seite einschließt, wobei sich die Blockdaten auf den Satz von Speicherzellen beziehen. Die Steuerschaltlogik kann ferner eingerichtet sein, um einen Lesevorgang durchzuführen, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der drei weitere Seiten mit zusätzlichen Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. Die Steuerschaltlogik kann ferner eingerichtet sein, um den zweiten Teilsatz von Hostdaten unter Verwendung des Paritätsbits zu dekodieren. Die Steuerschaltlogik kann ferner eingerichtet sein, um einen Schreibvorgang durchzuführen, um die oberste Seite von Blockdaten und die drei anderen Seiten der zusätzlichen Blockdaten, die dekodiert wurden, in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind.
  • Figurenliste
  • Die beigefügten Zeichnungen, die in dieser Beschreibung enthalten sind und einen Teil derselben bilden, veranschaulichen verschiedene Aspekte der Erfindung und dienen zusammen mit der Beschreibung dazu, ihre Prinzipien zu erklären. Wo immer es zweckmäßig ist, werden in allen Zeichnungen dieselben Bezugszeichen verwendet, um gleiche oder ähnliche Elemente zu bezeichnen.
    • 1A veranschaulicht ein Blockdiagramm einer beispielhaften Speichervorrichtung.
    • 1B veranschaulicht ein Blockdiagramm einer beispielhaften Steuerschaltung, die eine Programmierschaltung, eine Zählschaltung und eine Bestimmungsschaltung umfasst.
    • 2 veranschaulicht eine schematische Ansicht von drei Speicherkettenarchitekturen nach den Prinzipien der vorliegenden Offenbarung.
    • 3 veranschaulicht Blöcke von Speicherzellen in einer beispielhaften zweidimensionalen Konfiguration des Speicherarrays von 1.
    • 4A veranschaulicht eine Querschnittsansicht von beispielhaften Floating-Gate-Speicherzellen in NAND-Ketten.
    • 4B veranschaulicht eine Querschnittsansicht der Struktur von 4A entlang der Linie 429.
    • 5A veranschaulicht eine Querschnittsansicht von beispielhaften ladungseinfangenden Speicherzellen in NAND-Ketten.
    • 5B veranschaulicht eine Querschnittsansicht der Struktur von 5A entlang der Linie 429.
    • 6A veranschaulicht ein beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1.
    • 6B veranschaulicht ein anderes beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1.
    • 7A veranschaulicht eine perspektivische Ansicht eines Satzes von Blöcken in einer beispielhaften dreidimensionalen Konfiguration des Speicherarrays von 1.
    • 7B veranschaulicht eine beispielhafte Querschnittsansicht eines Abschnitts von einem der Blöcke von 7A.
    • 7C veranschaulicht eine Darstellung des Speicherlochdurchmessers im Stapel von 7B.
    • 7D veranschaulicht eine Nahaufnahme der Region 622 des Stapels von 7B.
    • 8A veranschaulicht eine Draufsicht auf eine beispielhafte Wortleitungsschicht WLLO des Stapels von 6B.
    • 8B veranschaulicht eine Draufsicht auf eine beispielhafte obere dielektrische Schicht DL19 des Stapels von 7B.
    • 9A veranschaulicht ein Beispiel von NAND-Ketten in den Unterblöcken SBa-SBd von 8A.
    • 9B veranschaulicht eine andere beispielhafte Ansicht von NAND-Ketten in Unterblöcken.
    • 10 veranschaulicht die Vth-Verteilungen von Speicherzellen in einem Beispielprogrammiervorgang mit mindestens vier Datenzuständen.
    • 11 veranschaulicht schematisch eine Anwendung eines Programmiervorgangs gemäß den Prinzipien der vorliegenden Offenbarung.
    • 12 veranschaulicht grafisch einen Satz von Schwellenspannungsverteilungen (Vths) für 3-Bit-Speicherzellen in verschiedenen Stadien eines Programmiervorgangs gemäß den Prinzipien der vorliegenden Offenbarung.
    • 13 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Programmieren eines Satzes von Speicherzellen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Erörterung richtet sich an verschiedene Ausführungsformen der Erfindung. Wenngleich eine oder mehrere dieser Ausführungsformen bevorzugt sein können, dürfen die offenbarten Ausführungsformen nicht als den Schutzumfang der Offenbarung, einschließlich der Ansprüche, einschränkend ausgelegt oder anderweitig verwendet werden. Außerdem wird der Fachmann erkennen, dass die folgende Beschreibung breite Anwendung hat, und die Erörterung einer beliebigen Ausführungsform soll nur beispielhaft für diese Ausführungsform sein und soll nicht darauf hindeuten, dass der Schutzumfang der Offenbarung, einschließlich der Ansprüche, auf diese Ausführungsform beschränkt ist.
  • Ein Programmverifizierungsvorgang für einen Satz von Speicherzellen beinhaltet in der Regel das Anlegen einer Reihe von Programmspannungen an die Speicherzellen, nachdem die Speicherzellen in einem gelöschten Datenzustand bereitgestellt sind. Jede Programmspannung wird in einer Programmschleife bereitgestellt, die auch als Programmverifizierungsiteration bezeichnet wird. Die Programmspannung kann zum Beispiel an eine Wortleitung gelegt werden, die mit Steuergates der Speicherzellen verbunden ist. In einem Ansatz wird eine inkrementelle Schrittimpulsprogrammierung durchgeführt, bei der die Programmspannung in jeder Programmschleife um eine Schrittgröße erhöht wird. Verifizierungsvorgänge können nach jeder Programmierspannung durchgeführt werden, um zu bestimmen, ob die Speicherzellen ein Programmieren abgeschlossen haben. Wenn ein Programmieren für eine Speicherzelle abgeschlossen ist, kann sie von einem weiteren Programmieren ausgeschlossen werden, während ein Programmieren für andere Speicherzellen in nachfolgenden Programmierschleifen fortgeführt wird. Der Programmverifizierungsvorgang kann ein mehrstufiger Programmverifizierungsvorgang, ein Vollsequenz- oder Einschritt-Programmverifizierungsvorgang oder eine andere Art von Programmverifizierungsvorgang sein.
  • Jede Speicherzelle kann einem Datenzustand gemäß Schreibdaten in einem Programmierbefehl zugeordnet sein. Eine Speicherzelle kann sich in einem gelöschten Datenzustand befinden (hierin als gelöschter Datenzustand bezeichnet) oder in einen programmierten Datenzustand programmiert werden (hierin als programmierter Datenzustand bezeichnet), der sich von dem gelöschten Datenzustand unterscheidet. Zum Beispiel gibt es in einer Speichervorrichtung mit zwei Bits pro Zelle vier Datenzustände einschließlich des gelöschten Datenzustands und drei programmierte Datenzustände, die als A-, B- und C-Datenzustände bezeichnet werden (siehe 9). In einer Speichervorrichtung mit drei Bits pro Zelle gibt es acht Datenzustände einschließlich des gelöschten Datenzustands und sieben programmierte Datenzustände, die als A-, B-, C-, D-, E-, F- und G-Datenzustände bezeichnet werden (siehe 10). In einer Speichervorrichtung mit vier Bits pro Zelle gibt es sechzehn Datenzustände, einschließlich des gelöschten Datenzustands und fünfzehn programmierter Datenzustände, die als die Datenzustände Er, A, B, C, D, E, F, G, H, I, J, K, L, M, N und O bezeichnet werden. Diese können auch numerisch als Datenzustände 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 bzw. 15 bezeichnet werden.
  • Wenn ein Programmbefehl ausgegeben wird, werden die Schreibdaten in den zu den Speicherzellen gehörenden Haltespeichern gespeichert. Während der Programmierung können die Haltespeicher einer Speicherzelle ausgelesen werden, um den Datenzustand zu bestimmen, in den die Zelle programmiert werden soll. Jeder programmierte Datenzustand ist einer Verifizierungsspannung zugeordnet, sodass eine Speicherzelle mit einem gegebenen Datenzustand als vollständig programmiert betrachtet wird, wenn ein Lesevorgang (Erfassungsvorgang) bestimmt, dass ihre Schwellenspannung (Vth) über der zugeordneten Verifizierungsspannung liegt. Ein Lesevorgang (Erfassungsvorgang) kann bestimmen, ob eine Speicherzelle eine Spannung Vth über der zugeordneten Verifizierungsspannung aufweist, indem die zugehörige Verifizierungsspannung an das Steuer-Gate angelegt wird und ein Strom durch die Speicherzelle erfasst wird. Wenn der Strom relativ hoch ist, zeigt dies an, dass sich die Speicherzelle in einem leitfähigen Zustand befindet, sodass die Spannung Vth kleiner ist als die Spannung am Steuer-Gate. Wenn der Strom relativ niedrig ist, zeigt dies an, dass sich die Speicherzelle in einem nicht-leitfähigen Zustand befindet, sodass die Spannung Vth über der Spannung am Steuer-Gate liegt.
  • In einigen Situationen, wie z. B. beim Programmieren von NAND-Flash-Speichern, wurden spezielle Schreibverfahren angewendet, um Programmstörungen zu reduzieren. In diesen Situationen werden Schreibdaten in einen NAND-Speicher durch einen mehrstufigen Programmiervorgang geschrieben, der mehrere Übertragungen derselben Schreibdaten in den NAND-Speicher einschließt.
  • Eine herkömmliche Lösung beinhaltet das Speichern von vier Seiten von Blockdaten unter Verwendung eines Single-Level-Cell (SLC)-Speicher-Caches und das viermalige separate Übertragen der vier Seiten von Blockdaten zwischen verschiedenen NAND-Komponenten. Zum Beispiel kann die herkömmliche Lösung das Übertragen eines ersten Satzes von Schreibdaten für mehrere Seiten an einen NAND-Speicher und das Schreiben des ersten Satzes von Schreibdaten auf eine erste logische Seite beinhalten (z. B. kann eine Speicherzelle vier logische Seiten aufweisen). Zusätzlich kann die herkömmliche Lösung für andere logische Seiten wiederholt werden. In diesem Fall wird der erste Satz von Schreibdaten für die anderen Seiten wieder in den NAND-Speicher übertragen, und der erste Satz von Schreibdaten wird auf die anderen Seiten geschrieben. Jedoch erhöht die Implementierung eines Programmiervorgangs, der so viele Übertragungen nutzt, den Busverkehr und reduziert die Systemleistung erheblich.
  • Ein anderes herkömmliches Verfahren erfordert kein Speichern und Übertragen von vier Seiten von Blockdaten unter Verwendung des SLC-Cache. Bei diesem Verfahren werden in einer ersten Stufe des Vorgangs zwei Seiten von Blockdaten in einen MLC-Cache geschrieben. In einer zweiten Stufe werden die zwei Seiten zurückgelesen und zwei weitere Seiten sind für einen Fein-Abschnitt des Vorgangs zu verwenden. Folglich wird kein SLC-Cache benötigt und die vier Seiten von Blockdaten werden dem NAND-Speicher während der zwei Stufen nur einmal bereitgestellt. Allerdings erfordert dieses Verfahren eine große interne Datenlast-Lesespanne (IDL-Lesespanne) und hat eine kleine endgültige Schwellenspannungsverteilungs-Spanne (Vth-Spanne) (relativ zu dem vorstehend beschriebenen ersten herkömmlichen Programmiervorgang) basierend auf einer großen Vth-Differenz zwischen der ersten und zweiten Stufe.
  • Ein anderes herkömmliches Verfahren beinhaltet das Übertragen der vier Seiten von Blockdaten an den NAND-Speicher während einer ersten Stufe, das Erzeugen eines Paritätsbits, das in der Lage ist, zwischen ungeraden und geraden Datenzuständen während der ersten Stufe zu unterscheiden, und das Speichern des Paritätsbits unter Verwendung des SLC-Cache. Während der zweiten Stufe werden die vier Seiten von Blockdaten (d. h. Foggy-Daten) gelesen (z. B. ohne die Daten im SLC-Cache speichern zu müssen) und das Paritätsbit wird zum Dekodieren der Daten verwendet. Allerdings erfordert dieses Verfahren, dass Datenzustand n und Datenzustand n+2 keine überlappenden Bits aufweisen, damit die Daten fehlerfrei gelesen werden können. Dies kann besonders schwierig zu erreichen sein, nachdem Verfahren zur Datenaufbewahrung (DR) für offene Blockspeicherzellen implementiert wurden. In einem weiteren herkömmlichen Verfahren werden in einer ersten Stufe drei Seiten von Blockdaten geschrieben. Während einer zweiten Stufe werden drei Seiten von Blockdaten zurückgelesen und eine vierte Seite wird für den Feinabschnitt des Vorgangs verwendet. Allerdings erfordert dieser Ansatz ein spezielles Kodierungsschema (z. B. ein 1-2-6-6-Kodierungsschema, ein 1-2-4-8-Kodierungsschema usw.), das eine große Menge an unausgeglichenen Datenzuständen auf Seiten aufweist, wodurch ein großes Ungleichgewicht bei den Fehler-Bit-Zählungen (FBC) auf Seiten verursacht wird.
  • Einige hierin beschriebene Ausführungsformen können Systeme und/oder Verfahren zum Programmieren eines Satzes von Speicherzellen unter Verwendung eines TCL-Feinprogrammiervorgangs einschließen. Zum Beispiel werden während einer ersten Stufe des Programmiervorgangs drei Seiten von Blockdaten in die Speicherzellen geschrieben, um die Speicherzellen auf acht Datenzustände zu programmieren (z. B. von sechzehn verfügbaren Datenzuständen, die in QLCs vorhanden sind). Gleichzeitig mit der ersten Stufe wird ein Paritätsbit erzeugt und einer Steuerschaltlogik zugänglich gemacht, die einer NAND-Speicherstruktur zugeordnet ist. Das Paritätsbit kann unter Verwendung von SLC-Cache gespeichert werden. Während der zweiten Stufe kann die Steuerschaltlogik (z. B. unter Verwendung eines Dekodierers) die Datenzustände aus der ersten Stufe zurücklesen lassen und die Datenzustände unter Verwendung des Paritätsbits dekodieren, um zwischen ungeraden und geraden Datenzuständen zu unterscheiden (manchmal auch als n- und n+1-Datenzustände bezeichnet). Durch Dekodieren der drei Seiten von Blockdaten können die drei Seiten von Blockdaten mit der obersten Seite einer Blockseite kombiniert und als Teil der zweiten Stufe des Programmiervorgangs in die Speicherzellen geschrieben werden.
  • Auf diese Weise programmieren beschriebene Systeme und/oder Verfahren den Satz von Speicherzellen effizient und/oder effektiv. Durch Programmieren des Satzes von Speicherzellen in der vorstehend beschriebenen Weise verringern die Systeme und/oder Verfahren eine Anzahl von SLC-Cache-Blöcken, die zum Speichern von Daten erforderlich sind, und minimieren die Übertragung von Datenübertragung innerhalb der Speichervorrichtung und/oder zwischen der Speichervorrichtung und einer Hostvorrichtung (z. B. im Vergleich zu einem oder mehreren herkömmlichen Verfahren, wie dem Foggy-Feinprogrammiervorgang). Außerdem bewirken die Systeme und/oder Verfahren eine kleine Vth-Verschiebung zwischen der ersten und zweiten Stufe (z. B. im Vergleich zu einem vorstehend beschriebenen Verfahren, wie dem MLC-Feinrogrammiervorgang), wodurch die Programmleistung verbessert und die Nachbarwortleitungsstörung (NWI) im Vergleich zu diesem Verfahren reduziert wird.
  • 1A ist ein Blockdiagramm einer beispielhaften Speichervorrichtung. Die Speichervorrichtung 100 kann einen oder mehrere Speicher-Dies 108 einschließen. Das Speicher-Die 108 schließt eine Speicherstruktur 126 von Speicherzellen, z. B. ein Array von Speicherzellen, eine Steuerungsschaltlogik 110 und Lese/Schreib-Schaltungen 128 ein. Die Speicherstruktur 126 ist durch Wortleitungen über einen Zeilendecodierer 124 und durch Bitleitungen über einen Spaltendecodierer 132 adressierbar. Die Schreib-/Leseschaltungen 128 schließen mehrere Erfassungsblöcke SB1, SB2, ..., SBp (Erfassungsschaltkreis) ein und ermöglichen das parallele Lesen oder Programmieren einer Seite von Speicherzellen. Üblicherweise ist eine Steuerung 122 in der gleichen Speichervorrichtung 100 (z. B. einer entfernbaren Speicherkarte) enthalten wie das eine oder die mehreren Speicher-Dies 108. Befehle und Daten werden zwischen dem Host 140 und der Steuerung 122 über einen Datenbus 120 und zwischen der Steuerung und dem einen oder den mehreren Speicher-Dies 108 über Leitungen 118 übertragen.
  • Die Speicherstruktur kann 2D oder 3D sein. Die Speicherstruktur kann ein oder mehrere Arrays von Speicherzellen aufweisen, einschließlich eines 3D-Arrays. Die Speicherstruktur kann eine monolithische dreidimensionale Speicherstruktur aufweisen, in der mehrere Speicherebenen über (und nicht in) einem einzelnen Substrat wie beispielsweise einem Wafer ohne dazwischen liegende Substrate ausgebildet sind. Die Speicherstruktur kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einer oder mehreren physischen Ebenen von Speicherzellenanordnungen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Siliziumsubstrat angeordnet ist. Die Speicherstruktur kann sich in einer nichtflüchtigen Speichervorrichtung befinden, die Schaltlogik aufweist, die dem Betrieb der Speicherzellen zugeordnet sind, ganz gleich, ob sich die zugehörige Schaltlogik oberhalb oder innerhalb des Substrats befindet.
  • Die Steuerschaltlogik 110 arbeitet mit den Lese-/Schreibschaltungen 128 zusammen, um Speichervorgänge auf der Speicherstruktur 126 auszuführen, und schließt eine Zustandsmaschine 112, einen On-Chip-Adressdecodierer 114 und ein Leistungssteuerungsmodul 116 ein. Die Zustandsmaschine 112 stellt eine Steuerung von Speichervorgängen auf Speicherebene bereit.
  • Eine Speicherregion 113 kann zum Beispiel für Programmierparameter bereitgestellt werden. Die Programmierparameter können eine Programmspannung, eine Vorspannung für die Programmspannung, Positionsparameter, die die Positionen der Speicherzellen angeben, Parameter für die Dicke der Kontaktleitungsverbinder, eine Verifizierungsspannung und/oder dergleichen einschließen. Die Positionsparameter können eine Position einer Speicherzelle innerhalb des gesamten Arrays von NAND-Ketten, eine Position einer Speicherzelle innerhalb einer bestimmten NAND-Ketten-Gruppe, eine Position einer Speicherzelle in einer bestimmten Ebene und/oder dergleichen angeben. Die Parameter für die Dicke des Kontaktleitungsverbinders können die Dicke des Kontaktleitungsverbinders, das Substrat oder das Material, aus dem der Kontaktleitungsverbinder besteht, und/oder dergleichen angeben.
  • Der On-Chip-Adressdecodierer 114 stellt eine Adressschnittstelle zwischen derjenigen, die von dem Host oder einer Speichersteuerung verwendet wird, und der Hardware-Adresse bereit, die von den Decodierern 124 und 132 verwendet wird. Das Leistungssteuermodul 116 steuert die Leistung und Spannungen, die den Wortleitungen und Bitleitungen während Speichervorgängen zugeführt werden. Es kann Treiber für Wortleitungen, SGS- und SGD-Transistoren und Sourceleitungen einschließen. Die Abtastblöcke können in einem Ansatz Bitleitungstreiber einschließen. Ein SGS-Transistor ist ein Auswahlgate-Transistor an einem Source-Ende einer NAND-Kette, und ein SGD-Transistor ist ein Auswahlgate-Transistor an einem Drain-Ende einer NAND-Kette.
  • In einigen Ausführungsformen können einige der Komponenten kombiniert werden. Bei verschiedenen Ausführungen können eine oder mehrere der Komponenten (allein oder in Kombination), die sich von der Speicherstruktur 126 unterscheiden, als mindestens eine Steuerschaltung betrachtet werden, die eingerichtet ist, um die hierin beschriebenen Vorgänge durchzuführen. Die Steuerschaltung kann zum Beispiel eines oder eine Kombination von Steuerschaltung 110, Zustandsmaschine 112, Decodierer 114/132, Leistungssteuerungsmodul 116, Erfassungsblöcke SBb, SB2, ..., SBp, Lese-/Schreibschaltungen 128, Steuerung 122 und so weiter einschließen.
  • Die Steuerschaltungen können eine Programmierschaltung einschließen, die so eingerichtet ist, dass sie einen Programmiervorgang für einen Satz von Speicherzellen durchführt, wobei der eine Satz von Speicherzellen Speicherzellen umfasst, die so zugeordnet sind, dass sie einen Datenzustand aus einer Vielzahl von Datenzuständen darstellen, und Speicherzellen, die so zugeordnet sind, dass sie einen anderen Datenzustand aus der Vielzahl von Datenzuständen darstellen; wobei der Programmiervorgang eine Vielzahl von Programmverifizierungsiterationen umfasst; und wobei die Programmierschaltung in jeder Programmverifizierungsiteration eine Programmierung für die eine Wortleitung durchführt, wonach die Programmierschaltung ein Verifizierungssignal an die eine Wortleitung anlegt. Die Steuerschaltungen können auch eine Zählschaltung enthalten, die so eingerichtet ist, dass sie die Anzahl der Speicherzellen ermittelt, die einen Verifizierungstest für den einen Datenzustand bestanden haben. Die Steuerschaltungen können auch eine Bestimmungsschaltung einschließen, die so eingerichtet ist, dass sie auf der Grundlage einer Menge, um die der Zählerstand einen Schwellenwert überschreitet, eine bestimmte Programmverifizierungsiteration aus der Vielzahl der Programmverifizierungsiterationen bestimmt, in der ein Verifizierungstest für den anderen Datenzustand für die Speicherzellen, die zur Darstellung des anderen Datenzustands zugewiesen sind, durchgeführt wird.
  • 1B ist zum Beispiel ein Blockdiagramm einer beispielhaften Steuerschaltung 150, die eine Programmierschaltung 151, eine Zählschaltung 152 und eine Bestimmungsschaltung 153 umfasst.
  • Die Off-Chip-Steuerung 122 kann einen Prozessor 122c, Speichervorrichtungen (Speicher) wie ROM 122a und RAM 122b und eine Fehlerkorrekturcode-Maschine (ECC) 245 umfassen. Die ECC-Maschine kann eine Anzahl von Lesefehlern korrigieren, die verursacht werden, wenn der obere Schwanz einer Vth-Verteilung zu hoch wird. In einigen Fällen können jedoch unkorrigierbare Fehler vorliegen. Die hierin bereitgestellten Techniken verringern die Wahrscheinlichkeit von unkorrigierbaren Fehlern.
  • Die Speichervorrichtung weist einen Code wie einen Satz von Anweisungen auf und der Prozessor ist dazu betreibbar, den Satz von Anweisungen auszuführen, um die hierin beschriebene Funktionalität bereitzustellen. Alternativ oder zusätzlich kann der Prozessor auf Code von einer Speichervorrichtung 126a der Speicherstruktur zugreifen, wie etwa auf einen reservierten Bereich von Speicherzellen in einer oder mehreren Wortleitungen.
  • Der Code kann zum Beispiel von der Steuerung verwendet werden, um auf die Speicherstruktur zuzugreifen, wie etwa für Programmier-, Lese- und Löschvorgänge. Der Code kann Bootcode und Steuercode (z. B. einen Satz von Anweisungen) einschließen. Der Bootcode ist eine Software, die die Steuerung während eines Boot- oder Startvorgangs initialisiert und der Steuerung ermöglicht, auf die Speicherstruktur zuzugreifen. Der Code kann von der Steuerung verwendet werden, um eine oder mehrere Speicherstrukturen zu steuern. Nach dem Einschalten holt der Prozessor 122c den Bootcode aus dem ROM 122a oder der Speichervorrichtung 126a zur Ausführung, und der Bootcode initialisiert die Systemkomponenten und lädt den Steuercode in den RAM 122b. Sobald der Steuercode in den RAM geladen ist, wird er durch den Prozessor ausgeführt. Der Steuercode enthält Treiber zum Durchführen grundlegender Aufgaben, wie etwa Steuern und Zuweisen von Speicher, Priorisieren der Verarbeitung von Befehlen und Steuern von Eingabe- und Ausgabeports.
  • Im Allgemeinen kann der Steuercode Anweisungen einschließen, um die hierin beschriebenen Funktionen einschließlich der weiter unten erläuterten Schritte der Flussdiagramme durchzuführen und um die Spannungswellenformen einschließlich der weiter unten erläuterten bereitzustellen.
  • In einer Ausführungsform ist der Host eine Rechenvorrichtung (z. B. ein Laptop, ein Desktop, ein Smartphone, ein Tablet, eine Digitalkamera), die einen oder mehrere Prozessoren, eine oder mehrere prozessorlesbare Speichervorrichtungen (RAM, ROM, Flash-Speicher, Festplattenlaufwerk, Solid-State-Memory) einschließt, die einen prozessorlesbaren Code (z. B. eine Software) zum Programmieren der einen oder der mehreren Prozessoren speichert, um die hierin beschriebenen Verfahren durchzuführen. Der Host kann auch einen zusätzlichen Systemspeicher, eine oder mehrere Eingabe-/Ausgabeschnittstellen und/oder eine oder mehrere Eingabe-/Ausgabevorrichtungen einschließen, die mit dem einem oder den mehreren Prozessoren in Kommunikation stehen.
  • Andere Arten von nichtflüchtigen Speichern zusätzlich zu NAND-Speichern können ebenfalls verwendet werden.
  • Halbleiterspeichervorrichtungen schließen flüchtige Speichervorrichtungen ein, wie etwa Dynamic Random Access Memory-Vorrichtungen („DRAM-Vorrichtungen“) oder Static Random Access Memory-Vorrichtungen („SRAM-Vorrichtungen“), nichtflüchtige Speichervorrichtungen, wie etwa Resistive Random Access Memory („ReRAM“), Electrically Erasable Programmable Read Only Memory („EEPROM“), Flash-Speicher (der auch als Untergruppe eines EEPROM betrachtet werden kann), Ferroelectric Random Access Memory („FRAM“) und Magnetoresistive Random Access Memory („MRAM“), und andere Halbleiterelemente, die Informationen speichern können. Jeder Typ von Speichervorrichtung kann unterschiedliche Konfigurationen aufweisen. Zum Beispiel können nichtflüchtige Speichervorrichtungen in einer NAND- oder NOR-Konfiguration eingerichtet sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in beliebigen Kombinationen ausgebildet sein. Als ein nichteinschränkendes Beispiel schließen passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente ein, die in einigen Ausführungsformen ein widerstandsschaltendes Speicherelement wie ein Anti-Fuse- oder Phasenwechselmaterial und gegebenenfalls ein Lenkelement wie eine Diode oder einen Transistor einschließen. Weiterhin schließen als nichteinschränkendes Beispiel aktive Halbleiterspeicherelemente EEPROM- und nichtflüchtige Speichervorrichtungselemente ein, die in einigen Ausführungsformen Elemente einschließen, die einen Ladungsspeicherbereich enthalten, wie etwa ein Floating-Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial.
  • Mehrere Speicherelemente können derart eingerichtet sein, dass sie in Reihe geschaltet sind, oder derart, dass jedes Element einzeln zugänglich ist. Als nicht einschränkendes Beispiel enthalten nichtflüchtige Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) üblicherweise Speicherelemente, die in Reihe geschaltet sind. Eine NAND-Kette ist ein Beispiel für einen Satz von in Reihe geschalteten Transistoren, aufweisend Speicherzellen und SG-Transistoren.
  • Ein NAND-Speicherarray kann so eingerichtet werden, dass das Array aus mehreren Speicherketten besteht, wobei eine Kette aus mehreren Speicherelementen besteht, die sich eine einzelne Bitleitung teilen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente derart eingerichtet sein, dass jedes Element einzeln zugänglich ist, z. B. ein NOR-Speicherarray. NAND- und NOR-Speicherkonfigurationen sind Beispiele, und Speicherelemente können anderweitig eingerichtet sein. Die Halbleiterspeicherelemente, die in und/oder über einem Substrat angeordnet sind, können in zwei oder drei Dimensionen angeordnet sein, wie einer zweidimensionalen Speicherstruktur oder einer dreidimensionalen Speicherstruktur.
  • In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder einer einzelnen Speichervorrichtungsebene angeordnet. Üblicherweise sind in einer zweidimensionalen Speicherstruktur Speicherelemente in einer Ebene (z. B. in einer x-y-Richtung-Ebene) angeordnet, die sich im Wesentlichen parallel zu einer Hauptfläche eines Substrats erstreckt, das die Speicherelemente trägt. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente gebildet ist, oder es kann ein Trägersubstrat sein, das an den Speicherelementen befestigt wird, nachdem diese gebildet werden. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter, wie Silizium, einschließen.
  • Die Speicherelemente können auf der einzelnen Speichervorrichtungsebene in einem geordneten Array angeordnet sein, wie in einer Vielzahl von Zeilen und/oder Spalten. Jedoch können die Speicherelemente in nicht regelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen, wie Bitleitungen und Wortleitungen, aufweisen.
  • Ein dreidimensionales Speicherarray ist so angeordnet, dass Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungsebenen belegen, wodurch eine Struktur in drei Dimensionen gebildet wird (d. h. in der x-, y- und z-Richtung, wobei die z-Richtung im Wesentlichen senkrecht ist und die x- und y-Richtungen im Wesentlichen parallel zur Hauptoberfläche des Substrats verlaufen).
  • Als ein nicht einschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als weiteres nicht einschränkendes Beispiel kann ein dreidimensionales Speicherarray als mehrere vertikale Spalten (z. B. Spalten, die sich im Wesentlichen senkrecht zur Hauptfläche des Substrats erstrecken, d. h. in y-Richtung) angeordnet sein, wobei jede Spalte mehrere Speicherelemente aufweist. Die Spalten können in einer zweidimensionalen Konfiguration angeordnet sein, z. B. in einer x-y-Ebene, was in einer dreidimensionalen Anordnung von Speicherelementen mit Elementen auf mehreren vertikal gestapelten Speicherebenen resultiert. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls ein dreidimensionales Speicherarray bilden.
  • Als nicht einschränkendes Beispiel können in einer dreidimensionalen Anordnung von NAND-Ketten die Speicherelemente miteinander verbunden werden, um eine NAND-Kette innerhalb einer einzigen horizontalen (z. B. x-y) Speichervorrichtungsebene zu bilden. Alternativ können die Speicherelemente miteinander gekoppelt sein, um eine vertikale NAND-Kette zu bilden, die über mehrere horizontale Speichervorrichtungsebenen verläuft. Andere dreidimensionale Konfigurationen können in Betracht gezogen werden, wobei einige NAND-Ketten Speicherelemente in einer einzelnen Speicherebene enthalten, während andere Ketten Speicherelemente enthalten, die sich über mehrere Speicherebenen erstrecken. Dreidimensionale Speicherarrays können auch als eine NOR-Konfiguration und als eine ReRAM-Konfiguration ausgelegt sein.
  • Üblicherweise werden in einem monolithischen dreidimensionalen Speicherarray eine oder mehrere Speichervorrichtungsebenen über einem einzelnen Substrat gebildet. Optional kann das monolithische dreidimensionale Speicherarray auch eine oder mehrere Speicherschichten mindestens teilweise innerhalb des einzelnen Substrats aufweisen. Als ein nicht einschränkendes Beispiel kann das Substrat einen Halbleiter, wie Silizium, einschließen. In einem monolithischen dreidimensionalen Array werden die Schichten, die jede Speichervorrichtungsebene des Arrays bilden, üblicherweise auf den Schichten der darunter liegenden Speichervorrichtungsebenen des Arrays gebildet. Jedoch können Schichten von benachbarten Speichervorrichtungsebenen eines monolithischen dreidimensionalen Speicherarrays gemeinsam genutzt werden oder Zwischenschichten zwischen Speichervorrichtungsebenen aufweisen.
  • Dann können wiederum zweidimensionale Arrays getrennt gebildet und dann zusammengepackt werden, um eine nicht monolithische Speichervorrichtung mit mehreren Speicherschichten zu bilden. Zum Beispiel können nicht monolithische gestapelte Speicher konstruiert werden, indem Speicherebenen auf separaten Substraten gebildet und dann die Speicherebenen übereinander gestapelt werden. Die Substrate können vor dem Stapeln gedünnt oder von den Speichervorrichtungsebenen entfernt werden, aber da die Speichervorrichtungsebenen anfänglich über separaten Substraten gebildet werden, sind die resultierenden Speicherarrays keine monolithischen dreidimensionalen Speicherarrays. Weiterhin können mehrere zweidimensionale Speicherarrays oder dreidimensionale Speicherarrays (monolithisch oder nicht monolithisch) auf separaten Chips gebildet und dann zusammengepackt werden, um eine gestapelte Chip-Speichervorrichtung zu bilden.
  • 2 veranschaulicht eine schematische Ansicht von beispielhaften BiCS-Speicherarchitekturen, die gestaffelte Speicherketten verwenden. Zum Beispiel zeigt die Referenznummer 201 eine schematische Ansicht einer beispielhaften BiCS 4-Speicherarchitektur, die Referenznummer 203 zeigt eine schematische Ansicht einer beispielhaften BiCS 5-Speicherarchitektur und die Referenznummer 205 zeigt eine schematische Ansicht einer beispielhaften BiCS 6-Speicherarchitektur. In einigen Ausführungsformen, wie dargestellt, kann eine BiCS-Speicherarchitektur ein Array von gestaffelten NAND-Ketten einschließen.
  • Mit Bezug auf die Speicherarchitektur 201 sind die Speicherketten in den Zeilen 207-0 bis 207-7 in der Stringarchitektur 201 dargestellt. Eine Speicherkette kann einen Satz von Speicherzellen einschließen (z. B. die einem Satz von Speicherlöchern entsprechen). Jede Zeile wird mit vier Enden zu den Speicherketten dargestellt. Eine Speicherkette kann an einem Ende mit einer benachbarten Kette verbunden sein (in dieser Ansicht nicht sichtbar). Eine erste Gruppe von Zeilen 207-0 bis 207-3 wird auf einer linken Seite einer Dummy-Zeile 208 dargestellt. Eine zweite Gruppe von Zeilen 207-4 bis 207-7 wird auf einer rechten Seite der Dummy-Zeile 208 angezeigt. Die Dummy-Zeile 208 trennt die beiden Gruppen von Zeilen in der gestaffelten Achterzeile. Eine Sourceleitung 209 befindet sich an einem Rand der ersten Gruppe und ist von der Dummy-Zeile 208 entfernt. Eine Sourceleitung 210 befindet sich an einem Rand der zweiten Gruppe und ist von der Dummy-Zeile 208 und der Sourceleitung 209 entfernt.
  • Die Speicherarchitekturen 203 und 205 können ähnlich wie die Kettenarchitektur 201 sein, außer dass zusätzliche Gruppen hinzugefügt werden. Die Kettenarchitektur 203 kann doppelt so groß sein wie die Architektur 201 und kann sechzehn Zeilen von Ketten einschließen, wobei jede Gruppe von vier Zeilen durch eine Dummy-Zeile getrennt ist. Die Kettenarchitektur 205 kann größer sein als sowohl die Speicherarchitektur 201 als auch die Speicherarchitektur 203. Die Kettenarchitektur 205 kann zwanzig Zeilen von Ketten einschließen, wobei jede Gruppe von vier Zeilen durch eine Dummy-Zeile 208 getrennt ist.
  • In einigen Ausführungsformen können die Speicherarchitekturen 201, 203 und/oder 205 einen Chip unter Array-Struktur einschließen. Zum Beispiel können die Speicherarchitekturen 201, 203 und/oder 205 einen Chip unter Array-Struktur einschließen, wobei sich die Steuerschaltung unter dem Speicherarray befindet, das die Gruppen von Speicherketten einschließt. Beim Chip unter Array-Struktur können die Speicherketten einen direkten Bandkontakt für die Sourceleitung für Lese- und Löschvorgänge einschließen.
  • In einigen Ausführungsformen kann die Speicherarchitektur 205 eine BiCS 6-Speicherarchitektur sein. In einer BiCS 6-Speicherarchitektur kann es zum Beispiel fünf NAND-Kettengruppen geben. NAND-Kettengruppe 212-1, NAND-Kettengruppe 212-2, NAND-Kettengruppe 212-3, NAND-Kettengruppe 212-3 und NAND-Kettengruppe 212-4). Die NAND-Kettengruppe 212-0 und die NAND-Kettengruppe 212-4 können als äußere NAND-Kettengruppen bezeichnet werden. Die NAND-Kettengruppe 212-1, die NAND-Kettengruppe 212-2 und die NAND-Kettengruppe 212-3 können gemeinsam als innere NAND-Kettengruppen bezeichnet werden. Die NAND-Kettengruppe 212-2 kann als innerste NAND-Kettengruppe bezeichnet werden.
  • In einigen Ausführungsformen kann die BiCS 6-Speicherarchitektur eine 3-D-Speicherarchitektur sein, die einen oder mehrere 3-D-Blöcke einschließt. In diesem Fall kann ein 3-D-Block logisch in mehrere Unterblöcke segmentiert werden, die NAND-Kettengruppen entsprechen. Der 3-D-Block kann auch in mehrere Ebenen segmentiert werden. Eine zusätzliche Blockbeschreibung wird weiter unten bereitgestellt.
  • Eine oder mehrere Ausführungsformen beziehen sich zwar auf eine BiCS-Speicherarchitektur, dies ist jedoch nur beispielhaft bereitgestellt. In der Praxis können die hierin beschriebenen Techniken auf einer beliebigen Anzahl verschiedener Speicherarchitekturen implementiert werden, wie beispielsweise rohrförmige BiCS (P-BiCS), eine VRAT-Architektur (Vertical Recipse Array Transistor) und/oder jeder andere Typ von EEPROM- oder Flash-Speicherarchitektur.
  • 3 veranschaulicht Blöcke von Speicherzellen in einer beispielhaften zweidimensionalen Konfiguration des Speicherarrays 126 von 1. Das Speicherarray kann viele Blöcke einschließen. Jeder Beispielblock 300, 310 schließt eine Anzahl von NAND-Ketten und entsprechenden Bitleitungen ein, z. B. BL0, BL1, ... die von den Blöcken gemeinsam genutzt werden. Jede NAND-Kette ist an einem Ende mit einem Drain-Auswahl-Gate (SGD) verbunden, und die Steuer-Gates der Drain-Auswahl-Gates sind über eine gemeinsame SGD-Leitung verbunden. Die NAND-Ketten sind an ihrem anderen Ende mit einem Source-Auswahl-Gate verbunden, das wiederum mit einer gemeinsamen Sourceleitung 320 verbunden ist. Sechzehn Wortleitungen, zum Beispiel WL0 bis WL15, verlaufen zwischen den Source-Auswahl-Gates und den Drain-Auswahl-Gates. In einigen Fällen können im Speicherarray neben den Auswahl-Gate-Transistoren auch Dummy-Wortleitungen verwendet werden, die keine Benutzerdaten enthalten. Solche Dummy-Wortleitungen können die Randdatenwortleitung vor bestimmten Randeffekten abschirmen.
  • Ein Typ von nichtflüchtigem Speicher, der im Speicherarray bereitgestellt werden kann, ist ein Floating-Gate-Speicher. Siehe 4A und 4B. Andere Typen nichtflüchtiger Speicher können ebenfalls verwendet werden. Eine Charge-Trapping-Speicherzelle verwendet zum Beispiel ein nichtleitendes dielektrisches Material anstelle eines leitenden Floating-Gates, um Ladung nichtflüchtig zu speichern. Siehe 5A und 5B. Ein dreischichtiges Dielektrikum aus Siliziumoxid, Siliziumnitrid und Siliziumoxid („ONO“) ist zwischen einem leitenden Steuer-Gate und einer Oberfläche eines halbleitenden Substrats über dem Speicherzellenkanal angeordnet. Die Zelle wird programmiert, indem Elektronen aus dem Zellkanal in das Nitrid eingespritzt werden, wo sie eingefangen und in einem begrenzten Bereich gespeichert werden. Diese gespeicherte Ladung verändert dann die Schwellenspannung eines Abschnitts des Kanals der Zelle auf eine Weise, die nachweisbar ist. Die Zelle wird durch Einspritzen heißer Löcher in das Nitrid gelöscht. Eine ähnliche Zelle kann in einer Split-Gate-Konfiguration bereitgestellt werden, bei der sich ein dotiertes Polysilizium-Gate über einem Abschnitt des Speicherzellenkanals erstreckt und dadurch einen separaten Auswahl-Transistor bildet.
  • Bei einem anderen Ansatz werden NROM-Zellen verwendet. Zwei Bit werden zum Beispiel in jeder NROM-Zelle gespeichert, in der sich eine dielektrische ONO-Schicht über dem Kanal zwischen Source- und Drain-Diffusion erstreckt. Die Ladung für ein Datenbit ist in der an den Drain angrenzenden dielektrischen Schicht lokalisiert, und die Ladung für das andere Datenbit ist in der an die Source angrenzenden dielektrischen Schicht lokalisiert. Die Datenspeicherung in mehreren Zuständen wird durch separates Lesen binärer Zustände der physisch getrennten Ladungsspeicherbereiche innerhalb des Dielektrikums erreicht. Andere Arten nichtflüchtiger Speicher sind ebenfalls bekannt.
  • 4A veranschaulicht einen Querschnitt durch ein Beispiel von Floating-Gate-Speicherzellen in NAND-Ketten. Eine Bitleitung oder NAND-Kettenrichtung geht in die Seite hinein, und eine Wortleitungsrichtung geht von links nach rechts. Als Beispiel erstreckt sich die Wortleitung 424 über NAND-Ketten, die die jeweiligen Kanalregionen 406, 416 und 426 einschließen. Die Speicherzelle 400 schließt ein Steuergate 402, ein Floating-Gate 404, eine Tunneloxidschicht 405 und die Kanalregion 406 ein. Die Speicherzelle 410 schließt ein Steuergate 412, ein Floating-Gate 414, eine Tunneloxidschicht 415 und die Kanalregion 416 ein. Die Speicherzelle 420 schließt ein Steuergate 422, ein Floating-Gate 421, eine Tunneloxidschicht 425 und die Kanalregion 426 ein. Jede Speicherzelle befindet sich in einer anderen jeweiligen NAND-Kette. Eine interpolare dielektrische (IPD) Schicht 428 ist ebenfalls veranschaulicht. Die Steuergates sind Abschnitte der Wortleitung. Eine Querschnittsansicht entlang des Kontaktleitungsverbinders 429 ist in 4B bereitgestellt.
  • Das Steuergate wickelt sich um das Floating-Gate, wodurch der Kontaktbereich zwischen dem Steuergate und dem Floating-Gate vergrößert wird. Daraus ergibt sich eine höhere IPD-Kapazität, was zu einem höheren Kopplungsverhältnis führt, was das Programmieren und Löschen erleichtert. Bei der Verkleinerung von NAND-Speichervorrichtungen wird jedoch der Abstand zwischen benachbarten Zellen kleiner, so dass zwischen zwei benachbarten Floating-Gates fast kein Platz mehr für das Steuergate und das IPD vorhanden ist.
  • Als Alternative wurde, wie in 5A und 5B gezeigt, die flache oder planare Speicherzelle entwickelt, bei der das Steuergate flach oder planar ist; d. h. sie umschließt nicht das Floating-Gate und hat nur von oben Kontakt mit der Ladungsspeicherschicht. In diesem Fall ist ein hohes Floating-Gate nicht von Vorteil. Stattdessen wird das Floating-Gate deutlich dünner ausgeführt. Ferner kann das Floating-Gate zur Ladungsspeicherung verwendet werden, oder es kann eine dünne Ladungsfallenschicht zum Einfangen von Ladung verwendet werden. Dieser Ansatz kann das Problem des ballistischen Elektronentransports vermeiden, bei dem ein Elektron während der Programmierung durch das Floating-Gate wandern kann, nachdem es durch das Tunneloxid getunnelt wurde.
  • 5B veranschaulicht eine Querschnittsansicht der Struktur von 5A entlang des Kontaktleitungsverbinders 529. Die NAND-Kette 530 schließt einen SGS-Transistor 531, beispielhafte Speicherzellen 500, 533, ..., 534 und 535 und einen SGD-Transistor 536 ein. Die Speicherzelle 400, als Beispiel für jede Speicherzelle, schließt das Steuergate 402, die IPD-Schicht 428, das Floating-Gate 404 und die Tunneloxidschicht 505 ein, in Übereinstimmung mit 5A. Durchgänge in der IPD-Schicht in den SGS- und SGD-Transistoren ermöglichen die Kommunikation zwischen den Steuergate- und Floating-Gate-Schichten. Die Steuergate- und Floating-Gate-Schichten können aus Polysilizium bestehen und die Tunneloxidschicht kann beispielsweise aus Siliziumoxid bestehen. Die IPD-Schicht kann ein Stapel aus Nitriden (N) und Oxiden (O) sein, wie beispielsweise in einer N-O-N-O-N-Konfiguration.
  • Die NAND-Kette kann auf einem Substrat gebildet werden, das eine p-Typ-Substratregion 555, einen n-Typ-Well 556 und einen p-Typ-Well 557 umfasst. N-Typ Source-/Drain-Diffusionsregionen sd1, sd2, sd3, sd4, sd5, sd6 und sd7 werden in dem p-Typ-Well gebildet. Eine Kanalspannung, Vch, kann direkt an die Kanalregion des Substrats angelegt werden.
  • 6A veranschaulicht ein beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1. In einem Ansatz umfasst ein Erfassungsblock mehrere Erfassungsschaltungen. Jeder Erfassungsschaltung sind Datenspeicher zugeordnet. Die Erfassungsschaltungen 650a, 651a, 652a und 553a sind zum Beispiel mit den Haltespeichern 650b, 551b, 652b bzw. 653b verbunden. Bei einem Ansatz können unterschiedliche Untergruppen von Bitleitungen unter Verwendung unterschiedlicher jeweiliger Abtastblöcke abgetastet werden. Dies ermöglicht, dass die Prozessorlast, die zu den Abtastschaltungen gehört, durch einen jeweiligen Prozessor in jedem Abtastblock aufgeteilt und gehandhabt wird. Die Steuerung der Erfassungsschaltung 660 in SB1 kann zum Beispiel mit dem Satz der Erfassungsschaltungen und Haltespeicher kommunizieren. Die Steuerung der Erfassungsschaltung kann eine Vorladeschaltung 661 einschließen, die jeder Erfassungsschaltung eine Spannung zur Einstellung einer Vorladespannung bereitstellt. In einem möglichen Ansatz wird die Spannung für jede Erfassungsschaltung unabhängig bereitgestellt, z. B. über den Datenbus 603 und einen lokalen Bus wie LBUS1 oder LBUS2 in 6B. In einem anderen möglichen Ansatz wird für jede Erfassungsschaltung gleichzeitig eine gemeinsame Spannung bereitgestellt, z. B. über die Kontaktleitung 605 in 6B. Die Steuerung der Erfassungsschaltung kann auch einen Speicher 662 und einen Prozessor 663 einschließen. Der Speicher 662 kann Code speichern, der vom Prozessor ausgeführt werden kann, um die hierin beschriebenen Funktionen auszuführen. Diese Funktionen können das Lesen von Haltespeichern einschließen, die mit den Erfassungsschaltungen verbunden sind, das Setzen von Bitwerten in den Haltespeichern und das Bereitstellen von Spannungen zum Einstellen von Vorladepegeln in den Erfassungsknoten der Erfassungsschaltungen. Weitere Beispieldetails zur Steuerung der Erfassungsschaltung und zu den Erfassungsschaltungen 650a und 651a werden im Folgenden bereitgestellt.
  • Die Steuerung der Erfassungsschaltung kann beispielsweise mit verschiedenen Erfassungsschaltungen im Zeitmultiplexverfahren kommunizieren. In einem Ansatz kann in jeder Erfassungsschaltung eine Kontaktleitung 605 an die Spannungsklemme angeschlossen werden.
  • Die Erfassungsschaltung 651a schließt Haltespeicher 651b ein, die einen Auslöse-Haltespeicher 646, einen Offset-Verifizierungs-Haltespeicher 647 und Datenstatus-Haltespeicher 648 einschließt. Eine Spannungsklemme 641 kann verwendet werden, um eine Vorladespannung an einem Erfassungsknoten 642 einzustellen. Ein Erfassungsknoten-zu-Bitleitung (BL)-Schalter 643 ermöglicht dem Erfassungsknoten selektiv die Kommunikation mit einer Bitleitung 645, und eine Spannungsklemme 644 kann eine Spannung auf der Bitleitung einstellen. Die Bitleitung 645 ist mit einer oder mehreren Speicherzellen verbunden, wie beispielsweise einer Speicherzelle MC2. Die Steuerung der Erfassungsschaltung kann über einen lokalen Bus, LBUS2, mit den Komponenten der Erfassungsschaltung kommunizieren, wie beispielsweise mit den Haltespeichern 651 b und gegebenenfalls mit der Spannungsklemme. Zur Kommunikation mit der Erfassungsschaltung 651a stellt die Steuerung der Erfassungsschaltung eine Spannung über eine Kontaktleitung 601 an einen Transistor 606 bereit, um LBUS2 mit DBUS zu verbinden.
  • Die Erfassungsschaltung 650a kann eine erste Erfassungsschaltung sein, die einen ersten Haltespeicher 626 umfasst, und die Erfassungsschaltung 651a kann eine zweite Erfassungsschaltung sein, die einen zweiten Haltespeicher 646 umfasst.
  • Die Erfassungsschaltung 650a ist ein Beispiel für eine erste Erfassungsschaltung, die einen ersten Erfassungsknoten 622 umfasst, wobei die erste Erfassungsschaltung mit einer ersten Speicherzelle MC1 und einer ersten Bitleitung 625 verbunden ist. Die Erfassungsschaltung 651a ist ein Beispiel für eine zweite Erfassungsschaltung, die einen zweiten Erfassungsknoten 642 umfasst, wobei die zweite Erfassungsschaltung mit einer zweiten Speicherzelle MC2 und einer zweiten Bitleitung 645 verbunden ist.
  • 6B veranschaulicht ein anderes beispielhaftes Blockdiagramm des Erfassungsblocks SB1 von 1. Die Steuerung der Erfassungsschaltung 660 kommuniziert mit mehreren Erfassungsschaltungen einschließlich der beispielhaften Erfassungsschaltungen 650a und 651a, die ebenfalls in 6A dargestellt sind. Die Erfassungsschaltung 650a schließt Haltespeicher 650b ein, die einen Auslöse-Haltespeicher 626, einen Offset-Verifizierungs-Haltespeicher 627 und Datenstatus-Haltespeicher 628 einschließt. Die Erfassungsschaltung schließt ferner eine Spannungsklemme 621 ein, wie beispielsweise einen Transistor, der eine Vorladespannung an einem Erfassungsknoten 622 einstellt. Ein Erfassungsknoten-zu-Bitleitung (BL)-Schalter 623 ermöglicht dem Erfassungsknoten selektiv die Kommunikation mit einer Bitleitung 625, z. B. ist der Erfassungsknoten elektrisch mit der Bitleitung verbunden, so dass die Erfassungsknotenspannung abfallen kann. Die Bitleitung 625 ist mit einer oder mehreren Speicherzellen verbunden, wie beispielsweise einer Speicherzelle MC1. Eine Spannungsklemme 624 kann eine Spannung auf der Bitleitung einstellen, wie beispielsweise während eines Erfassungsvorgangs oder während einer Programmspannung. Die Steuerung der Erfassungsschaltung kann über einen lokalen Bus, LBUS1, mit den Komponenten der Erfassungsschaltung kommunizieren, wie beispielsweise mit den Haltespeichern 650b und gegebenenfalls mit der Spannungsklemme. Die Steuerung der Erfassungsschaltung 650a stellt zur Kommunikation mit der Erfassungsschaltung eine Spannung über eine Kontaktleitung 602 an einen Transistor 604 bereit, um LBUS1 mit einem Datenbus DBUS 603 zu verbinden. Die Kommunikation kann das Senden von Daten an die Erfassungsschaltung und/oder den Empfang von Daten von der Erfassungsschaltung einschließen.
  • 7A ist eine perspektivische Ansicht eines Satzes von Blöcken 700 in einer beispielhaften dreidimensionalen Konfiguration des Speicherarrays 126 von 1. Auf dem Substrat befinden sich beispielhafte Blöcke BLK0, BLK1, BLK2 und BLK3 von Speicherzellen (Speicherelementen) und ein Peripheriebereich 704 mit Schaltungen zur Verwendung durch die Blöcke. Zum Beispiel kann die Schaltlogik Spannungstreiber 705 einschließen, die an Steuergateschichten der Blöcke angeschlossen werden können. Bei einem Ansatz werden Steuergateschichten auf einer gemeinsamen Höhe in den Blöcken gemeinsam angesteuert. Das Substrat 701 kann auch Schaltlogik unter den Blöcken zusammen mit einer oder mehreren unteren Metallschichten tragen, die in Leiterbahnen strukturiert sind, um Signale der Schaltlogik zu übertragen. Die Blöcke sind in einer Zwischenregion 702 der Speichervorrichtung ausgebildet. In einem oberen Bereich 703 der Speichervorrichtung sind eine oder mehrere obere Metallschichten in Leiterbahnen strukturiert, um Signale der Schaltung zu tragen. Jeder Block weist einen gestapelten Bereich von Speicherzellen auf, wobei alternierende Ebenen des Stapels Wortleitungen darstellen. In einem möglichen Ansatz hat jeder Block gegenüberliegende abgestufte Seiten, von denen sich vertikale Kontakte nach oben zu einer oberen Metallschicht erstrecken, um Verbindungen zu Leiterbahnen herzustellen. Während vier Blöcke als Beispiel veranschaulicht sind, können zwei oder mehr Blöcke verwendet werden, die sich in x- und/oder y-Richtung erstrecken.
  • Bei einem möglichen Ansatz stellt die Länge der Ebene in x-Richtung eine Richtung dar, in der sich Signalpfade zu Wortleitungen in der einen oder den mehreren oberen Metallschichten erstrecken (eine Wortleitungs- oder SGD-Leitungsrichtung), und die Breite der Ebene in y-Richtung stellt eine Richtung dar, in der sich Signalpfade zu Bitleitungen in der einen oder den mehreren oberen Metallschichten (eine Bitleitungsrichtung) erstrecken. Die z-Richtung stellt eine Höhe der Speichervorrichtung dar.
  • 7B veranschaulicht eine beispielhafte Querschnittsansicht eines Abschnitts eines der Blöcke von 7A. Der Block umfasst einen Stapel 710 aus abwechselnd leitenden und dielektrischen Schichten. In diesem Beispiel umfassen die leitfähigen Schichten zwei SGD-Schichten, zwei SGS-Schichten und vier Dummy-Wortleitungsschichten DWLD0, DWLD1, DWLS0 und DWLS1, zusätzlich zu den Datenwortleitungsschichten (Wortleitungen) WLL0-WLL10. Die dielektrischen Schichten werden als DL0 bis DL19 bezeichnet. Ferner sind Regionen des Stapels veranschaulicht, die die NAND-Ketten NS1 und NS2 umfassen. Jede NAND-Kette umfasst ein Speicherloch 718 oder 719, das mit Materialien gefüllt ist, die neben den Wortzeilen Speicherzellen bilden. Eine Region 722 des Stapels ist in 7D ausführlicher dargestellt.
  • Der Stapel schließt ein Substrat 711, eine Isolierschicht 712 auf dem Substrat und einen Abschnitt einer Sourceleitung SL ein. NS1 hat ein Source-Ende 713 an einer Unterseite 714 des Stapels und ein Drain-Ende 715 an einer Oberseite 716 des Stapels. Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 717 und 720 können periodisch über den Stapel als Verbindungen bereitgestellt werden, die sich durch den Stapel erstrecken, wie beispielsweise zur Verbindung der Sourceleitung mit einer bestimmten Kontaktleitung oberhalb des Stapels. Die Kontaktleitungsverbinder können bei der Bildung der Wortleitungen verwendet und anschließend mit Metall gefüllt werden. Ein Abschnitt einer Bitleitung BL0 ist ebenfalls veranschaulicht. Ein leitendes Via 721 verbindet die Drain-Seite 715 mit BL0.
  • 7C veranschaulicht eine Darstellung des Speicherlochdurchmessers im Stapel von 7B. Die vertikale Achse ist auf den Stapel von 7B ausgerichtet und veranschaulicht eine Breite (wMH), z. B. den Durchmesser, der Speicherlöcher 718 und 719. Die Wortleitungsschichten WLL0-WLL10 von 7A werden als Beispiel wiederholt und befinden sich auf den jeweiligen Höhen z0-z10 im Stapel. In einer solchen Speichervorrichtung weisen die Speicherlöcher, die durch den Stapel geätzt werden, ein sehr hohes Seitenverhältnis auf. Zum Beispiel ist ein Verhältnis der Tiefe zum Durchmesser von etwa 25 bis 30 üblich. Die Speicherlöcher können einen kreisförmigen Querschnitt aufweisen. Aufgrund des Ätzprozesses kann die Speicherlochbreite über die Länge des Lochs variieren. Üblicherweise wird der Durchmesser von oben nach unten in dem Speicherloch immer kleiner. Das heißt, die Speicherlöcher verjüngen sich, wobei sie sich am Boden des Stapels verengen. In einigen Fällen kommt es zu einer leichten Verengung am oberen Ende des Lochs in der Nähe des Auswahlgates, so dass der Durchmesser etwas breiter wird, bevor er vom oberen Ende zum unteren Ende des Speicherlochs hin immer kleiner wird.
  • Aufgrund der ungleichmäßigen Breite des Speicherlochs kann die Programmiergeschwindigkeit, einschließlich der Programmflanke und der Löschgeschwindigkeit der Speicherzellen in Abhängigkeit von ihrer Position entlang des Speicherlochs variieren, z. B. in Abhängigkeit von ihrer Höhe im Stapel. Bei einem kleineren Durchmesser des Speicherlochs ist das elektrische Feld über dem Tunneloxid relativ stärker, so dass die Programmier- und Löschgeschwindigkeit relativ höher ist. Ein Ansatz besteht darin, Gruppen von benachbarten Wortleitungen zu definieren, für die der Speicherlochdurchmesser ähnlich ist, z. B. innerhalb eines definierten Durchmesserbereichs, und ein optimiertes Verifizierungsschema für jede Wortleitung in einer Gruppe anzuwenden. Verschiedene Gruppen können unterschiedlich optimierte Verifizierungsschemata aufweisen.
  • 7D veranschaulicht eine Nahaufnahme der Region 722 des Stapels von 7B. Speicherzellen sind an den verschiedenen Ebenen des Stapels an dem Schnittpunkt einer Wortleitungsschicht und eines Speicherlochs ausgebildet. In diesem Beispiel sind die SGD-Transistoren 780 und 781 über den Dummy-Speicherzellen 782 und 783 und einer Datenspeicherzelle MC bereitgestellt. Eine Reihe von Schichten kann entlang der Seitenwand (SW) des Speicherlochs 730 und/oder innerhalb jeder Wortleitungsschicht abgeschieden werden, z. B. unter Verwendung von Atomschichtabscheidung. Zum Beispiel kann jede Säule (z. B. die Säule, die von den Materialien innerhalb eines Speicherlochs gebildet wird) eine ladungseinfangende Schicht oder einen Film 763 wie SiN oder ein anderes Nitrid, eine Tunnelschicht 664, einen Polysiliziumkörper oder Kanal 765 und einen dielektrischen Kern 766 einschließen. Eine Wortleitungsschicht kann ein sperrendes Oxid-/Block-High-k-Material 760, eine Metallbarriere 761 und ein leitendes Metall 762 wie Wolfram als Steuergate einschließen. Es werden zum Beispiel die Steuergates 790, 791, 792, 793 und 794 bereitgestellt. In diesem Beispiel werden alle Schichten mit Ausnahme des Metalls in dem Speicherloch bereitgestellt. In anderen Ansätzen können einige der Schichten in der Steuer-Gate-Schicht sein. Zusätzliche Säulen sind gleichermaßen in den verschiedenen Speicherlöchern ausgebildet. Eine Säule kann eine säulenförmige aktive Fläche (AA) einer NAND-Kette bilden.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Teil der Ladungseinfangschicht gespeichert, welche der Speicherzelle zugeordnet ist. Diese Elektronen werden in die Ladungseinfangschicht aus dem Kanal und durch die Tunnelschicht gezogen. Die Vth einer Speicherzelle wird proportional zu der Menge der gespeicherten Ladung erhöht. Während eines Löschvorgangs kehren die Elektronen in den Kanal zurück.
  • Jedes der Speicherlöcher kann mit einer Vielzahl von ringförmigen Schichten gefüllt sein, die eine Blockieroxidschicht, eine Ladungseinfangschicht, eine Tunnelschicht und eine Kanalschicht aufweisen. Eine Kernregion jedes der Speicherlöcher ist mit einem Körpermaterial gefüllt, und die Vielzahl von ringförmigen Schichten befindet sich zwischen der Kernregion und der Wortleitung in jedem der Speicherlöcher.
  • Die NAND-Kette kann als einen Floating-Body-Kanal aufweisend betrachtet werden, da die Länge des Kanals nicht auf einem Substrat ausgebildet ist. Weiterhin wird die NAND-Kette durch eine Vielzahl von Wortleitungsschichten bereitgestellt, die übereinander in einem Stapel angeordnet und durch dielektrische Schichten voneinander getrennt sind.
  • 8A veranschaulicht eine Draufsicht auf eine beispielhafte Wortleitungsschicht WLL0 des Stapels von 7B. Wie vorstehend erwähnt, kann eine 3D Speichervorrichtung einen Stapel aus abwechselnd leitenden und dielektrischen Schichten umfassen. Die leitenden Schichten stellen die Steuer-Gates der SG-Transistoren und Speicherzellen bereit. Die für die SG-Transistoren verwendeten Schichten sind SG-Schichten, und die für die Speicherzellen verwendeten Schichten sind Wortleitungsschichten. Ferner sind im Stapel Speicherlöcher gebildet und mit einem Ladungseinfangmaterial und einem Kanalmaterial gefüllt. Dadurch wird eine vertikale NAND-Kette gebildet. Sourceleitungen sind mit den NAND-Ketten unter dem Stapel verbunden, und Bitleitungen sind mit den NAND-Ketten über dem Stapel verbunden.
  • Ein Block BLK in einer 3D-Speichervorrichtung kann in Unterblöcke unterteilt werden, wobei jeder Unterblock eine NAND-Kette umfasst, die eine gemeinsame SGD-Steuerleitung aufweist. Siehe zum Beispiel die SGD-Leitungen/Steuergates SGD0, SGD1, SGD2 und SGD3 in den Unterblöcken SBa, SBb, SBc bzw. SBd. Ferner kann eine Wortleitungsschicht in einem Block in Regionen unterteilt sein. Jede Region befindet sich in einem jeweiligen Unterblock und kann sich zwischen Kontaktleitungsverbindern (z. B. Schlitzen) erstrecken, die periodisch im Stapel gebildet werden, um die Wortleitungsschichten während des Herstellungsprozesses der Speichervorrichtung zu verarbeiten. Diese Bearbeitung kann das Ersetzen eines Opfermaterials der Wortleitungsschichten durch Metall einschließen. Im Allgemeinen sollte der Abstand zwischen den Kontaktleitungsverbindern relativ klein sein, um eine Begrenzung der Entfernung zu berücksichtigen, die ein Ätzmittel seitlich zurücklegen kann, um das Opfermaterial zu entfernen, und die das Metall zurücklegen kann, um einen Hohlraum zu füllen, der durch die Entfernung des Opfermaterials entstanden ist. Der Abstand zwischen den Kontaktleitungsverbindern kann zum Beispiel einige Zeilen von Speicherlöchern zwischen benachbarten Kontaktleitungsverbindern zulassen. Das Layout der Speicherlöcher und Kontaktleitungsverbinder sollte auch eine Begrenzung der Anzahl der Bitleitungen berücksichtigen, die sich über die Region erstrecken können, während jede Bitleitung mit einer anderen Speicherzelle verbunden ist. Nach der Bearbeitung der Wortleitungsschichten können die Kontaktleitungsverbinder optional mit Metall gefeilt werden, um eine Verbindung durch den Stapel bereitzustellen.
  • In diesem Beispiel befinden sich vier Zeilen von Speicherlöchern zwischen benachbarten Kontaktleitungsverbindern. Eine Zeile ist hier eine Gruppe von Speicherlöchern, die in x-Richtung ausgerichtet sind. Außerdem befinden sich die Zeilen von Speicherlöchern in einem gestaffelten Muster, um die Dichte der Speicherlöcher zu erhöhen. Die Wortleitungsschicht oder Wortleitung ist in Regionen WLL0 a, WLL0 b, WLL0 c und WLL0d unterteilt, die jeweils durch eine Kontaktleitung 813 verbunden sind. Bei einem Ansatz kann die letzte Region einer Wortleitungsschicht in einem Block mit einer ersten Region einer Wortleitungsschicht in einem nächsten Block verbunden sein. Die Kontaktleitung 813 wiederum ist mit einem Spannungstreiber für die Wortleitungsschicht verbunden. Die Region WLL0a weist entlang einer Kontaktleitung 812 beispielhafte Speicherlöcher 810 und 811 auf. Die Region WLL0b hat beispielhafte Speicherlöcher 814 und 815. Die Region WLL0 c weist beispielhafte Speicherlöcher 816 und 817 auf. Die Region WLL0 d weist beispielhafte Speicherlöcher 818 und 819 auf. Die Speicherlöcher sind auch in 8B dargestellt. Jedes Speicherloch kann Teil einer entsprechenden NAND-Kette sein. Zum Beispiel können die Speicherlöcher 810, 814, 816 und 818 Teil der NAND-Ketten NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe sein.
  • Jeder Kreis stellt den Querschnitt eines Speicherlochs an einer Wortleitungsschicht oder SG-Schicht dar. Jeder Kreis, der mit gestrichelten Linien gezeigt ist, stellt Speicherzellen dar, die durch die Materialien in dem Speicherloch und durch die benachbarte Wortleitungsschicht bereitgestellt werden. Zum Beispiel sind die Speicherzellen 820 und 821 in WLL0a, die Speicherzellen 824 und 825 in WLL0b, die Speicherzellen 826 und 827 in WLL0c und die Speicherzellen 828 und 829 in WLL0d. Diese Speicherzellen befinden sich auf einer gemeinsamen Höhe in dem Stapel.
  • Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 801, 802, 803 und 804 können sich zwischen und neben den Kanten der Regionen WLL0 a-WLL0 d befinden. Die Kontaktleitungsverbinder stellen einen leitenden Pfad von der Unterseite des Stapels zur Oberseite des Stapels bereit. Beispielsweise kann eine Sourceleitung an der Unterseite des Stapels mit einer leitfähigen Leitung über dem Stapel verbunden sein, wobei die leitfähige Leitung mit einem Spannungstreiber in einer peripheren Region der Speichervorrichtung verbunden ist. Siehe auch 9A für weitere Details zu den Unterblöcken SBa-SBd von 8A.
  • 8B veranschaulicht eine Draufsicht auf eine beispielhafte obere dielektrische Schicht DL19 des Stapels von 7B. Die dielektrische Schicht ist in die Regionen DL19 a, DL19 b, DL19 c und DL19d unterteilt. Jede Region kann mit einem jeweiligen Spannungstreiber verbunden sein. Dies ermöglicht, dass ein Satz von Speicherzellen in einer Region einer Wortleitungsschicht gleichzeitig programmiert wird, wobei jede Speicherzelle in einer jeweiligen NAND-Kette ist, die mit einer jeweiligen Bitleitung verbunden ist. Eine Spannung kann auf jeder Bitleitung eingestellt werden, um die Programmierung während jeder Programmierspannung zu ermöglichen oder zu unterbinden.
  • Die Region DL19a weist die beispielhaften Speicherlöcher 810 und 811 entlang einer Kontaktleitung 812a auf, die mit einer Bitleitung BL0 zusammenfällt. Eine Anzahl von Bitleitungen erstreckt sich über die Speicherlöcher und ist mit den Speicherlöchern verbunden, wie durch die „X“-Symbole angedeutet. BL0 ist mit einem Satz von Speicherlöchern verbunden, der die Speicherlöcher 811, 815, 817 und 819 einschließt. Eine andere beispielhafte Bitleitung BL1 ist mit einem Satz von Speicherlöchern verbunden, der die Speicherlöcher 810, 814, 816 und 818 einschließt. Die Kontaktleitungsverbinder (z. B. Schlitze, wie metallgefüllte Schlitze) 801, 802, 803 und 804 aus 8A sind ebenfalls veranschaulicht, da sie sich vertikal durch den Stapel erstrecken. Die Bitleitungen können in einer Reihenfolge BL0-BL23 über die DL19-Schicht in -x-Richtung nummeriert werden.
  • Unterschiedliche Untersätze von Bitleitungen sind mit Speicherzellen in verschiedenen Zeilen verbunden. Zum Beispiel sind BL0, BL4, BL8, BL12, BL16 und BL20 mit Speicherzellen in einer ersten Zeile von Zellen am rechten Rand jeder Region verbunden. BL2, BL6, BL10, BL14, BL18 und BL22 sind mit Speicherzellen in einer benachbarten Zeile von Zellen verbunden, die an die erste Zeile am rechten Rand angrenzt. BL3, BL7, BL11, BL15, BL19 und BL23 sind mit Speicherzellen in einer ersten Zeile von Zellen am linken Rand jeder Region verbunden. BL1, BL5, BL9, BL13, BL17 und BL21 sind mit Speicherzellen in einer benachbarten Zeile von Speicherzellen verbunden, die an die erste Zeile am linken Rand angrenzt.
  • 9A veranschaulicht beispielhafte NAND-Ketten in den Unterblöcken SBa-SBe von 8A. Die Unterblöcke entsprechen der Struktur von 7B. Die leitenden Schichten im Stapel sind zur Veranschaulichung auf der linken Seite dargestellt. Jeder Unterblock schließt mehrere NAND-Ketten ein, wobei eine beispielhafte NAND-Kette veranschaulicht wird. Zum Beispiel umfasst SBa eine beispielhafte NAND-Kette NS0, SBb umfasst eine beispielhafte NAND-Kette NS1, SBc umfasst eine beispielhafte NAND-Kette NS2, SBd umfasst eine beispielhafte NAND-Kette NS3, und SBe umfasst eine beispielhafte NAND-Kette NS4.
  • Zusätzlich schließen NS0_SBa SGS-Transistoren 900 und 901, Dummy-Speicherzellen 902 und 903, Datenspeicherzellen 904, 905, 906, 907, 908, 909, 910, 911, 912, 913 und 914, Dummy-Speicherzellen 915 und 916 sowie SGD-Transistoren 917 und 918 ein.
  • NS1_SBb schließen SGS-Transistoren 920 und 921, Dummy-Speicherzellen 922 und 923, Datenspeicherzellen 924, 925, 926, 927, 928, 929, 930, 931, 932, 933 und 934, Dummy-Speicherzellen 935 und 936 sowie SGD-Transistoren 937 und 938 ein.
  • NS2_SBc schließen SGS-Transistoren 940 und 941, Dummy-Speicherzellen 942 und 843, Datenspeicherzellen 944, 945, 946, 947, 948, 949, 950, 951, 952, 953 und 954, Dummy-Speicherzellen 955 und 956 sowie SGD-Transistoren 957 und 958 ein.
  • NS3_SBd schließen SGS-Transistoren 960 und 961, Dummy-Speicherzellen 962 und 963, Datenspeicherzellen 964, 965, 966, 967, 968, 969, 970, 971, 972, 973 und 974, Dummy-Speicherzellen 975 und 976 sowie SGD-Transistoren 977 und 978 ein.
  • NS4_SBe schließen SGS-Transistoren 980 und 981, Dummy-Speicherzellen 982 und 983, Datenspeicherzellen 984, 985, 986, 987, 988, 989, 980, 981, 982, 983 und 984, Dummy-Speicherzellen 985 und 986 sowie SGD-Transistoren 987 und 988 ein.
  • Bei einer bestimmten Höhe im Block befinden sich die Speicherzellen in jedem Unterblock auf einer gemeinsamen Höhe. Zum Beispiel gehört ein Satz von Speicherzellen (einschließlich der Speicherzelle 904) zu einer Vielzahl von Speicherzellen, die entlang verjüngter Speicherlöcher in einem Stapel aus abwechselnd leitenden und dielektrischen Schichten gebildet werden. Der eine Satz von Speicherzellen befindet sich auf einer bestimmten Höhe z0 in dem Stapel. Ein anderer Satz von Speicherzellen (einschließlich der Speicherzelle 924), die mit der einen Wortleitung (WLL0) verbunden sind, befinden sich ebenfalls auf der bestimmten Höhe. In einem anderen Ansatz befindet sich ein anderer Satz von Speicherzellen (z. B. einschließlich der Speicherzelle 912), die mit einer anderen Wortleitung (z. B. WLL8) verbunden sind, auf einer anderen Höhe (z8) im Stapel.
  • 9B veranschaulicht eine andere beispielhafte Ansicht von NAND-Ketten in Unterblöcken. Die NAND-Ketten schließen NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe ein, die 48 Wortzeilen aufweisen (z. B. WL0-WL47). Jeder Unterblock umfasst NAND-Ketten-Gruppen, die sich in x-Richtung erstrecken und die eine gemeinsame SGD-Leitung aufweisen, z. B. SGD0, SGD1, SGD2, SGD3, oder SGD4. In diesem vereinfachten Beispiel gibt es nur einen SGD-Transistor und einen SGS-Transistor in jeder NAND-Kette. Die NAND-Ketten NS0_SBa, NS1_SBb, NS2_SBc, NS3_SBd und NS4_SBe befinden sich jeweils in den Unterblöcken SBa, SBb, SBc, SBd und SBe. Ferner sind beispielhaft Gruppen von Wortleitungen G0, G1 und G2 veranschaulicht.
  • 10 veranschaulicht eine Wellenform eines beispielhaften Programmiervorgangs. Die horizontale Achse veranschaulicht die Programmschleifennummern und die vertikale Achse veranschaulicht die Programmspannungswerte und die Programmverifizierungswerte. Eine Programmspannung (Vpgm) kann eine Wortleitungsspannung (WLVpgm) und/oder eine Bitleitungsspannung (BLVpgm) einschließen. Im Allgemeinen kann ein Programmiervorgang das Anlegen einer Impulsfolge an eine ausgewählte Wortleitung beinhalten, wobei die Impulsfolge mehrere Programmverifizierungsiterationen (PV) einschließt. Der Programmabschnitt einer PV-Iteration umfasst die Programmspannung und der Verifizierungsabschnitt der PV-Iteration umfasst eine oder mehrere Verifizierungsspannungen.
  • Für jede Programmspannung ist der Einfachheit halber eine Rechteckwellenform veranschaulicht, obwohl auch andere Formen möglich sind, wie beispielsweise eine mehrstufige Form oder eine Rampenform. Ferner wird in diesem Beispiel die inkrementelle Schrittimpulsprogrammierung (ISPP) verwendet, bei der die Programmspannung in jeder aufeinanderfolgenden Programmschleife ansteigt. In diesem Beispiel wird ISPP in einem einzigen Programmierschritt verwendet, in dem die Programmierung abgeschlossen wird. ISPP kann auch in jedem Programmierschritt eines mehrstufigen Vorgangs verwendet werden.
  • Eine Impulsfolge schließt üblicherweise Programmspannungen ein, deren Amplitude bei jeder Programmverifizierungsiteration unter Verwendung einer Spannungsvorspannung (dVpgm) schrittweise ansteigt. Die Vorspannung kann zum Beispiel eine Wortleitungsvorspannung sein. In jedem Programmierschritt eines mehrstufigen Programmverifizierungsvorgangs kann eine neue Impulsfolge angelegt werden, die bei einer anfänglichen Programmspannung (z. B. einer anfänglichen Vpgm) beginnt und bei einer endgültigen Programmspannung (z. B. einer endgültigen Vpgm) endet, die eine Schwellenspannung Vth (z. B. einen maximal zulässigen Wert) nicht überschreitet. Die Anfangsprogrammspannungen können in verschiedenen Programmierschritten gleich oder unterschiedlich sein. Die endgültigen Programmspannungen können auch in verschiedenen Programmierschritten gleich oder unterschiedlich sein. Die Vorspannungen können in den verschiedenen Programmierschritten gleich oder unterschiedlich sein. In einigen Fällen wird in einem endgültigen Programmierschritt eine kleinere Vorspannung verwendet, um die Breite der Vth-Verteilung zu verringern.
  • Die Impulsfolge 1000 schließt eine Reihe von Programmierspannungen 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014 und 1015 ein, die an eine für die Programmierung ausgewählte Wortleitung angelegt werden, sowie einen zugehörigen Satz von nichtflüchtigen Speicherzellen. Im gezeigten Beispiel werden nach jeder Programmspannung eine, zwei oder drei Verifizierungsspannungen bereitgestellt, zum Beispiel basierend auf einer Anzahl von Zieldatenzuständen, die verifiziert werden. Die Anzahl der zu verifizierenden Zieldatenzustände kann zum Beispiel einer Anzahl von Speicherzellen entsprechen, die der Wortleitung zugeordnet sind. Durch Anlegen von 0 V an die gewählte Wortleitung zwischen der Programmspannung und der Verifizierungsspannung kann eine Programmspannung und eine entsprechende Verifizierungsspannung getrennt werden.
  • Im gezeigten Beispiel kann eine A-Zustands-Verifizierungsspannung von VvA (z. B. Wellenform oder Programmiersignal 1016) nach jeder der ersten, zweiten und dritten Programmierspannungen 1001, 1002 bzw. 1003 angelegt werden. A- und B-Zustand verifizierende Spannungen von VvA und VvB (z. B. das Programmiersignal 1017) können nach jeder der vierten, fünften und sechsten Programmierspannungen 1004, 1005 bzw. 1006 angelegt werden. A-, B- und C-Zustand verifizierende Spannungen von VvA, VvB und VvC (z. B. das Programmiersignal 1018) können nach jeder der siebten und achten Programmierspannungen 1007 bzw. 1008 angelegt werden. B- und C-Zustand verifizierende Spannungen von VvB und VvC (z. B. das Programmiersignal 1019) können nach jeder der neunten, zehnten und elften Programmierspannungen 1009, 1010 bzw. 1011 angelegt werden. Schließlich kann nach jeder der zwölften, dreizehnten, vierzehnten und fünfzehnten Programmierspannungen 1012, 1013, 1014 und 1015 eine C-Zustands-Verifizierungsspannung von VvC (z. B. das Programmiersignal 1020) angelegt werden.
  • In einigen Ausführungsformen kann die Speichervorrichtung 100 (z. B. unter Verwendung der Zustandsmaschine 112 der Steuerschaltlogik 110, der Steuerung 122 und/oder der Steuerschaltung 150) verschiedene Programmspannungen und/oder verschiedene Programmvorspannungen verwenden, um den Programmiervorgang durchzuführen. In einigen Ausführungsformen können eine Programmspannung und eine Programmvorspannung, die zur Durchführung des Programmiervorgangs verwendet werden, eine Wortleitungsspannung bzw. eine Wortleitungsvorspannung einschließen. Zusätzlich oder alternativ können die Programmspannung und die Vorspannung der Programmspannung, die zur Durchführung des Programmiervorgangs verwendet werden, eine Bitleitungsspannung bzw. eine Bitleitungsvorspannung einschließen.
  • In einigen Ausführungsformen können eine Programmspannung und/oder eine Programmvorspannung, die an eine Leitung (z. B. eine Bitleitung, eine Wortleitung usw.) angelegt werden soll, die mit einer Speicherzelle verbunden ist, basierend auf einer Position der Speicherzelle innerhalb der Speicherarchitektur identifiziert werden. Die Position der Speicherzelle kann darauf hinweisen, dass die Speicherzelle in einer bestimmten NAND-Kettengruppe eingeschlossen ist, dass die Speicherzelle in einer bestimmten Ebene der Speicherarchitektur eingeschlossen ist und/oder dergleichen. Zusätzlich oder alternativ kann die Programmvorspannung basierend auf einer Dicke von Kontaktleitungsverbindern identifiziert werden, die eine bestimmte NAND-Kettengruppe (z. B. in der die Speicherzelle eingeschlossen ist) von anderen NAND-Kettengruppen segmentieren oder trennen.
  • 11 veranschaulicht schematisch eine beispielhafte Anwendung 1100 eines verbesserten Programmiervorgangs, der zum Programmieren von Speicherzellen verwendet wird. Die Speicherzellen können von einer Speichervorrichtung, wie z. B. der Speichervorrichtung 100, getragen werden. Die Speichervorrichtung kann einen Speicher, wie z. B. einen NAND-Speicher, eine Steuerung zum Kommunizieren mit einer Host-Vorrichtung und dem NAND-Speicher und einen Bus zum Senden von Kommunikationen an und/oder Empfangen von Kommunikationen zwischen der Host-Vorrichtung und dem NAND-Speicher einschließen. Die Steuerung kann einen Frequenzmodulator (FM), einen Kodierer (z. B. einen Kodierer zur Paritätsprüfung niedriger Dichte (LDPC)), einen Dekodierer (z. B. einen LDPC-Dekodierer) und/oder dergleichen einschließen. Der NAND-Speicher kann einen Cache (z. B. einen SLC-Cache), eine Steuerschaltlogik, Lese-/Schreibschaltungen (nicht dargestellt) und eine Hauptspeicherstruktur zur Unterstützung der Speicherzellen einschließen. Die Speicherzellen können QLCs, TLCs, SLCs und/oder dergleichen einschließen. Die Steuerschaltlogik des NAND-Speichers kann über einen Bus oder eine andere Kommunikationsschnittstelle mit einer Frequenzmodulator-Vorrichtung (FM-Vorrichtung) kommunizieren.
  • Eine oder mehrere Ausführungsformen beziehen sich zwar auf einen NAND-Speicher, dies ist jedoch nur beispielhaft bereitgestellt. In der Praxis können die eine oder mehrere Ausführungsformen auf einer beliebigen Anzahl verschiedener Arten von nichtflüchtigen Speichern implementiert sein. Obwohl eine oder mehrere Ausführungsformen als durch die Steuerung implementiert beschrieben werden, versteht es sich außerdem, dass dies beispielhaft bereitgestellt wird und dass in der Praxis die eine oder die mehreren Ausführungsformen durch die Steuerschaltlogik implementiert werden können. Obwohl eine oder mehrere Ausführungsformen als durch die Steuerschaltlogik implementiert beschrieben werden, versteht es sich ferner, dass dies beispielhaft bereitgestellt wird und dass in der Praxis die eine oder die mehreren Ausführungsformen durch die Steuerung implementiert werden können.
  • Wie durch Referenznummer 1102 dargestellt, kann die Steuerung Hostdaten von der Hostvorrichtung empfangen. Zum Beispiel kann die Steuerung (z. B. unter Verwendung des Kodierers, wie z. B. eines Kodierers zur Paritätsprüfung niedriger Dichte (LDPC)) Hostdaten von der Hostvorrichtung empfangen. Die Hostvorrichtung kann beispielsweise die Hostdaten der Steuerung bereitstellen, wenn eine Anwendung unter einem Dateisystem oder Betriebssystem ausgeführt wird.
  • In einigen Ausführungsformen können die Speicherzellen TLCs sein und eine vollständige Sequenzprogrammierung verwenden. In diesem Fall kann eine Wortzeile vollständig programmiert werden, bevor mit dem Programmieren einer anderen Wortzeile fortgefahren wird.
  • In einigen Ausführungsformen können die Hostdaten Seiten von Blockdaten einschließen, die beim Programmieren der Speicherzellen verwendet werden sollen. Eine Seite kann Blockdaten einschließen, die sich auf eine Gruppe von Speicherzellen (oft entlang einer Wort- oder Bitleitung) beziehen, die zusammen als eine Einheit programmiert werden sollen. Die Blockdaten der Seite können Benutzerdaten, Kopfdaten in Bezug auf Fehlerkorrekturcode (ECC) und/oder Flags und/oder dergleichen einschließen. Zum Beispiel können die Blockdaten eine Folge von Binärzahlen einschließen, die Daten in Einheiten von logischen Sektoren adressieren, wobei jeder Sektor z. B. 512 Byte Daten enthalten kann. Die Blockdaten können z. B. Speicherplätze bestimmter Blöcke identifizieren, in denen Speicherzellen angeordnet sind. Die adressierten Daten können als logische Adressen bezeichnet werden. In einigen Ausführungsformen können die Blockdaten Binärzahlen einschließen, die Daten in Einheiten von logischen Clustern adressieren, die jeweils aus einem oder mehreren logischen Sektoren bestehen.
  • In einigen Ausführungsformen können vier Seiten von Blockdaten verwendet werden, wie z. B. eine obere Seite, eine mittlere Seite, eine untere Seite und eine oberste Seite. Benennungskonventionen für diese vier Seiten können variieren, beziehen sich aber letztlich auf die gleichen vier logischen Seiten. Zum Beispiel kann in einigen Situationen die oberste Seite als vierte Seite oder als letzte Seite bezeichnet werden.
  • In einigen Ausführungsformen kann die Steuerung die Hostdaten unter Verwendung einer Datenstruktur speichern. Zum Beispiel kann die Steuerung die Hostdaten unter Verwendung einer Datenstruktur speichern, die von statischem Direktzugriffsspeicher (SRAM), dynamischem RAM (DRAM) und/oder einem anderen Speichertyp unterstützt wird.
  • In einigen Ausführungsformen kann die Steuerung die Hostdaten einkapseln. Zum Beispiel kann die Steuerung (z. B. unter Verwendung des Kodierers) die Hostdaten unter Verwendung von Fehlerkorrekturcode-Daten (ECC-Daten) einkapseln.
  • In einigen Ausführungsformen kann die Steuerung die Hostdaten oder die Hostdaten (z. B. gekapselte Hostdaten) verarbeiten, um einen ersten Teilsatz von Hostdaten zu identifizieren, die in die Speicherzellen programmiert werden sollen. Der erste Teilsatz kann eine oberste Seite von Blockdaten einschließen, die in die Speicherzellen programmiert werden sollen. In einigen Ausführungsformen kann die Steuerung die Hostdaten verarbeiten, um einen zweiten Teilsatz von Hostdaten zu identifizieren, die in die Speicherzellen programmiert werden sollen. Der zweite Satz von Hostdaten kann die ersten drei Seiten von Blockdaten einschließen, die in die Speicherzellen programmiert werden sollen. Wie hierin ferner beschrieben, können die ersten drei Seiten von Blockdaten während einer ersten Stufe des Programmiervorgangs programmiert werden und die oberste Seite von Blockdaten kann mit den ersten drei Seiten während einer zweiten Stufe des Programmiervorgangs programmiert werden.
  • Wie durch Referenznummer 1104 gezeigt, kann die Steuerung den ersten Teilsatz von Hostdaten der Steuerschaltlogik bereitstellen. Zum Beispiel kann die Steuerung über den Bus den ersten Teilsatz von Hostdaten dem Dekodierer der Steuerschaltlogik bereitstellen. Dadurch kann die oberste Seite von Blockdaten mit den anderen drei Seiten von Blockdaten während einer Endstufe des Programmiervorgangs kombiniert werden, wie hierin weiter beschrieben wird.
  • Wie durch die Referenznummer 1106 gezeigt, kann die Steuerung den zweiten Teilsatz von Hostdaten der Hauptspeicherstruktur bereitstellen. Zum Beispiel kann die Steuerung (z. B. unter Verwendung des Kodierers) eine TLC-Stufe des Programmiervorgangs durchführen, indem sie über den Bus den zweiten Satz von Hostdaten dem NAND-Speicher bereitstellt. Wie beschrieben, kann der zweite Satz von Hostdaten die drei Seiten von Blockdaten einschließen (z. B. die obere Seite, die mittlere Seite und die untere Seite).
  • In einigen Ausführungsformen kann beim Durchführen der ersten Stufe des Programmiervorgangs ein 3345-Kodierschema implementiert werden. Zum Beispiel kann ein 3345-Kodierschema oder ein strukturell ähnliches Kodierschema so implementiert werden, dass drei Seiten zum Programmieren von acht TLC-Datenzuständen verwendet werden. Dies ermöglicht größere Abstände zwischen den einzelnen Vth, wodurch die Vth-Spanne und die Programmzuverlässigkeit verbessert werden.
  • In einigen Ausführungsformen kann das Durchführen der TLC-Stufe das Programmieren von Speicherzellen basierend auf den drei Seiten von Blockdaten einschließen. Zum Beispiel können die drei Seiten von Blockdaten so programmiert werden, dass die Blockdaten der drei Seiten als acht TLC-Datenzustände geschrieben werden.
  • Wie durch Referenznummer 1108 gezeigt, können programmierte Datenzustände an die Steuerschaltlogik zurückgelesen werden. Zum Beispiel kann die Steuerschaltlogik einen Lesevorgang durchführen, um die programmierten Datenzustände aus den jeweiligen Speicherzellen zu lesen. In einigen Ausführungsformen kann das Paritätsbit innerhalb des NAND-Speichers erzeugt und unter Verwendung des Cache gespeichert werden. Dadurch kann das Paritätsbit der Steuerschaltlogik bereitgestellt und zum Dekodieren des zweiten Satzes von Hostdaten verwendet werden, wie hierin weiter beschrieben wird. Wie durch die Referenznummer 1110 gezeigt, kann ein Paritätsbit unter Verwendung eines Caches (z. B. eines SLC-Caches) gespeichert werden und das Paritätsbit kann der Steuerschaltlogik des NAND-Speichers bereitgestellt werden. In einigen Ausführungsformen kann die Steuerschaltlogik einen Lesevorgang durchführen, um das Paritätsbit aus dem Cache zu lesen.
  • Wie durch Referenznummer 1112 gezeigt, kann die Steuerschaltlogik den zweiten Satz von Hostdaten dekodieren und den dekodierten zweiten Satz von Hostdaten mit dem ersten Satz von Hostdaten kombinieren. Zum Beispiel kann die Steuerschaltlogik (z. B. unter Verwendung des Dekodierers) eine Fein-Stufe des Programmiervorgangs durchführen, indem das Paritätsbit verwendet wird, um die drei Seiten von Blockdaten (d. h. den zweiten Teilsatz der Hostdaten) zu dekodieren, sodass das Paritätsbit verwendet werden kann, um zwischen ungeraden und geraden Datenzuständen zu unterscheiden.
  • In einigen Ausführungsformen kann die Steuerschaltlogik als Teil der Fein-Stufe das Paritätsbit verwenden, um die acht Datenzustände in sechzehn Datenzustände zu programmieren, die eine engere Vth-Breite aufweisen. Wenn zum Beispiel Datenzustände, die während einer TLC-Stufe des Programmiervorgangs programmiert werden, Zustand 0, Zustand 1, Zustand 4, Zustand 5, Zustand 6, Zustand 10, Zustand 12 und Zustand 14 sind (z. B. acht der sechzehn QLC-Datenzustände), kann das Paritätsbit verwendet werden, um zwischen Zustand 0 und Zustand 1, Zustand 1 und Zustand 4, Zustand 4 und Zustand 5, Zustand 5 und Zustand 6 usw. zu unterscheiden. Zusätzliche Informationen zur Dekodierung von Blockdaten sind im Zusammenhang mit 10 bereitgestellt.
  • Durch Programmieren von acht Datenzuständen in der ersten Stufe reduziert die Speichervorrichtung NWI im Vergleich zu einem MLC-Feinprogrammiervorgang. Dies beruht auf einer kleineren Vth-Verschiebung zwischen der ersten und zweiten Stufe. Außerdem muss durch die Verwendung des Paritätsbits nur das Paritätsbit in dem Cache-Speicher gespeichert werden, wodurch Ressourcen (z. B. Speicherressourcen, Rechenressourcen und/oder Netzwerkressourcen) im Vergleich zu einer oder mehreren herkömmlichen Lösungen, die Seiten von Blockdaten im Cache speichern müssen, eingespart werden. Ferner müssen die vier Seiten von Blockdaten nur einmal dem NAND-Speicher bereitgestellt werden, wodurch die Datenübertragungslast auf eine oder mehrere Komponenten der Speichervorrichtung reduziert wird.
  • 12 veranschaulicht grafisch einen Satz von Schwellenspannungsverteilungen (Vths) für 3-Bit-Speicherzellen in verschiedenen Stadien eines Programmiervorgangs gemäß den Prinzipien der vorliegenden Offenbarung. Wie durch die obere Linie gezeigt, kann eine erste Stufe des Programmiervorgangs bewirken, dass Speicherzellen in acht Datenzustände programmiert werden (z. B. gezeigt als Datenzustand s0, Datenzustand s1, Datenzustand s4, Datenzustand s5, Datenzustand s6, Datenzustand s10, Datenzustand s12 und Datenzustand s14). Ein Paritätsbit kann erzeugt und in einem SLC-Cache einer oder mehrerer der Speicherzellen gespeichert werden. In dem gezeigten Beispiel können die Paritätsbits 0, 1, 0, 1, 0, 1, 0, 1 dem Datenzustand s0, Datenzustand s1, Datenzustand s4, Datenzustand s5, Datenzustand s6, Datenzustand s10, Datenzustand s12 und Datenzustand s14 entsprechen. Wie beschrieben wird, ermöglichen die Paritätsbits der Steuerschaltlogik, zwischen ungeraden und geraden Datenzuständen zu unterscheiden. In einigen Ausführungsformen können die acht Speicherzellen unter Verwendung eines Satzes von Leseebenen programmiert werden (dargestellt als Leseebene 1, Leseebene 2, ..., Leseebene 6). Zum Beispiel kann jede Leseebene einem Paritätsbitwert entsprechen, der einen von zwei möglichen auszuwählenden Datenzuständen identifizieren kann.
  • In einigen Ausführungsformen kann eine zweite Programmierstufe (dargestellt als Feinstufe) durchgeführt werden, wie durch die mittlere und die untere Linie dargestellt. Zum Beispiel kann zum Dekodieren der Datenzustände ein Wiederherstellungsvorgang durchgeführt werden, der ein Paritätsbit zwischen zwei Leseebenen identifiziert und einen Datenzustand bestimmt, der dem Paritätsbit entspricht, basierend darauf, zwischen welchen Leseebenen das Paritätsbit positioniert ist. Dies kann fortgesetzt werden, bis der Programmiervorgang abgeschlossen ist.
  • Auf diese Weise kann der Programmiervorgang verwendet werden, um die Speicherzellen effizient und effektiv zu programmieren.
  • 13 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Programmieren eines Satzes von Speicherzellen veranschaulicht. Schritt 1302 empfängt ein Paritätsbit, das unter Verwendung einer Datenstruktur gespeichert wurde. Zum Beispiel kann eine Steuerschaltlogik eines nichtflüchtigen Speichers (z. B. eines NAND-Speichers) ein Paritätsbit empfangen, das unter Verwendung einer Datenstruktur (z. B. eines SLC-Cache) gespeichert wurde. Schritt 1304 empfängt einen ersten Teilsatz von Hostdaten, der Blockdaten einschließt, die sich auf den Satz von Speicherzellen beziehen. Zum Beispiel kann die Steuerschaltlogik des NAND-Speichers den ersten Teilsatz von Hostdaten empfangen, der Blockdaten einschließt, die sich auf den Satz von Speicherzellen beziehen. In einigen Ausführungsformen können die Hostdaten für eine oberste Seite von Blockdaten sein, die sich auf den Satz von Speicherzellen beziehen.
  • Schritt 1306 führt einen Lesevorgang durch, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. Zum Beispiel kann die Steuerschaltlogik einen Lesevorgang durchführen (oder das Durchführen eines Lesevorgangs veranlassen), um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt. In einigen Ausführungsformen kann der zweite Teilsatz von Hostdaten für drei andere Seiten zusätzlicher Blockdaten bestimmt sein, die eine obere Seite, eine mittlere Seite und eine untere Seite einschließen können.
  • Schritt 1308 dekodiert den zweiten Teilsatz von Hostdaten unter Verwendung des Paritätsbits. Zum Beispiel kann die Steuerschaltlogik das Paritätsbit verwenden, um den zweiten Teilsatz der Hostdaten zu dekodieren. Dies kann es der Steuerschaltlogik ermöglichen, zwischen ungeraden und geraden Datenzuständen zu unterscheiden, sodass die Steuerschaltlogik die acht Datenzustände in sechzehn Datenzustände umprogrammieren kann, wie in Verbindung mit Schritt 1310 beschrieben.
  • In einigen Ausführungsformen kann die Steuerschaltlogik den ersten Teilsatz von Hostdaten und den zweiten Teilsatz von Hostdaten kombinieren. Da zum Beispiel die drei anderen Seiten dekodiert wurden, kann die Steuerschaltlogik die drei anderen Seiten mit der obersten Seite kombinieren, sodass alle vier Seiten in den NAND-Speicher geschrieben werden können.
  • Schritt 1310 führt einen Schreibvorgang durch, um die Blockdaten und die zusätzlichen Blockdaten in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind. In einigen Ausführungsformen kann die Steuerschaltlogik einen Schreibvorgang durchführen, um die Blockdaten und die zusätzlichen Blockdaten in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind. Zum Beispiel kann die Steuerschaltlogik einen Schreibvorgang durchführen, um die kombinierten vier Seiten von Blockdaten in mindestens eine oder mehrere Speicherzellen des Satzes von Speicherzellen zu schreiben.
  • Die vorhergehende detaillierte Beschreibung der Erfindung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind im Lichte der obigen Lehren möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, wie sie für die jeweilige beabsichtigte Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.
  • Eine zugehörige Schaltung ist üblicherweise für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen erforderlich. Als nicht einschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, die zum Steuern und Ansteuern von Speicherelementen verwendet werden, um Funktionen, wie Programmieren und Lesen, auszuführen. Diese zugehörige Schaltung kann sich auf demselben Substrat wie die Speicherelemente und/oder auf einem separaten Substrat befinden. Zum Beispiel kann eine Steuerung für Schreib-/Lesevorgänge des Speichers auf einem separaten Steuerungschip und/oder auf demselben Substrat wie die Speicherelemente angeordnet sein.
  • Ein Fachmann wird erkennen, dass diese Technologie nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt ist, sondern alle relevanten Speicherstrukturen in dem Geist und Umfang der Technologie abdeckt, wie hier beschrieben und wie es von einem Fachmann verstanden wird.
  • Die vorhergehende detaillierte Beschreibung der Erfindung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind im Lichte der obigen Lehren möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, wie sie für die jeweilige beabsichtigte Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.
  • Verschiedene Begriffe werden verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Verschiedene Firmen können auf eine Komponente mit unterschiedlichen Namen Bezug nehmen. Dieses Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die sich im Namen, jedoch nicht in der Funktion unterscheiden. In der folgenden Erörterung und in den Ansprüchen werden die Begriffe „einschließlich“ und „umfassend“ in einer offenen Art und Weise verwendet und sollten daher so ausgelegt werden, dass sie „einschließlich, aber nicht beschränkt auf...“ bedeuten. Auch der Begriff „koppeln“ oder „koppelt“ soll entweder eine indirekte oder direkte Verbindung bedeuten. Wenn also eine erste Vorrichtung an eine zweite Vorrichtung koppelt, kann diese Verbindung durch eine direkte Verbindung oder durch eine indirekte Verbindung über andere Vorrichtungen und Verbindungen erfolgen.
  • Wenn eine Schicht oder ein Element als „auf“ einer anderen Schicht oder einem anderen Substrat liegend bezeichnet wird, kann es sich außerdem direkt auf der anderen Schicht oder dem anderen Substrat befinden, oder es können auch Zwischenschichten vorhanden sein. Wenn eine Schicht als „unter“ einer anderen Schicht bezeichnet wird, kann sie direkt darunter liegen, und es können auch eine oder mehrere dazwischenliegende Schichten vorhanden sein. Darüber hinaus kann eine Schicht, wenn sie als „zwischen“ zwei Schichten bezeichnet wird, die einzige Schicht zwischen den beiden Schichten sein, oder es können auch eine oder mehrere dazwischenliegende Schichten vorhanden sein.
  • Die Steuerung schließt, wie hierin beschrieben, einzelne Schaltungskomponenten, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Mikrocontroller mit Steuerungssoftware, einen digitalen Signalprozessor (DSP), einen Prozessor mit Steuerungssoftware, ein feldprogrammierbares Gate-Array (FPGA) oder Kombinationen davon ein.

Claims (20)

  1. Nichtflüchtige Speichervorrichtung, aufweisend: einen Speicher; und eine Steuerschaltlogik, die kommunikativ mit dem Speicher gekoppelt ist, wobei die Steuerschaltlogik zum Programmieren eines Satzes von Speicherzellen dient und eingerichtet ist zum: Empfangen eines Paritätsbits, das unter Verwendung einer Datenstruktur gespeichert wurde; Empfangen eines ersten Teilsatzes von Hostdaten, der Blockdaten einschließt, die sich auf den Satz von Speicherzellen beziehen; Durchführen eines Lesevorgangs, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt; Dekodieren des zweiten Teilsatzes von Hostdaten unter Verwendung des Paritätsbits; und Durchführen eines Schreibvorgangs zum Schreiben der Blockdaten und der zusätzlichen Blockdaten in mindestens eine oder mehrere Speicherzellen, die Teil des Satzes von Speicherzellen sind.
  2. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei das Paritätsbit der Steuerschaltlogik ermöglicht, zwischen bestimmten Datenzuständen zu unterscheiden.
  3. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei das Paritätsbit der Steuerschaltlogik ermöglicht, zwischen dem Datenzustand n und dem Datenzustand n+1 zu unterscheiden.
  4. Nichtflüchtige Speichervorrichtung nach Anspruch 3, wobei ein erstes Bit, das dem Datenzustand n entspricht, mit einem zweiten Bit, das dem Datenzustand n+1 entspricht, überlappt.
  5. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei die Steuerschaltung ferner eingerichtet ist, um: Kombinieren der obersten Seite von Blockdaten und der drei anderen Seiten von zusätzlichen Blockdaten, die dekodiert wurden, wobei die oberste Seite in der Lage ist, mit den drei anderen Seiten kombiniert zu werden, basierend auf dem Paritätsbit, das zum Dekodieren der drei anderen Seiten verwendet wird.
  6. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei der Satz von Speicherzellen Quad-Level-Zellen (QLC) sind.
  7. Nichtflüchtige Speichervorrichtung nach Anspruch 1, wobei die eine oder mehreren Speicherzellen während der ersten Stufe des Programmiervorgangs auf acht Datenzustände programmiert werden.
  8. Verfahren zum Durchführen eines Programmiervorgangs, um einen Satz von Speicherzellen zu programmieren, wobei das Durchführen des Programmiervorgangs umfasst: Empfangen eines Paritätsbits, das unter Verwendung einer Datenstruktur gespeichert wurde; Empfangen eines ersten Teilsatzes von Hostdaten, der Blockdaten einschließt, die sich auf den Satz von Speicherzellen beziehen; Durchführen eines Lesevorgangs, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der zusätzliche Blockdaten in Bezug auf den Satz von Speicherzellen einschließt; Dekodieren des zweiten Teilsatzes von Hostdaten unter Verwendung des Paritätsbits; und Durchführen eines Schreibvorgangs zum Schreiben der Blockdaten und der zusätzlichen Blockdaten in mindestens eine oder mehrere Speicherzellen, die Teil des Satzes von Speicherzellen sind.
  9. Verfahren nach Anspruch 8, wobei der erste Teilsatz von Hostdaten eine oberste Seite von Blockdaten einschließt, und wobei der zweite Teilsatz von Hostdaten drei andere Seiten von zusätzlichen Blockdaten einschließt.
  10. Verfahren nach Anspruch 9, ferner umfassend: Kombinieren der obersten Seite von Blockdaten und der drei anderen Seiten von zusätzlichen Blockdaten, die dekodiert wurden, wobei die oberste Seite in der Lage ist, mit den drei anderen Seiten kombiniert zu werden, basierend auf dem Paritätsbit, das zum Dekodieren der drei anderen Seiten verwendet wird.
  11. Verfahren nach Anspruch 8, wobei das Paritätsbit der Steuerschaltlogik ermöglicht, zwischen dem Datenzustand n und dem Datenzustand n+1 zu unterscheiden.
  12. Verfahren nach Anspruch 11, wobei ein erstes Bit, das dem Datenzustand n entspricht, mit einem zweiten Bit, das dem Datenzustand n+1 entspricht, überlappt.
  13. Vorrichtung nach Anspruch 8, wobei die Steuerschaltlogik ferner eingerichtet ist zum: Veranlassen, dass das Paritätsbit unter Verwendung eines Single-Level-Cell-Caches (SLC-Caches) gespeichert wird.
  14. Vorrichtung, aufweisend: Steuerschaltlogik, die kommunikativ mit einem nichtflüchtigen Speicher gekoppelt ist, wobei die Steuerschaltlogik zum Programmieren eines Satzes von Speicherzellen dient, wobei die Steuerschaltlogik beim Programmieren des Satzes von Speicherzellen eingerichtet ist zum: Empfangen eines Paritätsbits, das unter Verwendung einer Datenstruktur gespeichert wurde; Empfangen eines ersten Teilsatzes von Hostdaten, der Blockdaten für eine oberste Seite einschließt, wobei sich die Blockdaten auf den Satz von Speicherzellen beziehen; Durchführen eines Lesevorgangs, um einen zweiten Teilsatz von Hostdaten zu identifizieren, der drei andere Seiten zusätzlicher Blockdaten in Bezug auf den Satz von Speicherzellen einschließt; Dekodieren des zweiten Teilsatzes von Hostdaten unter Verwendung des Paritätsbits; und Durchführen eines Schreibvorgangs, um die oberste Seite von Blockdaten und die drei anderen Seiten der zusätzlichen Blockdaten, die dekodiert wurden, in mindestens eine oder mehrere Speicherzellen zu schreiben, die Teil des Satzes von Speicherzellen sind.
  15. Vorrichtung nach Anspruch 14, wobei das Paritätsbit der Steuerschaltlogik ermöglicht, zwischen bestimmten Datenzuständen zu unterscheiden.
  16. Vorrichtung nach Anspruch 15, wobei das Paritätsbit der Steuerschaltlogik ermöglicht, zwischen dem Datenzustand n und dem Datenzustand n+1 zu unterscheiden.
  17. Vorrichtung nach Anspruch 15, wobei die Steuerschaltung ferner eingerichtet ist, um: Veranlassen, dass das Paritätsbit unter Verwendung eines Single-Level-Cell-Caches (SLC-Caches) gespeichert wird.
  18. Vorrichtung nach Anspruch 15, wobei die eine oder die mehreren Speicherzellen während einer ersten Stufe eines Programmiervorgangs auf acht Datenzustände programmiert werden, und wobei die Steuerschaltlogik beim Durchführen des Schreibvorgangs eingerichtet ist zum: Durchführen des Schreibvorgangs, um die eine oder die mehreren Speicherzellen auf sechzehn Datenzustände zu programmieren, wobei der Schreibvorgang Teil einer zweiten Stufe des Programmiervorgangs ist.
  19. Vorrichtung nach Anspruch 15, wobei die Steuerschaltung ferner eingerichtet ist, um: Kombinieren der obersten Seite von Blockdaten und der drei anderen Seiten der zusätzlichen Blockdaten, die dekodiert wurden, wobei die oberste Seite in der Lage ist, mit den drei anderen Seiten kombiniert zu werden, basierend auf dem Paritätsbit, das zum Dekodieren der drei anderen Seiten verwendet wird.
  20. Vorrichtung nach Anspruch 15, wobei die Speicherzellen Triple-Level-Zellen (TLC) sind.
DE102021107268.9A 2020-06-30 2021-03-23 Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine Pending DE102021107268A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/916,285 2020-06-30
US16/916,285 US11177002B1 (en) 2020-06-30 2020-06-30 Programming memory cells using encoded TLC-fine

Publications (1)

Publication Number Publication Date
DE102021107268A1 true DE102021107268A1 (de) 2021-12-30

Family

ID=78524125

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021107268.9A Pending DE102021107268A1 (de) 2020-06-30 2021-03-23 Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine

Country Status (3)

Country Link
US (1) US11177002B1 (de)
CN (1) CN113870936A (de)
DE (1) DE102021107268A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11662941B2 (en) * 2020-10-13 2023-05-30 Western Digital Technologies, Inc. System and method for mitigating effect of erase cells on adjacent cells
US20230410912A1 (en) * 2022-06-15 2023-12-21 Sandisk Technologies Llc Die by die trimming of drain-side select gate threshold voltage to reduce cumulative read disturb

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032142B2 (en) * 2001-11-22 2006-04-18 Fujitsu Limited Memory circuit having parity cell array
JP4253332B2 (ja) * 2006-07-03 2009-04-08 株式会社東芝 復号装置、方法およびプログラム
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
TW201019327A (en) * 2008-09-30 2010-05-16 Lsi Corp Methods and apparatus for soft data generation for memory devices using reference cells
KR20130130484A (ko) * 2012-05-22 2013-12-02 삼성전자주식회사 읽기 카운터 로직을 포함하는 플래시 메모리 시스템
US8839074B2 (en) * 2012-09-13 2014-09-16 Sandisk Technologies Inc. On chip data recovery for non-volatile storage
US9158667B2 (en) * 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9529726B2 (en) * 2013-07-15 2016-12-27 Everspin Technologies, Inc. Memory device with page emulation mode
CN110751971A (zh) * 2013-12-18 2020-02-04 东芝存储器株式会社 存储系统和数据写入方法
CN107045892B (zh) * 2015-11-26 2023-08-29 三星电子株式会社 非易失性存储器和包括非易失性存储器的存储装置
US9785493B1 (en) * 2016-12-09 2017-10-10 Sandisk Technologies Llc Data recovery method after word line-to-word line short circuit
JP2018160065A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリシステム
JP2019079377A (ja) * 2017-10-26 2019-05-23 東芝メモリ株式会社 半導体記憶装置
US10269435B1 (en) * 2017-11-16 2019-04-23 Sandisk Technologies Llc Reducing program disturb by modifying word line voltages at interface in two-tier stack after program-verify
US10643692B2 (en) * 2018-03-02 2020-05-05 Sandisk Technologies Llc Adaptive programming voltage for non-volatile memory devices
US10910064B2 (en) * 2018-11-06 2021-02-02 Sandisk Technologies Llc Location dependent impedance mitigation in non-volatile memory

Also Published As

Publication number Publication date
CN113870936A (zh) 2021-12-31
US11177002B1 (en) 2021-11-16

Similar Documents

Publication Publication Date Title
DE112019000164B4 (de) Speichervorrichtung mit verbundenen wortleitungen zur schnellen programmierung
DE112019000157B4 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
DE102015105858B4 (de) Halbleitervorrichtungen mit Peripherieschaltungsbereich und einem ersten und einem zweiten Speicherbereich
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE112019000148T5 (de) Dynamische Bitabtastungstechniken für die Programmierung von Speichervorrichtungen
DE112017003298T5 (de) Schema für das Herunterfahren von Wortleitungen zum Entfernen von Restelektronen
DE112017004208T5 (de) 3d-nand mit teilblocklöschen
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE112016003568B4 (de) Intelligente Überprüfung bzw. Verifizierung zur Programmierung nicht-flüchtiger Speicher
DE102019124668A1 (de) Transistorschwellenspannungshaltung in 3d-speicher
DE112018003426T5 (de) Reduzieren der lesestörung der art durch injektion heisser elektronen in 3d-speichervorrichtung mit verbundenen sourceendauswahlgates
DE102021106907A1 (de) Lochvorladeschema mit gate-induzierter drain-leckstromerzeugung
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE102022102591A1 (de) Systeme und verfahren zum einstellen der schwellenspannungsverteilung aufgrund von halbkreis-sgd
DE102021107268A1 (de) Programmierung von speicherzellen unter verwendung von kodiertem tlc-fine
DE102022113174A1 (de) Proaktive aktualisierung der randdatenwortleitung für halbkreis-drain-side-select-gate
DE102022102593A1 (de) Speicherprogrammierung mit selektiv übersprungenen verifizierungsimpulsen zur leistungsverbesserung
DE112023000257T5 (de) Zeit-tagging von lesepegeln mehrerer wortleitungen für die aufbewahrung von daten in offenen blöcken
DE102021106910A1 (de) Schleifenabhängiges umschalten zwischen techniken zur programmverifizierung
DE102022102624A1 (de) Speichereinrichtung und verfahren zum betrieb unter verwendung des programmierens mit dreifacher kette während des löschens
DE102022113175A1 (de) Sekundäre kreuzkopplungswirkung in speichervorrichtung mit halbkreis-drain-side-select-gate und gegenmassnahme
DE102020116034B4 (de) Spitzen- und mittelwert-stromreduktion für unterblock-speicherbetrieb
US11468950B1 (en) Memory programming with selectively skipped bitscans and fewer verify pulses for performance improvement
DE102022112833A1 (de) Wartung des halbkreis-drain-side-select-gate durch selektives halbkreis-dummy-wortleitungsprogramm
US11410739B1 (en) Programming techniques with fewer verify pulses to improve performance

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MURGITROYD & COMPANY, DE