DE102013108456B4 - Nichtflüchtige Speichervorrichtung und Programmierverfahren - Google Patents

Nichtflüchtige Speichervorrichtung und Programmierverfahren Download PDF

Info

Publication number
DE102013108456B4
DE102013108456B4 DE102013108456.7A DE102013108456A DE102013108456B4 DE 102013108456 B4 DE102013108456 B4 DE 102013108456B4 DE 102013108456 A DE102013108456 A DE 102013108456A DE 102013108456 B4 DE102013108456 B4 DE 102013108456B4
Authority
DE
Germany
Prior art keywords
data
bit
page
selected physical
programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013108456.7A
Other languages
English (en)
Other versions
DE102013108456A1 (de
Inventor
Dong-Hun KWAK
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020120086805A external-priority patent/KR102024850B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013108456A1 publication Critical patent/DE102013108456A1/de
Application granted granted Critical
Publication of DE102013108456B4 publication Critical patent/DE102013108456B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

Programmierverfahren für einen nichtflüchtigen Speicher (1220, 2220, 3220), welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen, MLC aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert, wobei „N“ eine ganze Zahl größer als 2 ist und wobei das Verfahren Folgendes aufweist:ein Empfangen von ersten Daten und ein Partitionieren der ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223), um partitionierte erste Daten zu erzeugen;ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu einer Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223); undein Empfangen von zweiten Daten und ein Programmieren der zweiten Daten als Multi-Bit-Daten zu einer ausgewählten physikalischen Seite unter der Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223), wobei die zweiten Daten simultan zu der MLC der ausgewählten physikalischen Seite programmiert werden,wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der ausgewählten physikalischen Seite folgend auf das Programmieren der partitionierten ersten Daten zu der ausgewählten physikalischen Seite durchgeführt wird, bevor eine zwischenliegende Löschoperation auf der ausgewählten physikalischen Seite durchgeführt wird.

