-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität gegenüber der US-Anmeldung Nr.
16/899.374 , eingereicht am 11. Juni 2020, die durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
-
HINTERGRUND DER OFFENBARUNG
-
Gebiet der Offenbarung
-
Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf das Verbessern des Foggy-Feinschreibens auf QLC.
-
Beschreibung des Stands der Technik
-
Programmieren oder Schreiben von Daten kann zwei Schreibphasen erfordern: Foggy und Fein. Bei Foggy-Feinprogrammierung können die zu schreibenden Bits nicht einfach einmal geschrieben werden. Entsprechend müssen die Daten zuerst durch Foggy-Programmierung geschrieben werden, wobei Spannungsimpulse bereitgestellt werden, um den aktuellen Zustand in einen aufgelösten Zustand, aber nicht vollständig aufgelösten Zustand zu pushen. Die Feinprogrammierung wird zu einem Zeitpunkt nach der Foggy-Programmierung durchgeführt, um die Daten wieder in den vollständig aufgelösten Zustand zu schreiben.
-
Bei der Foggy-Feinprogrammierung gibt es einen Vier-Seiten-Transfer für eine Foggy-Programmierung und einen Vier-Seiten-Transfer für eine Feinprogrammierung für eine 128 KB-Übertragung insgesamt für eine Zwei-Ebenen-Vorrichtung. Der Foggy-Zustand ist nicht lesbar, und die Daten müssen geschützt werden für den Fall eines möglichen Stromverlustereignisses (PLI). Zusätzlich tritt eine Foggy-Feinprogrammierung in einer gestaffelten Wortleitungssequenz auf, was bedeutet, dass Daten im Durchlauf fünfmal oder achtmal so viel wie die programmierbare Einheit von 128 KB betragen. Um eine Foggy-Feinprogrammierung durchzuführen, können mehrere Megabyte mehrere Male programmiert werden. Um die mehrfache Programmierung durchzuführen, muss eine große Menge von Daten zur Durchführung einer Wiederholprogrammierung mit exakt den gleichen Daten abgesondert werden.
-
Daher besteht in der Technik ein Bedarf für eine verbesserte Foggy-Feinprogrammierung.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Die vorliegende Offenbarung bezieht sich allgemein auf eine verbesserte Foggy-Feinprogrammierung. Die Daten können in den SLC-Speicher geschrieben werden. Dann können die Daten decodiert und dann sowohl foggy als auch fein in MLC geschrieben werden. Nach dem Decodieren können die Daten im DRAM gespeichert werden, der sich in einem Frontend oder in einem SRAM befindet, der sich vor dem Schreiben in MLC in einem Flash-Manager befindet. Nach dem Speichern in entweder dem DRAM oder dem SRAM werden die Daten dann decodiert und in MLC geschrieben.
-
In einer Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei die eine oder die mehreren Speichervorrichtungen den SLC-Speicher und den MLC-Speicher einschließen; und eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben der Daten in den SLC-Speicher; Foggy-Schreibvorgang der Daten in den MLC-Speicher, wobei das Foggy-Schreiben der Daten in den MLC-Speicher einschließt: das Abrufen der Daten aus Auffangregistern in dem einen oder mehreren Speichervorrichtungen; Decodieren der aus den Auffangregistern abgerufenen Daten; Codieren der decodierten Daten, die aus den Auffangregistern abgerufen wurden; und Schreiben der codierten Daten in den MLC-Speicher; und Feinschreiben der Daten in den MLC-Speicher.
-
In einer anderen Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei die eine oder mehreren Speichervorrichtungen jeweils eine Vielzahl von Chips einschließen, wobei jeder Chip einen SLC-Speicher und einen MLC-Speicher einschließt; und eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben von Daten in den SLC-Speicher; Lesen von Daten aus SLC-Speicher; Decodieren der Lesedaten; Übertragen der decodierten Daten auf DRAM; Codieren der Übertragungsdaten ein erstes Mal; und Schreiben der zum ersten Mal codierten Daten in den MLC-Speicher ein erstes Mal.
-
In einer anderen Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei jede Speichervorrichtung eine Vielzahl von Dies hat, wobei die eine oder die mehreren Speichervorrichtungen jeweils SLC-Speicher und MLC-Speicher einschließen; eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben der Daten in den SLC-Speicher; Lesen der Daten aus dem SLC-Speicher; Decodieren der Lesedaten; Zustellen der decodierten Daten an einen ersten SRAM, der sich in einem Frontend-Modul befindet; Zustellen der decodierten Daten an einen zweiten SRAM, der sich in einem Flash-Manager befindet; Schreiben von Daten, die in den ersten SRAM in dem MLC-Speicher zugestellt wurden; und Schreiben von Daten, die in den zweiten SRAM in dem MLC-Speicher zugestellt wurden.
-
Figurenliste
-
Zur Verdeutlichung der Art und Weise, wie die vorstehend angegebenen Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulicht sind und diese daher nicht als ihren Schutzumfang einschränkend anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
- 1 ist eine schematische Veranschaulichung eines Systems zur Datenspeicherung gemäß einer Ausführungsform.
- 2A und 2B sind schematische Veranschaulichungen der Planung einer Foggy-Feinprogrammierung gemäß verschiedenen Ausführungsformen.
- 3 ist ein Diagramm, das eine gestaffelte Foggy-Feinprogrammierung veranschaulicht.
- 4A und 4B sind schematische Veranschaulichungen der Planung einer Foggy-Feinprogrammierung und Speicherbereinigung gemäß offenbarten Ausführungsformen.
- 5 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform.
- 6 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform.
- 7 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform.
- 8 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform.
-
Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemein sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Nennung vorteilhaft bei anderen Ausführungsformen genutzt werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Im Folgenden wird auf Ausführungsformen der Offenbarung Bezug genommen. Es versteht sich jedoch, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Implementierung und Umsetzung der Offenbarung in Betracht gezogen. Obwohl Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erreichen können, schränkt jedoch der Umstand, ob ein bestimmter Vorteil durch eine bestimmte Ausführungsform erreicht wird oder nicht, die Offenbarung nicht ein. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beiliegenden Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen angegeben. Ebenso soll eine Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und soll nicht als Element oder Einschränkung der beigefügten Ansprüche betrachtet werden, es sei denn, dies ist ausdrücklich in einem oder mehreren Ansprüchen angegeben.
-
Die vorliegende Offenbarung bezieht sich allgemein auf eine verbesserte Foggy-Feinprogrammierung. Die Daten können in den SLC-Speicher geschrieben werden. Dann können die Daten decodiert und dann sowohl foggy als auch fein in MLC geschrieben werden. Nach dem Decodieren können die Daten im DRAM gespeichert werden, der sich in einem Frontend oder in einem SRAM befindet, der sich vor dem Schreiben in MLC in einem Flash-Manager befindet. Nach dem Speichern in entweder dem DRAM oder dem SRAM werden die Daten dann decodiert und in MLC geschrieben.
-
1 ist eine schematische Veranschaulichung eines Systems 100 zur Datenspeicherung gemäß einer Ausführungsform. Das System 100 zur Speicherung von Daten gemäß einer Ausführungsform schließt eine Host-Vorrichtung 102 und eine Datenspeicherungsvorrichtung 104 ein. Die Host-Vorrichtung 102 schließt einen dynamischen Direktzugriffsspeicher (DRAM) 112 ein. Die Host-Vorrichtung 102 kann eine breite Palette an Vorrichtungen einschließen, wie etwa Computerserver, Netzwerkspeichereinheiten (NAS-Einheiten), Desktopcomputer, Notebookcomputer (d. h. einen Laptop), Tabletcomputer (d. h. ein „Smartpad“), Set-Top-Boxen, Telefongeräte (d. h. „Smartphones“), Fernseher, Kameras, Anzeigevorrichtungen, digitale Medienplayer, Videospielkonsolen, Video-Streaming-Vorrichtungen und Automobilanwendungen (z. B. zum Abbilden [Mapping], autonomen Fahren). In bestimmten Ausführungsformen schließt die Hostvorrichtung 102 jede Vorrichtung mit einer Verarbeitungseinheit oder einer beliebigen Form von Hardware ein, die in der Lage ist, Daten zu verarbeiten, einschließlich einer Universalverarbeitungseinheit, spezieller Hardware (wie einer anwendungsspezifischen integrierten Schaltung (ASIC)), konfigurierbarer Hardware wie einem Field Programmable Gate Array (FPGA) oder einer anderen Form von Verarbeitungseinheit, die mittels Softwareanweisungen, Mikrocode oder Firmware eingerichtet ist.
-
Die Datenspeicherungsvorrichtung 104 kommuniziert mit der Host-Vorrichtung 102 über eine Schnittstelle 106, die in der Datenspeicherungsvorrichtung 104 eingeschlossen ist. Die Datenspeicherungsvorrichtung 104 schließt eine Steuerung 108, einen Puffer 114 und eine oder mehrere Speichervorrichtungen 110 ein. Die Datenspeicherungsvorrichtung 104 kann ein internes Speicherlaufwerk, wie eine Notebook-Festplatte oder eine Desktop-Festplatte, sein. Die Datenspeicherungsvorrichtung 104 kann eine entnehmbare Massenspeichervorrichtung sein, wie etwa unter anderem eine tragbare, entnehmbare Speichervorrichtung, wie etwa eine Speicherkarte (z. B. eine sichere digitale (SD-)Karte, eine mikrosichere digitale (micro-SD-)Karte oder eine Multimediakarte (MMC)) oder eine universelle serielle Bus-Vorrichtung (USB-Vorrichtung). Die Datenspeicherungsvorrichtung 104 kann die Form einer eingebetteten Massenspeichervorrichtung annehmen, wie etwa eines eingebetteten eSD/eMMC-Flash-Speichers, der in der Host-Vorrichtung 102 eingebettet ist. Die Datenspeicherungsvorrichtung 104 kann auch eine beliebige andere Art von interner Speichervorrichtung, entnehmbarer Speichervorrichtung, eingebetteter Speichervorrichtung, externer Speichervorrichtung oder Netzwerkspeichervorrichtung sein.
-
Die Speichervorrichtung 110 kann unter anderem eine interne oder externe Speichereinheit sein. Die Speichervorrichtung 110 beruht auf einem Halbleiterspeicherchip, in dem Daten als Direktzugriffspeicher (RAM), Nurlesespeicher (ROM) oder andere Arten von RAM und ROM gespeichert werden können. Ein RAM wird zur vorübergehenden Speicherung von Daten eingesetzt, wohingegen ein ROM zum dauerhaften Speichern von Daten eingesetzt wird.
-
Die Datenspeicherungsvorrichtung 104 schließt eine Steuerung 108 ein, welche die Vorgänge der Datenspeicherungsvorrichtung 104 verwaltet, wie etwa Schreibabläufe oder Leseabläufe von der Speichervorrichtung 110. Die Steuerung 108 führt mit computerlesbaren Programmcodes (z. B. Software oder Firmware) ausführbare Anweisungen (hierin als „Anweisungen“ bezeichnet) für die Übertragung von Daten aus. Die Anweisungen können durch verschiedene Komponenten der Steuerung 108 ausgeführt werden, wie etwa durch einen Prozessor, Logik-Gates, Schalter, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logiksteuerungen, eingebettete Mikrosteuerungen und andere Komponenten der Steuerung 108.
-
Die Datenspeicherungsvorrichtung 104 schließt einen Puffer 114 ein, der ein Bereich einer Speicherung eines physischen Speichers ist, der dazu verwendet wird, Daten vorübergehend zu speichern, während die Daten von einem Ort zu einem anderen bewegt werden (d. h. von der Host-Vorrichtung 102 zu der Speichervorrichtung 110).
-
Daten können an den oder aus dem DRAM 112 der Host-Vorrichtung 102 an die Datenspeicherungsvorrichtung 104 übertragen werden. Ein Datenübertragungsweg kann von dem DRAM 112 der Host-Vorrichtung 102 ausgehen und über die Schnittstelle 106 der Datenspeicherungsvorrichtung 104 an die Steuerung 108 kommunizieren. Die Daten laufen dann durch den Puffer 114 der Datenspeicherungsvorrichtung 104 und werden in der Speichervorrichtung 110 gespeichert. Wenn die Daten in einen SLC-Speicher geschrieben werden, dann werden die Daten einfach geschrieben. Wenn die Daten jedoch in einen MLC, wie einen QLC-Speicher, geschrieben werden, dann tritt ein Foggy-Feinschreibprozess auf. Es ist zu beachten, dass Schreiben und Programmieren in der gesamten Offenbarung austauschbar verwendet werden können. In einer Ausführungsform werden die Daten zuerst in den SLC-Speicher geschrieben und dann in den MLC-Speicher verschoben. In einer anderen Ausführungsform werden alle Daten zuerst in den SLC-Cachespeicher geschrieben und dann in den QLC für sequentielle oder nicht wiederholte Schreibvorgänge verschoben. In einem solchen Szenario wird das Verschieben der Daten in den QLC durch die Datenspeicherungsvorrichtung 204 geplant, um Platz im SLC für die folgenden Schreibvorgänge von der Hostvorrichtung 102 zu erzeugen. In einer anderen Ausführungsform weist der wiederholte Schreibvorgang das Umschreiben der zuletzt geschriebenen LBA durch den Host auf, wobei mit zuletzt die Daten gemeint sind, die sich noch im SLC-Cachespeicher befinden. In einem solchen Szenario gibt es drei Möglichkeiten: Verschieben aller Daten, einschließlich der alten veralteten LBAs in den QLC und Erzeugen veralteter „Löcher“; nur gültige Daten zu verschieben und veraltete Daten im SLC zu überspringen; und wenn die Menge der veralteten Daten hoch ist, Kompaktieren des SLC-Cache, Vornehmen einer Speicherbereinigung, ohne irgendwelche Daten in den QLC zu verschieben.
-
2A und 2B sind schematische Veranschaulichungen der Planung einer Foggy-Feinprogrammierung gemäß verschiedenen Ausführungsformen. Das Front End-Modul (FE-Modul) 202 weist eine XOR-Engine 204 und einen statischen Direktzugriffsspeicher (SRAM) 206 auf. Hostdaten können anfänglich an das FE-Modul 202 geliefert werden. Die Daten durchlaufen die XOR-Engine 204 und werden in den SRAM 206 geschrieben. Die XOR-Engine 204 erzeugt XOR-Paritätsinformationen vor dem Schreiben in den SRAM 206. Exklusiv-ODER-Paritätsinformationen (XOR-Paritätsinformationen) werden verwendet zur Verbesserung der Zuverlässigkeit der Speichervorrichtung zum Speichern von Daten, wie Ermöglichen der Datenrückgewinnung fehlgeschlagener Schreibvorgänge oder fehlgeschlagener Datenlesevorgänge in und aus dem NVM oder Ermöglichen der Datenrückgewinnung im Falle eines Stromausfalls. Die Speichervorrichtung kann die Datenspeicherungsvorrichtung 104 aus 1 sein. Die Zuverlässigkeit kann bereitgestellt werden, indem XOR-Paritätsinformationen verwendet werden, die auf der Grundlage von Daten erzeugt oder berechnet werden, die in der Speichervorrichtung gespeichert werden. Die XOR-Engine 204 kann einen Paritätsstrom erzeugen, der in den SRAM 206 geschrieben werden soll. SRAM 206 kann eine Vielzahl von Chips enthalten, in die Daten geschrieben werden können.
-
Das zweite Flash-Manager-Modul (FM2-Modul) 210 besteht aus einem Codierer 212, einem SRAM 216 und einem Decodierer 214. Der Decodierer 214 kann einen Lastgang-Decodierer (LG-Decodierer) und einen Schnellgang-Decodierer (HG-Decodierer) aufweisen. Der LG-Decodierer kann Niederstrom-Bit-Flipping-Algorithmen implementieren, wie einen Paritätsprüfungs-Algorithmus mit niedriger Dichte (LDPC-Algorithmus). Der LG-Decodierer kann betreibbar sein zum Dekodieren von Daten und Korrigieren von Bit-Flips, wobei solche Daten eine niedrige Bitfehlerrate (BER) haben. Der HG-Decodierer kann Vollleistungsdecodierungs- und Fehlerkorrekturalgorithmen implementieren, die bei einem Ausfall des LG-Decodierers initiiert werden können, um Bitflips in Daten zu decodieren und zu korrigieren. Der HG-Decodierer kann betreibbar sein, um Bitflips zu korrigieren, wenn solche Daten eine hohe BER aufweisen. Alternativ kann FM2 durch einen kombinierten FE FM-Monochip ersetzt werden.
-
Der Codierer 212 und Decodierer 214 (einschließlich des LG-Decodierers und HG-Decodierers) können zum Beispiel eine Verarbeitungsschaltung oder einen Prozessor (mit einem computerlesbaren Medium, das computerlesbaren Programmcode speichert (z. B. Firmware), der durch den Prozessor ausführbar ist), eine Logikschaltung, eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierbare Logiksteuerung, eine eingebettete Mikrosteuerung, eine Kombination davon, oder dergleichen einschließen. In einigen Beispielen sind der Codierer 212 und der Decodierer 214 getrennt von der Speichersteuerung, und in anderen Beispielen sind der Codierer 212 und der Decodierer 214 in die oder in einen Teil der Speichersteuerung eingebettet. In einigen Beispielen ist der LG-Decodierer eine gehärtete Schaltung, wie eine Logikschaltung, eine ASIC oder dergleichen. In einigen Beispielen kann der HG-Decodierer ein Soft-Decodierer (z. B. durch einen Prozessor implementiert) sein. Daten können in SRAM 216 geschrieben werden, nachdem sie im Decodierer 214 decodiert wurden. Die Daten im SRAM 216 können weiterhin an den Codierer 212 geliefert werden, wie nachstehend erläutert.
-
Die Speichervorrichtung kann eine NAND-Speichervorrichtung sein. Die Speichervorrichtung 220 kann einen SLC 222 und einen MLC 224 aufweisen. Es versteht sich, dass die hierin erläuterten Ausführungsformen auf jede beliebige mehrstufige Zelle wie MLC, TLC oder QLC anwendbar sind. Der MLC ist lediglich beispielhaft. SLC 222, MLC, TLC, QLC und PLC werden gemäß der Anzahl von Bits benannt, die eine Speicherzelle aufnehmen kann. Zum Beispiel kann der SLC kann ein Bit pro Speicherzelle aufnehmen und der QLC kann vier Bits pro Speicherzelle aufnehmen. Jedes Bit wird auf der Speichervorrichtung als eine 1 oder eine 0 registriert. Zusätzlich wird, obwohl ein SLC-Speicher als eine Speichervorrichtung beispielhaft dargestellt ist, auch in Betracht gezogen, dass der SLC-Speicher durch eine 2-Bit-Zelle oder MLC-Speichervorrichtung ersetzt werden kann.
-
2A ist eine schematische Veranschaulichung eines Foggy-Feinschreibprozesses gemäß einer Ausführungsform. Host-Daten werden in das FE-Modul 202 eingespeist. Die Host-Daten werden durch die XOR-Engine 204 gesendet, und XOR-Paritätsinformationen werden erzeugt. Die Daten werden dann in den SRAM 206 am FE-Modul 202 geschrieben. Am FM2-Modul 210 werden Daten an den Codierer 212 aus dem SRAM 206 entlang Strom 1 geliefert. Die Daten werden dann entlang des Stroms 2 in den SLC 222 der Speichervorrichtung 220 geschrieben. Um mit dem Foggy-Feinschreiben von Daten in den MLC 224 fortzufahren, werden die Daten aus dem SLC 222 gelesen und dann im Decodierer 214 des FM2-Moduls 210 entlang Strom 3 decodiert. Die decodierten Daten werden dann in den SRAM 216 des FM2-Moduls 210 in Strom 4 geschrieben. Die Daten werden dann durch das codierte 212 entlang des Stroms 5 zur Codierung gesendet. Der Foggy-Schreibvorgang erfolgt nach Codieren der Daten am Codierer 212 des FM2-Moduls 210 vom SRAM 216 des FM2-Moduls 210 entlang des Stroms 6. Der Foggy-Schreibvorgang ist das anfängliche Schreiben von dem Codierer 212 des FM2-Moduls 210 in den MLC 224 der Speichervorrichtung 220. Um mit dem Feinschreibvorgang fortzufahren, werden Daten dann aus dem SLC 222 gelesen und an den Decodierer 214 entlang Strom 7 zugestellt. Nach der Decodierung werden die Daten in einen SRAM entlang Strom 8 geschrieben und dann an den Codierer 212 entlang Strom 9 zur Codierung geliefert. Die nun codierten Daten werden dann in MLC 224 entlang Strom 10 feingeschrieben.
-
Gemäß der Ausführungsform, auf die in 2A Bezug genommen wird, kann es keinen DRAM-Bus-Traffic geben. Weiterhin können die SLC- und MLC-Programmierung entkoppelt sein. Der Foggy-Feinschreibprozess kann einen Mehrstrom mit Direktschreib-Heiß/Kalt-Sortierunterstützung beinhalten. Jedoch kann der Bus-Traffic höher sein.
-
2B ist eine schematische Veranschaulichung eines Foggy-Feinschreibprozesses gemäß einer anderen Ausführungsform. Host-Daten werden an das FE-Modul 202 geliefert. Die Host-Daten durchlaufen die XOR-Engine 204 und XOR-Paritätsinformationen werden erzeugt. Die Daten werden dann in den SRAM 206 am FE-Modul 202 geschrieben. Aus dem SRAM 206 im FE-Modul 202 werden die Daten dann an den Codierer 212 entlang Strom 1 übertragen. Sobald die Daten codiert sind, werden die Daten entlang Strom 2 in den SLC 222 geschrieben. Simultan mit dem Übertragen der Daten an den Codierer 212 entlang Strom 1 werden die Daten in den DRAM 230 entlang Strom 3 übertragen. Der Foggy-Feinschreibprozess beinhaltet zunächst das Senden der geschriebenen Daten an den DRAM 230 und dann an den Codierer 212 entlang des Stroms 4 zur Codierung. Die codierten Daten werden dann in den MLC entlang des Stroms 5 foggy-geschrieben. Danach werden die Daten erneut aus dem DRAM 230 an den Codierer 212 entlang Strom 6 zum Codieren geschickt. Nach der Codierung werden die Daten dann entlang Stroms 7 in den MLC 224 feingeschrieben. Der Foggy-Schreibschritt überträgt die Daten von dem DRAM 230 an den Codierer 212 und schreibt die Daten in den MLC 224. Der Feinschreibschritt tritt nach dem Foggy-Schreibschritt auf. Der Feinschreibschritt überträgt die Daten von dem DRAM 230 zu dem Codierer 212 und schreibt die Daten in den MLC 224. Die SLC- und MLC-Programme können in einem sequentiellen Schreibprozess aufgrund von Pufferbeschränkungen auftreten.
-
3 ist ein Diagramm, das eine gestaffelte Foggy-Feinprogrammierung veranschaulicht. Es versteht sich, dass die Offenbarung nicht auf die beispielhaft in 3 dargestellte gestaffelte Foggy-Feinprogrammierung beschränkt ist, sondern andere Sequenzen ebenfalls in Betracht gezogen werden. Genauer kann, um eine Foggy-Feinprogrammierung durchzuführen, eine Foggy-Programmierung entlang einer Wortleitung für eine bestimmte Reihe nicht von hinten nach hinten auftreten. Wie in 3 gezeigt, müssen zum angemessenen Foggy-Feinschreiben in Wortleitung 0 in Reihe 0 mehrere zusätzliche Schreibvorgänge zwischen dem Foggy-Schreibvorgang in die Wortleitung 0, Reihe 0 und dem Feinschreibvorgang in die Wortleitung 0, Reihe 0 stattfinden. Der Foggy-Feinschreibprozess läuft wie folgt ab.
-
Anfänglich werden Daten auf die Wortleitung 0, Reihe 0 foggy-geschrieben. Anschließend werden Daten auf die Wortleitung 0, Reihe 1 foggy-geschrieben. Danach werden Daten auf die Wortleitung 0, Reihe 2 foggy-geschrieben. Anschließend werden Daten auf die Wortleitung 0, Reihe 3 foggy-geschrieben. Danach werden Daten auf die Wortleitung 1, Reihe 0 foggy-geschrieben. Nun können schließlich Daten in die Wortleitung 0, String 0 feingeschrieben werden. Die Pfeile in 3 veranschaulichen den Pfad des Schreibens in dem Foggy-Feinschreibprozess. Grundsätzlich werden, um Schreibdaten richtig foggy-feinzuschreiben, Daten anfänglich an den spezifischen Datenspeicherort foggy-feingeschrieben. Dann treten drei zusätzliche Foggy-Datenschreibvorgänge auf der gleichen Wortleitung auf, jedoch in unterschiedlichen Reihen. Ein fünfter Foggy-Schreibvorgang tritt in einer benachbarten Wortleitung entlang derselben Reihe des spezifischen Datenspeicherorts auf. Erst nach dem fünften Foggy-Schreibvorgang in die benachbarte Wortleitung und die gleiche Reihe kann das Feinschreiben in die ursprüngliche Wortleitung und ursprüngliche Reihe (d. h. an den ursprünglichen Datenspeicherort) durchgeführt werden. Insgesamt treten vier zusätzliche Foggy-Schreibvorgänge nach dem ursprünglichen Foggy-Schreibvorgang auf der Wortleitung an der ursprünglichen Reihe vor dem Feinschrieben bei der ursprünglichen Reihe auf der Wortleitung auf.
-
4A ist eine schematische Veranschaulichung einer Foggy-Fein-Programmierung gemäß einer Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die den schematischen Darstellungen der Planung einer Foggy-Feinprogrammierung von 4A entsprechen, ähnlich sein. Host-Daten werden in den ersten SRAM 406 des FE-Moduls 402 geschrieben. Erste XOR-Paritätsdaten können gleichzeitig an der ersten XOR-Engine 404 des FE-Moduls 402 erzeugt werden, wenn die Host-Daten in den ersten SRAM 406 geschrieben werden. Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten gelangen vom ersten SRAM 406 zum Codierer 412, um entlang Strom 1 codiert zu werden. Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten werden codiert und in den SLC 422 der Speichervorrichtung 420 entlang Strom 2 geschrieben. Der SLC 422 kann ein dedizierter Bereich der Speichervorrichtung 420 für den Schutz von Daten im Fall eines Leistungsausfallereignisses ist. Das Programmieren in den SLC 422 und das Programmieren in den MLC 424 ist entkoppelt, was eine erhöhte Planungsflexibilität und Leistung im Vergleich zu den in 2B beschriebenen Ausführungsformen ermöglicht. Die Host-Daten können weiterhin aus dem SLC 422 in mehrere Ströme oder Löschblöcke der MLC 424 sortiert werden.
-
An Strom 3 werden die Host-Daten am Decodierer 414 aus dem SLC 422 gelesen. Nachdem die Host-Daten am Decodierer 414 decodiert wurden, werden die Host-Daten entlang Strom 4 in den zweiten SRAM 416 des FM2 410 geschrieben, wobei weiterhin zweite XOR-Paritätsdaten für die Host-Daten an der zweiten XOR-Engine 432 des FM2 410 erzeugt werden. Die Host-Daten und die zweiten XOR-Paritätsdaten werden durch den Codierer 412 geleitet, um entlang Strom 5 codiert zu werden, und werden in den MLC 424 entlang Strom 6 foggy-geschrieben. Während des Foggy-Schreibens kann die Steuerung selektiv zu lesende Daten auswählen, um eine Datensortierung in den relevanten einen oder die relevanten mehreren Ströme zu ermöglichen.
-
Die Host-Daten und die erzeugten zweiten XOR-Paritätsdaten werden weiterhin entlang Strom 7 vom zweiten SRAM 416 zum DRAM 430 übertragen. In einer Ausführungsform treten Strom 5 und Strom 7 gleichzeitig auf. In einer anderen Ausführungsform erfolgt der Strom 5 vor dem Strom 7. Der DRAM 430 kann ein zusätzlicher flüchtiger Speicher der Speichervorrichtung sein, wie die Speichervorrichtung 104 von 1. Des Weiteren kann der DRAM 430 die Host-Daten und die zweiten XOR-Paritätsdaten zwischenlagern (z. B. in einem temporären Puffer), bis die relevante Wortleitung, die den Host-Daten zugeordnet ist, feingeschrieben werden kann. Die Host-Daten und die zweiten XOR-Paritätsdaten werden weiterhin vom DRAM 430 zum Codierer 412 übertragen, um entlang Strom 8 codiert zu werden. Nach dem Codieren werden die Host-Daten und die zweiten XOR-Paritätsdaten in den MLC 424 entlang Strom 9 feingeschrieben.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 410 in die Speichervorrichtung 420 oder umgekehrt beträgt etwa vier. Die Gesamtzahl der DRAM-430-Busübertragungen beträgt etwa zwei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 430 oder dem FE-Modul 402 auf das FM2 410 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 430 oder dem FE-Modul 402 auf das FM2 410 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
4B ist eine schematische Veranschaulichung der Speicherbereinigung gemäß einer Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die den schematischen Veranschaulichungen der Speicherbereinigung von 4B entsprechen, ähnlich sein. Da die Host-Daten bereits an den NAND angelegt wurden (z. B. der MLC 424) während der in 4A beschriebenen Planung der Foggy-Feinprogrammierung müssen die Host-Daten nicht von dem SLC 422 geschrieben werden. Die Speicherbereinigung ist ein Prozess der Speicherverwaltung, wobei die Steuerung, wie die Steuerung 108 von 1, der Speichervorrichtung, wie die Speichervorrichtung 104 von 1, versucht, Speicherorte zu deaktivieren, die veraltete Daten aufweisen, um Speicherplatz wiederzugewinnen. Wenn die Speicherbereinigung auftritt, kann die Steuerung versuchen, alle relevanten Daten (z. B. nicht veraltete Daten) von einem relevanten Ort, wie einem ersten Löschblock eines ersten Stroms, an einen anderen Ort, wie einen zweiten Löschblock eines ersten Stroms, zu kopieren, um die an den ursprünglichen Ort, den ersten Löschblock, gebundenen Ressourcen zu befreien.
-
Die Host-Daten aus einem ersten MLC 424-Bereich (z. B. einem ersten Löschblock eines ersten Stroms) werden von dem MLC 424 an den Decodierer 414 des FM2 410 entlang Strom 1 kopiert. Die Host-Daten werden decodiert und an den zweiten SRAM 416 entlang Strom 2 übertragen. Gleichzeitig werden zweiten XOR-Paritätsdaten an der zweiten XOR-Engine 432 erzeugt. Die Host-Daten und die zweiten XOR-Paritätsdaten werden entlang Strom 3 an den Codierer 412 übertragen, wo die Host-Daten und die zweiten XOR-Paritätsdaten codiert werden. Nach dem Codieren der Host-Daten und der zweiten XOR-Paritätsdaten werden die Host-Daten und die zweiten XOR-Daten in den MLC 424 entlang Strom 4 foggy geschrieben.
-
Die Host-Daten und die erzeugten zweiten XOR-Paritätsdaten werden entlang Strom 5 vom zweiten SRAM 416 zum DRAM 430 übertragen. In einer Ausführungsform treten Strom 3 und Strom 5 gleichzeitig auf. In einer anderen Ausführungsform erfolgt der Strom 3 vor dem Strom 5. Nachdem die Host-Daten erfolgreich in den DRAM 430 geschrieben wurden, werden die Host-Daten und die zweiten XOR-Paritätsdaten weiterhin vom DRAM 430 an den Codierer 412 entlang des zu codierenden Stroms 6 übertragen. Die codierten Host-Daten und zweiten XOR-Paritätsdaten werden dann in den MLC 424 entlang Strom 7 feingeschrieben. Die Speicherbereinigung des ursprünglichen Standorts der Daten kann auftreten, nachdem jeder der Ströme 1-7 erfolgreich abgeschlossen wurde. Nach der Speicherbereinigung schließt der Bereich in dem MLC 424, wo die Host-Daten und die zweiten XOR-Paritätsdaten gespeichert werden, die relevanten Daten ein und kann weniger Speicherplatz im Vergleich zur Speicherplatzanforderung vor der Speicherbereinigung benötigen.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 410 in die Speichervorrichtung 420 oder umgekehrt beträgt etwa drei. Die Gesamtzahl der DRAM-430-Busübertragungen beträgt etwa zwei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 430 oder dem FE-Modul 402 auf das FM2 410 oder umgekehrt beträgt etwa zwei, wobei etwa zwei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen von entweder dem DRAM 430 oder dem FE-Modul 402 auf das FM2 410 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa zwei betragen. Beim Vergleichen mit der in 2 beschriebenen Ausführungsform beträgt die Gesamtzahl der TM-Bus-Übertragungen aus dem FM2 210 in die Speichervorrichtung 220 oder umgekehrt etwa drei. Die Gesamtzahl der DRAM-230-Bus-Übertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
5 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die der schematischen Veranschaulichung der Planung einer Foggy-Feinprogrammierung von 5 entsprechen, ähnlich sein. Host-Daten werden von dem FE-Modul 502 empfangen, wobei erste XOR-Paritätsdaten durch die erste XOR-Engine 504 erzeugt werden. Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten werden in den ersten SRAM 506 des FE-Moduls 502 geschrieben.
-
Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten gelangen vom ersten SRAM 506 zum Codierer 512, um entlang Strom 1 codiert zu werden. Die codierten Host-Daten und die codierten ersten XOR-Paritätsdaten werden entlang Strom 2 in den SLC 522 geschrieben, wobei der SLC 522 einen Puffer einschließen kann, um die Daten, die vor der Foggy-Feinprogrammierung empfangen wurden, in eine Warteschlange zu setzen. Die Host-Daten werden von dem SLC 522 an den Decodierer 514 entlang Strom 3 übertragen, wobei der Decodierer 514 die empfangenen Host-Daten decodiert. Die decodierten Host-Daten werden entlang Strom 4 in den zweiten SRAM 516 des FM2 510 geschrieben. In einer Ausführungsform werden XOR-Paritätsdaten für die empfangenen decodierten Host-Daten an dem zweiten SRAM 516 erzeugt. Die Host-Daten werden zum Codieren entlang Strom 5 in den Codierer 512 kopiert, wobei die codierten Host-Daten entlang Strom 6 in den MLC 524 foggy geschrieben werden.
-
Die Host-Daten werden entlang Strom 7 von dem zweiten SRAM 516 auf den DRAM 530 übertragen. In einer Ausführungsform treten Strom 5 und Strom 7 gleichzeitig auf. In einer anderen Ausführungsform erfolgt der Strom 5 vor dem Strom 7. Nachdem die Host-Daten erfolgreich in den DRAM 530 geschrieben wurden, werden die Host-Daten und die zweiten XOR-Paritätsdaten von dem DRAM 530 an den Codierer 512 entlang des zu codierenden Stroms 8 übertragen. Die codierten Host-Daten und die zweiten XOR-Paritätsdaten werden dann entlang Strom 9 in den MLC 524 feingeschrieben.
-
Gemäß der in 5 genannten Ausführungsform können die SLC- und MLC-Programmierung entkoppelt sein. Der Foggy-Feinschreibprozess kann einen Mehrstrom mit Direktschreib-Heiß/Kalt-Sortierunterstützung sowie SLC-Burst-Unterstützung beinhalten. Darüber hinaus können offene Blöcke von dem SLC unterstützt werden, wobei offene DR- und RD-Blockprobleme adressiert werden. DRAM-Anforderungen können auch im Vergleich zu der vorherigen Ausführungsform, die in den 2A und 2B beschrieben ist, reduziert werden.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 510 in die Speichervorrichtung 520 oder umgekehrt beträgt etwa vier. Die Gesamtzahl der DRAM-530-Busübertragungen beträgt etwa zwei. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 530 oder dem FE-Modul 502 auf das FM2 510 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 530 oder dem FE-Modul 502 auf das FM2 510 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen. Beim Vergleichen mit der in 2 beschriebenen Ausführungsform beträgt die Gesamtzahl der TM-Bus-Übertragungen aus dem FM2 210 in die Speichervorrichtung 220 oder umgekehrt etwa drei. Die Gesamtzahl der DRAM-230-Bus-Übertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
6 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die der schematischen Veranschaulichung der Planung einer Foggy-Feinprogrammierung von 6 entsprechen, ähnlich sein. Host-Daten werden von dem FE-Modul 602 empfangen, wobei erste XOR-Paritätsdaten durch die erste XOR-Engine 604 erzeugt werden. Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten werden in den ersten SRAM 606 des FE-Moduls 602 geschrieben.
-
Die Host-Daten und die erzeugten ersten XOR-Paritätsdaten gelangen vom ersten SRAM 606 zum Codierer 612, um entlang Strom 1 codiert zu werden. Die codierten Host-Daten und die codierten ersten XOR-Paritätsdaten werden in den SLC 622 entlang Strom 2 geschrieben, wobei der SLC 622 einen Puffer einschließen kann, um die Daten, die vor der Foggy-Feinprogrammierung empfangen wurden, in eine Warteschlange zu stellen. Die Host-Daten werden dann aus dem SLC 622 entlang Strom 3 in den MLC 624 geschrieben.
-
Am ersten SRAM 606 werden die Host-Daten und die ersten XOR-Paritätsdaten entlang Strom 4 in den DRAM 630 geschrieben. Das Schreiben in den DRAM 630 entlang Strom 4 kann gleichzeitig mit Strom 1 oder Strom 2 erfolgen. Die Host-Daten werden vom DRAM 630 in den Codierer 612 kopiert, um entlang Strom 5 codiert zu werden. Die codierten Host-Daten werden in den MLC 624 entlang Strom 6 feingeschrieben.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 610 in die Speichervorrichtung 620 oder umgekehrt beträgt etwa zwei, was in einem geringeren TM-Bus-Leistungsverbrauch als in anderen zuvor beschriebenen Ausführungsformen resultiert. Die Gesamtzahl der Busübertragungen des DRAM 630 beträgt etwa zwei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 630 oder dem FE-Modul 602 auf das FM2 610 oder umgekehrt beträgt etwa zwei, wobei etwa zwei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen von entweder dem DRAM 630 oder dem FE-Modul 602 auf das FM2 610 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa zwei betragen. Beim Vergleichen mit der in 2 beschriebenen Ausführungsform beträgt die Gesamtzahl der TM-Bus-Übertragungen aus dem FM2 210 in die Speichervorrichtung 220 oder umgekehrt etwa drei. Die Gesamtzahl der DRAM-230-Bus-Übertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
7 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die den schematischen Veranschaulichungen der Planung einer Foggy-Feinprogrammierung von 7 entsprechen, ähnlich sein. Host-Daten werden am FE-Modul 702 empfangen, wobei die erste XOR-Engine 704 erste XOR-Paritätsdaten für die Host-Daten erzeugt und sowohl die Host-Daten als auch die ersten XOR-Paritätsdaten in den ersten SRAM 706 geschrieben werden. Die Host-Daten und die ersten XOR-Paritätsdaten werden aus dem SRAM 706 entlang Strom 1 zum Codierer 712 kopiert. Der Codierer 712 codiert die empfangenen Host-Daten und ersten XOR-Paritätsdaten und schreibt die codierten Daten entlang Strom 2 in den SLC 722.
-
Die Host-Daten werden von der SLC 722 an den Decodierer 714 entlang Strom 3 übertragen, wobei der Decodierer 714 die Host-Daten decodiert. Die decodierten Host-Daten werden entlang Strom 4 in den DRAM 730 geschrieben. Die Host-Daten werden an dem Codierer 712 entlang Strom 5 codiert und in den MLC 724 entlang Strom 6 foggy-geschrieben. Nach dem Foggy-Schreibvorgang in den MLC 724 werden die Host-Daten an dem Codierer 712 entlang Strom 7 erneut codiert, wobei die codierten Host-Daten entlang Strom 8 in den MLC 724 feingeschrieben werden. Der Foggy-Feinschreibvorgang in die MLC 724 schließt keine XOR-Paritätsdaten ein. Die XOR-Paritätsdaten können in dem SLC 722 gespeichert werden.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 710 in die Speichervorrichtung 720 oder umgekehrt beträgt etwa vier. Die Gesamtzahl der DRAM-730-Busübertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 730 oder dem FE-Modul 702 auf das FM2 710 oder umgekehrt beträgt etwa vier, wobei etwa vier Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen von entweder dem DRAM 730 oder dem FE-Modul 702 auf das FM2 710 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa vier betragen. Beim Vergleichen mit der in 2 beschriebenen Ausführungsform beträgt die Gesamtzahl der TM-Bus-Übertragungen aus dem FM2 210 in die Speichervorrichtung 220 oder umgekehrt etwa drei. Die Gesamtzahl der DRAM-230-Bus-Übertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
8 ist eine schematische Veranschaulichung der Planung einer Foggy-Feinprogrammierung gemäß einer weiteren Ausführungsform. Gesichtspunkte der 2A und 2B können den Ausführungsformen, die der schematischen Veranschaulichung der Planung einer Foggy-Feinprogrammierung von 8 entsprechen, ähnlich sein. Die Host-Daten werden von dem FE-Modul 802 empfangen und in den SRAM 806 geschrieben. Die erste XOR-Engine 804 erzeugt erste XOR-Paritätsdaten für die Host-Daten und schreibt die ersten XOR-Paritätsdaten in den SRAM 806. Die Host-Daten und die ersten XOR-Paritätsdaten werden entlang Strom 1 an den Codierer 812 übertragen, wobei der Codierer 812 die Host-Daten und die ersten XOR-Paritätsdaten codiert.
-
Die Host-Daten und die ersten XOR-Paritätsdaten werden entlang Strom 2 in den SLC 822 geschrieben. Die Host-Daten werden entlang Strom 3 aus dem SLC 822 in den Decodierer 814 kopiert, wo der Decodierer 814 die Host-Daten decodiert. Die decodierten Host-Daten werden in den zweiten SRAM 816 des FM2 810 entlang Strom 4 und in den dritten SRAM 832 des FE-Moduls 802 entlang Strom 5 kopiert. Die Host-Daten werden aus dem dritten SRAM 832 in den Codierer 812 entlang Strom 6 und aus dem zweiten SRAM 816 in den Codierer 812 entlang Strom 7 kopiert.
-
Die codierten Host-Daten werden von dem Codierer 812 entlang Strom 8 in den MLC 824 foggy-geschrieben. Die decodierten Host-Daten werden aus dem zweiten SRAM 816 in den DRAM 830 entlang Strom 9 und aus dem dritten SRAM 832 in den DRAM 830 entlang Strom 10 kopiert. Die Host-Daten werden aus dem DRAM 830 in den Codierer 812 entlang Strom 11 kopiert. Die codierten Host-Daten werden dann von dem Codierer 812 entlang Strom 12 in die MLC 824 feingeschrieben. Der Foggy-Feinschreibvorgang in dem MLC 824 schließt keine XOR-Paritätsdaten ein. Die XOR-Paritätsdaten können in dem SLC 822 gespeichert werden.
-
Die Gesamtzahl der TM-Busübertragungen oder der Übertragungen aus dem FM2 810 in die Speichervorrichtung 820 oder umgekehrt beträgt etwa vier. Die Gesamtzahl der DRAM-830-Busübertragungen beträgt etwa zwei. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 830 oder dem FE-Modul 802 auf das FM2 810 oder umgekehrt beträgt etwa 3,5, wobei etwa 3,5 Übertragungen für eine 50/50 SRAM-Pufferaufteilung ausmachen. Die Gesamtzahl der Übertragungen von entweder dem DRAM 830 oder dem FE-Modul 802 auf das FM2 810 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa 3,5 betragen. Beim Vergleichen mit der in 2 beschriebenen Ausführungsform beträgt die Gesamtzahl der TM-Bus-Übertragungen aus dem FM2 210 in die Speichervorrichtung 220 oder umgekehrt etwa drei. Die Gesamtzahl der DRAM-230-Bus-Übertragungen beträgt etwa drei. Die Gesamtzahl der Übertragungen von entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt beträgt etwa drei, wobei etwa drei Übertragungen für die Host-Datenübertragungen berücksichtigt werden. Die Gesamtzahl der Übertragungen aus entweder dem DRAM 230 oder dem FE-Modul 202 auf das FM2 210 oder umgekehrt kann je nach Anzahl der dem XOR-Paritätsdaten-Overhead zugeordneten Übertragungen mehr als etwa drei betragen.
-
In einer Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei die eine oder die mehreren Speichervorrichtungen den SLC-Speicher und den MLC-Speicher einschließen; und eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben der Daten in den SLC-Speicher; Foggy-Schreibvorgang der Daten in den MLC-Speicher, wobei das Foggy-Schreiben der Daten in den MLC-Speicher einschließt: das Abrufen der Daten aus Auffangregistern in dem einen oder mehreren Speichervorrichtungen; Decodieren der aus den Auffangregistern abgerufenen Daten; Codieren der decodierten Daten, die aus den Auffangregistern abgerufen wurden; und Schreiben der codierten Daten in den MLC-Speicher; und Feinschreiben der Daten in den MLC-Speicher. Das Feinschreiben weist auf: Decodieren der aus den Auffangregistern abgerufenen Daten; Erzeugen von XOR-Daten für die decodierten Daten, die aus den Auffangregistern abgerufen wurden; Übertragen der decodierten Daten, die aus den Auffangregistern abgerufen wurden, und der erzeugten XOR-Daten auf DRAM; Codieren der übertragenen Daten; und Schreiben der codierten Daten in den MLC-Speicher. Das Decodieren der Daten, die aus Auffangregistern zum Feinschreiben abgerufen wurden, ist dasselbe Decodieren der Daten, die aus Auffangregistern für den Foggy-Schreibvorgang abgerufen wurden. Die Steuerung ist eingerichtet, um eine Speicherbereinigung durchzuführen, wobei die Speicherbereinigung aufweist: Lesen von Daten aus dem MLC-Speicher; Decodieren der Lesedaten; Erzeugen von XOR-Daten für die Lesedaten; Codieren der erzeugten XOR-Daten und Lesedaten; und Foggy-Schreiben der Daten in den MLC-Speicher. Die Speicherbereinigung weist weiterhin Feinschreibdaten in den MLC-Speicher auf, wobei das Feinschreiben aufweist: Decodieren der aus dem MLC gelesenen Daten; Erzeugen von XOR-Daten für die Lesedaten; Übertragen der gelesenen Daten und der erzeugten XOR-Daten auf DRAM; Codieren der übertragenen Daten; und Feinschreiben der codierten Daten in den MLC-Speicher. Das Decodieren der Daten, die aus Auffangregistern zum Feinschreiben abgerufen wurden, ist dasselbe Decodieren der Daten, die aus Auffangregistern für den Foggy-Schreibvorgang abgerufen wurden. Das Foggy-Schreiben weist weiterhin auf: Erzeugen von XOR-Daten für die decodierten Daten, die aus den Auffangregistern abgerufen wurden; und Übertragen der erzeugten XOR-Daten auf DRAM.
-
In einer anderen Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei die eine oder mehreren Speichervorrichtungen jeweils eine Vielzahl von Chips einschließen, wobei jeder Chip einen SLC-Speicher und einen MLC-Speicher einschließt; und eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben von Daten in den SLC-Speicher; Lesen von Daten aus SLC-Speicher; Decodieren der Lesedaten; Übertragen der decodierten Daten auf DRAM; Codieren der Übertragungsdaten ein erstes Mal; und Schreiben der zum ersten Mal codierten Daten in den MLC-Speicher ein erstes Mal. Die Steuerung ist weiterhin eingerichtet, um die Übertragungsdaten ein zweites Mal zu codieren. Die Steuerung ist weiterhin eingerichtet, um die codierten Daten ein zweites Mal in den MLC-Speicher zu schreiben. Das Schreiben der zum ersten Mal codierten Daten in den MLC-Speicher ein erstes Mal ist ein Foggy-Schreibvorgang. Das Schreiben der zum zweiten Mal codierten Daten in den MLC-Speicher ein zweites Mal ist ein Feinschreibvorgang. Die Steuerung ist weiterhin eingerichtet, um die decodierten Daten in den SRAM zu übertragen, bevor die decodierten Daten in den DRAM übertragen werden. Die Steuerung ist weiterhin eingerichtet, um einige Daten zu codieren, die in den SRAM übertragen werden, ohne dass die in den SRAM übertragenen Daten in den DRAM übertragen werden.
-
In einer anderen Ausführungsform weist eine Datenspeicherungsvorrichtung auf: eine oder mehrere Speichervorrichtungen, wobei jede Speichervorrichtung eine Vielzahl von Dies hat, wobei die eine oder die mehreren Speichervorrichtungen jeweils SLC-Speicher und MLC-Speicher einschließen; eine Steuerung, die mit der einen oder den mehreren Speichervorrichtungen gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben der Daten in den SLC-Speicher; Lesen der Daten aus dem SLC-Speicher; Decodieren der Lesedaten; Zustellen der decodierten Daten an einen ersten SRAM, der sich in einem Frontend-Modul befindet; Zustellen der decodierten Daten an einen zweiten SRAM, der sich in einem Flash-Manager befindet; Schreiben von Daten, die in den ersten SRAM in dem MLC-Speicher zugestellt wurden; und Schreiben von Daten, die in den zweiten SRAM in dem MLC-Speicher zugestellt wurden. Die Steuerung ist weiterhin eingerichtet, um decodierte Daten an den DRAM zuzustellen. Die Steuerung ist weiterhin eingerichtet, um die decodierten Daten zu codieren, die an den DRAM zugestellt werden, und die codierten Daten in den MLC-Speicher zu schreiben. Die codierten Daten, die in den MLC-Speicher geschrieben werden, werden fein geschrieben. Die Daten, die aus dem ersten SRAM in den MLC-Speicher geschrieben werden, sind foggy-geschrieben. Die Daten, die aus dem zweiten SRAM in den MLC-Speicher geschrieben werden, sind foggy-geschrieben.
-
Durch Reduzieren von Datenübertragungen über einen NAND-Bus und einen DRAM-Bus tritt eine verbesserte Host-Schreibleistung und reduzierte Leistung auf. Die Übertragungen über den NAND-Bus können um 20 Prozent und die Übertragungen über den DRAM-Bus um 1/3 reduziert werden.
-
Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Offenbarung ausgearbeitet werden, ohne vom grundlegenden Schutzumfang davon abzuweichen, und der Schutzumfang wird durch die nachstehenden Ansprüche bestimmt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-