Description

  • HINTERGRUND
  • Das erfinderische Konzept bezieht sich auf Halbleiterspeichervorrichtungen und Verfahren zum Programmieren derselben. Genauer bezieht sich das erfinderische Konzept auf Halbleiterspeichervorrichtungen, welche nichtflüchtige Multi-Level-Speicherzellen bzw. Multi-Pegel-Speicherzellen enthalten, und auf Programmierverfahren für dieselben. In bestimmten Ausführungsformen bezieht sich das erfinderische Konzept auf Halbleiterspeichervorrichtungen, welche dreidimensionale (3D) Speicherzell-Arrays von nichtflüchtigen Speicherzellen haben, und auf Programmierverfahren für dieselben.
  • Halbleiterspeichervorrichtungen können allgemein gemäß ihrer operativen Natur als flüchtig oder nichtflüchtig klassifiziert werden. Flüchtige Speichervorrichtungen verlieren gespeicherte Daten in Abwesenheit von angelegter Leistung, während nichtflüchtige Speichervorrichtungen in der Lage sind, gespeicherte Daten auch zu halten, wenn eine Leistung nicht länger angelegt ist.
  • Es gibt verschiedene Arten von nichtflüchtigen Speichervorrichtungen, welche beispielsweise einen Masken-Lesespeicher (MROM-Mask Read-Only Memory), einen programmierbaren Lesespeicher (PROM=Programmable Read-Only Memory), einen löschbaren Lesespeicher (EPROM=Erasable Programmable Read-Only Memory) und einen elektrisch löschbaren programmierbaren Lesespeicher (EEPROM=Electrically Erasable Programmable Read-Only Memory) aufweisen.
  • Ein Flash-Speicher ist ein bestimmter Typ von EEPROM, welcher für eine Verwendung in einer großen Vielfalt von digitalen Systemen wie beispielsweise Computern, Mobiltelefonen, PDAs, Digitalkameras, Camcordern, Stimmrecordern, MP3-Playern, handgehaltenen bzw. handgeführten PCs, Spielen, Facsimiles, Scannern, Druckern und dergleichen eingesetzt wurde. Ein Faktor, der die weitverbreitete Verwendung von Flashspeicher in heutigen elektronischen Vorrichtungen empfiehlt, ist seine hohe Datendichte. Datendichte kann verstanden werden als die Anzahl von digitalen Datenbits, die in der Lage ist, pro Einheitsbereich, der durch einen Speichervorrichtung oder ein Speichersystem besetzt ist, gespeichert zu werden
  • Jüngere Versuche, die Datendichte von nichtflüchtigen Speichervorrichtungen wie beispielsweise Flash-Speichervorrichtungen weiter zu erhöhen, führten zu der Entwicklung und Verwendung von Multi-Level- (oder Multi-Bit-) Speicherzellen (MI,C=Multi-Level Memory Cells) zusammen mit zugehörigen Programmiertechniken. Der Begriff „Multi-Level-Speicherzelle(n)“ bzw. „Multi-Pegel-Speicherzelle(n)“ oder „MLC“ wurde verwendet, um allgemein eine Klasse von nichtflüchtigen Speicherzellen zu bezeichnen, welche in der Lage ist, mehr als ein Bit von binären Daten zu speichern. Im Gegensatz hierzu sind „Ein-Level-Speicherzellen“ bzw. „Ein-Pegel-Speicherzellen“ oder „SLC“ vorgesehen, nur ein einzelnes Bit von binären Daten (beispielsweise eine „1“ oder „0“) zu speichern. In den meisten Anwendungen hat die Unterscheidung zwischen MLC und SLC hinsichtlich einer Speicherzelle (oder einer Gruppe von Speicherzellen) mehr mit den bestimmten Programmier-, Lösch- und/oder Lese-Techniken zu tun, welche auf die Speicherzellen angewandt werden, als mit der physikalischen Struktur oder der Material-Struktur der Speicherzelle(n). Nichtsdestotrotz hat das Vorsehen von nichtflüchtigen Speicherzell-Arrays mit MLC eher als SLC zu dramatischen Anstiegen in der Gesamtdatendichte geführt.
  • Andere jüngere Versuche, um die Datendichte von nichtflüchtigen Speichervorrichtungen wie beispielsweise Flash-Speichervorrichtungen weiter zu erhöhen, haben zu der Entwicklung des dreidimensionalen (3D) Speicherzell-Array geführt. Historisch wurden Speicherzell-Arrays in planaren (2D) Anordnungen von Speicherzellen implementiert. Die US 2010 / 0157675 A1 offenbart ein Verfahren zur Datenspeicherung, das die Vordefinierung einer Reihenfolge der Programmierung einer Vielzahl von analogen Speicherzellen, die in Reihen angeordnet sind, beinhaltet. Die Reihenfolge legt fest, dass für eine gegebene Reihe, die benachbarte Reihen auf einer ersten und einer zweiten Seite hat, die Speicherzellen in der gegebenen Reihe nur programmiert werden, während die Speicherzellen in den benachbarten Reihen auf mindestens einer der Seiten in einem gelöschten Zustand sind, und dass die Speicherzellen in der gegebenen Reihe so programmiert werden, dass sie einen höchsten Programmierpegel annehmen, der einem größten analogen Wert unter den Programmierpegeln der Zellen entspricht, nur nachdem alle Speicherzellen in der gegebenen Reihe so programmiert wurden, dass sie andere Programmierpegel als den höchsten Pegel annehmen. Die Daten werden in den Speicherzellen gespeichert, indem die Speicherzellen entsprechend der vordefinierten Reihenfolge programmiert werden. Die US 2010 / 0 322 000 A1 offenbart ein Verfahren zur Mehrbitprogrammierung einer dreidimensionalen Speichervorrichtung mit Arrays von Speicherzellen, die sich in horizontaler und vertikaler Richtung relativ zu einem Substrat erstrecken, wobei das Verfahren zuerst das Programmieren einer Speicherzelle umfasst, die auf einen aus einem ersten Satz von Zuständen programmiert werden soll. Mindestens eine benachbarte Speicherzelle, die zu der Speicherzelle benachbart ist, die auf einen aus dem ersten Satz von Zuständen programmiert werden soll, wird dann zuerst programmiert. Im Anschluss an das erste Programmieren der mindestens einen benachbarten Speicherzelle, zweites Programmieren der Speicherzelle, um auf einen aus einem zweiten Satz von Zuständen programmiert zu werden, wobei der zweite Satz von Zuständen eine Anzahl von Zuständen aufweist, die größer ist als die Anzahl von Zuständen in dem ersten Satz von Zuständen.
  • KURZFASSUNG
  • Die Erfindung ist in den unabhängigen Ansprüchen definiert. Vorteilhafte Weiterbildungen finden sich in den jeweils zugehörigen Unteransprüchen. Nachstehende Ausführungsformen des erfinderischen Konzepts, welche jeweils Teilaspekte der Erfindung offenbaren, sehen verschiedentlich Speichervorrichtungen, Speichersysteme, Controller und nichtflüchtige Speicherprogrammierverfahren vor, welche es ermöglichen, dass Daten effizient in nichtflüchtigen Multi-Level- bzw. Multi-Pegel-Speicherzellen gespeichert werden, um eine erhöhte Datendichte vorzusehen. Bestimmte Ausführungsformen des erfinderischen Konzepts verwenden die Datenspeicherkapazität, welche durch Odd-Bit Multi-Level-Speicherzellen vorgesehen ist, auch wenn Host-Daten in 2N Größen vorgesehen sind. Bestimmte Ausführungsformen des erfinderischen Konzepts verringern die Anzahl von Housekeeping-Operationen (beispielsweise Abfalldaten-Sammeloperationen), welche durch eine nichtflüchtige Speichervorrichtung, welche Multi-Level-Speicherzellen aufweist, durchgeführt werden müssen. Bestimmte Ausführungsformen des erfinderischen Konzepts können vorteilhaft auf nichtflüchtige Speichervorrichtungen, welche dreidimensionale Speicherzell-Arrays aufweisen, angewandt werden.
  • In einer Ausführungsform sieht das erfinderische Konzept ein Programmierverfahren für einen nichtflüchtigen Speicher, der ein Speicherzell-Array von Multi-Pegel-Speicherzellen (MLC=Multi Level Memory Cells) aufweist, welche in physikalischen Seiten angeordnet sind, vor, wobei jede MLC bis zu N Bits von Daten speichert, wobei „N“ eine ganze Zahl größer als 2 ist, und wobei das Verfahren Folgendes aufweist: ein Empfangen erster Daten und ein Partitionieren der ersten Daten gemäß einer Einzelbit-Seitenkapazität einer physikalischen Seite, um partitionierte erste Daten zu erzeugen, ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten in einer Mehrzahl von physikalischen Seiten, und ein Empfangen von zweiten Daten und ein Programmieren der zweiten Daten als Multi-Bit-Daten in eine ausgewählte physikalische Seite unter der Mehrzahl von physikalischen Seiten, wobei die zweiten Daten simultan zu der MLC der ausgewählten physikalischen Seite programmiert werden.
  • In einer anderen Ausführungsform sieht das erfinderische Konzept ein Datenmanagement-Verfahren für ein Speichersystem vor, welches einen nichtflüchtigen Speicher aufweist, welcher ein Speicherzell-Array von Multi-Pegel-Speicherzellen (MLC) aufweist, welche in physikalischen Seiten angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert, wobei jede physikalische Seite durch eine Einzel-Bit-Seitenkapazität (1bPC), eine Gesamt-Bit-Seitenkapazität (TbPC) gleich zu (N x 1PC) und eine Restbit-Seitenkapazität (RbPC) gleich zu (TbPC-1bPC) definiert ist, wobei das Verfahren Folgendes aufweist: ein Ausführen einer ersten Programmieroperation, welche X Bits von ersten Daten speichert durch ein Bestimmen einer Anzahl Q von ersten ausgewählten physikalischen Seiten, welche notwendig sind, um die ersten Daten als Einzelbit-Daten in den ersten ausgewählten physikalischen Seiten zu speichern, wobei Q=[(X÷1bPC)+1 für jeden Rest], ein Partitionieren der ersten Daten durch Q, um partitionierte erste Daten zu erzeugen und ein Programmieren der partitionierten ersten Daten als Einzelbit-Daten zu den ersten ausgewählten physikalischen Seiten; und ein Ausführen einer zweiten Programmieroperation, welche Y Bits von zweiten Daten speichert nach dem Ausführen der ersten Programmieroperation durch ein Bestimmen einer Anzahl von R von zweiten ausgewählten physikalischen Seiten unter den ersten ausgewählten physikalischen Seiten, welche notwendig sind, um die zweiten Daten als (N-1) Multi-Bit-Daten in den zweiten ausgewählten physikalischen Seiten zu speichern, wobei R=[(Y÷RbPC)+1 für jeden Rest], ein Unterteilen der zweiten Daten durch R, um unterteilte zweite Daten zu erzeugen, und ein Programmieren der unterteilten zweiten Daten als (N-1) Multi-Bit-Daten in die zweiten ausgewählten physikalischen Seiten, wobei die unterteilten zweiten Daten gleichzeitig bzw. simultan zu MLC der zweiten ausgewählten physikalischen Seiten programmiert werden, wobei „N“ eine ganze Zahl größer als 2 ist, „Q“ eine ganze Zahl größer als 1 ist, und jedes von „X“, „Y“ und „R“ eine positive ganze Zahl ist.
  • In einer anderen Ausführungsform sieht das erfinderische Konzept ein Datenmanagement-Verfahren für einen nichtflüchtigen Speicher, welcher ein Speicher-zell-Array von Multi-Pegel-Speicherzellen (MLC) aufweist, welche in physikalischen Seiten angeordnet sind, vor, wobei das Verfahren Folgendes aufweist: während einer ersten Programmieroperation ein Empfangen von ersten Daten und ein Partitionieren der ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite, um partitionierte erste Daten zu erzeugen, und ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu nur einer ersten logischen Seite der MLC in ausgewählten physikalischen Seiten, und während einer zweiten Programmieroperation nach der ersten Programmieroperation ein Empfangen von zweiten Daten und ein simultanes Programmieren der zweiten Daten als Multi-Bit-Daten zu zweiten und dritten logischen Seiten der MLC in wenigstens einer der ausgewählten physikalischen Seiten.
  • In einer anderen Ausführungsform sieht das erfinderische Konzept ein Speichersystem vor, welches Folgendes aufweist: einen nichtflüchtigen Speicher, welcher ein Speicherzell-Array aus Multi-Pegel-Speicherzellen (MLC=Multi-Level-Memory Cells) aufweist, welche in physikalischen Seiten angeordnet sind, wobei jede MLC bis zu N Bit von Daten speichert, einen Controller, welcher konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzel-Bit-Daten zu ersten ausgewählten physikalischen Seiten zu programmieren, wobei der Controller weiterhin konfiguriert ist, um während einer zweiten Programmieroperation zweite Daten von dem Host zu empfangen und um die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu der MLC der zweiten ausgewählten physikalischen Seite programmiert werden.
  • In einer anderen Ausführungsform sieht das erfinderische Konzept einen Controller für ein Speichersystem, welches einen nichtflüchtigen Speicher aufweist, welcher ein Speicherzell-Array von Multi-Pegel-Speicherzellen (MLC), welche in physikalischen Seiten angeordnet sind, aufweist, vor, wobei der Controller konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzel-Bit-Daten zu ersten ausgewählten physikalischen Seiten zu programmieren, und um während einer zweiten Programmieroperation zweite Daten von dem Host zu empfangen, und um die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu der MLC der zweiten ausgewählten physikalischen Seite programmiert werden..
  • In einer anderen Ausführungsform sieht das erfinderische Konzept ein Speichersystem vor, welches Folgendes aufweist: einen nichtflüchtigen Speicher, welcher ein dreidimensionales (3D) Speicherzell-Array von Multi-Pegel-Speicherzellen (MLC) aufweist, welche in physikalischen Seiten angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert und das 3D-Speicherzell-Array eine Mehrzahl von Zellsträngen aufweist, wobei sich jeder Zellstrang in einer ersten Richtung erstreckt, eine Mehrzahl von Wortleitungen, welche sich in einer zweiten Richtung erstrecken, und eine Mehrzahl von Bitleitungen, welche sich in einer dritten Richtung erstrecken, wobei jeder Zellstrang mit einer der Mehrzahl von Bitleitungen verbunden ist und eine Mehrzahl von MLC, welche in Serie zwischen einem Strang-Auswahltransistor (SST) und einem Masse-Auswahltransistor (GST) verbunden sind, aufweist, wobei jede eine der Mehrzahl von MLC jeweils durch eine der Mehrzahl von Wortleitungen gesteuert wird, wobei jeder SST durch eine Strang-Auswahlleitung gesteuert wird, und wobei jeder GST durch eine Masse-Auswahlleitung gesteuert wird, einen Controller, welcher konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzel-Bit-Daten zu ersten ausgewählten physikalischen Seiten zu programmieren, wobei der Controller weiterhin konfiguriert ist, um während einer zweiten Programmieroperation zweite Daten von dem Host zu empfangen und um die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu der MLC der zweiten ausgewählten physikalischen Seite programmiert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Bestimmte Ausführungsformen des erfinderischen Konzepts sind hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
    • 1 ist ein Blockschaltbild, welches eine nichtflüchtige Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 2 ist ein Blockschaltbild, welches ein Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 3 ist ein Diagramm, welches ein mögliches Beispiel des Speicherzell-Array der 1 gemäß einer Ausführungsform des erfinderischen Konzepts weiter veranschaulicht.
    • 4 ist eine perspektivische Ansicht, welche einen Speicherblock des 3D-Speicherzell-Array der 3 weiter veranschaulicht.
    • 5 ist ein äquivalentes Schaltbild eines relevanten Abschnittes des Speicherblocks der 4 gemäß einer Ausführungsform des erfinderischen Konzepts.
    • 6 ist ein Konzeptdiagramm, welches eine mögliche physikalische Seitendefinition für Speicherzellen des Speicherblocks in 4 weiter veranschaulicht.
    • 7 ist ein anderes Konzeptdiagramm, welches eine mögliche physikalische Seitendefinition für Speicherzellen des Speicherblocks in 4 weiter veranschaulicht.
    • 8 ist ein Diagramm, welches in einem relevanten Abschnitt eine Sammlung von Spannungen, welche während einer Programmieroperation, welche auf eine nichtflüchtige Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts gerichtet ist, verwendet werden können, veranschaulicht.
    • 9 ist ein Flussdiagramm, welches ein Programmierverfahren für eine nichtflüchtige Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts zusammenfasst.
    • 10 ist ein anderes Flussdiagramm, welches in einigen zusätzlichen Details ein Programmierverfahren für eine nichtflüchtige Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts zusammenfasst.
    • 11 ist ein Blockschaltbild, welches schematisch einen Betrieb eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 12 ist ein Konzeptdiagramm, welches einen Betrieb des Speichersystems der 11 weiter veranschaulicht.
    • 13 ist ein Konzeptdiagramm, welches logische Zustände für Speicherzellen anzeigt, welche gemäß einer Einzel-Pegel- bzw. Einzel-Level-Speicherzell (SLC)-Programmiertechnik während der Speichersystemoperation der 9-12 programmiert werden.
    • 14, 15 und 16 sind jeweilige Blockschaltbilder, welche einen Betrieb des Speichersystems der 9-12 weiter veranschaulichen.
    • 17 ist ein Konzeptdiagramm, welches logische Zustände für Speicherzellen anzeigt, welche gemäß einer Multi-Pegel- bzw. Multi-Level-Speicherzell (SLC)-Programmiertechnik während der Speichersystemoperation der 9-12 programmiert werden.
    • 18 ist ein Blockschaltbild, welches schematisch einen Betrieb eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 19 ist ein Blockschaltbild, welches ein Speichersystem gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 20 ist ein Blockschaltbild, welches ein Festkörperlaufwerk (SDD=Solid State Drive) gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 21 ist ein Diagramm, welches eine Speicherkarte gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 22 ist ein Blockschaltbild, welches ein Computersystem bzw. Berechnungssystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Bestimmte Ausführungsformen des erfinderischen Konzepts werden nun in einigen zusätzlichen Details unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden. Das erfinderische Konzept kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht als auf nur die veranschaulichten Ausführungsformen beschränkt betrachtet werden. Vielmehr sind diese Ausführungsformen als Beispiele vorgesehen, so dass diese Offenbarung gewissenhaft und vollständig sein wird und das Konzept des erfinderischen Konzepts Fachleuten vollständig vermitteln wird. Demzufolge mögen herkömmlich verstandene Vorgänge, Elemente und Techniken nicht im Detail in Hinsicht auf einige der veranschaulichten Ausführungsformen beschrieben sein. Solange nicht anderweitig angemerkt, werden gleiche Bezugszeichen und Kennzeichnungen verwendet, um gleiche oder ähnliche Elemente über die Zeichnungen und die Beschreibung hinweg zu bezeichnen.
  • Es wird verstanden werden, dass, obwohl die Begriffe „erster/erste/erstes“, „zweiter/zweite/zweites“, „dritter/dritte/drittes“ etc. hierin verwendet werden können, um verschiedene Elemente, Komponenten bzw. Bestandteile, Bereiche, Schichten und/oder Sektionen zu beschreiben, diese Elemente, Komponenten bzw. Bestandteile, Bereiche, Schichten und/oder Sektionen durch diese Begriffe nicht beschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element, eine Komponente bzw. einen Bestandteil, einen Bereich, eine Schicht oder Sektion von einem anderen Bereich, einer anderen Schicht oder Sektion zu unterscheiden. Demnach könnte ein erstes Element, eine erste Komponente bzw. ein erster Bestandteil, ein erster Bereich, eine erste Schicht oder Sektion welche untenstehend diskutiert ist, als ein zweites Element, eine zweite Komponente bzw. ein zweiter Bestandteil, ein zweiter Bereich, eine zweite Schicht und/oder Sektion benannt werden, ohne von den Lehren des erfinderischen Konzepts abzuweichen.
  • Räumlich relative Begriffe wie beispielsweise „unterhalb“, „unter“, „unterer“, „darunter“ „über“, „oberer“ und dergleichen können hierin zur Erleichterung der Beschreibung verwendet werden, um eine Beziehung eines Elements oder Merkmals zu einem anderen Element (anderen Elementen) oder einem anderen Merkmal (anderen Merkmalen) wie in den Figuren veranschaulicht zu beschreiben. Es wird verstanden werden, dass die räumlich relativen Begriffe vorgesehen sind, um verschiedene Orientierungen der Vorrichtung in Verwendung oder im Betrieb zusätzlich zu den Orientierungen, welche in den Figuren abgebildet sind, zu enthalten. Beispielsweise wären, wenn die Vorrichtung in den Figuren umgedreht wird, Elemente, welche als „unter“ oder „unterhalb“ anderen Elementen oder Merkmalen oder „darunter“ beschrieben sind, dann „über“ den anderen Elementen oder Merkmalen orientiert sein. Demnach können die beispielhaften Begriffe „unter“ und „darunter“ sowohl eine Orientierung über als auch unter enthalten. Die Vorrichtung kann anderweitig orientiert sein (um 90 Grad gedreht oder unter anderen Orientierungen) und die räumlich relativen Beschreibungen, welche hierin verwendet werden, werden demgemäß interpretiert. Es wird zusätzlich verstanden werden, dass, wenn auf eine Schicht als „zwischen“ zwei Schichten Bezug genommen wird, sie die einzige Schicht zwischen den zwei Schichten sein kann, oder eine oder mehrere dazwischengeschaltete Schichten gegenwärtig sein können.
  • Die Terminologie, welche hierin verwendet ist, ist nur zum Zweck des Beschreibens bestimmter Ausführungsformen und sie ist nicht vorgesehen, um für das erfinderische Konzept beschränkend zu sein. Wenn hierin verwendet sind die Singularformen „einer/eine/eines“ und „der/die/das“ vorgesehen, um ebenso die Pluralformen mit einzuschließen, solange der Zusammenhang nicht deutlich Anderweitiges anzeigt. Es wird weiterhin verstanden werden, dass die Begriffe „weist auf“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, die Anwesenheit von genannten Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, und/oder Komponenten spezifizieren, jedoch die Anwesenheit oder Hinzufügung eines oder mehrerer anderer Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen. Wenn hierin verwendet schließt der Begriff „und/oder“ irgendeine und alle Kombinationen eines oder mehrerer der zugeordneten aufgelisteten Gegenstände ein. Ebenso ist der Begriff „beispielhaft“ vorgesehen, um auf ein Beispiel oder eine Veranschaulichung Bezug zu nehmen.
  • Es wird verstanden werden, dass wenn auf ein Element oder eine Schicht Bezug genommen wird als „auf“, „verbunden mit“, „gekoppelt mit“ oder „benachbart zu“ einem anderen Element oder einer anderen Schicht, es/sie direkt auf, direkt verbunden mit, direkt gekoppelt mit oder direkt benachbart zu dem anderen Element oder der anderen Schicht sein kann, oder dazwischen liegende Elemente oder Schichten gegenwärtig sein können. Im Gegensatz hierzu sind, wenn auf ein Element Bezug genommen wird als „direkt auf“, „direkt verbunden mit“, „direkt gekoppelt mit“ oder „unmittelbar benachbart zu" einem anderen Element oder einer anderen Schicht, keine dazwischen liegenden Elemente oder Schichten gegenwärtig.
  • Solange nicht anderweitig definiert, haben alle Wortlaute bzw. Begriffe (einschließlich technischer und wissenschaftlicher Betreffe), welche hierin verwendet werden, dieselbe Bedeutung wie allgemein durch einen Fachmann auf dem Gebiet, zu dem dieses erfinderische Konzept gehört, verstanden wird. Es wird weiterhin verstanden werden, dass Wortlaute, wie diese, welche in gemeinhin verwendeten Wörterbüchern definiert sind, interpretiert werden sollten als eine Bedeutung habend, welche konsistent mit ihrer Bedeutung in dem Kontext des relevanten Fachgebietes und/oder der vorliegenden Beschreibung ist, und nicht in einem idealisierten oder übermäßig formalen Sinn interpretiert werden, solange nicht ausdrücklich hierin so definiert.
  • Figur (Fig.) 1 ist ein Blockschaltbild, welches eine nichtflüchtige Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 1 weist eine nichtflüchtige Speichervorrichtung 100 ein Speicherzell-Array 110, einen Adressdekoder 120, einen Seitenpuffer 130 und eine Steuerlogik 140 auf. In bestimmten Ausführungsformen des erfinderischen Konzepts kann das Speicherzell-Array 110 als ein 3D-Speicherzell-Array implementiert sein.
  • Das Speicherzell-Array 110 ist mit dem Adressdekoder 120 über Wortleitungen WL, Strang-Auswahlleitungen (SSL) und Masse-Auswahlleitungen (GSL) verbunden. Das Speicherzell-Array 110 ist auch mit dem Seitenpuffer 130 über Bitleitungen BL verbunden.
  • Unter der Annahme des Vorsehens eines 3D-Speicherzell-Array in bestimmten Ausführungsformen kann das Speicherzell-Array 110 gemäß einer Mehrzahl von Speicherblöcken (BLKs) angeordnet sein, wobei jeder Speicherblock Speicherzellen aufweist, welche in einer definierten Zeilenrichtung, einer definierten Spaltenrichtung und einer Richtung rechtwinklig zu einem Substrat angeordnet sind. Diese drei „Richtungen“ können willkürlich definiert sein, aber es wird im Wesentlichen jede orthogonal bzw. rechtwinklig zu den anderen sein, um die Struktur eines 3D-Speicherzell-Array zu definieren. In einer bestimmten Ausführungsform des Speicherzell-Array 110 können Zellstränge in einer Richtung rechtwinklig zu dem Substrat gebildet sein.
  • Innerhalb dieser Konfiguration können Speicherzellen des Speicherzell-Array 110 durch eine entsprechende Strang-Auswahlleitung SSL ausgewählt werden.
  • In den Ausführungsformen, welche folgen, wird angenommen, dass die Speicherzellen eines Speicherzell-Array gemäß einer Ausführungsform des erfinderischen Konzepts Multi-Pegel-Speicherzellen (MI,C=Multi-Level Memory Cells) bzw. Multi-Level-Speicherzellen sind, welche in der Lage sind, zwei oder mehr Bit von Daten zu speichern. Das heißt, es wird angenommen, dass jede Speicherzelle konditioniert, programmiert, gelöscht und gelesen wird unter Verwendung von Techniken, welche es ermöglichen, dass zwei oder mehr Bit von Daten kohärent durch und von einer einzelnen MLC gespeichert und abgefragt bzw. abgerufen werden. In bestimmten Ausführungsformen kann jede Speicherzelle eine Ladungsfallen-Flash (CTF=Charge Trap Flash)-Speicherzelle sein, welche in der Lage ist, zwei oder mehr Datenzustände gemäß zwei oder mehr entsprechenden Grenzspannungsverteilungen, welche jeweils mit einer Ladungsmenge, welche auf einer CTF-Speicherzelle platziert ist, verknüpft sind, zu speichern. In anderen Ausführungsformen kann jede Speicherzelle eine Phasenübergangsspeicherzelle sein, worin zwei oder mehr Datenzustände durch unterschiedliche Materialphasen angezeigt werden, eine magnetische Speicherzelle, worin zwei oder mehr Datenzustände durch unterschiedliche magnetische Eigenschaften angezeigt werden, eine resistive Speicherzelle, worin zwei oder mehr Datenzustände durch unterschiedliche Widerstandswerte angezeigt werden, oder eine ferroelektrische Speicherzelle, worin zwei oder mehr Datenzustände durch unterschiedliche Materialeigenschaften angezeigt werden.
  • Der Adressdekoder 120 arbeitet unter der Steuerung der Steuerlogik 140. Im allgemeinen Betrieb empfängt der Adressdekoder 120 eine extern vorgesehene Adresse (ADDR) zusätzlich zu Steuersignalen von der Steuerlogik 140 und sieht in Antwort bestimmte Steuerspannungen für das Speicherzell-Array 110 vor. Beispielsweise wird, abhängig von der bestimmten Operation (beispielsweise Programmieren, Lesen oder Löschen), welche ausgeführt wird, der Adressdekoder 120 die Wortleitungsspannungen, Strang-Auswahlleitungsspannungen und/oder Masse-Auswahlleitungsspannungen für das Speicherzell-Array in Übereinstimmung mit einer dekodierten Zeilenadresse vorsehen.
  • Zusätzlich kann der Adressdekoder 120 eine Spaltenadresse dekodieren, welche als ein Teil der empfangenen Adresse vorgesehen ist, und die dekodierte Spaltenadresse zu dem Seitenpuffer 130 übertragen. Demnach wird in der veranschaulichten Ausführungsform der 1 angenommen, dass der Adressdekoder 120 konstituierende (und herkömmlich verstandene) Elemente aufweist, welche ausreichend sind, um einen Zeilendekoder, einen Spaltendekoder und einen Adressprüfer und eine darauf bezogene Schaltung zu bilden.
  • In einer ähnlichen Art und Weise arbeitet der Seitenpuffer 130 unter der Steuerung der Steuerlogik 140. Im allgemeinen Betrieb wählt der Seitenpuffer 130 eine Bitleitung BL aus der Mehrzahl von Bitleitungen in Antwort auf die dekodierte Spaltenadresse aus, welche an dem Adressdekoder 120 empfangen wird.
  • Während bestimmten Operationen empfängt der Seitenpuffer 130 extern vorgesehene Daten (DATA), welche zu dem Speicherzell-Array 110 zu programmieren sind. Während anderer Operationen empfängt der Seitenpuffer 130 gelesene Daten von dem Speicherzell-Array 110, welche zu einer externen Vorrichtung auszugeben sind. Während noch anderer Operationen, welche mit Ausführungsformen des erfinderischen Konzepts konsistent sind, kann der Seitenpuffer 130 gelesene Daten von einem Bereich des Speicherzell-Array 110 speichern (latchen), bevor die Daten in einen anderen Bereich des Speicherzell-Array 110 programmiert werden.
  • Wie herkömmlich anerkannt werden wird, kann der Seitenpuffer 130 eine Mehrzahl von Seitenpuffereinheiten aufweisen. Die Seitenpuffereinheiten können jeweils mit einer oder mehreren Bitleitungen BL verbunden sein. Jede Seitenpuffereinheit kann verbundene Bitleitungen BL während einer Programmieroperation unter Vorspannung setzen und eine Spannung, welche auf einer verbundenen Bitleitung BL offensichtlich ist, während einer Lese- und Programmier-Verifikationsoperation abtasten.
  • Die Steuerlogik 140 ist konfiguriert, um den Gesamtbetrieb der nichtflüchtigen Speichervorrichtung 100 zu steuern. Wie herkömmlich verstanden wird, arbeitet die Steuerlogik 140 in Antwort auf ein oder mehrere extern vorgesehene Steuersignale) CTRL und/oder Befehl(e) CMD
  • Innerhalb des Kontext bzw. Zusammenhangs der veranschaulichten Ausführungsform der 1 sind bestimmte Ausführungsformen des erfinderischen Konzepts durch eine Datenmanagement-Herangehensweise charakterisiert, welche rational „erste Daten“ von „zweiten Daten“ unterscheidet. Beispielsweise können die ersten Daten Programmierdaten sein, welche in Beziehung zu einer ersten auftretenden Programmieroperation empfangen werden, während die zweiten Daten Programmierdaten sein können, welche in Relation bzw. Beziehung zu einer zweiten (später) auftretenden Programmieroperation empfangen werden. Es sind jedoch andere Definitionen von ersten Daten und zweiten Daten möglich, solange zwei Datensätze ausreichend unterschiedlich sind, um eine unterschiedliche Verarbeitung zu ermöglichen, wie sie durch die Regeln bzw. Vorschriften des erfinderischen Konzepts, welches hierin nachstehend beschrieben wird, vorgesehen ist.
  • Mit diesem Verständnis wird angenommen, dass erste Daten für den Seitenpuffer 130 von der externen Vorrichtung unter der Steuerung der Steuerlogik 140 während einer ersten Programmieroperation vorgesehen werden, und dass der Adressdekoder 120 koinzident eine erste Adresse, welche den ersten Daten zugeordnet ist, empfängt. Beim Empfangen der ersten Daten kann die Steuerlogik den Seitenpuffer 130 verwenden, um die ersten Daten in eine Mehrzahl von kleineren Sätzen von „partitionierten Daten“ zu „partitionieren“ (d.h. zu unterteilen oder splitten). Als Teil des Erzeugens der partitionierten ersten Daten kann die Steuerlogik 140 auch den Adressdekoder 120 verwenden, um die empfangene Adresse zu manipulieren bzw. zu handhaben und um angemessene Partitionierungsadressen zu erzeugen, welche ein Programmieren der partitionierten ersten Daten zu dem Speicherzell-Array 110 erleichtern.
  • Insbesondere partitionieren bestimmte Ausführungsformen des erfinderischen Konzepts die empfangenen ersten Daten gemäß einer „Einzel-Bit-Seitenkapazität“ von einer (1) physikalischen Seite von Speicherzellen innerhalb des Speicherzell-Array 110. Fachleute werden erkennen, dass irgendein Speicherzell-Array „physikalisch“ gemäß einer bestimmten Verbindung von Speicherzellen innerhalb des Speicher-zell-Array konfiguriert sein kann. Solche Verbindungen können „eine Seite“ von Speicherzellen genannt werden. In einem Beispiel kann eine physikalische Seite von Speicherzellen Speicherzellen aufweisen, welche allgemein mit bestimmten Steuerleitung(en) verbunden sind (oder allgemein durch diese gesteuert werden), wie beispielsweise einer Wortleitung, einer Strang-Auswahlleitung oder einer Kombination einer Wortleitung und einer Strang-Auswahlleitung. Alternativ oder zusätzlich kann eine physikalische Seite von Speicherzellen Speicherzellen aufweisen, welche allgemein in einer designierten Zeile unter den Speicherzellen, welche mit einer einzelnen Wortleitung verbunden sind, verbunden sind. Demnach kann eine Mehrzahl von physikalischen Seiten mit einer einzelnen Wortleitung verbunden sein.
  • Die Bezeichnung „physikalisch“ in dem Begriff „physikalische Seite“ unterscheidet andere Herangehensweisen zum Designieren von bestimmten Gruppierungen von Speicherzellen wie beispielsweise (einer) logischen Seite(n). Hier verstehen wiederum Fachleute den (die) Unterschied(e) zwischen physikalischen Seiten (beispielsweise wie durch ein bestimmtes physikalisches Verbindungsschema definiert) und logischen Seiten (beispielsweise wie durch ein bestimmtes Adressier- oder Datenzugriffsschema definiert). Demzufolge werden Speicherzell-Arrays, welche mit Ausführungsformen des erfinderischen Konzepts konsistent sind, physikalische Seiten aufweisen, welche jeweils designierten Verbindungen von Speicherzellen zugeordnet sind. Beispielsweise können eine erste physikalische Seite Speicherzellen sein, welche mit einer ersten Wortleitung verbunden sind, eine zweite physikalische Seite können Speicherzellen sein, welche mit einer zweiten Wortleitung verbunden sind, etc.
  • Erkennend, dass jede physikalische Seite durch eine Verbindung von MLC gebildet sein kann, kann jede physikalische Seite eine Anzahl von logischen Seiten aufweisen. Demnach bezeichnet der Begriff „Einzel-Bit-Seitenkapazität“ (1bPC) einer physikalischen Seite eine Anzahl von Speicherzellen (unabhängig von ihrer Fähigkeit, Multi-Bit-Daten zu speichern) der physikalischen Seite. Demnach wird eine physikalische Seite, welche 8K von MLC aufweist, eine Einzel-Bit-Seitenkapazität von 8K haben. Wohingegen unter Annahme der Verwendung von MLC, welche in der Lage sind, programmiert zu werden, um bis zu 3 Bit von Daten zu speichern, dieselbe physikalische Seite eine „Gesamt-Bit-Seitenkapazität“ (TbPC) von 24K oder (3 Bit pro Speicherzelle x 8K von MLC in der physikalischen Seite) haben wird. Eine Rest-Bit-Seitenkapazität (RbPC) für dieselbe physikalische Seite kann als die Gesamt-Bit-Seitenkapazität minus der Einzel-Bit-Seitenkapazität oder (TbPC-1bPC=RbPC) verstanden werden.
  • Eine bestimmte physikalische Seite wird jedoch innerhalb eines Speicher-zell-Array gemäß dem erfinderischen Konzept designiert, die ersten Daten, welche durch den Seitenpuffer 130 empfangen werden, werden in partitionierte erste Daten partitioniert und dann wird jeder resultierende Satz von partitionierten ersten Daten jeweils als Einzel-Bit-Daten in einer einer Mehrzahl von physikalischen Seiten innerhalb des Speicherzell-Array 110 unter Verwendung von Einzel-Bit-Programmiertechniken gespeichert. Das Vorangehende erkennt, dass empfangene Daten zu MLC als „Einzel-Bit-Daten“ oder als „Multi-Bit-Daten“ unter Verwendung verschiedener Einzel-Bit-Programmiertechniken und Operationen oder verschiedener Multi-Bit-Programmiertechniken und Operationen programmiert werden können. Von Interesse ist, dass Einzel-Bit-Programmieroperationen eine größere Datensicherheit vorsehen als Multi-Bit-Programmieroperationen, während Multi-Bit-Programmieroperationen in der Lage sind, mehr Daten pro Einheitszeit zu speichern als Einzel-Bit-Programmieroperationen.
  • Demnach werden Einzel-Bit-Daten, welche jedem ersten partitionierten ersten Daten entsprechen, durch Ausführungsformen des erfinderischen Konzepts zu MLC über eine Mehrzahl von physikalischen Seiten gespeichert. In bestimmten Ausführungsformen werden jede ersten partitionierten Daten als Einzel-Bit, Least Significant Bit (LSB)-Daten zu einer logischen Seite (LP=Logical Page) jeder physikalischen Seite (PP=Physical Page) der Mehrzahl von physikalischen Seiten, welche die partitionierten ersten Daten speichern, gespeichert.
  • Nachdem die ersten Daten verarbeitet und als partitionierte erste Daten über die Mehrzahl von physikalischen Seiten programmiert worden sind, werden zweite Daten durch den Seitenpuffer 130 unter der Steuerung der Steuerlogik 140 empfangen. Dann wählt die Steuerlogik 140 wenigstens eine der Mehrzahl von physikalischen Seiten, welche partitionierte erste Daten speichern, für eine Verwendung beim Speichern der zweiten Daten als Multi-Bit-Daten unter Verwendung einer Multi-Bit-Programmieroperation aus. Wo die zweiten Daten eine Größe haben, welche die verbleibende Restbit-Kapazität einer einzelnen physikalischen Seite übersteigen, können sie über mehr als eine der Mehrzahl von physikalischen Seiten, welche die partitionierten ersten Daten speichert, verteilt werden. Solch eine Verteilung der zweiten Daten kann getätigt werden unter Verwendung der Rest-Bit-Kapazität einer einzelnen physikalischen Seite.
  • In dem Fall, dass die zweiten Daten eine Größe haben, welche nicht gleich zu einem ganzzahligen Vielfachen der Rest-Bit-Seitenkapazität einer physikalischen Seite ist, kann eine zusätzliche (+1) physikalische Seite unter der Mehrzahl von physikalischen Seiten verwendet werden, um einen „Rest“ der zweiten Daten zu speichern. In einer ähnlichen Praxis kann in dem Fall, dass die ersten Daten eine Größe haben, welche nicht gleich zu einem ganzzahligen Vielfachen der Einzel-Bit-Seitenkapazität sind, eine zusätzliche (+1) physikalische Seite verwendet werden, um den Rest der ersten Daten zu speichern. Auf diese Art und Weise ist die Datenmanagement-Herangehensweise, welche durch Ausführungsformen des erfinderischen Konzepts vorgesehen wird, in der Lage, erste Daten und zweite Daten irgendeiner angemessenen Größe und Struktur unabhängig von einer möglichen Nichtübereinstimmung zwischen Host-definierten eingehenden Daten und der Bit-Struktur und Kapazität von Speicherzellen in der nichtflüchtigen Speichervorrichtung effizient zu verarbeiten.
  • Aus dem Vorangehenden kann es verstanden werden, dass folgend auf eine Ausführung der ersten Programmieroperation eine MLC jeder „ersten ausgewählten physikalischen Seite“ einen binären Zustand („1“ oder „0“) konsistent mit Einzel-Bit-Daten, welche durch eine Einzel-Bit-Programmieroperation programmiert sind, haben wird. Dann führt die Steuerlogik 140 eine später auftretende zweite Programmieroperation durch, um zusätzlich die zweiten Daten als Multi-Bit-Daten in den MLC wenigstens einer „zweiten ausgewählten physikalischen Seite“ zu speichern, welche aus den ersten ausgewählten physikalischen Seiten ausgewählt wurden. Weiterhin wird gemäß Ausführungsformen des erfinderischen Konzepts die zweite Programmieroperation der zweiten Daten ausgeführt unter Verwendung von Multi-Bit-Programmiertechniken, wodurch mehrere Bits der zweiten Daten simultan zu jeder zweiten ausgewählten physikalischen Seite programmiert werden.
  • Beispielsweise können wiederum unter der Annahme der Verwendung von 3-Bit MLC die zweiten Daten zu MLC der zweiten ausgewählten physikalischen Seiten gemäß zwei logischen Seiten, beispielsweise als Central Significant Bit (CSB)-Daten und Most Significant Bit (MSB)-Daten programmiert werden. In einem solchen Fall wird jede MI,C, welche LSB-Daten hat, welche vorangehend zu einer ersten logischen Seite programmiert wurden, eine zweite und eine dritte logische Seite haben, welche simultan mit den CSB- und MSB-Daten programmiert werden. Demnach wird folgend auf die zweite Programmieroperation, welche auf die zweiten Daten gerichtet ist, die Anzahl von Daten-Bits, welche in jeder MLC gespeichert ist, von 1 auf 3 erhöht. Es sollte an diesem Punkt festgehalten werden, dass, wenn die CSB-Daten und die MSB-Daten „simultan programmiert“ genannt werden, dies nicht bedeutet, dass die CSB-Daten und die MSB-Daten unter Verwendung von sequentiellen Programmier- (Sub)-Operationen sequentiell programmiert werden. Vielmehr bedeutet das simultane Programmieren von Multi-Bit-Daten zu einer MLC, dass in dem vorangehenden Beispiel die CSB-Daten und die MSB-Daten simultan zu einer MLC durch eine einzelne Programmieroperation programmiert werden. Diese Unterscheidung wird vollständiger unter Bezugnahme auf die 9 bis 17 beschrieben werden.
  • Die vorangehenden Beispiele nehmen die Verwendung von 3-Bit MLC, welche LSB-Daten, CSB-Daten und MSB-Daten speichern, an. Der Umfang des erfinderischen Konzepts ist jedoch nicht nur auf dieses Beispiel beschränkt, und MLC, welche in der Lage sind, vier oder mehr Bits von Daten zu speichern, können innerhalb bestimmten Ausführungsformen des erfinderischen Konzepts inkorporiert sein.
  • Von Interesse ist, dass die Verwendung einer Einzel-Bit-Programmieroperation, welche in Relation zu einer Mehrzahl von physikalischen Seiten gefolgt durch eine Multi-Bit-Programmieroperation getätigt wird, welche in Relation zu wenigstens einer dieser physikalischen Seiten getätigt wird, inhärent die Anzahl von Programmieroperationen verringert, welche benötigt werden, um sowohl erste als auch zweite Daten zu speichern. Demnach wird die Gesamtprogrammiergeschwindigkeit (oder Datenspeichergeschwindigkeit) verbessert und die aufgenommene Leistung wird verringert.
  • Weiterhin von Interesse ist, dass Ausführungsformen des erfinderischen Konzepts effektiv das Programmieren von 2N Daten managen, welche von einem Host unter einer bestimmten Annahme betreffend die Größe einer physikalischen Seite unter Verwendung eines Speicherzell-Array, welches aus Odd-Bit MLCs (beispielsweise 3-Bit MLC) konfiguriert ist, empfangen werden. Dieses Datenkompatibilitäts-Management (oder effiziente Datenmanagements)-Herangehensweise, welche durch Ausführungsformen des erfinderischen Konzepts vorgesehen ist, wird in einigen zusätzlichen Details unter Bezugnahme auf die 11 bis 15 beschrieben werden.
  • 2 ist ein Blockschaltbild, welches ein Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 2 weist ein Speichersystem 1200 einen Controller 1210 und einen nichtflüchtigen Speicher (NVM=Non-Volatile Memory) 1220 auf. Ein Host-System 1000 kommuniziert (programmiert zu und liest von) Daten mit dem Speichersystem 1200. Der NVM 1220 kann wie der Speicher 100 der 1, welcher obenstehend beschrieben ist, konfiguriert sein und kann in bestimmten Ausführungsformen ein 3D-Speicherzell-Array inkorporieren. Der NVM 1220 kann konfiguriert sein, so dass er Steuersignal(e) CTRL, Befehl(e) CMD, Adresse(n) ADDR und Daten (DATA) von dem Controller 1210 während bestimmten Operationen empfängt und um Daten (DATA) zu dem Controller 1210 als das Ergebnis von einigen Operationen zurückzugeben.
  • Der Controller 1210 kann verwendet werden, um die Ausführung von Lese-, Programmier- und Lösch-Operationen, welche auf ausgewählte Speicherzellen des NVM 1220 gerichtet sind, zu steuern, und um als eine Schnittstelle mit dem Host 1100 zu dienen. Demzufolge kann der Controller 1210 verursachen, dass Daten, welche von dem Host 1100 empfangen werden, zu dem NVM 1220 programmiert werden, und er kann verursachen, dass Daten, welche von dem NVM 1220 gelesen werden, zu dem Host 1100 zurückgegeben werden.
  • In bestimmten Ausführungsformen des erfinderischen Konzepts wird der NVM 1220 Programmieroperationen in Übereinstimmung mit einer physikalischen Seitendefinition (d.h. einer physikalischen Seiteneinheit) ausführen. Demnach partitioniert, wenn der Controller 1210 erste Daten (d.h. Programmierdaten, welche einer ersten Programmieroperation zugeordnet sind) von dem Host 1100 erhält, er die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (beispielsweise gemäß einer Anzahl von MLC, welche in einer physikalischen Seite enthalten sind, wie die physikalische Seite innerhalb des NVM 1220 definiert ist). Wenn die resultierenden partitionierten Daten erzeugt sind, programmiert der Controller 1210 die partitionierten ersten Daten über eine Mehrzahl von physikalischen Seiten als Einzel-Bit-Daten.
  • Demzufolge können die partitionierten ersten Daten in der LSB-Seite jeder einen der Mehrzahl von physikalischen Seiten gespeichert werden, wobei die Einzel-Bit-Seitenkapazität jeder LSB-Seite gleich zu der Anzahl von MLC ist, welche in einem physikalischen Speicher enthalten sind. Beispielsweise wird angenommen, dass 16 KB von ersten Daten von dem Host 1100 empfangen werden, dass eine physikalische Seite des NVM 1220 eine LSB-Seite aufweist, welche eine Einzel-Bit-Seitenkapazität von 8 KB hat und dass eine Gesamtbit-Kapazität der physikalischen Seite 24 KB ist (3-Bit MLC x 8 KB). Mit dieser Annahme werden die ersten Daten in zwei partitionierte erste Datenabschnitte (16 KB / 8 KB = 2) durch den Controller 1210 partitioniert und zwei (2) physikalische Seiten werden durch den Controller 120 ausgewählt, um die partitionierten ersten Daten als Einzel-Bit-Daten zu speichern.
  • Danach sendet der Controller 1210 die partitionierten ersten Daten zu dem NVM 1220 und steuert den NVM 1220, um die partitionierten Daten in dem zwei (2) ausgewählten physikalischen Seiten als Einzel-Bit-Daten (d.h. unter Verwendung einer Einzel-Bit-Programmieroperation zum Speichern von LSB-Daten zu 3-Bit MLC) zu speichern. Demnach wird von den partitionierten Daten gesagt, dass sie „über“ die Mehrzahl von (ersten ausgewählten) physikalischen Seiten als Einzel-Bit-Daten gespeichert sind. Unter den vorangehenden Annahmen werden die partitionierten ersten Daten über die Mehrzahl von physikalischen Seiten als LSB-Daten in Relation zu einer definierten logischen Seite, welche für die LSB-Daten designiert ist, gespeichert.
  • Wenn die erste Programmieroperation vollendet ist, können die partitionierten ersten Daten erhalten werden, es kann auf sie zugegriffen werden oder sie können modifiziert werden in Relation zu der LSB-Seite der MLC der Mehrzahl von physikalischen Seiten. Zu einem späteren Zeitpunkt jedoch werden zweite Daten, welche möglicherweise einer zweiten Programmieroperation zugeordnet sind, durch den Controller 1210 empfangen. Gemäß dem Vorangehenden können die zweiten Daten nun zu wenigstens einer der Mehrzahl von physikalischen Seiten als Multi-Bit-Daten programmiert werden, welche simultan zu der entsprechenden MLC programmiert werden. Um dies zu tun, vergleicht der Controller 1210 die Größe der zweiten Daten mit der Rest-Bit-Kapazität jeder physikalischen Seite der ersten ausgewählten ausgewählten physikalischen Seiten, um eine Anzahl von zweiten ausgewählten physikalischen Seiten unter den ersten ausgewählten physikalischen Seiten innerhalb des NVM 1220 zu bestimmen. Beispielsweise wird, wiederum unter der Annahme, dass die MLC des NVM-Speichers 1220 3-Bit MLC sind, jede physikalische Seite eine Rest-Bit-Seitenkapazität von 16 KB (oder 24 KB von TbPC-8 KB von 1bPC) haben. Weiterhin annehmend, dass die zweiten Daten 16 KB in der Größe sind, wird eine der ersten ausgewählten physikalischen Seiten als eine zweite ausgewählte physikalische Seite unter den zwei (2) ersten ausgewählten physikalischen Seiten designiert werden, um simultan die 16 KB von Daten als 2-Bit-Daten (beispielsweise CSB- und MSB-logische Seiten) in die MLC der zweiten ausgewählten physikalischen Seite zu speichern.
  • Weiterhin annehmend, dass jede MLC des NVM 1220 eine CTF-Speicherzelle ist, ist eine Wortleitungs-Interferenz über ein analoges Programmieren von Floating-Gate-Speicherzellen dramatisch reduziert. Demnach wird, obwohl Multi-Bit-Daten simultan während der zweiten Programmieroperation programmiert werden, die Wahrscheinlichkeit eines Programmierfehlers aufgrund einer Wortleitungs-Interferenz in großem Maße verringert.
  • Demnach kann es aus den vorangehenden Beispielen verstanden werden, dass Ausführungsformen des erfinderischen Konzepts eine effiziente Verwendung aller zur Verfügung stehenden Datenspeicherkapazität (d.h. der Datenspeicherkapazität jeder physikalischen Seite von einer MLC) vorsehen, trotz des inhärenten Nichtübereinstimmens von 2N-großen Daten, welche durch den Host 1100 bereitgestellt werden, mit den 3-Bit-großen MLC des NVM 1220.
  • Abweichend von dem vorangehenden Beispiel wird nun angenommen, das die zweiten Daten eine Größe von 32 KB haben. Demzufolge sind beide der zwei (2) ersten ausgewählten physikalischen Seiten als zweite ausgewählte physikalische Seite designiert und jede eine der zwei (2) zweiten ausgewählten Seiten wird verwendet, um 16 KB der zweiten Daten zu speichern. Eine Unterteilung der zweiten Daten durch den Controller 1210 wird gemäß der Rest-Bit-Kapazität für jede eine der zweiten ausgewählten physikalischen Seiten getätigt.
  • Um es nochmals zu betonen, wird eine Gesamtdatenkompatibilität zwischen dem Host 1100, welcher 2N (erste und zweite) Daten vorsieht und der physikalischen Seitendefinition innerhalb des NVM 1220, welcher 3-Bit MLC aufweist (ein Beispiel von Nicht-2N-Daten-basierten Speicherzellen) markant durch die Verwendung eines Programmierverfahrens, welches mit der Ausführungsform des erfinderischen Konzepts konsistent ist, verbessert. Dies ist insbesondere wichtig, wo Altdaten-Host-Vorrichtungen oder Altdaten-File-Definitionen eine 2N-Datenstruktur errichtet haben, und Datentransfer-Grundlagen, welche nicht durch Hersteller von zeitgemäßen nichtflüchtigen Speichervorrichtungen beeinflusst oder abgeändert werden können.
  • Wie vorangehend festgehalten wurde, werden bestimmte nichtflüchtige Speichervorrichtungen, welche mit den Lehren des erfinderischen Konzepts konsistent sind, ein 3D-Speicherzell-Array inkorporieren, um neben anderen Vorteilen die Datendichte, welche für die Speichervorrichtung vorgesehen ist, signifikant zu erhöhen. Um diese breite Klasse von Ausführungsformen weiter zu veranschaulichen, wird nun ein beispielhaftes 3D-NAND-Flashspeicher-Zell-Array in Bezug auf die 3, 4 und 5 beschrieben werden. Der Umfang des erfinderischen Konzepts ist jedoch nicht nur auf 3D-NAND-Flashspeicher-Zell-Arrays beschränkt, sondern erstreckt sich über andere 3D-Speicher-Zell-Arrays, welche andere Typen von nichtflüchtigen Speicherzellen inkorporieren.
  • 3 ist ein Konzeptdiagramm, welches ein 3D-Speicherzell-Array veranschaulicht, welches als das Speicherzell-Array 110 der 1 gemäß einer Ausführungsform des erfinderischen Konzepts verwendet werden kann. Bezug nehmend auf 3 weist ein Speicherzell-Array 110 eine Mehrzahl von Speicherblöcken BLK1 bis BLKz auf, von welchen jeder mit einer dreidimensionalen Struktur (oder einer vertikalen Struktur oder einer geschichteten Struktur) gebildet ist. Demnach weist jeder der Speicherblöcke BLK1 bis BLKz Speicherzellstrukturen auf, welche sich in einer ersten, einer zweiten und einer dritten zueinander rechtwinkligen Richtung erstrecken. Obwohl in 3 nicht gezeigt, kann jeder der Speicherblöcke BLK1 bis BLKz eine Mehrzahl von Zellsträngen aufweisen, welche sich beispielsweise in der zweiten Richtung erstrecken, wo die Mehrzahl von Zellsträngen jeweils voneinander in der ersten und dritten Richtung beanstandet sind.
  • Wie herkömmlich anerkannt werden wird, können Zellstränge in einem Speicherblock in Bezug auf eine Mehrzahl von Bitleitungen, eine Mehrzahl von Strang-Auswahlleitungen, eine Mehrzahl von Wortleitungen, eine oder mehrere Masse-Auswahlleitungen und eine gemeinsame Source-Leitung verschiedentlich verbunden sein. Zellstränge in der Mehrzahl von Speicherblöcken BLK1 bis BLKz werden die Mehrzahl von Bitleitungen gemäß verschiedenen Verbindungsschemata gemeinsam benutzen. Beispielsweise kann sich die Mehrzahl von Bitleitungen in der zweiten Richtung erstrecken, so dass sie durch die Mehrzahl von Speicherblöcken BLK1 bis BLKz gemeinsam benutzt wird.
  • Jeweilige Speicherblöcke BLK1 bis BLKz können durch einen Betrieb des Adressdekoders 120 (1) in Antwort auf eine empfangene Adresse ausgewählt werden. Lösch-, Programmier- und Leseoperationen, welche auf bestimmte Speicherzellen in einem ausgewählten Speicherblock gerichtet sind, können dann durchgeführt werden.
  • 4 ist eine perspektivische Ansicht, welche einen der Mehrzahl von Speicherblöcken BLK1 bis BLKz, welche in 3 gezeigt sind, weiter veranschaulicht. Konsistent mit den drei Layout-Richtungen, welche in 3 gezeigt sind, zeigt 4 bestimmte Elemente der 3D-Speicherzell-Array-Strukturen in einigen zusätzlichen Details.
  • Das 3D-Speicherzell-Array ist auf einem Grundbestandteilssubstrat (Principle Substrate) 111 gebildet. In dem veranschaulichten Beispiel der 4 wird angenommen, dass das Substrat 111 einen ersten Leitfähigkeitstyp (beispielsweise P-Typ) hat. Beispielsweise kann das Substrat 111 eine P-Wanne sein, welche aus einem oder mehreren Elementen (beispielsweise Bor) gebildet ist, welches aus Gruppe III-Elementen ausgewählt ist. In bestimmten Ausführungsformen kann das Substrat 111 eine Taschen-P-Wanne (Pocket P Well) sein, welche innerhalb einer N-Wanne gebildet ist.
  • Eine Mehrzahl von gemeinsamen Source-Bereichen CSR, welche sich in der ersten Richtung erstrecken, sind in dem Substrat 111 vorgesehen. Die gemeinsamen Source-Bereiche CSR sind voneinander in der zweiten Richtung beabstandet. Wenn sie elektrisch verbunden werden, bilden diese gemeinsamen Source-Bereiche CSR eine gemeinsame Source-Leitung (CSL). Es wird angenommen, dass die gemeinsamen Source-Bereiche CSR einen zweiten Leitfähigkeitstyp (beispielsweise N-Typ) haben, welcher unterschiedlich ist von dem ersten Leitfähigkeitstyp des Substrats 111.
  • Zwischen benachbarten gemeinsamen Source-Bereichen CSR sind Isoliermaterialien 112 und 112a nacheinanderfolgend auf dem Substrat 111 in der dritten Richtung (d.h. der Richtung vertikal rechtwinklig zu dem Substrat 111) vorgesehen. Verschiedene Ablagerungen der Isoliermaterialien 112 und 112a sind in der dritten Richtung beabstandet, und die Isoliermaterialien 112 und 112a erstrecken sich in einer planaren Art und Weise in der ersten und zweiten Richtung. In bestimmten Ausführungsformen werden die Isoliermaterialien 112 und 112a aus einem oder mehreren Halbleiteroxidfilm(en) gebildet werden, und die Dicke des Isoliermaterials 112a, welches das Substrat 111 direkt kontaktiert, kann geringer sein als die Dicke von anderen Isoliermaterialien 112.
  • Zwischen zwei benachbarten Bereichen der gemeinsamen Source-Bereiche CSR ist eine Mehrzahl von Säulen PL sequentiell bzw. nacheinanderfolgend in der ersten Richtung angeordnet, so dass sie die Mehrzahl der Isoliermaterialien 112 und 112a in der zweiten Richtung durchdringt. Beispielsweise können die Säulen PL mit dem Substrat 111 durch die Isoliermaterialien 112 und 112a in Kontakt treten.
  • In der veranschaulichten Ausführungsform der 4 sind die Säulen PL zwischen zwei benachbarten gemeinsamen Source-Bereichen CSR in der ersten Richtung beabstandet und sie sind in einer Linie angeordnet, welche sich in der ersten Richtung erstreckt. Die Säulen PL können unter Verwendung von verschiedenen Materialien gebildet sein. Beispielsweise kann jede Säule PL einen Kanalfilm 114 und ein inneres Material 115, welches innerhalb des Kanalfilms 114 vorgesehen ist, aufweisen.
  • Jeder Kanalfilm 114 kann aus einem Halbleitermaterial (beispielsweise Silizium) vom ersten Leitfähigkeitstyps gebildet sein. Jedes innere Material 115 kann aus einem Isoliermaterial wie beispielsweise Siliziumoxid gebildet sein. Alternativ kann jedes innere Material 115 durch einen Luftspalt gebildet sein.
  • Zwischen zwei benachbarten Bereichen der gemeinsamen Source-Bereiche CSR sind Informationsspeicherfilme 116 auf den jeweiligen GrundbestandteilsoberΣlächen (Principle Surface) jedes der Isoliermaterialien 112 und 112a vorgesehen, und Seitenränder der Informationsspeicherfilme 116 sind durch die Säulen PL freigelegt. Die Informationsspeicherfilme 116 werden ein Material sein, welches in der Lage ist, Informationen durch ein selektives Einfangen und Entladen von elektrischer Ladung zu speichern.
  • Zwischen zwei benachbarten gemeinsamen Source-Bereichen CSR und zwischen den Isoliermaterialien 112 und 112a sind leitfähige Materialien CM1 bis CM8 jeweils in elektrischem Kontakt mit den Informationsspeicherfilmen 116 vorgesehen. Demnach erstrecken sich in der veranschaulichten Ausführungsform der 4 die leitfähigen Materialien CM1 bis CM8 in der ersten Richtung derart, dass die leitfähigen Materialien CM1 bis CM8 auf den gemeinsamen Source-Bereichen CSR durch Wortleitungsschnitte getrennt sein können. Die gemeinsamen Source-Bereiche CSR können durch die Wortleitungsschnitte freiliegend sein, wobei die Wortleitungsschnitte sich auch in der ersten Richtung erstrecken.
  • Die leitfähigen Materialien CM1 bis CM8 können aus einem metallischen leitfähigen Material und/oder einem nichtmetallischen leitfähigen Material wie beispielsweise Polysilizium gebildet sein.
  • Die Informationsspeicherfilme 116, welche an einer oberen Oberfläche eines Isoliermaterials vorgesehen sind, platziert an der obersten Schicht aus den Isoliermaterialien 112 und 112a, werden entfernt. Das heißt, dass Informationsspeicherfilme 116, welche an Seiten entgegengesetzt in Säulen PL aus den Seiten der Isoliermaterialien 112 und 112a vorgesehen sind, entfernt werden.
  • Eine Mehrzahl von Drains 320 wird jeweils in Relation bzw. Beziehung zu der Mehrzahl von Säulen PL vorgesehen. Jede Drain 320 kann aus einem Halbleitermaterial (beispielsweise Silizium) von einem zweiten Leitfähigkeitstyp gebildet sein und sich zu einer oberen Seite der Kanalfilme 114 der Säulen PL erstrecken.
  • Bitleitungen BL, welche sich in der zweiten Richtung erstrecken, sind in elektrischem Kontakt mit den Drains 320 vorgesehen und sind in der ersten Richtung beabstandet. In der veranschaulichten Ausführungsform der 4 sind die Drains 320 und die Bitleitungen BL über Kontaktstecker (nicht gezeigt) verbunden. Die Bitleitungen BL können aus einem oder mehreren metallischen leitfähigen Material(ien) und/oder einem oder mehreren nichtmetallischen leitfähigen Material(ien) wie beispielsweise Polysilizium gebildet sein.
  • Wie in 4 auf dem Weg eines ausgewählten Beispielsweise gezeigt ist, definieren die leitfähigen Materialien CM1 bis CM8 essentiell erste bis achte jeweilige „Höhen“ über dem Substrat 111. Selbstverständlich ist die Designation von jeweiligen vertikalen Höhen über dem Substrat eine willkürliche Beschreibung einer relativen geometrischen Beziehung. Das erfinderische Konzept ist nicht auf eine bestimmte Orientierung von über/unter; vertikal/horizontal; oben/unten; etc. beschränkt. Diese relativen geometrischen beschreibenden Begriffe werden nur verwendet, um klar die Natur, die Herstellung und die Verwendung von bestimmten Ausführungsformen des erfinderischen Konzepts zu lehren.
  • Die Mehrzahl von Säulen PL kann eine Mehrzahl von Zellsträngen zusammen mit den Informationsspeicherfilmen 116 und der Mehrzahl von leitfähigen Materialien CM1 bis CM8 bilden. Jede der Säulen PL kann einen Zellstrang mit dem Informationsspeicherfilm 116 und benachbarten leitfähigen Materialien CM1 bis CM8 bilden.
  • Die Säulen PL können auf dem Substrat 111 entlang definierten „Zeilen“- und „Spalten“-Richtungen vorgesehen sein. Beispielsweise kann das achte leitfähige Material CM8 eine Anzahl von Zeilen konstituieren, während Säulen, welche mit dem achten leitfähigen Material CM8 verbunden sind, verwendet werden können, um eine bestimmte Zeile aus der Anzahl von Zeilen auszuwählen. Die Bitleitungen BL können Spalten konstituieren. Demnach konstituieren Säulen, welche mit derselben Bitleitung BL verbunden sind, eine Spalte. Die Säulen PL können eine Mehrzahl von Strängen konstituieren, welche entlang Zeilen- und Spaltenrichtungen zusammen mit den Informationsspeicherfilmen 116 und der Mehrzahl von leitfähigen Materialien CM1 bis CM8 angeordnet sind. Jeder Zellstrang kann eine Mehrzahl von Zelltransistoren CT aufweisen, welche in einer Richtung rechtwinklig zu dem Substrat 111 geschichtet sind.
  • 5 ist ein äquivalentes Schaltbild, welches das 3D-Speicherzell-Array der 4 gemäß einer Ausführungsform des erfinderischen Konzepts weiter veranschaulicht. Hier weist ein Speicherblock BLKa1 Zellstränge CS11, CS12, CS21 und CS22 auf, von welchen jeder einen Strang-Auswahltransistor SST, einen Masse-Auswahltransistor GST und Speicherzellen MC1 bis MC6 aufweist. In jedem Zellstrang sind die Speicherzellen MC1 bis C6 zwischen einem Strang-Auswahltransistor SST und einem Masse-Auswahltransistor GST verbunden.
  • Steuer-Gates der Masse-Auswahltransistoren GST in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Masse-Auswahlleitung GSL verbunden. Jeweilige erste Enden der Masse-Auswahltransistoren GST sind mit Speicherzellen MC1 verbunden und jeweilige zweite Enden sind gemeinhin mit der gemeinsamen Source-Leitung CSL verbunden.
  • Die Speicherzellen MC1 in den Zellsträngen CS11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL1 verbunden (d.h. elektrisch gesteuert als eine Gruppe durch eine Wortleitung WL1), die Speicherzellen MC2 in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL2 verbunden, die Speicherzellen MC3 in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL3 verbunden, die Speicherzellen MC4 in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL4 verbunden, die Speicherzellen MC5 in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL5 verbunden, und die Speicherzellen MC6 in den Zellsträngen CS 11, CS12, CS21 und CS22 sind gemeinhin mit einer Wortleitung WL6 verbunden.
  • In den Zellsträngen CS11 und CS12 sind Steuer-Gates der Strang-Auswahltransistoren SST mit einer Strang-Auswahlleitung SSL1 verbunden. In den Zellsträngen CS21 und CS22 sind Steuer-Gates der Strang-Auswahltransistoren SST mit einer Strang-Auswahlleitung SSL2 verbunden. In den Zellsträngen CS11 und CS21 ist ein Ende jedes Strang-Auswahltransistors SST mit einer Bitleitung BL1 verbunden, und das andere Ende ist mit den Speicherzellen MC6 verbunden. In den Zellsträngen CS21 und CS22 ist ein Ende der Strang-Auswahltransistoren SST mit einer Bitleitung BL2 verbunden, und das andere Ende ist mit den Speicherzellen MC6 verbunden.
  • Wie aus dieser beispielhaften Konfiguration gesehen werden kann, kann eine Mehrzahl von Zeilen, Spalten und Höhen innerhalb eines 3D-Speicherzell-Array in Beziehung zu Verbindungselementen wie beispielsweise Wortleitungen, Bitleitungen etc. definiert werden. Demnach kann die „Zeilenrichtung“ als eine Richtung definiert sein, in welcher die Strang-Auswahlleitungen SSL1 und SSL2 sich erstrecken derart, dass die Zellstränge CS11 und CS12 in der Zeilenrichtung angeordnet sind, um eine erste Zeile zu bilden, und die Zellstränge CS21 und CS22 in der Zeilenrichtung angeordnet sind, um eine zweite Zeile zu bilden.
  • Die „Spaltenrichtung“ kann als eine Richtung definiert sein, in welcher sich die Bitleitungen BL1 und BL2 erstrecken. Demnach sind die Zellstränge CS11 und CS21 in der Spaltenrichtung angeordnet, um eine erste Spalte zu bilden, und die Zellstränge CS12 und CS22 sind in der Spaltenrichtung angeordnet, um eine zweite Spalte zu bilden.
  • Eine jeweilige Höhe kann definiert sein als ein bestimmter Abstand von den Masse-Auswahltransistoren GST und/oder den Strang-Auswahltransistoren SST.
  • Demzufolge können die Speicherzellen MC1 bis MC6 in Relation zu Zeilen- und Spaltenrichtungen angeordnet sein, sowie zu einer Höhe in einer geschichteten 3D-Struktur. Beispielsweise sind Speicherzellen auf derselben Höhe in den veranschaulichten Ausführungsformen der 4 und 5 gemeinhin mit einer Wortleitung verbunden, und Speicherzellen bei unterschiedlichen Höhen sind mit verschiedenen Wortleitungen verbunden. Strang-Auswahltransistoren SST in derselben Zeile sind gemeinhin mit einer Strang-Auswahlleitung SSL1 oder SSL2 verbunden und die Strang-Auswahltransistoren SST in verschiedenen Zeilen sind mit unterschiedlichen Strang-Auswahlleitungen SSL1 und SSL2 verbunden. Die Strang-Auswahltransistoren SST in derselben Spalte sind mit derselben Bitleitung BL1 oder BL2 verbunden, und die Strang-Auswahltransistoren SST in verschiedenen Spalten sind mit unterschiedlichen Bitleitungen BL1 und BL2 verbunden.
  • In bestimmten Ausführungsformen des erfinderischen Konzepts wird jede der Speicherzellen MC1 bis MC6 eine MLC sein, welche in der Lage ist, zwei oder mehr Bits von Daten in Relation zu entsprechend definierten Grenzspannungsverteilungen zu speichern.
  • Die 4 und 5 veranschaulichen nur einen einzelnen Speicherblock BLKa1, welcher vier (4) Zellstränge CS11, CS12, CS21 und CS22 aufweist, wobei jeder Zellstrang sechs (6) Speicherzellen MC1 bis MC6 aufweist. Der Umfang des erfinderischen Konzepts ist jedoch nicht nur auf dieses einfache Beispiel beschränkt. Beispielsweise können zwei oder mehr Zellstränge in einer Zeilenrichtung oder einer Spaltenrichtung vorgesehen sein, oder zwei oder mehr Speicherzellen können in einem Zellstrang auf derselben Höhe vorgesehen sein. In einer ähnlichen Art sei erwähnt, dass 4 ein Beispiel veranschaulicht, in dem die Masse-Auswahltransistoren GST gemeinhin mit einer einzelnen Masse-Auswahlleitung verbunden sind, dies muss jedoch nicht der Fall sein. Die Strang-Auswahltransistoren SST, die Masse-Auswahltransistoren GST in derselben Zeile können gemeinhin mit einer Masse-Auswahlleitung verbunden sein, und Masse-Auswahltransistoren GST in verschiedenen Zeilen können mit verschiedenen Masse-Auswahlleitungen verbunden sein.
  • In der veranschaulichten Ausführungsform der 4 weist jeder Zellstrang einen Strang-Auswahltransistor SST und einen Masse-Auswahltransistor GST auf. Jeder Zellstrang kann jedoch zwei oder mehr Strang-Auswahltransistoren und/oder zwei oder mehr Masse-Auswahltransistoren aufweisen.
  • Weiterhin kann jeder Zellstrang einen oder mehrere Dummy-Speicherzellen aufweisen.
  • 6 ist ein Konzeptdiagramm, welches eine Herangehensweise veranschaulicht, um eine physikalische Seite von Speicherzellen in dem Kontext einer Wortleitung in den beispielhaften Speicherblöcken der 5 zu definieren. Bezug nehmend auf die 4, 5 und 6 wird angenommen, dass jede Speicherzelle MC1 bis MC6 eine 3-Bit-MLC ist, welche in der Lage ist, Einzel-Bit-LSB-Daten, CSB-Daten und MSB-Daten gemäß jeweiligen logischen Seiten (beispielsweise einer LSB-Seite, einer CSB-Seite und einer MSB-Seite) zu speichern. Die erste, zweite und dritte Speicherzelle der 6 sind, während sie gemeinhin mit einer ersten Wortleitung (WL1) in dem 3D-Speicher-zell-Array der 4 und 5 verbunden sind, jeweils in einer ersten Zeile, einer zweiten Zeile und einer dritten Zeile angeordnet. Demnach sind mehrere Zeilen (und in bestimmten Ausführungsformen des erfinderischen Konzepts entsprechende physikalische Seiten) von MLC gemeinhin mit derselben Wortleitung innerhalb eines 3D-Speicher-zell-Array verbunden. Das heißt, dass konsistent mit einer gegebenen Speicherzell-Array-Definition beispielsweise Speicherzellen, welche in derselben Zeile verbunden sind, unter einer Mehrzahl von Zeilen, welche gemeinhin mit der Wortleitung verbunden sind, als eine (1) physikalische Seite angesehen werden können, welche eine bestimmte Gesamt-Bit-Seitenkapazität und Einzel-Bit-Seitenkapazität hat.
  • Demnach sind in dem veranschaulichten Beispiel der 6 die erste, zweite und dritte Speicherzelle in jeweiligen physikalischen Seiten angeordnet. Jede physikalische Seite weist mehrere logische Einzel-Bit- Seiten (beispielsweise LSB-Seite, CSB-Seite und MSB-Seite) auf. Weiterhin können die mehreren physikalischen Seiten, welche gemeinhin mit der ersten Wortleitung verbunden sind, jeweils unter Verwendung der Strang-Auswahlleitungen SSL1, SSL2 und SSL3 ausgewählt werden. Die Konzept-Veranschaulichung der 7 beschreibt diese Herangehensweise in einigen zusätzlichen Details.
  • 7 veranschaulicht eine Verbindung von MLC, welche in mehreren Seiten angeordnet sind und gemeinhin mit einer Strang-Auswahlleitung innerhalb des Speicherzell-Array der 4 und 5 verbunden sind. Bezug nehmend auf die 4, 5 und 7 ist eine erste Strang-Auswahlleitung SSL1 mit einer Mehrzahl von physikalischen Seiten verbunden, wobei jede physikalische Seite mit einer jeweiligen Wortleitung (beispielsweise WL4, WL5 und WL6) verbunden ist. Hier wiederum wird angenommen, dass jede der ersten, zweiten und dritten Speicherzelle eine 3-Bit-MLC ist, welche in der Lage ist, Einzel-Bit-LSB-Daten, CSB-Daten und MSB-Daten gemäß jeweiligen logischen Seiten (beispielsweise einer LSB-Seite, einer CSB-Seite und einer MSB-Seite) zu speichern.
  • 8 ist ein Diagramm, welches bestimmte Steuerspannungen veranschaulicht, welche während einer Programmieroperation, welche auf die MLC in der nichtflüchtigen 3D-Speichervorrichtung der 1-7 gerichtet ist, verwendet werden können. In 8 kann die horizontale Achse eine Zeit T anzeigen und die vertikale Achse zeigt einen Pegel einer angelegten Spannung V an.
  • Bezug nehmend auf 8 kann eine Programmierspannung VPGM an eine ausgewählt aus Wortleitungen WL1 bis WL6 angelegt werden. Dann können Verifikationsspannung VFY1 bis VFY7 sequentiell an die ausgewählte Wortleitung angelegt werden. Die Verifikationsspannungen VFY1 bis VFY7 können Spannungen sein, um Multi-Seitendaten zu derselben Zeit zu programmieren. Die Verifikationsspannungen VFY1 bis VFY7 können Spannungen sein, um zu bestimmen, ob Grenzspannungen von programmierten Speicherzellen Zielpegel erreichen.
  • Wo eine Programmier-fehlgeschlagene Speicherzelle erfasst wird, kann die Programmierspannung VPGM wiederum an die ausgewählte Wortleitung angelegt werden, nachdem die Programmierspannung VPGM um ein definiertes Inkrement ΔV erhöht ist. Danach können die Verifikationsspannungen VFY1 bis VFY7 sequentiell an die ausgewählte Wortleitung angelegt werden.
  • Die Programmierspannung VPGM und die Verifikationsspannungen VFY1 bis VFY7 können iterativ an die MLC der ausgewählten Wortleitung angelegt werden bis zu einer solchen Zeit, wenn alle der Speicherzellen passiert (d.h. erfolgreich programmiert) sind, wobei die Programmierspannung VPGM um ΔV für jede nachfolgende Iteration inkrementiert werden kann. Wie herkömmlich anerkannt werden wird, wird auf diesen Typ von Programmieroperation generisch Bezug genommen als Incremental Step Pulse Programming (ISPP, Inkrementales Stufenpuls-Programmieren), und es gibt viele verschiedene Herangehensweisen zu ISPP - das veranschaulichte Beispiel der 8 ist nur eine.
  • 9 ist ein Flussdiagramm, welches ein Programmierverfahren zusammenfasst, welches in Übereinstimmung mit bestimmten Ausführungsformen des erfinderischen Konzepts verwendet werden kann. Das Verfahren, welches in 9 beschrieben ist, nimmt eine nichtflüchtige Speicherperspektive an, wohingegen das Verfahren, welches in Bezug auf die folgende 10 beschrieben ist, eine Controller-Perspektive annimmt.
  • Bezug nehmend auf die 2 und 9 empfängt das Speichersystem 1200 erste Daten von einer externen Quelle wie beispielsweise einem Host 1100 über einen Controller 1210 (S110). Die ersten Daten können für das Speichersystem 1200 als Teil einer ersten Programmieroperation vorgesehen worden sein, und es wird für Zwecke dieser Erklärung angenommen, dass die ersten Daten eine 2N-Größe größer als die Einzel-Bit-Seitenkapazität der physikalischen Seiten haben, welche in dem konstituierenden NVM 1220 des Speichersystems 1200 definiert sind.
  • Bei einem Empfang durch das Speichersystem 1200 können die ersten Daten bereits gemäß der Einzel-Bit-Seitenkapazität von physikalischen Seiten in dem NVM 1220 des Speichersystems 1200 partitioniert worden sein. Demnach können die partitionierten ersten Daten über eine Mehrzahl von physikalischen Seiten in dem NVM 1220 unter Verwendung einer Einzel-Bit-Programmiertechnik gespeichert werden (S120).
  • Beispielsweise kann jede physikalische Seite einen Satz von Speicherzellen aufweisen, welche gemeinhin mit der Zeile aus den Speicherzellen (und möglicherweise aus einer Mehrzahl von Zeilen) verbunden sind, die mit der Wortleitung verbunden ist. Wie obenstehend beschrieben ist, kann jede physikalische Seite eine Mehrzahl von logischen Seiten (beispielsweise eine LSB-Seite, eine CSB-Seite und eine MSB-Seite) aufweisen. Weiterhin kann, wenn ein 3D-Speicherzell-Array angenommen wird, das Speichersystem 1200 aus einer Mehrzahl von physikalischen Seiten, welche mit der Wortleitung verbunden sind, durch ein Auswählen einer Strang-Auswahlleitung SSL auswählen. Demnach können für Zwecke der ersten Programmieroperation das Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten (über eine LSB-Seite oder eine andere logische Seite) über eine Mehrzahl von physikalischen Seiten die physikalischen Seiten „erste ausgewählte physikalische Seiten“ genannt werden.
  • Dann empfängt zu einem späteren Zeitpunkt folgend auf den Empfang der partitionierten ersten Daten das Speichersystem 1200 zweite Daten von einer externen Quelle wie beispielsweise einem Host 1100 über einen Controller 1210 (S130). Die zweiten Daten können für das Speichersystem 1200 als ein Teil einer zweiten (später auftretenden) Programmieroperation vorgesehen worden sein, und es wird zum Zweck dieser Erklärung angenommen, dass die zweiten Daten eine 2N-Größe haben, wenn auch unterschiedlich von der Größe der ersten Daten, noch größer als die Einzel-Bit-Seitenkapazität der physikalischen Seiten.
  • Demzufolge werden die zweiten Daten in Übereinstimmung mit der Rest-Bit-Kapazität der ersten ausgewählten physikalischen Seiten unterteilt worden sein derart, dass wenigstens eine der ersten ausgewählten physikalischen Seiten (hierauf wird Bezug genommen als „zweite ausgewählte physikalische Seite(n)“ verwendet wird, um die zweiten Daten unter Verwendung einer Multi-Bit-Programmiertechnik zu speichern (S140). Es sollte festgehalten werden, dass das zweite Programmieren von Multi-Bit-Daten simultan bezüglich mehreren Bits der Multi-Bit-Daten durchgeführt wird, welche in den MLC jeder zweiten ausgewählten physikalischen Seite gespeichert sind.
  • Demnach werden die partitionierten ersten Daten zu der 3-Bit-MLC programmiert, angenommen in dem Arbeitsbeispiel unter Verwendung einer Einzel-Bit-Programmiertechnik. Demnach wird jede MLC der ersten ausgewählten physikalischen Seiten zu einem Löschzustand oder einem programmierten Zustand (d.h. einem Datenwert von „1“ oder „0“) programmiert werden (siehe 13). Dann werden die zweiten Daten zu der 3-Bit-MLC unter Verwendung einer Multi-Bit-Programmiertechnik programmiert, nach welcher jede MLC der zweiten ausgewählten Seite(n) zu einem von acht (8) möglichen Zuständen programmiert werden wird, jeweils entsprechend den 3-Bit-Datenwerten von „111“, „110“, „101“, „011“, „100“, „010“, „001“ und „000“ (siehe 17). Der zweite Programmierübergang der Grenzspannungsverteilungen der MLC in den zweiten ausgewählten physikalischen Seiten von einem Einzel-Bit-Datenwert zu einem 3-Bit-Datenwert geschieht simultan in Bezug auf zwei der drei Bits, welche durch jede MLC gespeichert werden. In anderen Worten gesagt ist die zweite Programmieroperation eine so genannte „Ein-Schuss-Programmieroperation“ bzw. „One-Shot-Programmieroperation“.
  • In dem Arbeitsbeispiel können die Einzel-Bit-Daten, welche zuerst zu der MLC der ersten ausgewählten physikalischen Seiten programmiert werden, LSB-Daten sein, während die Multi-Bit-Daten, welche als Zweites zu den zweiten ausgewählten physikalischen Seiten programmiert werden, CSB- und MSB-Daten sein können.
  • Die vorangehende Annahme jedoch über die 3-Bit-Natur der MLC ist für den Umfang des erfinderischen Konzepts nicht beschränkend. Wenn 4-Bit-MLC verwendet werden, kann die zweite Programmieroperation simultan zweite bis vierte signifikante Bits der MLC folgend auf die erste Programmieroperation programmieren, welche auf nur das erste signifikante Bit gerichtet ist. Ähnlich sind 5-Bit und höhere MLC anfällig für die Vorzüge, welche durch Ausführungsformen des erfinderischen Konzepts ermöglicht werden.
  • 10 ist ein Flussdiagramm, welches das Programmierverfahren der 9 aus der Perspektive des Controllers 1210 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts zusammenfasst. Ähnliche Annahmen werden getätigt, um mit dem Arbeitsbeispiel fortzufahren.
  • Demnach empfängt der Controller 1201 des Speichersystems 1200 die ersten Daten von dem Host 1010 (S210) und partitioniert die ersten Daten dann gemäß der Einzel-Bit-Seitenkapazität von physikalischen Seiten, welche in dem NVM 1220 definiert sind (S220). Danach werden die partitionierten ersten Daten als Einzel-Bit-Daten über eine Mehrzahl von ersten ausgewählten physikalischen Seiten gespeichert (S230).
  • Dann empfängt zu einem späteren Zeitpunkt folgend auf den Empfang der partitionierten ersten Daten der Controller 1210 des Speichersystems 1200 zweite Daten von dem Host 1100 (S240). Der Controller 1210 vergleicht die Größe der zweiten Daten mit der Restbit-Seitenkapazität der ersten ausgewählten physikalischen Seiten und bestimmt, wie viele der ersten ausgewählten physikalischen Seiten notwendig sind, um die zweiten Daten als Multi-Bit-Daten (die zweiten ausgewählten physikalischen Seiten) zu speichern. Dann werden die zweiten Daten zu den zweiten physikalischen Seiten als Multi-Bit-Daten programmiert, wobei wenigstens zwei Bit der Multi-Bit-Daten simultan zu der MLC der zweiten ausgewählten physikalischen Seiten programmiert werden (S250).
  • Wie voranstehend festgehalten, sahen die Programmierverfahren, welche in Bezug auf die 9 und 10 beschrieben sind, eine sehr effiziente Verwendung eines zur Verfügung stehenden Speicherplatzes vor, trotz einer möglichen Nicht-Übereinstimmung zwischen der 2N-Größe der ersten und zweiten Daten und der Odd-Bit (beispielsweise 3-Bit)-Datenspeicherkapazität der MLC in einer nichtflüchtigen Speichervorrichtung. Als ein Ergebnis werden weniger Altdaten-Sammlungsoperationen notwendig werden, um eine Verschwendung von zur Verfügung stehenden Datenspeicherkapazitäten in dem nichtflüchtigen Speicher zu vermeiden, wodurch die Betriebseffizienz des Speichersystems verbessert wird. Weniger Housekeeping- bzw. Hausmeister-Operationen erstrecken die Lebensdauer der nichtflüchtigen Speicherzellen und verringern den Gesamtleistungsverbrauch.
  • Aus dem Voranstehenden können Fachleute leicht verstehen, wie eine dritte und nachfolgende Programmieroperation ähnlich gehandhabt werden können. Jede Programmieroperation wiederum kann ausgeführt werden unter Verwendung, wo zugänglich, erster ausgewählter physikalischer Seiten, welche eine zur Verfügung stehende Datenspeicherkapazität haben. In Abwesenheit von ersten ausgewählten physikalischen Seiten, welche eine Datenspeicherkapazität zur Verfügung stehend haben, können „neue“ erste ausgewählte physikalische Seiten erzeugt werden, wie obenstehend erklärt ist. Demnach können eintreffende Programmierdaten irgendeiner angemessenen Größe und strukturellen Definition effizient verarbeitet und programmiert werden. Altdaten-Definitionen können ohne einen Verlust von Datenprogrammierung und Datenspeicher-Effizienz beherbergt werden.
  • Weitere Beispiele von bestimmten Programmierverfahren gemäß Ausführungsformen des erfinderischen Konzepts werden in Bezug auf die 11 bis 17 beschrieben werden.
  • 11 ist ein Blockschaltbild, welches eine Verwendervorrichtung 2000 gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 11 weist die Verwendervorrichtung 2000 allgemein einen Host 2100 und ein Speichersystem 2200 auf. Das Speichersystem 2000 weist einen Controller 2210 und einen nichtflüchtigen Speicher 2220 auf. Der nichtflüchtige Speicher 2220 weist einen Seitenpuffer 2221 und ein Speicherzell-Array auf, welches wenigstens zwei oder mehr physikalische Seiten 2222 und 2223 aufweist.
  • Es wird angenommen, dass der Host 2100 eine digitale Vorrichtung ist, welche Daten zu dem nichtflüchtigen Speicher in einem Datensatz überträgt, welcher eine Größe von 2N KB hat, wobei N eine ganze Zahl größer als 1 ist.
  • Es wird angenommen, dass jede der physikalischen Seiten 2222 und 2223 eine Einzel-Bit-Seitenkapazität von 8 KB hat, wobei die Einzel-Bit-Seitenkapazität eine Datenkapazität für die physikalische Seite anzeigt, wenn jede Speicherzelle der physikalischen Seite als eine Einzel-Pegel-Zelle (SLC) agiert. Demnach wird die Einzel-Bit-Seitenkapazität jeder der physikalischen Seiten 2222 und 2223 auf der Anzahl von Speicherzellen basiert sein, welche in der physikalischen Seite enthalten sind. Demnach wird, wenn jede der physikalischen Seiten 2222 und 2223 8 K Speicherzellen aufweist, die Einzel-Bit-Seitenkapazität jeder der physikalischen Seiten 2222 und 2223 8 KB sein. Nur Speicherzellen in einer physikalischen Seite, welche tatsächlich verwendet wird, um Daten zu speichern, werden bei der Bestimmung der Einzel-Bit-Seitenkapazität berücksichtigt. So werden Dummy-Speicherzellen nicht für diesen Zweck berücksichtigt.
  • Unter der Annahme, dass jede der Speicherzellen in jeder der physikalischen Seiten 2222 und 2223 eine 3-Bit-MLC ist, wird die Gesamt-Bit-Seitenkapazität für jede der physikalischen Seiten 2222 und 2223 ein Produkt der Anzahl von MLC-Bits (beispielsweise 3) und der Einzel-Bit-Seitenkapazität sein. Demnach wird angenommen, dass jede der physikalischen Seiten 222 und 223 eine Gesamt-Bit-Seiten-Datenkapazität von 24 KB oder (3x8 KB) hat.
  • Wie in 11 veranschaulicht ist, wird angenommen, dass der Host 2100 erste Daten (Data1), welche eine Größe von 16 KB haben, während einer ersten Programmieroperation zu dem Speichersystem 2200 überträgt. In Antwort darauf partitioniert der Controller 2210 die 16 KB von ersten Daten gemäß der 8 KB Einzel-Bit-Kapazität der physikalischen Seiten 2222 und 2223. Dann werden separate partitionierte erste Daten, von welchen jede 8 KB in der Größe haben, als Einzel-Bit-Daten zu der MLC der physikalischen Seiten 2222 und 2223 (den ersten ausgewählten physikalischen Seiten) programmiert. In dem veranschaulichten Beispiel haben die physikalischen Seiten dieselbe Einzel-Bit-Seitenkapazität, dies muss jedoch nicht immer der Fall sein.
  • In bestimmten Ausführungsformen kann der Controller 2210 die Einzel-Bit-Seitenkapazität für jede der physikalischen Seiten 2222 und 2223 durch Bezugnahme auf Meta-Informationen, welche den nichtflüchtigen Speicher 2200 charakterisieren, bestimmen.
  • 12 ist ein Diagramm, welches das Programmierbeispiel, welches in Bezug auf 11 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts beschrieben ist, weiter veranschaulicht. Bezug nehmend auf 12 wird wiederum angenommen, dass jede der physikalischen Seite 2222 und 2223 in Bezug auf mehrere logische Seiten (beispielsweise eine LSB-Seite, eine CSB-Seite und eine MSB-Seite) definiert ist.
  • Während der ersten Programmieroperation werden partitionierte erste Daten separat in ersten und zweiten physikalischen Seiten 2222 und 2223 über einen Seitenpuffer 2221 unter Verwendung einer Einzel-Bit-Programmieroperation gespeichert.
  • Demnach werden während der ersten Programmieroperation die partitionierten Daten in den jeweiligen LSB-Seiten der ersten und zweiten physikalischen Seiten 2222 und 2223 gespeichert. Da jede der LSB-Seiten der ersten und zweiten physikalischen Seiten 2222 und 2223 eine Datenkapazität von 8 KB hat, werden die zwei Sätze von partitionierten ersten Daten, welche eine 8 KB Größe haben, die LSB-Seite der ersten und zweiten physikalischen Seiten 2222 und 2223 vollständig füllen.
  • 13 ist ein Konzeptdiagramm, welches weiterhin die möglichen Ergebnisse der ersten Programmieroperation der 12 veranschaulicht. Bezug nehmend auf 13 wird der logische Zustand jeder MLC in der ersten physikalischen Seite in einer zweiten physikalischen Seite, welche der ersten Programmieroperation folgt, ein Löschzustand E0 oder ein Programmierzustand P1 sein.
  • 14 ist ein Diagramm, welches die Beschreibung des Programmierbeispiels der 11 bis 13 erweitert.
  • Während einer zweiten Programmieroperation, welche auf die erste Programmieroperation folgt, sendet der Host 2100 zweite Daten (Data2) zu dem Speichersystem 2200. Hier wird wiederum angenommen, dass die Größe der zweiten Daten 16 KB ist.
  • Bei einem Empfangen der zweiten Daten vergleicht der Controller 2210 die Größe der zweiten Daten mit der Rest-Bit-Kapazität der physikalischen Seiten, welche als „erste ausgewählte physikalische Seiten“ designiert sind (beispielsweise physikalische Seiten 2222 und 2223, welche Einzel-Bit-Daten haben, welche vorangehend darin gespeichert wurden). Da die Rest-Bit-Kapazität jeder der ersten ausgewählten Seiten (2222 und 2223) 16 KB ist, wird nur eine der ersten ausgewählten physikalischen Seiten als eine zweite ausgewählte physikalische Seite benötigt (beispielsweise physikalische Seite 2222).
  • Demzufolge wird während der zweiten Programmieroperation der gesamte Satz von zweiten Daten in der zweiten ausgewählten physikalischen Seite 2222 als Multi-Bit (beispielsweise 2-Bit)-Daten gespeichert. Konsistent mit dem Vorangehenden werden die zweiten Daten in die CSB- und MSB-Seiten der ersten physikalischen Seite 2222 während der zweiten Programmieroperation programmiert und keine zwischenliegende Löschoperation muss auf den MLC der ersten physikalischen Seite 2222 zwischen der ersten und der zweiten Programmieroperation durchgeführt werden. Wie zuvor werden die Multi-Bit-Daten der zweiten Programmieroperation simultan zu den CSB- und MSB-Seiten der ersten physikalischen Seite 2222 programmiert werden.
  • Die 15 und 16 sind Diagramme, welche die zweite Programmieroperation der 11 bis 14 in dem Kontext von verschiedenen Ausführungsformen des erfinderischen Konzepts noch weiter veranschaulichen.
  • Bezug nehmend auf 15 speichert die erste physikalische Seite 2222 bereits Einzel-Bit-LSB-Seitendaten gemäß der ersten Programmieroperation, die CSB-Seite und die MSB-Seite jedoch verbleiben unverwendet oder „leer“ (haben beispielsweise einen Löschzustand). Während der zweiten Programmieroperation werden die zweiten Daten von dem Controller 2210 zu dem Seitenpuffer 2221 übertragen, wobei angenommen wird, dass der Seitenpuffer 2221 eine Mehrzahl von Latches 2221a, 2221b und 2221c aufweist, welche angepasst sind, um ankommende Programmierdaten vorübergehend zu speichern.
  • Der Seitenpuffer 2221 kann die LSB-Seite, welche auf bzw. bei der ersten physikalischen Seite 2222 gespeichert ist, lesen und sie bei dem LSB-Latch 2221c speichern, und die zweiten Daten (Data2) können jeweils bei den CSB- und MSB-Latches 2221b und 2221a des Seitenpuffers 2221 gespeichert werden.
  • Bezug nehmend auf 16 kann der Seitenpuffer 2221 nun die zweiten Daten bei der ersten physikalischen Seite 2222 basierend auf Daten, welche bei der Mehrzahl von Latches 2221a, 2221b und 2221c während der zweiten Programmieroperation gespeichert werden, programmieren. Während der zweiten Programmieroperation kann jede der MLC der physikalischen Seite 2222 in einen von acht möglichen logischen Zuständen unter Verwendung der 3-Bit-Daten (LSB, CSB und MSB), welche in dem Seitenpuffer 2221 gespeichert sind, programmiert werden, wobei mehrere Daten-Bits (hierin CSB und MSB-Daten-Bits) simultan programmiert werden.
  • In bestimmten Ausführungsformen kann die zweite Programmieroperation unter Verwendung iterativer Schleifen, welche durch eine ISPP-Herangehensweise definiert sind, durchgeführt werden.
  • 17 ist ein Konzeptdiagramm, welches weiterhin einen Übergang zwischen logischen Zuständen für MLC während der zweiten Programmieroperation veranschaulicht. Bezug nehmend auf 17 ist dort eine Variation in logischen Zuständen von Speicherzellen, welche in einer ersten physikalischen Seite 2222 enthalten sind, veranschaulicht.
  • Hier kann eine MLC der ersten physikalischen Seite 2222 ein Bit von ersten Daten (einen Löschzustand E0 oder einen Programmierzustand P1) folgend der ersten Programmieroperation speichern, wobei der Löschzustand E0 einem LSB-Datenwert von „1“ zugeordnet werden kann, und der Programmierzustand P1 einem LSB-Datenwert von „0“ zugeordnet ist.
  • Während der zweiten Programmieroperation werden zwei Datenbits der zweiten Daten zusätzlich in der MLC gespeichert. Demnach wird die MLC auf einen von acht möglichen logischen Zuständen E0, P1, P2, P3, P4, P5, P6 und P7 programmiert werden entsprechend jeweils drei Bit (LSB-, CSB- und MSB-)-Datenwerten von 10", „101“, „011“, „100“, „010“, „001“ und „000“.
  • Während der zweiten Programmieroperation werden die MLC der ersten physikalischen Seite 2222 auf einen von acht logischen Zuständen E0, P1, P2, P3, P4, P5, P6 und P7 programmiert, so dass mehrere Daten-Bits (beispielsweise die CSB- und MSB-Bits) simultan zu der MLC programmiert werden.
  • 18 ist ein Blockschaltbild, welches weiterhin ein anderes Beispiel der zweiten Programmieroperation der 11 bis 14 in dem Kontext von bestimmten Ausführungsformen des erfinderischen Konzepts veranschaulicht.
  • Bezug nehmend auf 18 weist eine Verwendervorrichtung 3000 einen Host 3100 und ein Speichersystem 3200 auf. Die Verwendervorrichtung 3000 der 18 kann gleich konfiguriert sein wie die Verwendervorrichtung der 11.
  • Wie obenstehend beschrieben ist, kann das Speichersystem 3200 erste Daten, welche durch den Host 3100 vorgesehen sind, partitionieren und die partitionierten ersten Daten über eine Mehrzahl von ersten ausgewählten physikalischen Seiten 3222 und 3223 programmieren. Folgend der ersten Programmieroperation kann das Speichersystem 3200 zweite Daten (Data2) von dem Host 3100 als einen Teil einer zweiten Programmieroperation empfangen. Hier wird jedoch angenommen, dass die zweiten Daten Data2 eine Größe von 32 KB haben.
  • Demzufolge unterteilt der Controller 3210 die zweiten Daten unter Verwendung einer Rest-Bit-Seitenkapazität der ersten ausgewählten physikalischen Seiten, um eine Anzahl von zweiten ausgewählten physikalischen Seiten unter den ersten ausgewählten physikalischen Seiten zu bestimmen. Wie in 11 wird angenommen, dass die Gesamt-Bit-Seitenkapazität der ersten ausgewählten physikalischen Seiten 3222 und 3223 24 KB ist. Demnach wird in Hinsicht auf die 8 KB Einzel-Bit-Seitenkapazität angenommen, dass die Rest-Bit-Seitenkapazität der ersten ausgewählten physikalischen Seiten 3222 und 3223 16 KB ist.
  • Da die Größe der zweiten Daten 32 KB ist, sind beide der ersten ausgewählten physikalischen Seiten 3222 und 3223 als zweite ausgewählte physikalische Seiten designiert und jede wird verwendet, um 16 KB der zweiten Daten zu speichern. Im veranschaulichten Beispiel wird angenommen, dass der Controller 3210 die zweiten Daten (Data2) in die zwei Sätze von unterteilten Daten unterteilt. Danach kann der Seitenpuffer 3221 sequentiell oder simultan die zweiten ausgewählten physikalischen Seiten 3222 und 3223 programmieren.
  • In bestimmten Ausführungsformen kann der nichtflüchtige Speicher 3220 die zweiten ausgewählten physikalischen Seiten unter Verwendung einer Strang-Auswahlleitung auswählen. Das heißt, dass die zweiten ausgewählten physikalischen Seiten 3222 und 3223 physikalische Seiten sein können, welche durch eine gemeinsame Auswahlleitung verbunden sind. In anderen Ausführungsformen jedoch können die zweiten ausgewählten physikalischen Seiten 3222 und 3223 physikalische Seiten sein, welche mit unterschiedlichen Strang-Auswahlleitungen verbunden sind.
  • Der Controller 3210 steuert den nichtflüchtigen Speicher 3220 derart, dass zwei Sätze von 16 KB-zweiten Daten jeweils zu den zweiten ausgewählten physikalischen Seiten 3222 und 3223 programmiert werden. Der Controller 3210 wird simultan Multi-Bit-Daten in eine Mehrzahl von logischen Seiten innerhalb jeder der zweiten ausgewählten physikalischen Seiten 3222 und 3223 programmieren.
  • 19 ist ein Blockschaltbild, welches ein Speichersystem gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 19 weist ein Speichersystem 4000 eine nichtflüchtige Speichervorrichtung 4100 und einen Controller 4200 auf. Die nichtflüchtige Speichervorrichtung 4100 weist eine Mehrzahl von nichtflüchtigen Speicherchips auf, welche eine Mehrzahl von Gruppen bilden. Nichtflüchtige Speicherchips in jeder Gruppe können konfiguriert sein, so dass sie mit dem Controller 4200 über einen gemeinsamen Kanal kommunizieren. In der veranschaulichten Ausführungsform kommuniziert die Mehrzahl von nichtflüchtigen Speicherchips mit dem Controller 4200 über eine Mehrzahl von Kanälen CH1 bis CHk.
  • Jeder der nichtflüchtigen Speicherchips kann gleich konfiguriert sein wie eine nichtflüchtige Speichervorrichtung 100 gemäß einer Ausführungsform des erfinderischen Konzepts. Das heißt, die nichtflüchtige Speichervorrichtung 4100 kann (nach 4) eine Mehrzahl von Zellsträngen CS11, CS12, CS21 und CS22 aufweisen, welche auf einem Substrat 111 vorgesehen sind, und jeder der Zellstränge CS11, CS12, CS21 und CS22 kann eine Mehrzahl von Zelltransistoren aufweisen, welche in einer Richtung rechtwinklig zu dem Substrat 111 geschichtet sind.
  • In 19 ist ein Fall beschrieben, in dem ein Kanal mit einer Mehrzahl von nichtflüchtigen Speicherchips verbunden ist. Das Speichersystem 4000 kann jedoch derart modifiziert werden, dass ein Kanal mit nur einem nichtflüchtigen Speicherchip verbunden ist.
  • Die nichtflüchtige Speichervorrichtung 4100 und der Controller 4200 können im Wesentlichen ähnlich zu der nichtflüchtigen Speichervorrichtung und dem Controller der 2 sein mit der Ausnahme, dass der Controller 4200 mit der Mehrzahl von nichtflüchtigen Speicherchips über den gemeinsamen Kanal kommuniziert.
  • 20 ist ein Blockschaltbild, welches ein Festkörperlaufwerk (SSD=Solid State Drive) gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 20 weist eine Verwendervorrichtung 5000 einen Host 5100 und ein SSD 5200 auf. Das SSD 5200 weist einen SSD-Controller 5210, einen Pufferspeicher 5220 und eine nichtflüchtige Speichervorrichtung 5230 auf.
  • Der SSD-Controller 5210 kann eine physikalische Verbindung zwischen dem Host 5100 und dem SSD 5200 vorsehen. Der SSD-Controller 5210 kann eine Schnittstelle mit dem SSD 5200 entsprechend einem Bus-Format des Host 5100 vorsehen. Insbesondere kann der SSD-Controller 5210 einen Befehl, welcher von dem Host 5100 vorgesehen ist, um auf die nichtflüchtige Speichervorrichtung 5230 basierend auf dem Dekodier-Ergebnis zuzugreifen, dekodieren.
  • Der SSD-Controller 5210 kann mit dem Host 5100 und der nichtflüchtigen Speichervorrichtung 5230 verbunden sein. Der SSD-Controller 5210 kann konfiguriert sein, um auf die nichtflüchtige Speichervorrichtung 5230 in Antwort auf eine Anfrage von dem Host 5100 zuzugreifen. Der SSD-Controller 5210 kann eine Schnittstelle zwischen dem Host 5100 und der nichtflüchtigen Speichervorrichtung 5230 vorsehen. Der SSD-Controller 5210 kann konfiguriert sein, um Firmware zum Steuern der nichtflüchtigen Speichervorrichtung 5230 zu treiben. Der SSD-Controller 5210 kann konfiguriert sein, um ein Steuersignal CTRL, einen Befehl CMD und eine Adresse ADDR für die nichtflüchtige Speichervorrichtung 5230 vorzusehen.
  • Der SSD-Controller 5210 kann verwendet werden, um erste Daten zu partitionieren, welche von dem Host 5100 empfangen werden, um die partitionierten ersten Daten über eine Mehrzahl von ersten ausgewählten physikalischen Seiten der nichtflüchtigen Speichervorrichtung 5230 als Einzel-Bit-Daten während der ersten Programmieroperation zu speichern. Dies kann im Wesentlichen gleich wie die erste Programmieroperation durchgeführt werden, in welcher ein Controller 3210 (es sei Bezug genommen auf 11) partitionierte erste Daten speichert.
  • Folgend der ersten Programmieroperation kann der SSD-Controller 5210 zweite Daten von dem Host 5100 empfangen. Der SSD-Controller 5210 kann die nichtflüchtige Speichervorrichtung 5230 derart steuern, dass die zweiten Daten in wenigstens eine einer Mehrzahl von ersten ausgewählten physikalischen Seiten als Multi-Bit-Daten während der zweiten Programmieroperation programmiert werden. Die zweite Programmieroperation kann konsistent mit der Beschreibung, welche unter Bezugnahme auf 9 vorgesehen ist, durchgeführt werden.
  • Das Bus-Format des Host 5100 kann USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI Express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) und dergleichen aufweisen.
  • Der Pufferspeicher 5220 kann vorübergehend Schreibdaten, welche von dem Host 5100 vorgesehen sind, oder Daten, welche von der nichtflüchtigen Speichervorrichtung 5230 ausgelesen werden, speichern. In dem Fall, dass Daten, welche in der nichtflüchtigen Speichervorrichtung 5230 existieren, gecached werden, kann bei einer Leseanforderung des Host 5100 der Pufferspeicher 5220 eine Cache-Funktion unterstützen, um gecachte Daten direkt für den Host 5100 vorzusehen. Im Allgemeinen kann eine Datenübertragungsgeschwindigkeit eines Bus-Formats (beispielsweise SATA oder SAS) des Host 5100 höher sein als diejenige eines Speicherkanals des SSD 5200. Das heißt, dass in dem Fall, dass eine Schnittstellengeschwindigkeit des Host 5100 bemerkenswert schnell ist, eine Verringerung der Leistungsfähigkeit aufgrund einer Geschwindigkeitsdifferenz durch ein Vorsehen dessen, dass der Pufferspeicher 5220 eine große Speicherkapazität hat, minimiert werden kann.
  • Der Pufferspeicher 5220 kann aus einem synchronen DRAM gebildet sein, um ausreichend Pufferung für das SSD 5200, welches als eine Hilfs-Massenspeichervorrichtung verwendet wird, vorzusehen. Der Pufferspeicher 5220 ist jedoch nicht auf diese Offenbarung beschränkt.
  • Die nichtflüchtige Speichervorrichtung 5230 kann als ein Speichermedium des SSD 5200 vorgesehen sein. Beispielsweise kann die nichtflüchtige Speichervorrichtung 5230 aus einer NAND-Flashspeichervorrichtung gebildet sein, welche eine Massenspeicherkapazität hat. Die nichtflüchtige Speichervorrichtung 5230 kann aus einer Mehrzahl von Speichervorrichtungen gebildet sein. In diesem Fall können die Speichervorrichtungen mit dem SSD-Controller 5210 jeweils durch eine Kanaleinheit verbunden sein. Als ein Speichermedium kann die nichtflüchtige Speichervorrichtung 5230 aus einem NAND-Flashspeicher gebildet sein. Die nichtflüchtige Speichervorrichtung 5230 ist jedoch nicht auf eine NAND-Flashspeichervorrichtung beschränkt. Beispielsweise kann ein Speichermedium des SSD 5200 aus einem PRAM, einem MRAM, einem ReRAM, einem FRAM, einem NOR-Flashspeicher und dergleichen gebildet sein. Weiterhin kann das erfinderische Konzept auf ein Speichersystem angewandt werden, welches unterschiedliche Typen von Speichervorrichtungen zusammen verwendet.
  • Die nichtflüchtige Speichervorrichtung 5230 kann im Wesentlichen gleich wie die nichtflüchtige Speichervorrichtung, welche im Zusammenhang mit den 1 und 2 beschrieben ist, konfiguriert sein.
  • 21 ist ein Diagramm, welches eine Speicherkarte gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 21 weist eine Speicherkarte 6000 eine nichtflüchtige Speichervorrichtung 6100, einen Controller 6200 und einen Verbinder 6300 auf.
  • Die nichtflüchtige Speichervorrichtung 6100 kann gleich wie eine nichtflüchtige Speichervorrichtung 100 der 1 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts konfiguriert sein. Das heißt, dass die nichtflüchtige Speichervorrichtung 6100 (gemäß bzw. nach den 4 und 5) eine Mehrzahl von Zellsträngen CS 11, CS12, CS21 und CS22 aufweisen kann, welche an einem Substrat vorgesehen sind, und jeder der Zell stränge CS11, CS12, CS21 und CS22 kann eine Mehrzahl von Zelltransistoren aufweisen, welche in einer Richtung rechtwinklig zu dem Substrat 111 geschichtet sind.
  • Der Controller 6200 kann mit der nichtflüchtigen Speichervorrichtung 6100 verbunden sein. Der Controller 6200 kann konfiguriert sein, so dass er auf die nichtflüchtige Speichervorrichtung 6100 zugreift. Der Controller 6200 kann konfiguriert sein, um die nichtflüchtige Speichervorrichtung 6100 mit einer Schnittstelle vorzusehen. Der Controller 6200 kann konfiguriert sein, um die nichtflüchtige Speichervorrichtung 6100 mit einem Steuersignal CTRL, einem Befehl CMD und einer Adresse ADDR vorzusehen.
  • Der Verbinder 6300 kann die Speicherkarte 6000 mit einem Host elektrisch verbinden.
  • Der Controller 6200 kann verwendet werden, um erste Daten, welche von dem Host über den Verbinder 6300 empfangen werden, zu partitionieren, und um die partitionierten ersten Daten über eine Mehrzahl von physikalischen Seiten der nichtflüchtigen Speichervorrichtung 6100 während der ersten Programmieroperation zu speichern. Dies kann im Wesentlichen gleich wie eine erste Programmieroperation, welche durch den Controller 3210 der 11 durchgeführt wird, durchgeführt werden.
  • Folgend der ersten Programmieroperation kann der Controller 6200 zweite Daten von dem Host empfangen. Der Controller 6200 kann die nichtflüchtige Speichervorrichtung 6100 derart steuern, dass die zweiten Daten in wenigstens eine einer Mehrzahl von physikalischen Seiten programmiert werden, bei welcher die ersten Daten während einer zweiten Programmieroperation programmiert wurden. Die zweite Programmieroperation kann durchgeführt werden wie unter Bezugnahme auf 9 beschrieben ist.
  • Die Speicherkarte 6000 kann aus Speicherkarten wie beispielsweise einer PC (PCMCIA)-Karte, einer CF-Karte, einer SM (oder SMC)-Karte, einem Speicherstick, einer Multimedia-Karte (MC, RS-MMC, MMCmicro), einer Sicherheitskarte bzw. Security Card (SD, miniSD, microSD, SDHC), einer Universal Flashspeicher (UFS)-Vorrichtung und dergleichen gebildet sein.
  • 22 ist ein Blockschaltbild, welches ein Computersystem bzw. Berechnungssystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 22 weist ein Berechnungssystem 7000 eine zentrale Verarbeitungseinheit 7100, einen RAM 7200, eine Verwenderschnittstelle 7300, ein Modem 7400, einen Systembus 7500 und ein Speichersystem 7600 auf.
  • Das Speichersystem 7600 kann elektrisch mit den Elementen 7100 bis 7400 über den Systembus 7500 verbunden sein. Daten, welche über die Verwenderschnittstelle 7300 vorgesehen sind oder durch die zentrale Verarbeitungseinheit 7100 verarbeitet werden, können in dem Speichersystem 7600 gespeichert werden.
  • Das Speichersystem 7600 kann eine nichtflüchtige Speichervorrichtung 7610 und einen Controller 7620 aufweisen. Das Speichersystem 7600 kann eines von Speichersystemen 1000 bis 4000 gemäß Ausführungsformen des erfinderischen Konzepts, eine Speicherkarte 600 und ein Festkörperlaufwerk 500 sein.

Claims (36)

  1. Programmierverfahren für einen nichtflüchtigen Speicher (1220, 2220, 3220), welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen, MLC aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert, wobei „N“ eine ganze Zahl größer als 2 ist und wobei das Verfahren Folgendes aufweist: ein Empfangen von ersten Daten und ein Partitionieren der ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223), um partitionierte erste Daten zu erzeugen; ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu einer Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223); und ein Empfangen von zweiten Daten und ein Programmieren der zweiten Daten als Multi-Bit-Daten zu einer ausgewählten physikalischen Seite unter der Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223), wobei die zweiten Daten simultan zu der MLC der ausgewählten physikalischen Seite programmiert werden, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der ausgewählten physikalischen Seite folgend auf das Programmieren der partitionierten ersten Daten zu der ausgewählten physikalischen Seite durchgeführt wird, bevor eine zwischenliegende Löschoperation auf der ausgewählten physikalischen Seite durchgeführt wird.
  2. Verfahren nach Anspruch 1, wobei N gleich 3 ist, und die partitionierten ersten Daten in einer ersten logischen Seite der Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223) als Least Significant Bit, LSB, -Daten gespeichert werden.
  3. Verfahren nach Anspruch 2, wobei die zweiten Daten simultan zu einer zweiten logischen Seite der ausgewählten physikalischen Seite als Central Significant Bit, CSB,-Daten und zu einer dritten logischen Seite der ausgewählten physikalischen Seite als Most Significant Bit, MSB, -Daten gespeichert werden.
  4. Verfahren nach Anspruch 1, wobei das Speicherzell-Array (110) ein dreidimensionales, 3D, -Speicherzell-Array ist, das Folgendes aufweist: eine Mehrzahl von Zellsträngen (CS11, CS12, CS21, CS22), wobei sich jeder Zellstrang (CS11, CS12, CS21, CS22) in einer ersten Richtung erstreckt; eine Mehrzahl von Wortleitungen (WL), welche sich in einer zweiten Richtung erstreckt; und eine Mehrzahl von Bitleitungen (BL), welche sich in einer dritten Richtung erstreckt.
  5. Verfahren nach Anspruch 4, wobei die MLC jeder einen der Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223) gemeinsam durch eine der Mehrzahl von Wortleitungen (WL) gesteuert werden, und gemeinsam bei einer gleichen Höhe innerhalb des 3D-Speicherzell-Array (110) angeordnet sind.
  6. Verfahren nach Anspruch 4, wobei jeder Zellstrang (CS11, CS12, CS21, CS22) mit einer der Mehrzahl von Bitleitungen (BL) verbunden ist und eine Mehrzahl von MLC aufweist, welche in Serie zwischen einem Strang-Auswahltransistor (SST) und einem Masse-Auswahltransistor (GST) angeordnet ist, wobei jede eine der Mehrzahl von MLC jeweils durch eine der Mehrzahl von Wortleitungen (WL) gesteuert wird, wobei jede SST durch eine Strang-Auswahlleitung gesteuert wird, und jede GST durch eine Masse-Auswahlleitung gesteuert wird.
  7. Verfahren nach Anspruch 6, wobei jede eine der Mehrzahl von physikalischen Seiten (2222, 2223, 3222, 3223) durch eine Strang-Auswahlleitung ausgewählt wird.
  8. Verfahren nach Anspruch 4, wobei jede der MLC eine Ladungsfallen-Flash, CTF, -Speicherzelle ist.
  9. Verfahren nach Anspruch 1, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der ausgewählten physikalischen Seite eine inkrementelle Schritt-Puls-Programmierung verwendet.
  10. Daten-Managementverfahren für ein Speichersystem, welches einen nichtflüchtigen Speicher (1220, 2220, 3220) aufweist, welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen, MI,C, hat, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei jede MLC bis zu N Bit von Daten speichert, wobei jede physikalische Seite (2222, 2223, 3222, 3223) durch eine Einzel-Bit-Seitenkapazität (1bPC), eine Gesamt-Bit-Seitenkapazität (TbPC) gleich zu (Nx1PC), und eine Rest-Bit-Seitenkapazität (RbPC) gleich zu (TbPC-1bPC) definiert ist, wobei das Verfahren Folgendes aufweist: ein Ausführen einer ersten Programmieroperation, welche X Bits von ersten Daten speichert durch: ein Bestimmen einer Anzahl Q von ersten ausgewählten physikalischen Seiten, welche notwendig sind, um die ersten Daten als Einzel-Bit-Daten in den ersten ausgewählten physikalischen Seiten zu speichern, wobei Q=[(X÷1bPC)+1 für jeden Rest]; ein Partitionieren der ersten Daten durch Q, um partitionierte erste Daten zu erzeugen; und ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu den ersten ausgewählten physikalischen Seiten; und ein Ausführen einer zweiten Programmieroperation, welche Y Bits von zweiten Daten speichert, nach dem Ausführen der ersten Programmieroperation durch: ein Bestimmen einer Anzahl R von zweiten ausgewählten physikalischen Seiten unter den ersten ausgewählten physikalischen Seiten, welche notwendig sind, um die zweiten Daten als (N-1)-Multi-Bit-Daten in den zweiten ausgewählten physikalischen Seiten zu speichern, wobei R=[(Y÷RbPC)+1 für jeden Rest]; ein Unterteilen der zweiten Daten durch R, um unterteilte zweite Daten zu erzeugen; und ein Programmieren der unterteilten zweiten Daten als (N-1)-Multi-Bit-Daten zu den zweiten ausgewählten physikalischen Seiten, wobei die unterteilten zweiten Daten simultan zu MLC der zweiten ausgewählten physikalischen Seiten programmiert werden, wobei das Programmieren der unterteilten zweiten Daten als (N-1)-Multi-Bit-Daten zu den zweiten ausgewählten physikalischen Seiten folgend auf das Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu den ersten ausgewählten physikalischen Seiten durchgeführt wird, bevor eine zwischenliegende Löschoperation auf den ersten ausgewählten physikalischen Seiten durchgeführt wird, wobei „N“ eine ganze Zahl größer als 2 ist, „Q“ eine ganze Zahl größer als 1 ist und jedes von „X“, „Y“ und „R“ eine positive ganze Zahl ist.
  11. Verfahren nach Anspruch 10, wobei alle der zweiten ausgewählten physikalischen Seiten zusammen während der zweiten Programmieroperation programmiert werden.
  12. Verfahren nach Anspruch 10, wobei R größer ist als 1, und jede eine der zweiten ausgewählten physikalischen Seiten sequentiell während der zweiten Programmieroperation programmiert wird.
  13. Verfahren nach Anspruch 10, wobei N gleich 3 ist, und die partitionierten ersten Daten in einer ersten logischen Seite der ersten ausgewählten physikalischen Seiten als Least Significant Bit, LSB, -Daten gespeichert werden.
  14. Verfahren nach Anspruch 13, wobei für jede eine der zweiten ausgewählten physikalischen Seiten die unterteilten zweiten Daten simultan zu einer zweiten logischen Seite als Central Significant Bit, CSB, -Daten und zu einer dritten logischen Seite als Most Significant Bit, MSB, -Daten gespeichert werden.
  15. Verfahren nach Anspruch 10, wobei wenigstens eine der ersten Programmieroperation und der zweiten Programmieroperation eine inkrementelle Schritt-Puls-Programmierung, ISPP, verwendet.
  16. Verfahren nach Anspruch 10, wobei das Speichersystem einen Speicher-Controller (1210, 2210, 3210, 4200, 5210, 6200) aufweist, welcher die ersten Daten während der ersten Programmieroperation empfängt und partitioniert, und die zweiten Daten während der zweiten Programmieroperation empfängt und unterteilt.
  17. Verfahren nach Anspruch 10, wobei das Speicherzell-Array (110) ein dreidimensionales, 3D, Speicherzell-Array ist.
  18. Verfahren nach Anspruch 17, wobei die MLC von mehreren physikalischen Seiten (2222, 2223, 3222, 3223) gemeinsam durch eine einer Mehrzahl von Wortleitungen (WL), welche das 3D-Speicherzell-Array (110) queren, gesteuert wird und gemeinsam bei einer gleichen Höhe innerhalb des 3D-Speicherzell-Array (110) angeordnet sind.
  19. Verfahren nach Anspruch 18, wobei jede physikalische Seite (2222, 2223, 3222, 3223) unter den mehreren physikalischen Seiten (2222, 2223, 3222, 3223) unter Verwendung einer Strang-Auswahlleitung, welche das 3D-Speicherzell-Array (110) quert, ausgewählt werden kann.
  20. Daten-Managementverfahren für einen nichtflüchtigen Speicher (1220, 2220, 3220), welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen (MLC) aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei das Verfahren Folgendes aufweist: während einer ersten Programmieroperation ein Empfangen erster Daten und ein Partitionieren der ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223), um partitionierte erste Daten zu erzeugen, und ein Programmieren der partitionierten ersten Daten als Einzel-Bit-Daten zu nur einer ersten logischen Seite der MLC in ausgewählten physikalischen Seiten; und während einer zweiten Programmieroperation nach der ersten Programmieroperation ein Empfangen zweiter Daten und ein simultanes Programmieren der zweiten Daten als Multi-Bit-Daten zu zweiten und dritten logischen Seiten der MLC in wenigstens einer der ausgewählten physikalischen Seiten, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu den zweiten und dritten logischen Seiten der MLC in wenigstens einer der ausgewählten physikalischen Seiten folgend auf das Programmieren der partitionierten ersten Daten zu nur einer ersten logischen Seite der MLC in ausgewählten physikalischen Seiten durchgeführt wird, bevor eine zwischenliegende Löschoperation auf den ausgewählten physikalischen Seiten durchgeführt wird.
  21. Verfahren nach Anspruch 20, wobei während der ersten Programmieroperation die Einzel-Bit-Daten zu der ersten logischen Seite der MLC unter Verwendung einer einer Löschgrenzspannungsverteilung, welche einen Löschzustand anzeigt, und einer ersten Grenzspannungsverteilung, welche einen ersten programmierten Zustand anzeigt, programmiert werden.
  22. Verfahren nach Anspruch 21, wobei während der zweiten Programmieroperation die Multi-Bit-Daten simultan zu der ersten, zweiten und dritten logischen Seite der MLC programmiert werden durch: (a) ein Beibehalten der Löschgrenzspannungsverteilung, (b) ein Übergehen von der Löschgrenzspannungsverteilung zu einer von einer zweiten, einer dritten und einer vierten Grenzspannungsverteilung, welche jeweils einen zweiten, einen dritten und einen vierten programmierten Zustand anzeigt; (c) ein Beibehalten der ersten Grenzspannungsverteilung; und (d) ein Übergehen von der ersten Grenzspannungsverteilung zu einer von einer fünften, einer sechsten und einer siebten Grenzspannungsverteilung, welche jeweils einen fünften, einen sechsten und einen siebten programmierten Zustand anzeigt.
  23. Speichersystem, das Folgendes aufweist: einen nichtflüchtigen Speicher (1220, 2220, 3220), welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen, MLC, aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert; einen Controller (1210, 2210, 3210, 4200, 5210, 6200), welcher konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host (1100, 2100, 3100, 5100) zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223) zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzelbit-Daten zu ersten ausgewählten physikalischen Seiten zu programmieren; wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) weiterhin konfiguriert ist, um während einer zweiten Programmieroperation zweite Daten von dem Host (1100, 2100, 3100, 5100) zu empfangen, und die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu den MLC der zweiten ausgewählten physikalischen Seite programmiert werden, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten folgend auf das Programmieren der partitionierten ersten Daten als Einzelbit-Daten zu den ersten ausgewählten physikalischen Seiten durchgeführt wird, bevor eine zwischenliegende Löschoperation auf den ersten ausgewählten physikalischen Seiten durchgeführt wird.
  24. Speichersystem nach Anspruch 23, wobei der nichtflüchtige Speicher (1220, 2220, 3220) weiterhin Folgendes aufweist: einen Seitenpuffer (130, 2221, 3221), welcher ein erstes Latch (2221a), ein zweites Latch (2221b) und ein drittes Latch (2221c) aufweist, wobei die partitionierten ersten Daten in dem ersten Latch (2221a) gespeichert werden, bevor sie zu den ersten ausgewählten physikalischen Seiten programmiert werden, und wobei die zweiten Daten in dem zweiten Latch (2221b) und dem dritten Latch (2221c) gespeichert werden, bevor sie zu der zweiten ausgewählten physikalischen Seite programmiert werden.
  25. Speichersystem nach Anspruch 24, wobei die partitionierten ersten Daten Least Significant Bit, LSB, -Daten sind, die zweiten Daten, welche in dem zweiten Latch (2221b) gespeichert sind, Central Significant Bit, CSB, -Daten sind, und die zweiten Daten, welche in dem dritten Latch (2221c) gespeichert sind, Most Significant Bit, MSB, -Daten sind.
  26. Speichersystem nach Anspruch 25, wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) konfiguriert ist, um simultan die CSB-Daten und die MSB-Daten zu den MLC der zweiten ausgewählten physikalischen Seite zu programmieren.
  27. Speichersystem nach Anspruch 26, wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) weiterhin konfiguriert ist, um während der zweiten Programmieroperation die LSB-Daten zu dem ersten Latch (2221a) zurückzukopieren, bevor die CSM-Daten und die MSB-Daten zu der zweiten ausgewählten physikalischen Seite programmiert werden, und danach, um simultan die LSB-Daten, CSB-Daten und die MSB-Daten, welche jeweils in dem ersten Latch (2221a), dem zweiten Latch (2221b) und dem dritten Latch (2221c) gespeichert sind, simultan zu den MLC der zweiten ausgewählten physikalischen Seite in einer Ein-Schuss-Programmieroperation zu programmieren.
  28. Speichersystem nach Anspruch 23, wobei das Speicherzell-Array (110) ein dreidimensionales (3D)-Speicherzell-Array ist, das Folgendes aufweist: eine Mehrzahl von Zellsträngen (CS11, CS12, CS21, CS22), wobei sich jeder Zellstrang (CS11, CS12, CS21, CS22) in einer ersten Richtung erstreckt; eine Mehrzahl von Wortleitungen (WL), welche sich in einer zweiten Richtung erstreckt; und eine Mehrzahl von Bitleitungen (BL), welche sich in einer dritten Richtung erstreckt.
  29. Speichersystem nach Anspruch 28, wobei jeder Zellstrang (CS11, CS12, CS21, CS22) mit einer der Mehrzahl von Bitleitungen (BL) verbunden ist und eine Mehrzahl von MLC aufweist, welche in Serie zwischen einem Strang-Auswahltransistor (SST) und einem Masse-Auswahltransistor (GST) angeordnet ist, wobei jede eine der Mehrzahl von MLC jeweils durch eine der Mehrzahl von Wortleitungen (WL) gesteuert wird, wobei jeder SST durch eine Strang-Auswahlleitung gesteuert wird, und jeder GST durch eine Masse-Auswahlleitung gesteuert wird.
  30. Speichersystem nach Anspruch 28, wobei jede Strang-Auswahlleitung und jede Masse-Auswahlleitung sich in der zweiten Richtung erstreckt.
  31. Speichersystem nach Anspruch 23, das weiterhin Folgendes aufweist: einen Pufferspeicher (5220), welcher konfiguriert ist, um Daten, welche zwischen dem Controller (1210, 2210, 3210, 4200, 5210, 6200) und dem nichtflüchtigen Speicher (1220, 2220, 3220) übertragen werden, zu puffern.
  32. Speichersystem nach Anspruch 31, wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200), der Pufferspeicher (5220) und der nichtflüchtige Speicher (1220, 2220, 3220) für einen Betrieb als ein Festkörperlaufwerk, SSD, konfiguriert sind.
  33. Speichersystem nach Anspruch 23 wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) und der nichtflüchtige Speicher (1220, 2220, 3220) als eine Speicherkarte konfiguriert sind.
  34. Controller (1210, 2210, 3210, 4200, 5210, 6200) für ein Speichersystem, welches einen nichtflüchtigen Speicher (1220, 2220, 3220) aufweist, welcher ein Speicherzell-Array (110) von Multi-Level-Speicherzellen, MLC, aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host (1100, 2100, 3100, 5100) zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223) zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzelbit-Daten zu ersten ausgewählten physikalischen Seiten zu programmieren und um während einer zweiten Programmieroperation zweite Daten von dem Host (1100, 2100, 3100, 5100) zu empfangen, und die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu den MLC der zweiten ausgewählten physikalischen Seite programmiert werden, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten folgend auf das Programmieren der partitionierten ersten Daten als Einzelbit-Daten zu den ersten ausgewählten physikalischen Seiten durchgeführt wird, bevor eine zwischenliegende Löschoperation auf der ersten ausgewählten physikalischen Seite durchgeführt wird.
  35. Controller (1210, 2210, 3210, 4200, 5210, 6200) nach Anspruch 34, wobei das Speicherzell-Array (110) ein dreidimensionales, 3D, -Speicherzell-Array ist.
  36. Speichersystem, das Folgendes aufweist: einen nichtflüchtigen Speicher (1220, 2220, 3220), welcher ein dreidimensionales, 3D, -Speicherzell-Array (110) von Multi-Level-Speicherzellen, MLC, aufweist, welche in physikalischen Seiten (2222, 2223, 3222, 3223) angeordnet sind, wobei jede MLC bis zu N Bits von Daten speichert, und das 3D-Speicherzell-Array (110) eine Mehrzahl von Zellsträngen (CS11, CS12, CS21, CS22), wobei sich jeder Zellstrang (CS11, CS12, CS21, CS22) in einer ersten Richtung erstreckt, eine Mehrzahl von Wortleitungen (WL), welche sich in einer zweiten Richtung erstreckt und eine Mehrzahl von Bitleitungen (BL) aufweist, welche sich in einer dritten Richtung erstreckt, wobei jeder Zellstrang (CS 11, CS12, CS21, CS22) mit einer der Mehrzahl von Bitleitungen (BL) verbunden ist und eine Mehrzahl von MLC aufweist, welche in Serien zwischen einem Strang-Auswahltransistor, SST, und einem Masse-Auswahltransistor, GST, verbunden sind, wobei jede eine der Mehrzahl von Mehrzahlen von MLC jeweils durch eine der Mehrzahl von Wortleitungen (WL) gesteuert wird, wobei jeder SST durch eine Strang-Auswahlleitung gesteuert wird, und jeder GST durch eine Masse-Auswahlleitung gesteuert wird; einen Controller (1210, 2210, 3210, 4200, 5210, 6200), welcher konfiguriert ist, um während einer ersten Programmieroperation erste Daten von einem Host (1100, 2100, 3100, 5100) zu empfangen, die ersten Daten gemäß einer Einzel-Bit-Seitenkapazität einer physikalischen Seite (2222, 2223, 3222, 3223) zu partitionieren, um partitionierte erste Daten zu erzeugen, und um die partitionierten ersten Daten als Einzel-Bit-Daten zu den ersten ausgewählten physikalischen Seiten zu programmieren; wobei der Controller (1210, 2210, 3210, 4200, 5210, 6200) weiterhin konfiguriert ist, um während einer zweiten Programmieroperation zweite Daten von dem Host (1100, 2100, 3100, 5100) zu empfangen, und um die zweiten Daten als Multi-Bit-Daten zu einer zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten zu programmieren, wobei die Multi-Bit-Daten simultan zu der MLC der zweiten ausgewählten physikalischen Seite programmiert werden, wobei das Programmieren der zweiten Daten als Multi-Bit-Daten zu der zweiten ausgewählten physikalischen Seite unter den ersten ausgewählten physikalischen Seiten folgend auf das Programmieren der partitionierten ersten Daten zu den ersten ausgewählten physikalischen Seiten durchgeführt wird, bevor eine zwischenliegende Löschoperation auf den ersten ausgewählten physikalischen Seiten durchgeführt wird.
DE102013108456.7A 2012-08-08 2013-08-06 Nichtflüchtige Speichervorrichtung und Programmierverfahren Active DE102013108456B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2012-0086805 2012-08-08
KR1020120086805A KR102024850B1 (ko) 2012-08-08 2012-08-08 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US13/707,648 2012-12-07
US13/707,648 US9223692B2 (en) 2012-08-08 2012-12-07 Nonvolatile memory device with multi-level memory cells and programming method

Publications (2)

Publication Number Publication Date
DE102013108456A1 DE102013108456A1 (de) 2014-02-13
DE102013108456B4 true DE102013108456B4 (de) 2024-03-07

Family

ID=49999319

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013108456.7A Active DE102013108456B4 (de) 2012-08-08 2013-08-06 Nichtflüchtige Speichervorrichtung und Programmierverfahren

Country Status (2)

Country Link
CN (1) CN103578551B (de)
DE (1) DE102013108456B4 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107132989B (zh) * 2016-02-26 2020-05-12 群联电子股份有限公司 数据程序化方法、存储器控制电路单元及存储器存储装置
US10998367B2 (en) * 2016-03-29 2021-05-04 Nikon Corporation Image sensor and image-capturing apparatus
JP2018005959A (ja) * 2016-06-30 2018-01-11 東芝メモリ株式会社 メモリシステムおよび書き込み方法
KR20190021869A (ko) * 2017-08-24 2019-03-06 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR102363382B1 (ko) * 2017-09-26 2022-02-16 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치
CN110047545A (zh) * 2018-01-13 2019-07-23 许富菖 使用多页编程来写入非易失性存储器的方法与装置
US10614899B2 (en) * 2018-06-29 2020-04-07 Micron Technology, Inc. Program progress monitoring in a memory array
KR102542299B1 (ko) * 2018-08-22 2023-06-13 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN109313923A (zh) * 2018-08-29 2019-02-05 长江存储科技有限责任公司 三维存储器件中的存储单元的编程
KR102645142B1 (ko) * 2018-10-25 2024-03-07 삼성전자주식회사 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100157675A1 (en) 2007-09-19 2010-06-24 Anobit Technologies Ltd Programming orders for reducing distortion in arrays of multi-level analog memory cells
US20100322000A1 (en) 2009-06-19 2010-12-23 Samsung Electronics Co., Ltd. Programming methods for three-dimensional memory devices having multi-bit programming, and three-dimensional memory devices programmed thereby

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142478B2 (ja) * 2006-04-13 2013-02-13 株式会社東芝 半導体記憶装置
JP5259481B2 (ja) * 2009-04-14 2013-08-07 株式会社東芝 不揮発性半導体記憶装置
KR101682662B1 (ko) * 2009-07-20 2016-12-06 삼성전자주식회사 3차원 메모리 장치 및 그것의 프로그램 방법
CN102376366B (zh) * 2010-08-06 2014-08-27 慧荣科技股份有限公司 数据写入方法及数据储存装置
KR101798013B1 (ko) * 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR20120086805A (ko) 2011-01-27 2012-08-06 현태섭 국자로 접을 수 있는 친환경 컵라면 용기 뚜껑 및 접는 법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100157675A1 (en) 2007-09-19 2010-06-24 Anobit Technologies Ltd Programming orders for reducing distortion in arrays of multi-level analog memory cells
US20100322000A1 (en) 2009-06-19 2010-12-23 Samsung Electronics Co., Ltd. Programming methods for three-dimensional memory devices having multi-bit programming, and three-dimensional memory devices programmed thereby

Also Published As

Publication number Publication date
CN103578551A (zh) 2014-02-12
CN103578551B (zh) 2019-04-16
DE102013108456A1 (de) 2014-02-13

Similar Documents

Publication Publication Date Title
DE102013108456B4 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE102014101267B4 (de) Speichersystem mit nichtflüchtiger Speichervorrichtung und Programmierverfahren davon
US9223692B2 (en) Nonvolatile memory device with multi-level memory cells and programming method
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102013104196A1 (de) System und Verfahren mit dreidimensionaler nichtflüchtiger Speichervorrichtung und Direktzugriffsspeicher
DE102013108907A1 (de) Nichtflüchtige Speichervorrichtung mit nahen/fernen Speicherzellengruppierungen und Datenverarbeitungsverfahren
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102013100596B4 (de) Nichtflüchtiges Speichersystem mit Programmier- und Löschverfahren und Blockverwaltungsverfahren
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102017104283A1 (de) Löschgeschwindigkeitsbasierte wortleitungssteuerung
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102008009847A1 (de) Verfahren zum Treiben eines nichtflüchtigen Speicherelements und nichtflüchtiges Speicherelement
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102012104713A1 (de) Nichtflüchtige Speichervorrichtung und Löschverfahren
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division