-
RÜCKVERWEISUNG AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht den Vorteil der vorläufigen US Patentanmeldung mit der Seriennummer 62/747,525, eingereicht am 18. Oktober 2018, welche hierin durch Bezugnahme aufgenommen ist.
-
HINTERGRUND DER OFFENBARUNG
-
Gebiet der Offenbarung
-
Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf eine Solid-State-Gerät- (SSD-)Verwaltung von nichtflüchtigen Speicher- (NVM-)Blöcken zum Schreiben mehrerer Datenströme.
-
Beschreibung des Stands der Technik
-
SSDs werden durch die Schreibverstärkung aufgrund der Blocklöschnatur der NAND-Operation negativ beeinflusst. SSDs befreien Speicherplatz, der von ungültigen Seiten durch den Prozess der Speicherbereinigung verbraucht wird. Um Speicherplatz in einem Block freizugeben, der sowohl gültige (vorhandene) als auch ungültige Daten enthält (Daten, die zum Löschen markiert sind), löscht die SSD den gesamten Block und verschiebt die gültigen Daten oder schreibt sie in einen neuen Block. Der Prozess des erneuten Schreibens gültiger Daten verbraucht mehr physikalische Kapazität im Vergleich zu der logischen Kapazität des SSD und verstärkt die gesamten Schreibvorgänge, die durch SSDs durchgeführt werden. SSDs sind überprovisioniert, um diesen Bedarf an mehr physischer Kapazität im Vergleich zu logischer Kapazität zu kompensieren. Abhängig vom Ausmaß der Überversorgung auf einer SSD kann der Schreibverstärkungsfaktor zwischen nahezu 1 und unendlich liegen.
-
Datenströme sind sequentielle Arbeitslasten, die von einer SSD von einem Host empfangen werden, um den Durchsatz einer SSD zu erhöhen. Wenn jedoch mehrere Datenströme zusammen in denselben Blockpool oder Superblock einer SSD geschrieben werden, werden die sequenziellen Arbeitslasten zu zufälligen Arbeitslasten, was zu einer Leistungsverschlechterung der SSD und einer erhöhten Schreibverstärkung der SSD führt. Daher besteht ein Bedarf für eine verbesserte Struktur von NVM-Blöcken von SSDs und ein verbessertes Verfahren zum Betreiben von SSDs.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Die vorliegenden Ausführungsformen schließen im Allgemeinen Arbeitslasten von mehreren Datenströmen zu Superebenenblöcken ein, die unterschiedliche Ebenen der Benutzerdatendies und/oder des/der XOR-Die(s) überspannen.
-
In einer Ausführungsform schließt ein Solid-State-Gerät eine Steuerung und einen nichtflüchtigen Speicher ein. Der nichtflüchtige Speicher schließt eine Vielzahl von Dies ein. Jeder Die schließt eine Vielzahl von Ebenen ein. Ein erster Superebenenblock ist aus einer ersten Ebene der Vielzahl von Dies strukturiert. Ein zweiter Superebenenblock ist aus einer zweiten Ebene der Vielzahl von Die strukturiert. Und eine Vielzahl von Speicheroperationsbefehlen, die, wenn sie durch die Steuerung ausgeführt werden, bewirken, dass die Steuerung einen ersten Datenstrom empfängt, den ersten Datenstrom in den ersten Superebenenblock schreibt, einen zweiten Datenstrom empfängt und den zweiten Datenstrom zu dem zweiten Superebenenblock schreibt.
-
In einer anderen Ausführungsform schließt ein Solid-State-Gerät eine Steuerung, eine Datenstrom-Unterstützungseinrichtung und eine Vielzahl von Speicheroperationsanweisungen ein. Die Datenstrom-Unterstützungseinrichtung dient zum gleichzeitigen Schreiben separater Daten auf NAND-Flash-Speicher. Die Vielzahl von Speicheroperationsbefehlen, die, wenn sie durch die Steuerung ausgeführt werden, bewirkt dass die Steuerung gleichzeitig separate Daten in die Datenstrom-Unterstützungseinrichtung schreibt.
-
In einer Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Strukturieren eines nichtflüchtigen Speichers in einen ersten Superebenenblock und einen zweiten Superebenenblock ein. Der erste Superebenenblock ist aus einer ersten Ebene einer Vielzahl von Dies strukturiert, und der zweite Superebenenblock ist aus einer zweiten Ebene der Vielzahl von Dies strukturiert. Ein erster Datenstrom wird in den ersten Superebenenblock geschrieben. Ein zweiter Datenstrom wird in den zweiten Superebenenblock geschrieben.
-
In einer anderen Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Bereitstellen eines nichtflüchtigen Speichers ein, der mehrere Dies mit mehreren Ebenen umfasst. Der nichtflüchtige Speicher ist in eine Vielzahl von Superebenenblöcken strukturiert. Jeder Superebenenblock überspannt getrennte Ebenen der Vielzahl von Dies. Eine Vielzahl von Datenströmen wird in die Vielzahl von Superebenenblöcken geschrieben.
-
In noch einer weiteren Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Bereitstellen eines nichtflüchtigen Speichers ein, der mehrere Benutzerdatendies und einen XOR-Die umfasst. Eine Paritätsinformation eines ersten Datenstroms wird in eine erste Ebene oder in einen ersten Satz von Ebenen des XOR-Dies geschrieben. Eine Paritätsinformation eines zweiten Datenstroms wird in eine zweite Ebene oder auf einen zweiten Satz von Ebenen des XOR-Dies geschrieben.
-
Figurenliste
-
Zur Verdeutlichung der Art und Weise, wie die vorstehend dargelegten 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 dargestellt sind und diese daher nicht als Einschränkung ihres Umfangs anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
- 1 ist ein schematisches Diagramm, das bestimmte Ausführungsformen eines Systems darstellt, das einen Host und ein Solid-State-Gerät umfasst.
- 2 ist ein schematisches Blockdiagramm, das eine Ausführungsform eines Speicherarrays veranschaulicht;
- 3 ist ein schematisches Diagramm, das bestimmte Ausführungsformen von Schwellenspannungsverteilungen einer Quad-Level-Zelle (QLC) veranschaulicht.
- 4 ist ein schematisches Diagramm, das die Strukturierung eines nichtflüchtigen Speichers in eine Vielzahl von Superblöcken darstellt.
- 5A ist ein schematisches Diagramm, das bestimmte Ausführungsformen der Strukturierung eines nichtflüchtigen Speichers in zwei Superebenenblöcke zeigt, die sich über Dies erstrecken, die zwei Ebenen haben.
- 5B ist ein schematisches Diagramm, das bestimmte Ausführungsformen der Strukturierung eines nichtflüchtigen Speichers in vier Superebenenblöcken zeigt, die sich über Dies erstrecken, die vier Ebenen haben.
- 6 ist ein schematisches Diagramm bestimmter Ausführungsformen zum Unterstützen von zwei Datenströmen in Superebenenblöcken des nichtflüchtigen Speichers von 5A und/oder 5B.
- 7 ist ein schematisches Diagramm bestimmter Ausführungsformen einer SSD, die mit Superebenenblöcken strukturiert ist, die unabhängig ohne Speicherbereinigung ungültig gemacht/ bereinigt oder gelöscht werden können.
- 8 ist ein schematisches Diagramm, das bestimmte Ausführungsformen des Austauschs von Strömen zwischen Ebenen darstellt.
- 9 ist ein schematisches Diagramm, das bestimmte Ausführungsformen von SSD-Superebenenblöcken zeigt, die zu Superblöcken zusammengeführt werden.
- 10A-10B sind schematische Darstellungen, die bestimmte Ausführungsformen einer SSD veranschaulichen, die mit acht Ebenen-Dies mit acht Superebenenblöcken organisiert ist, die mehrere Datenströme aus dem Cache entfernen.
- 11 ist ein schematisches Diagramm, das bestimmte Ausführungsformen einer SSD zeigt, die mit einem kleineren Cache für logische Seiten strukturiert ist, der aufgrund einer verbesserten Effizienz reduziert ist, die durch Superebenenblöcke der NVM bereitgestellt wird.
- 12 ist ein schematisches Diagramm, das bestimmte Ausführungsformen des Schreibens von Paritätsinformationen von Datenströmen auf getrennten Ebenen eines oder mehrerer XOR-Dies veranschaulicht.
- Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemeinsam sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Aufzählung vorteilhaft auf andere Ausführungsformen angewendet werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Im Folgenden wird auf die Ausführungsformen der Offenbarung verwiesen. Es sollte jedoch verstanden werden, 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 Umsetzung und Praxis der Offenbarung in Betracht gezogen. Auch wenn Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder dem Stand der Technik erzielen können, bedeutet die Tatsache, ob durch eine bestimmte Ausführungsform ein besonderer Vorteil erzielt wird oder nicht, keine Einschränkung der Offenbarung. Die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beigefügten Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen erwähnt. Ebenso darf die Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und gilt nicht als Element oder Einschränkung der beigefügten Ansprüche, es sei denn, sie wird ausdrücklich in Ansprüchen angegeben.
-
Der Begriff „umfasst/umfassend“ umfasst die Teilmengenbedeutung von „besteht/besteht im Wesentlichen aus“ und schließt die Teilmengenbedeutung von „besteht/besteht aus ein.
-
Bestimmte Ausführungsformen der Strukturierung eines nichtflüchtigen Speichers können die Lebensdauer, Zuverlässigkeit und/oder Leistung von Halbleitervorrichtungen erhöhen, die mehrere Datenströme unterstützen. In bestimmten Ausführungsformen reduzieren Workloads von mehreren Datenströmen zu Superebenenblöcken, die sich über verschiedene Ebenen der Benutzerdaten-Dies und/oder XOR-Dies erstrecken, den Schreibverstärkungsfaktor, reduzieren den Konflikt beim Schreiben in dieselbe Ebene und reduzieren die Löschbare Einheit von Superebenenblöcken, vereinfacht XOR-Operationen und Datenwiederherstellung und/oder reduziert die Größe und die Kosten des Datenstrom-Cache.
-
1 ist ein schematisches Diagramm, das bestimmte Ausführungsformen eines Systems 100 darstellt, das einen Host 101 und ein Solid-State-Gerät (SSD) 102 umfasst. Das SSD 102 schließt einen nichtflüchtigen Speicher (NVM) 110 ein. Der NVM 110 ist für die Langzeitdatenspeicherung von Informationen konfiguriert und speichert die Informationen nach dem Ein- und Ausschalten. Der NVM 110 schließt eine oder mehrere Anordnungen von nichtflüchtigen Speichervorrichtungen ein, wie beispielsweise mehrere Speicher-Dies 111-1 bis 111-N. Der NVM 110 kann eine oder mehrere Arten von Speichervorrichtungen einschließen. Beispiele für Speichervorrichtungen schließen Flash-Speicher, Phasenänderungsspeicher, ReRAM-Speicher, MRAM-Speicher, elektrisch programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM) und andere Festkörperspeicher ein. NVM-Vorrichtungen können auch unterschiedliche Konfigurationen aufweisen. Zum Beispiel können Flash-Speichervorrichtungen in einer NAND- oder NOR-Konfiguration eingerichtet sein. NAND-Flashspeicher werden in Unternehmensanwendungen zum Schreiben und Lesen großer Datenmengen aufgrund der niedrigen Kosten und der hohen Leistungsfähigkeit von NAND-Flash im Vergleich zu NOR-Flash verwendet. Der/die Speicherchip(s) 111-1 bis 111-N kann/können beliebige Konfigurationen oder beliebige Arten von Speicherchips oder Vorrichtungen darstellen, die angeordnet sind, um Daten zu speichern, auf die über die Kanäle 105-1 bis 105-N zugegriffen werden kann.
-
Die SSD 102 arbeitet mit dem Host 101 über eine Host-Schnittstelle 103 zusammen, die beispielsweise Mac- und Phy-Komponenten einschließt, um die Kommunikation vom Host 101 zur SSD 102 und die Kommunikation vom SSD 102 zum Host 101 zuzulassen. Die SSD 102 kann in Form eines austauschbaren Speichers wie einer Speicherkarte vorliegen, kann in Form eines eingebetteten Speichersystems vorliegen oder kann ein beliebiger geeigneter Formfaktor sein.
-
SSD 102 schließt eine Steuerung 140 ein, um NVM 110 zu steuern. Die Host-Schnittstelle 103 und die NVM-Schnittstelle 158 können als Teil der Steuerung 140 betrachtet werden. Die Steuerung 140 steuert Programmier-/Schreib-, Lese- und Löschoperationen an den Speicherchips 111-1 bis 111-N über die Kanäle 105-1 bis 105-N. Die Steuerung 140 kann einen flüchtigen Speicher 130 zur Kurzzeitspeicherung oder einen temporären Speicher während des Betriebs der SSD 102 einschließen. Der flüchtige Speicher 130 behält gespeicherte Daten nicht bei, wenn er abgeschaltet ist. Beispiele für flüchtige Speicher schließen dynamische Direktzugriffsspeicher (DRAM) 132, statische Direktzugriffsspeicher (SRAM) 134 und andere Formen von flüchtigen Speichern ein. Das System 100 kann Datenströme in einem Cache in dem Host 101 und/oder in einem Cache in der SSD 102, wie beispielsweise dem SRAM 134, dem DRAM 132 und/oder der NVM, zwischenspeichern oder in eine Warteschlange stellen.
-
Die Steuerung 140 schließt eine Flash-Übersetzungsschicht (FTL) 160 ein. Die FTL 160 bestimmt die physikalischen Blockadressen (PBAs), die den logischen Blockadressen (LBAs) von Hostbefehlen und Speichergerätetasks zugeordnet sind. Die FTL 160 kann im NVM 110 gespeichert und in den flüchtigen Speicher 130 geladen oder teilweise geladen werden. Die FTL 160 kann eine Zuordnung von logischen zu physischen (oder virtuellen zu physischen) Datenadressen 162 einschließen. Die Host-Vorrichtung 101 kann Bezug auf eine Dateneinheit nehmen, die eine logische Datenadresse verwendet, und die Steuerung 140 kann die verwenden, um das Schreiben von Daten in die NVM 110 und das Lesen von Daten von dieser zu leiten. Die FTL 160 kann Speicherbereinigungstabellen 164 einschließen, um gültige Daten aus einem ausgewählten Block mit ungültigen Daten in einen offenen Block oder in einen teilweise gefüllten Block zu verschieben und den ausgewählten Block zu löschen. Die FTL 160 kann einen Verschleißnivellierungszähler 166 einschließen, um die Anzahl der Programmlöschzyklen eines Blocks aufzuzeichnen, um die Verwendung der Blöcke der NVM 110 zu nivellieren. Die FTL 160 kann einen freien Blockpool 168 einschließen, der die Blöcke auflistet, die zum Programmieren offen oder zum Programmieren verfügbar sind.
-
Die Steuerung 140 kann ferner einen Arbiter 150 einschließen, um Datenübertragungen zwischen dem Host 101 und der SSD 102 bei Programmier-/Schreib-, Lese- und Löschoperationen zu den Speicherchips 111 zu erleichtern. Die Steuerung 140 kann ferner ein Fehlerkorrekturmodul 136 einschließen, um die aus den Speicher-Arrays abgerufenen Daten zu korrigieren. Das Fehlerkorrekturmodul 136 kann in Software oder Hardware implementiert sein. Das Fehlerkorrekturmodul 136 berechnet Paritätsinformationen, wie beispielsweise Exklusiv-ODER- (XOR-)Paritätsinformationen oder Redundanzprüfsummen-Paritätsinformationen, der Hostdaten, die in die NVM 110 geschrieben werden sollen. Die Paritätsinformationen überprüft und korrigiert zusammen mit dem Decodierungsalgorithmus Daten, die von den Speicherarrays abgerufen werden. Beispiele für die vom Fehlerkorrekturmodul verwendete Decodierung schließen Hamming-, Reed-Solomon-, Bose-Chaudhuri-Hocquenghem- und Low-Density-Parity-Check-Decodierung ein. Die Steuerung 140 schließt auch ein Fehlercode-Korrekturmodul 154 ein.
-
Die hier beschriebenen Techniken können auch in einem Herstellungsgegenstand verkörpert oder codiert sein, der ein computerlesbares Speichermedium einschließt, das mit Anweisungen codiert ist. Anweisungen, die in einem Herstellungsgegenstand, der ein computerlesbares Speichermedium einschließt, eingebettet oder codiert sind, können dazu führen, dass ein oder mehrere programmierbare Prozessoren oder andere Prozessoren eine oder mehrere der hier beschriebenen Techniken implementieren, beispielsweise wenn in dem computerlesbaren Speichermedium eingeschlossene oder codierte Anweisungen von einem oder mehreren Prozessoren ausgeführt werden. Computerlesbare Speichermedien können Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), programmierbaren Nur-Lese-Speicher (PROM), löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektronisch löschbaren, programmierbaren Nur-Lese-Speicher (EEPROM), Flash-Speicher, eine Festplatte, ein Compact Disc ROM (CD-ROM), eine Diskette, eine Kassette, ein magnetisches Medium, ein optisches Medium oder ein anderes computerlesbares Medium einschließen. In einigen Beispielen kann ein Herstellungsgegenstand ein oder mehrere computerlesbare Speichermedien einschließen. In einigen Beispielen kann ein computerlesbares Speichermedium ein nichtflüchtiges Medium einschließen. Der Begriff „nichtflüchtig“ kann angeben, dass das Speichermedium nicht in einer Trägerwelle oder einem sich ausbreitenden Signal enthalten ist.
-
In bestimmten Ausführungsformen führt die Steuerung 140 mithilfe computerlesbarer Programmcodes (z. B. Software oder Firmware) ausführbare Anweisungen (hier als „Anweisungen“ bezeichnet) aus. Die Anweisungen können von verschiedenen Komponenten des Controllers 140 ausgeführt werden, wie beispielsweise Prozessoren, neuronale Netze, Logikgattern, Schaltern, anwendungsspezifischen integrierten Schaltungen (ASICs), programmierbaren Logiksteuerungen, eingebetteten Mikrosteuerungen und anderen Komponenten des Controllers 140.
-
2 ist ein schematisches Diagramm, das bestimmte Ausführungsformen eines Speicher-Arrays 310 darstellt, wie beispielsweise die Speicher-Arrays der Speicherchips 111 von 1. Das gezeigte Speicher-Array 310 ist ein 3D- oder vertikales NAND-Speicherarray oder ein Bit-Cost-Scalable (BiCS) -Zellenarray, es können jedoch auch andere Speicher-Arrays verwendet werden. Das Speicher-Array 310 besteht aus einer Vielzahl von Seiten 390. Jede Seite 390 schließt einen Satz von NAND-Zeichenketten 350 ein (vier NAND-Zeichenketten sind gezeigt). Jeder Satz der NAND-Kette 350 ist gemeinsam mit einer Bitleitung 380 verbunden. Jede Seite 390 hat eine eigene Bitleitung 380, deren Anzahl von BL0 bis BLM abhängig von der Anzahl der Seiten 390 ist. Jede NAND-Kette 350 schließt einen Auswahl-Gate-Drain-Transistor (SGD), eine Vielzahl von Speicherzellen 360A-360N und einen Auswahl-Gate-Source-Transistor (SGS) ein. Eine Reihe von Speicherzellen ist gemeinsam mit einer Wortleitung (WL) 370 verbunden. Die Anzahl der Wortleitungen (WL0, WL1 usw.) hängt von der Anzahl der Speicherzellen in einer NAND-Kette 350 ab. Die Source-Elektrode jedes SGS-Transistors ist entlang einer Leitung 385 miteinander gekoppelt.
-
Die Speicherzellen 360A-360N bestehen aus einem Transistor, der ein Ladungsspeicherelement zum Speichern einer gegebenen Ladungsmenge aufweist, die einen Speicherzustand darstellt. Die Speicherzellen 360A-360N können in einer Single-Level-Zelle (SLC) betrieben werden, die ein Speicherbit pro Zelle speichert, einer Multi-Level-Zelle (MLC), die zwei Speicherbits pro Zelle speichert, einer Triple-Level-Zelle (TLC), die drei Speicherbits pro Zelle speichert, einer Quad-Level-Zelle (QLC), die vier Speicherbits pro Zelle speichert, oder einer beliebigen Art von Speicherzelle, die eine beliebige Anzahl von Bits pro Zelle speichert. Seite 390 ist eine Gruppe von Speicherzellen, die als Gruppe programmiert und gelesen werden. Mehrere Seiten 390 bilden einen Block 395. Die Speicherzellen in einem einzelnen Block 395 werden typischerweise zusammen gelöscht.
-
Hier beschriebene Ausführungsformen sind nicht auf dreidimensionale Speicher-Arrays beschränkt, die in 2 beschrieben sind, decken aber alle relevanten Speicherstrukturen ab. Andere Anordnungen sind möglich, wie beispielsweise eine dreidimensionale NAND-Kette, die in einer U-Form ausgebildet ist, zweidimensionale Speicher-Arrays oder andere Speicher-Arrays, die aus einem beliebigen Speicherklassenspeicher hergestellt sind. Mehrere Speicher-Arrays, wie beispielsweise dieselbe Art oder gemischte Art von Speicher-Arrays, können auf einem separaten Die gebildet und dann zusammengepackt werden.
-
3 ist ein schematisches Diagramm, das bestimmte Ausführungsformen von Schwellenspannungsverteilungen einer Quad-Level-Zelle (QLC) 362, wie beispielsweise der Speicherzellen 360 von 2. darstellt, die einen oder mehrere der Speicherchips 111 von 1 bilden. Die QLC 362 speichert vier Bits pro Zelle, wie durch die möglichen Schwellenspannungen 364 abgegrenzt, die in sechzehn Bereiche unterteilt sind, um sechzehn mögliche Speicherzustände abzugrenzen. Ein Beispiel einer 4-Bit-Graucodierung 366, die durch die sechzehn möglichen Speicherzustände 364 dargestellt ist, ist gezeigt, obwohl mehrere andere 4-Bit-Graucodierungen möglich sind. Jeder der sechzehn Speicherzustände repräsentiert eine Vierergruppe von oberen, oberen mittleren, unteren mittleren und unteren Bits. Die Schwellenspannung der vier Codebits (d.h. obere, obere mittlere, untere mittlere und untere Bits) eines Speicher-Arrays kann in mehreren Runden gelesen oder programmiert werden. Beispielsweise können während des Lesens die Schwellenspannungen, die die unteren Bits des Speicher-Arrays darstellen, in einer Runde gelesen werden, und die Schwellenspannungen, die die oberen Bits darstellen, können in einer anderen Runde gelesen werden. Zum Beispiel können beim Programmieren die Schwellenspannungen des Speicher-Arrays in mehreren Runden programmiert und verifiziert werden, bis die endgültige gewünschte Schwellenspannung erreicht ist. Aufgrund der mehreren möglichen Schwellenspannungspegel sind die Ausführungszeiten für QLC-Speicherzellen länger als die Ausführungszeiten für TLC-Speicherzellen. Die Ausführungszeiten von TLC-Speicherzellen sind länger als die Ausführungszeiten von MLC-Speicherzellen. Die Ausführungszeiten von MLC-Speicherzellen sind länger als die Ausführungszeit von SLC-Speicherzellen.
-
Jedes Mal, wenn eine Speicherzelle programmiert wird, wird das Speichergatter abgenutzt oder beschädigt. Für Speicherzellen, die mehrere Schwellenspannungszustände betreiben (d.h. zwei oder mehr Bits pro Zelle speichern), erfahren die Speichergatter aufgrund der mehreren Programmierrunden, die erforderlich sind, um den endgültigen gewünschten Schwellenspannungszustand zu erreichen, einen hohen Verschleiß. In ähnlicher Weise sind die Fehlertoleranz der Speichergatter aufgrund der mehreren Schwellenspannungszustände und die Messschwelle zwischen den Schwellenspannungszuständen für Speicherzellen, die mehr Bits/Zelle speichern, kleiner. Speichergatter, die mehrere Schwellenspannungspegel speichern, weisen aufgrund der damit einhergehenden Verschiebung der Schwellenspannung eine geringere Toleranz für Ladungsverlust auf. Aufgrund der Abnutzung des Speichergatters und aufgrund der geringeren Fehlertoleranz bei der Messung der Spannungsschwellenzustände ist die Lebensdauer (d.h. die Anzahl der Programmier-/Löschzyklen über die Lebensdauer der Speichervorrichtung) der QLC-Speicherzellen geringer als die Lebensdauer von TLC-Speicherzellen. Die Lebensdauer von TLC-Speicherzellen ist geringer als die von MLC-Speicherzellen. Die Lebensdauer von MLC-Speicherzellen ist geringer als die von SLC-Speicherzellen.
-
4-12 sind schematische Darstellungen, die verschiedene Ausführungsformen der Strukturierung von NVM zur Unterstützung des Schreibens von Datenströmen (d.h. Sequentielle Arbeitslasten) von einem Host auf eine SSD wie das System 100 von 1 unter Verwendung von QLC-Speicherzellen von 3 veranschaulichen und ähnliche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet. Die verschiedenen Ausführungsformen sind auch auf andere Systeme und auf andere Arten von Speichervorrichtungen/-zellen anwendbar. Das Schreiben von gestreamten Daten in die NVM 110 der SSD 102 vom Host 101 kann aus einem Cache des Hosts 101, einem Cache der SSD 102 und/oder einem direkten Schreiben von Daten vom Host 101 auf die SSD 102 ohne Zwischenspeicherung erfolgen (z. B. wenn die SSD 102 als virtueller Speicher des Hosts 101 fungiert). Die Datenströme können durch eine Datenstrom-ID identifiziert werden, um die Verwaltung der Datenströme zu erleichtern.
-
4 ist ein schematisches Diagramm, das die Strukturierung der NVM 110 in eine Vielzahl von Superblöcke 50A veranschaulicht. Jeder Die 111-1 bis 111-N weist eine Vielzahl von Ebenen 10. In 4 sind zwei Ebenen 10 für jeden Die 111 gezeigt, der Die kann jedoch eine beliebige Anzahl von Ebenen einschließen, wie beispielsweise 2, 4, 6, 8 oder mehr Ebenen. Gleichzeitige Operationen können auf jeder Ebene 10 stattfinden. Jede Ebene 10 schließt eine Vielzahl von Blöcken 20 ein, die in der Regel die kleinste Einheit sind, die gelöscht werden kann. Jeder Block schließt eine Vielzahl von Seiten 30 ein, die in der Regel die kleinste Einheit sind, die programmiert oder gelesen werden kann.
-
Eine SSD kann in Superblocks 50 strukturiert sein, um eine dedizierte Stream-Unterstützung für eine erhöhte Leistung der SSD bereitzustellen. Zum Beispiel weist, wie in 4 gezeigt, ein Superblock 50 einen oder mehrere Blöcke 20 auf, die über jede Ebene 10 jedes der Dies 111-1 bis 111-N gestreift sind, um Datenströme zu speichern, um die Leistung und Bandbreite der SSD zu erhöhen. Für Hochleistungs-SSDs wird ein Datenstrom simultan oder gleichzeitig über mehrere Dies 111 des Superblocks 50 auf mehrere Seiten 30 geschrieben. In ähnlicher Weise kann der Lesevorgang von Seiten 30 über mehrere Dies 111 des Superblocks 50 simultan oder gleichzeitig durchgeführt werden.
-
Der Superblock 50 ermöglicht parallele Operationen zu den Dies 111-1 bis 111-N auf der NVM 110, indem er alle Kanäle 105-1 bis 105-N zwischen der NVM-Schnittstelle 158 und der NVM 110 überspannt. Parallele Operationen erhöhen die Leistung der SSD. Der Superblock 50 kann auch Metadaten für die Zuordnung von logischen zu physikalischen Adressen speichern, um die Arbeitslast der FTL 160 zu verringern und die Leistung der SSD weiter zu erhöhen.
-
Paritätsinformationen, wie beispielsweise exklusive OR (XOR) -Paritätsinformationen, können auf demselben Die wie ein Datenstrom in dem Superblock 50 gespeichert oder auf einem separaten Die in dem Superblock 50 zusammen kombiniert werden. In Unternehmensanwendungen von SSDs ist es wünschenswert, eine vollständige Die-Redundanz bereitzustellen, um Benutzerdaten zu schützen, falls einer der Dies ausfällt oder nicht lesbar ist. Volle Die-Redundanz kann bereitgestellt werden, indem Paritätsinformationen auf einem oder mehreren separaten Dies von den Benutzerdaten gespeichert werden. Zum Beispiel wird, wie in 4 gezeigt, der Datenstrom 52 in einem Satz von Benutzerdaten-Dies 72 des Superblocks 50 gespeichert, und die Paritätsinformationen 54 eines Datenstroms werden miteinander kombiniert und in einem oder mehreren separaten XOR Dies 74 des Superblocks 50 gespeichert. Wenn einer der Benutzerdaten-Dies 72, der den Datenstrom 52 speichert, ausfällt, kann der Datenstrom 52 aus den Paritätsinformationen 54 auf dem oder den XOR-Die(s) 74 wiederhergestellt werden. Wenn der Datenstrom 52 und die Paritätsinformation 54 auf den gleichen Die geschrieben werden würden, wäre ein Datenstrom nicht wiederherstellbar, selbst wenn er ausfällt.
-
Eine SSD kann mehrere Superblöcke 50 bereitstellen, um mehrere Datenströme zu unterstützen. Beispielsweise kann der Superblock 50A den Datenstrom 52A unterstützen und der Superblock 50B kann den Datenstrom 52B unterstützen. Ein Nachteil der mehreren Superblöcke 50, die mehrere Datenströme 52 unterstützen, ist der Konflikt um Operationen (d.h. Programmieren, Lesen, Löschen) mehrerer Stromdaten auf derselben Ebene 10 desselben Dies 111. Zum Beispiel kann im Fall von zwei Datenströmen, wie zum Beispiel dem Datenstrom 52A und dem Datenstrom 52B, die auf demselben Die 111 auf dieselbe Ebene 10 geschrieben werden, die Ausführung der Datenschreibvorgänge nicht gleichzeitig auf derselben Ebene 10 erfolgen. Stattdessen schreibt die SSD einen Teil des Datenstroms 52A in die Ebene 10, dann schreibt die SSD einen Teil des Datenstroms 52B in die Ebene 10 und dann schreibt die SSD einen Teil des Datenstroms 52A in die Ebene 10. Die Schreibausführung wechselt zwischen dem Schreiben des Datenstroms 52A und dem Schreiben des Datenstroms 52B in die Ebene 10 hin und her. Da die SSD 102 nicht gleichzeitig zwei Datenströme vom Host 101 auf dieselbe Ebene 10 desselben Dies 111 schreiben kann, wird ein Teil der Datenströme 52A, 52B im Host 101 oder in der SSD 102 beim Hin- und Herwechseln zwischen Schreibausführungen der beiden Datenströme, die einen Leistungsabfall verursachen zwischengespeichert. Die Konkurrenz kann unerwünschterweise eine Leistungsminderung von ungefähr 20 % für den Die 111 verursachen.
-
In Unternehmensanwendungen von SSDs werden große Mengen von gestreamten Daten in Superblöcken 50 gespeichert. SSDs, die aus NAND-Speichervorrichtungen bestehen, die mehrere Bits pro Zelle speichern, wie beispielsweise QLC-Zellen oder TLC-Zellen, haben eine höhere Kapazität, die zum Speichern großer Datenmengen geeignet ist. Eine hohe IOPS-Leistung (Input/Output Operations Per Second) der SSD ist wünschenswert, um die Leistung des Gesamtsystems von Host und SSD zu verbessern. Wenn die NAND-Speichervorrichtungen mehr Bits/Zelle speichern, erhöht sich die Ausführungszeit des Programmierens, Lesens und Löschens in unerwünschter Weise. Wenn die NAND-Speichervorrichtungen mehr Bits pro Zelle speichern, nimmt auch die Lebensdauer (d.h. Die Anzahl der Programmier-/Löschzyklen über die Lebensdauer) der NAND-Vorrichtungen in unerwünschter Weise ab. SSDs, die Superblöcke 50 aus QLC-Zellen umfassen, leiden aufgrund von Die-Konflikten unter einer verringerten Leistung.
-
Da QLC-Zellen eine geringe Schreibleistung und eine geringe Lebensdauer aufweisen, ist es wünschenswert, den gesamten Superblock 50 als eine Einheit ohne Speicherbereinigung zu löschen. Jegliche Speicherbereinigung des Superblocks 50 verringert die Leistung des Dies durch Hinzufügen von Lese- und Schreiboperationen, um gültige Daten auf eine offene Seite zu verschieben, und verringert die Lebensdauer, indem die Abnutzung der Blöcke 20 des Superblocks 50 erhöht wird.
-
5A ist ein schematisches Diagramm, das bestimmte Ausführungsformen der Strukturierung des NVM 110 in zwei Superebenenblöcke 60 zeigt, die Dies mit zwei Ebenen überspannen. Jeder Die 111-1 bis 111-N weist mehrere Ebenen 10 auf. In 5A sind zwei Ebenen 10 für jeden Die 111 gezeigt, der Die 111 kann jedoch eine beliebige Anzahl von Ebenen einschließen, wie beispielsweise 2, 4, 6, 8 oder mehr Ebenen. Gleichzeitige Operationen können auf jeder Ebene 10 stattfinden. Jede Ebene 10 schließt eine Vielzahl von Blöcken 20 ein, die in der Regel die kleinste Einheit sind, die gelöscht werden kann. Jeder Block schließt eine Vielzahl von Seiten 30 ein, die in der Regel die kleinste Einheit sind, die programmiert oder gelesen werden kann.
-
In bestimmten Ausführungsformen weist der Superebenenblock 60 einen oder mehrere Blöcke 20 auf, die eine bestimmte Ebene 10 von jedem der Dies 111-1 bis 111-N überspannen, um gestreamte Daten zu speichern, um die Leistung der SSD 102 zu erhöhen. Zum Beispiel weist, wie in 5A gezeigt, der Superebenenblock 60 einen oder mehrere Blöcke 20 auf, die über jede Ebene 10 jedes der Dies 111-1 bis 111-N gestreift sind, um Datenströme zu speichern, um die Leistung der SSD zu erhöhen. Für eine hohe Leistung der SSD 102 wird ein Datenstrom gleichzeitig oder gleichzeitig über mehrere Dies 111 des Superebenenblocks 60 auf die mehreren Seiten 30 geschrieben. In ähnlicher Weise kann der Lesevorgang von Seiten 30 über mehrere Dies 111 des Superebenenblocks 60 simultan oder gleichzeitig durchgeführt werden.
-
Der Superebenenblock 60 ermöglicht parallele Operationen an den Dies 111-1 bis 111-N der NVM 110. Parallele Operationen erhöhen die Leistung der SSD. Der Superebenenblock 60 kann auch Metadaten für die Zuordnung von logischen zu physikalischen Adressen speichern, um die Arbeitslast der FTL 160 zu verringern und die Leistung der SSD 102 weiter zu erhöhen.
-
In bestimmten Ausführungsformen werden Paritätsinformationen 64, wie beispielsweise Exklusiv-ODER- (XOR) -Paritätsinformationen, des Datenstroms auf einem separaten Die in dem Superebenenblock 60 von dem Datenstrom in dem Superebenenblock 60 für volle Die-Redundanz zusammen kombiniert, obwohl in anderen Ausführungsformen Paritätsinformationen auf demselben Die wie der Datenstrom gespeichert sein können. In Unternehmensanwendungen von SSDs ist es wünschenswert, eine vollständige Die-Redundanz bereitzustellen, um Benutzerdaten zu schützen, falls einer der Dies ausfällt oder nicht lesbar ist. Volle Die-Redundanz kann bereitgestellt werden, indem Paritätsinformationen auf einem oder mehreren separaten Dies von den Benutzerdaten gespeichert werden. Zum Beispiel wird, wie in 5A gezeigt, der Datenstrom 62 in einem Satz von Benutzerdaten-Dies 72 des Superebenenblocks 60 gespeichert, und die Paritätsinformationen 64 des Datenstroms werden miteinander kombiniert und in einem oder mehreren separaten XOR-Die(s) 74 des Superebenenblocks 60 gespeichert. Wenn einer der Benutzerdaten-Dies 72, der den Datenstrom 62 speichert, ausfällt, kann der Datenstrom 62 aus den Paritätsinformationen 64 auf dem oder den XOR-Die(s) 74 wiederhergestellt werden. Wenn Datenstrom 62 und Paritätsinformation 64 auf den gleichen Die geschrieben werden würden, wäre der Datenstrom nicht wiederherstellbar, selbst wenn er ausfällt.
-
In bestimmten Ausführungsformen kann die NVM 110 aus verschiedenen Arten von Dies 111 bestehen. Zum Beispiel können Benutzerdaten-Dies 72, die Datenströme 62 speichern, Speicherzellen aufweisen, die mehrere Bits pro Zelle speichern, wie zum Beispiel QLC- oder TLC-Speicherzellen. Die XOR-Dies 74, die Paritätsinformationen 64 speichern, können Speicherzellen aufweisen, die weniger Bits pro Zelle speichern als die Speicherzellen der Benutzerdaten-Dies 72. Beispielsweise können der/die XOR-Die(s) 74 MLC- oder SLC-Speicherzellen aufweisen, sodass die Paritätsinformationen 64 in Speicherzellen mit höherer Lebensdauer geschrieben werden, falls eine Datenwiederherstellung im Falle eines Die-Fehlers von Benutzerdaten-Dies 72 auftritt, die Datenströme 62 speichern.
-
Die SSD 102 kann mehrere Superebenenblöcke 60 bereitstellen, um mehrere Datenströme zu unterstützen. Zum Beispiel weist für einen Die mit zwei Ebenen, Ebene 10A und Ebene 10B, die in 5A gezeigt werden, der Superebenenblock 60A einen oder mehrere Blöcke 20 auf, die die Ebene 10A aller Benutzerdaten-Dies 72 und Superebenenblock 60B umfasst einen oder mehrere Blöcke 20, die die Ebene 10B aller Benutzerdaten-Dies 72 überspannen. Die Superebenenblöcke 60A, 60B können zwei Datenströme unterstützen, den Datenstrom 62A und den Datenstrom 62B, wobei Operationen zur gleichen Zeit auf demselben Die ausgeführt werden, da Operationen auf verschiedenen Ebenen 10A, 10B stattfinden.
-
Da der Datenstrom 62A und der Datenstrom 62B auf verschiedenen Ebenen 10A, 10B geschrieben sind, gibt es keinen Konflikt, der ein unerwünschtes Zwischenspeichern von Daten aufgrund des Austauschs von ausgeführten Operationen auf dieselbe Ebene verursacht. Die SSD 102 kann die Seiten 30 von zwei Datenströmen 62A, 62B über alle Benutzerdaten-Dies 72 hinweg schreiben, um die Ebenen 10A, 10B zu trennen. Der Datenstrom 62A und der Datenstrom 62B sind über alle Kanäle 105 zwischen der NVM-Schnittstelle 158 und den Benutzerdaten-Dies 72 des NVM 110 verschachtelt, um eine Hochleistungs-SSD 102 ohne Konflikt durch gleichzeitige Operationen derselben Ebene aus verschiedenen Datenströmen bereitzustellen. Die Paritätsinformationen 64A des Datenstroms 62A und die Paritätsinformationen 64B des Datenstroms 62B sind über alle Kanäle 105 zwischen der NVM-Schnittstelle 158 und den XOR-Dies 74 der NVM 110 verschachtelt, um eine Hochleistungs-SSD 102 bereitzustellen, die den Die-Konflikt durch gleichzeitige Operationen der gleichen Ebene aus verschiedenen Datenströmen zu vermeiden. Die gleichzeitigen verschachtelten Operationen des Superebenenblocks 60A und des Superebenenblocks 60B tragen dazu bei, die Leistung von SSDs 102 zu erhöhen, die NVM von Benutzer-Dies 72 umfassen, die mehrere Bits pro Speicherzelle speichern, wie beispielsweise QLC- oder TLC-Speicherzellen.
-
Obwohl zwei Ebenen, die Ebene 10A und die Ebene 10B, die in 5A gezeigt sind, können die Dies 111 eine beliebige Anzahl von Ebenen wie 2, 4, 6, 8 oder mehr Ebenen einschließen. Beispielsweise kann die SSD 102 mit vier Ebenen pro Die 111 vier Superebenenblöcke 60 aufweisen, wie in 5B gezeigt. 5B ist ein schematisches Diagramm, das bestimmte Ausführungsformen der Strukturierung eines nichtflüchtigen Speichers in vier Superebenenblöcken 60 zeigt, die sich über Dies 111 erstrecken, die vier Ebenen 10 haben. Superebenenblöcke 60A, 60B, 60C, 60D erstrecken sich über die Ebenen 10A, 10B, 10C, 10D. Vier oder weniger Datenströme können in Benutzerdaten-Dies 72 von Superebenenblöcken 60A, 60B, 60C, 60D geschrieben werden. Paritätsinformationen von vier Datenströmen weniger können in die XOR-Dies 74 der Superebenenblöcke 60A, 60B, 60C, 60D geschrieben werden. Beispielsweise kann die SSD 102 mit sechs Ebenen pro Die 111 sechs Superebenenblöcke 60 aufweisen. Beispielsweise kann eine SSD 102 mit acht Ebenen pro Die acht Superebenenblöcke aufweisen.
-
Jeder Superebenenblock 60A-N von 5A und 5B kann als Löscheinheit im Falle einer Ungültigmachung oder Aktualisierung des in einen solchen Superebenenblock 60 geschriebenen Datenstroms gelöscht werden. Das Löschen des Superebenenblocks 60 als Löscheinheit kann eine Datenverschiebung von Null aus der Speicherbereinigung bereitstellen. Ein Superebenenblock 60 als Löscheinheit wird ohne Datenverschiebung gelöscht und als verfügbarer Block im freien Block oder im freien Ebenenpool markiert. Durch Löschen des Superebenenblocks 60 als Löscheinheit wird der Schreibverstärkungsfaktor auf eins verringert, da die SSD 102 keine zusätzlichen Schreibvorgänge ausführt. Die Gesamtzahl der NAND-Flash-Schreibvorgänge wird reduziert, wodurch die Leistungs- und Dauerhaltungsanforderungen der SSD 102 steigen.
-
In bestimmten Ausführungsformen ist die Größe der Löscheinheit eines Superebenenblocks 60 gleich der Größe der Ebene 10 des Dies 111 multipliziert mit der Anzahl der Dies des Superebenenblocks 60. Beispielsweise ist die Löscheinheit des Superebenenblocks 60 gleich der halben Größe des Dies 111 multipliziert mit der Anzahl der Dies des Superebenenblocks 60 für den Die 111 mit zwei Ebenen. Beispielsweise ist die Löscheinheit des Superebenenblocks 60 gleich 1/4 der Größe des Dies 111 multipliziert mit der Anzahl der Dies des Superebenenblocks 60 für den Die 111 mit vier Ebenen. Beispielsweise ist die Löscheinheit des Superebenenblocks 60 gleich 1/6 der Größe des Dies 111 multipliziert mit der Anzahl der Dies des Superebenenblocks 60 für den Die 111 mit sechs Ebenen. Beispielsweise ist die Löscheinheit des Superebenenblocks 60 gleich 1/8 der Größe eines Dies 111 multipliziert mit der Anzahl der Dies des Superebenenblocks 60 für den Die 111 mit acht Ebenen. In Unternehmensanwendungen von SSDs erhöht das Minimieren der Größe der Löscheinheit die Leistung der SSDs, da eine Cache-Größe des Hosts 101 oder der SSD 102, die in den Superebenenblock 60 geleert werden muss, für die größere Anzahl kleiner ist von Ebenen 10 eine Dies 111. Im Vergleich ist die Löscheinheit eines Superblocks 50 von 4 für die größere Anzahl von Ebenen eines Dies mit ähnlicher Kapazität größer.
-
6 ist ein schematisches Diagramm bestimmter Ausführungsformen zum Unterstützen von zwei Datenströmen in Superebenenblöcken 60 der NVM 110 von 5A und/oder 5B, und gleiche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet. Wenn ein neuer Superebenenblock 60 von dem System 100 benötigt wird, werden die Ebenen 10 aus einem ebenenfreien Pool 70 entnommen und als Superebenenblock 60 zusammengestreift. Zum Beispiel enthält der ebenenfreie Pool 70A die Ebenen 10A der Dies 111, die zusammengestreift sind, um den Superebenenblock60A zu bilden. Der ebenenfreie Pool 70B enthält die Ebene 10B der Dies 111, die zusammengestreift sind, um den Superebenenblock 60B zu bilden.
-
Das Bilden des Superebenenblocks 60A und des Superebenenblocks 60B verschachtelt das Schreiben des Datenstroms 62A und des Datenstroms 62B über die Kanäle 105 der Benutzerdaten-Dies 72 auf verschiedenen Ebenen 10, um die Konflikte zu beseitigen. Der Superebenenblock 60A und der Superebenenblock 60B können mit getrenntem Datenstrom 62A und Datenstrom 62B geschrieben werden, während vermieden wird, Daten von zwei Datenströmen in dieselbe Ebene zu schreiben. Die zwei Datenströme werden in den gleichen Satz von Benutzerdaten-Dies 72 und XOR-Dies 74 geschrieben, ohne dass zwischen Blöcken 20 auf demselben Die in derselben Ebene für verschiedene Datenströme gewechselt werden muss. In bestimmten Ausführungsformen befindet sich der Datenstrom 62A immer in der Ebene 10A und der Datenstrom 62B befindet sich immer in der Ebene 10B. In bestimmten Ausführungsformen kann der Datenstrom 62A auf jedem Benutzerdaten-Die 72 parallel zur Ebene 10A schreiben, gleichzeitig mit dem Datenstrom 62B, der auf jedem Benutzerdaten-Die 72 parallel zur Ebene 10B schreibt. Der Konflikt durch das Austauschen zwischen einer Vielzahl von Datenströmen auf derselben Ebene wird vermieden und die Leistung der SSD wird verbessert. In bestimmten Ausführungsformen stellen zwei Datenströme zu parallelen Blöcken auf getrennten Ebenen 10 desselben Dies eine weitere Leistungsverbesserung bereit, da gemeinsam genutzte Signalbefehle zum Programmieren, Lesen oder Löschen der Blöcke verwendet werden können.
-
In bestimmten Ausführungsformen verschachtelt das Bilden des Superebenenblocks 60A und des Superebenenblocks 60B die Paritätsinformationen 64A des Datenstroms 62A und des Datenstroms 62B über die Kanäle 105 des XOR-Dies 74 in verschiedenen Ebenen 10, wodurch der Konflikt zum Schreiben von Paritätsinformationen 64 in XOR-Die(s) 74 beseitigt wird. Die Paritätsinformation 64A des Datenstroms 62A wird in die Ebene 10A des XOR-Dies 74 des Superebenenblocks 60A geschrieben, und die Paritätsinformation 64B des Datenstroms 62B wird in die Ebene 10B des XOR-Dies 74 geschrieben. Die XOR-Dies 74 sind von den Benutzerdaten-Dies 72 getrennt, die gestreamte Daten für eine vollständige Die-Redundanz speichern, falls die Benutzerdaten-Dies 72 oder XOR-Dies 74 ausfallen.
-
7 ist ein schematisches Diagramm bestimmter Ausführungsformen einer SSD, die mit Superebenenblöcken 60 strukturiert ist, die unabhängig ungültig gemacht/speicherbereinigt oder gelöscht werden können, wie die Superebenenblöcke 60 von 5A und 5B und ähnliche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet.
-
Superebenenblöcke 60A, 60B sind unabhängig. Der Superebenenblock 60A kann ungültig gemacht/speicherbereinigt oder gelöscht werden, unabhängig von dem Superebenenblock 60B oder anderen Superebenenblöcken, wenn mehr als zwei Superebenenblöcke (d.h. vier, sechs, acht oder mehr Superebenenblöcke) in dem System 100 vorhanden sind. Die unabhängige Ungültigmachung/Speicherbereinigung oder Löschung kann auftreten, selbst wenn die Datenströme gleichzeitig geschrieben wurden.
-
Wenn der Host 101 einen Teil des in einem Superebenenblock 60A gespeicherten Datenstroms 62A überschreibt oder ungültig macht, können die Blöcke 20 des Superebenenblocks 60A mit Speicherbereinigung versehen und gelöscht und die freigegebenen Blöcke in den freien Blockpool oder freien Ebenenpool gestellt werden. Da zwei Datenströme getrennt in dem Superebenenblock 60A und in dem Superebenenblock 60B gespeichert sind, führt das Überschreiben oder Ungültigmachen des in dem Superebenenblock 60A geschriebenen Datenstroms 62A nicht zu einer Speicherbereinigung des in dem Superebenenblock 60B geschriebenen Datenstroms 62B. Das Überschreiben oder Ungültigmachen des in den Superebenenblock 60B geschriebenen Datenstroms 62B führt nicht zu einer Speicherbereinigung des in den Superebenenblock 60A geschriebenen Datenstroms 62A. Die Schreibverstärkung wird reduziert, da gültige Daten eines Datenstroms aufgrund ungültiger Daten eines anderen Datenstroms nicht in einen neuen Block verschoben werden.
-
Superebenenblöcke vermeiden, dass die SSD 102 mehrere Datenströme in mehrere Superblöcke 50 schreibt, die dieselbe Ebene 10 von 4 überspannen. Das Schreiben aller Datenströme in dieselbe Ebene 10 oder denselben Superblock 50 führt zu einer Speicherbereinigung der anderen gültigen Datenströme, wenn ein bestimmter Datenstrom durch neue Daten überschrieben wird. Der Schreibverstärkungsfaktor wird größer als 1 und kann so hoch werden, wie es für zufällige Arbeitslasten der Fall ist, wenn mehrere Datenströme auf mehrere Superblöcke 50 geschrieben werden, die sich über dieselbe Ebene 10 von 4 erstrecken.
-
8 ist ein schematisches Diagramm, das bestimmte Ausführungsformen von Zufallsströmen zwischen Ebenen 10, wie beispielsweise den Ebenen 10 von 5A und 5B darstellt und gleiche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet. Wenn der Superebenenblock 60 gebildet und auf einen Datenstrom abgebildet wird, wird die Ebene 10 des Superebenenblocks 60 geändert/oder randomisiert, um das Abnutzungsnivellieren zwischen den Dies 111 der NVM 110 zu unterstützen. Durch die zufällige Anordnung der Datenströme zwischen den Ebenen wird verhindert, dass ein einzelner Datenstrom eine bestimmte Ebene dominiert und eine ungleichmäßige Abnutzung einer Ebene oder ungleichmäßige Operationen in einer Ebene verursacht.
-
Zum Beispiel wird eine erste Super-Vorrichtung 810 aus zwei Superebenenblöcken 60A, 60B über die Dies 111 hinweg gebildet. Der Datenstrom 62A wird über die Ebene 10A der Chips in den Superebenenblock 60A geschrieben, und der Datenstrom 62B wird über die Ebene 10B der Dies 111 in den Superebenenblock 60B geschrieben. Nachdem einer oder beide Superebenenblöcke 60 der ersten Super-Vorrichtung 810 gelöscht wurden und sich in dem ebenenfreien Pool befinden, wird eine zweite Super-Vorrichtung 820 aus zwei Superebenenblöcken 60A, 60B über die NVM-Dies hinweg gebildet. Der Datenstrom 62A wird über die Ebene 10B der Dies 111 in den Superebenenblock 60A geschrieben, und der Datenstrom 62B wird über die Ebene 10B der Dies in den Superebenenblock 60B geschrieben. Nachdem einer oder beide der Superebenenblöcke 60 der zweiten Super-Vorrichtung 820 gelöscht wurden und sich in dem ebenenfreien Pool befinden, wird eine dritte Super-Vorrichtung 830 aus zwei Superebenenblöcken 60A, 60B über die Dies 111 hinweg gebildet. Der Datenstrom 62A wird über die Ebene 10A der Dies 111 in den Superebenenblock 60A geschrieben, und der Datenstrom 62B wird über die Ebene 10B von Dies 111 in den Superebenenblock 60B geschrieben.
-
Obwohl 8 Datenströme 62A, 62B zeigt, die abwechselnd den Ebenen 10A, 10B zugewiesen sind, nachdem eine neue Super-Vorrichtung gebildet wurde, können die Datenströme 62A, 62B einer zufälligen Ebene zugewiesen werden (d.h. der gleichen Ebene oder einer anderen Ebene als der vorherigen Super-Vorrichtung.)
-
9 ist ein schematisches Diagramm, das bestimmte Ausführungsformen von Superebenenblöcken (wie etwa Superebenenblöcke 60 von 5A-5B) zeigt, die zu Superblöcken (wie etwa den Superblöcken 50 von 4) zusammengeführt werden, und ähnliche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet. Ein anfänglicher Schreibvorgang 910 schreibt den Datenstrom A und den Datenstrom B getrennt in die Superebenenblöcke 60A, 60B der NVM 110.
-
In bestimmten Ausführungsformen ordnet ein nachfolgender Schreibvorgang 920 der NVM, beispielsweise wenn die Superebenenblöcke 60A, 60B geschlossen oder vollständig beschrieben wurden, die Superebenenblöcke 60A, 60B in Superblöcke 50A, 50B um, die über alle Ebenen 10 der Dies 111 ohne Datenverlagerung aus der Speicherbereinigung gestreift sind. Der neu zugeordnete Datenstrom in einem Superblock 50A, 50B hält die Stromdaten zusammen, die wahrscheinlich zusammen ungültig werden.
-
In bestimmten Ausführungsformen wird ein nachfolgender Schreibvorgang 920 der NVM, beispielsweise wenn der im Superebenenblock 60A gespeicherte Datenstrom 62A zufällig ungültig gemacht wird, eine Speicherbereinigung des Superebenenblocks 60A durchgeführt, wobei gültige Daten in den Superblock 50A verschoben werden. Wenn der in dem Superebenenblock 60B gespeicherte Datenstrom 61B zufällig ungültig gemacht wird, wird eine Speicherbereinigung in dem Superebenenblock 60B durchgeführt, wobei gültige Daten in den Superblock 50B verschoben werden. Wenn der im Superebenenblock 60B gespeicherte Datenstrom 6B geschlossen oder vollständig beschrieben wird, wird der Superebenenblock 60B in einen Superblock 50B mit einer Datenverschiebung von Null aus der Speicherbereinigung neu abgebildet.
-
10A-10B sind schematische Diagramme, die bestimmte Ausführungsformen einer SSD veranschaulichen, die mit acht Ebenen-Dies mit acht Superebenenblöcken (wie Superebenenblöcke 60 von 5A und 5B) organisiert ist, die die Zwischenspeicherung mehrere Datenströme aufheben (wie z. B. ein Cache von Host 101 oder SSD 102) und ähnliche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet.
-
10A zeigt bestimmte Ausführungsformen, bei denen acht Datenströme A-H mit der gleichen Rate oder ungefähr der gleichen Rate in die Super-Vorrichtung geschrieben werden und jeden Superebenenblock 60A-60H mit der gleichen Rate oder ungefähr der gleichen Rate füllen.
-
10B zeigt bestimmte Ausführungsformen, bei denen fünf Datenströme mit unterschiedlichen Raten in die Super-Vorrichtung geschrieben werden. Die unterschiedlichen Raten können durch ein Abwürgen der Datenströme vom Host 101 oder durch verschiedene andere Faktoren verursacht werden, die dazu führen, dass einige Datenströme schneller übertragen werden als andere Datenströme. Die Steuerung 140 kann einen Datenstrom mehreren Superebenenblöcken 60 anstatt nur einem Superebenenblock zuweisen. Zum Beispiel, wie in 10B gezeigt, wird ein Datenstrom A mit einer schnelleren Rate als der Datenstrom E geschrieben. Der Datenstrom E wird mit einer schnelleren Rate als der Datenstrom F, der Datenstrom G oder der Datenstrom H geschrieben. Der Datenstrom A wird drei Superebenenblöcken 60A-1, 60A-2, 60A-3 zugeordnet. Der Datenstrom E ist zwei Superebenenblöcken 60E-1, 60E-2 zugeordnet. Die Datenströme F, G, H sind jeweils einem Superebenenblock 60F, 60G, 60H zugeordnet.
-
Die Anzahl der parallelen Datenströme, die in die Super-Vorrichtung der Superebenenblöcke 60 geschrieben werden, ist eine Funktion der Anzahl der Ebenen 10 der Benutzerdaten-Dies 72 der Super-Vorrichtung. Wenn die Benutzerdaten-Dies 72 zwei Ebenen 10 aufweisen, können zwei parallele Datenströme oder ein Datenstrom in die Super-Vorrichtung der Superebenenblöcke 60 geschrieben werden. Wenn die Benutzerdaten-Dies 72 vier Ebenen 10 aufweisen, können vier bis zwei parallele Datenströme oder ein Datenstrom in die Super-Vorrichtung der Superebenenblöcke 60 geschrieben werden. Wenn die Benutzerdaten-Dies 72 sechs Ebenen 10 aufweisen, können sechs bis zwei parallele Datenströme oder ein Datenstrom in die Super-Vorrichtung der Superebenenblöcke geschrieben werden. Wenn die Benutzerdaten-Dies 72 acht Ebenen 10 aufweisen, können acht bis zwei parallele Datenströme oder ein Datenstrom in die Super-Vorrichtung der Superebenenblöcke geschrieben werden. Die SSD 102, die jeden Datenstrom separat in eine oder mehrere Ebenen 10 schreibt, stellt sicher, dass ein Überschreiben eines gegebenen Datenstroms nicht zu einer Speicherbereinigung der anderen Datenströme führt, wodurch die Schreibverstärkung verringert wird.
-
11 ist ein schematisches Diagramm, das bestimmte Ausführungsformen einer SSD zeigt, die mit einem kleineren Cache für logische Seiten strukturiert ist, der aufgrund einer verbesserten Effizienz reduziert ist, die durch Superebenenblöcke 60 der NVM bereitgestellt wird. In bestimmten Ausführungsformen werden die NVM 110 (d.h. der in SLC-Speicherzellen zwischengespeicherte NAND), der flüchtige Speicher 130 (d.h. der zwischengespeicherte DRAM/SRAM) und/oder der flüchtige Speicher des Hosts 101 als ein logischer Seiten-Cache 1110 verwendet. Die Leistung des Systems 100 hängt davon ab, wie effizient der logische Seiten-Cache 1110 verwendet werden kann. Die Kosten des Systems 100 sind umgekehrt zu der Größe des logischen Seiten-Cache 1110. Es ist wünschenswert, dass der logische Seiten-Cache 1110 aus Kostengründen klein ist, aber der kleine logische Seiten-Cache 1110 kann beim Extrahieren der mehreren Datenströme zu Benutzerdaten-Dies 72 des NVM 110 zur Langzeitspeicherung ineffizient sein. Für einen effizienten Betrieb der NAND-Speicherzellen ist es erforderlich, dass mehrere Seiten von Daten pro Datenstrom zur NVM 110 von NAND-Speicherzellen extrahiert werden.
-
In bestimmten Ausführungsformen weisen Benutzerdaten-Dies 72 Speicherzellen auf, die höhere Bits pro Zelle speichern, wie beispielsweise QLC-, TLC- oder MLC-Speicherzellen. Der Benutzerdaten-Die 72 mit hoher Datenspeicherkapazität ermöglicht, dass der gesamte logische Seiten-Cache 1110 zu den Superebenenblöcken 60 der Benutzerdaten-Dies 72 der SSD geleert wird. In bestimmten Ausführungsformen können die gesamten Superebenenblöcke 60 mit mehreren Datenströmen auf die SSD geleert werden. Jeder Superebenenblock 60 kann als löschbare Einheit behandelt werden, die zusammen gelöscht wird, falls der gesamte Datenstrom in dem Superebenenblock überschrieben oder ungültig gemacht wird. Superebenenblöcke 60 haben das Attribut einer hohen Leistung aufgrund der Verschachtelung der Datenströme über verschiedene Ebenen und das Attribut einer löschbaren Einheit mit einer verringerten Größe in Abhängigkeit von der Anzahl der Ebenen des Dies. Die Datenmenge, die pro Datenstrom im logischen Seiten-Cache 1110 zwischengespeichert werden muss, wird reduziert. Für einen langsamen Datenstrom (oder wo alle Ströme mit der gleichen Rate oder ungefähr der gleichen Rate schreiben) wird die minimale Datenmenge, die in dem logischen Seiten-Cache 1110 zusammengeführt werden muss, um eine löschbare Einheit von NAND-Speichervorrichtungen zu füllen, um die Anzahl der Ebenen 10 im Die 111 (d.h. um den Faktor acht im acht Ebenen-NAND) verringert. Im Gegensatz dazu nimmt die Größe einer löschbaren Einheit des Superblocks 50 von 4 mit der Anzahl der Ebenen zu.
-
Da Benutzerdaten-Dies 72, die Speicherzellen umfassen, die höhere Bits pro Zelle speichern, wie z. B. QLC-, TLC- oder MLC-Speicherzellen, eine höhere Kapazität haben, kann der logische Seiten-Cache 1110 kleiner gemacht werden, da der gesamte Inhalt des logischen Seiten-Cache 1110 zu den Benutzerdaten-Dies 72 der NVM in Superebenenblöcke 60 ohne Die-Konflikt geleert werden kann.
-
12 ist ein schematisches Diagramm, das bestimmte Ausführungsformen des Schreibens von Paritätsinformationen von Datenströmen auf getrennten Ebenen 10A, 10B oder auf einem getrennten Satz von Ebenen von XOR-Die(s) 74, wie beispielsweise den Superebenenblöcken 60 von 5A und 5B darstellt und gleiche Bezugszeichen für Elemente werden zur Vereinfachung der Beschreibung verwendet. Verschiedene Datenströme 62A, 62B werden in verschiedene Benutzerdaten-Dies 72 geschrieben, aber die Paritätsinformationen 64A, 64B werden auf dem/den gleichen XOR-Die(s) 74, aber auf verschiedenen Ebenen 10 oder auf einem unterschiedlichen Satz von Ebenen gespeichert. Die Datenströme 62A, 62B sind nicht verschachtelt, aber die Paritätsinformationen 64A, 64B sind verschachtelt. Die Paritätsinformationen 64A, 64B werden von den Benutzerdaten-Dies 72 getrennt gehalten, um eine vollständige Die-Redundanz bereitzustellen. Die Paritätsinformationen 64A, 64B sind auf verschiedenen Ebenen 10A, 10B oder auf einem anderen Satz von Ebenen eines XOR-Dies oder eines Satzes von XOR-Dies verschachtelt, um den Konflikt von XOR-Die(s) zu beseitigen. Beispielsweise wird für einen XOR-Die mit mehr als zwei Ebenen (wie ein NAND-Die mit vier Ebenen oder ein NAND-Die mit acht Ebenen) die Paritätsinformation 64A in einen ersten Satz von Ebenen geschrieben, und die Paritätsinformation 64B wird in einen zweiten Satz von Ebenen geschrieben, der sich vom ersten Satz von Ebenen unterscheidet.
-
Aufgrund der Strukturierung der NVM 110 in verschiedenen NVM-Sätzen 1210A, 1210B von Dies 111 können unterschiedliche Benutzerdaten-Dies 72 erforderlich sein, um isolierte Dienstqualitätsbereiche bereitzustellen, in denen Operationen an einem Die die Operationen des anderen Dies nicht beeinflussen. Die NVM-Sätze 1210A, 1210B, wie sie in 12 dargestellt sind, stellen eine vollständige Die-Redundanz und eine erhöhte Leistung des XOR-Dies bereit, indem die XOR-Paritätsinformationen auf getrennten Ebenen 10A, 10B auf XOR-Die(s) 74 verschachtelt werden.
-
Durch das Verschachteln der Paritätsinformationen 64A, 64B der Datenströme 62A, 62B auf verschiedenen Ebenen 10A, 10B oder auf einem anderen Ebenensatz wird der Konflikt während der Operationen zu dem/den XOR-Die(s) 74 beseitigt. Zusätzlich reduzieren die Paritätsinformationen 64A, 64B der Datenströme 62A, 62B auf verschiedenen Ebenen 10A, 10B oder auf einem anderen Satz von Ebenen die Speicherbereinigung und die Schreibverstärkung des/der XOR-Die(s) 74. Wenn beispielsweise ein Teil des im NVM-Satz 1210A gespeicherten Datenstroms 62A überschrieben oder aktualisiert wird, wird die Paritätsinformation 64A aktualisiert, ohne eine Speicherbereinigung der Paritätsinformation 64B des Datenstroms 62B zu verursachen. Wenn ein Teil des Datenstroms 62B, der in dem NVM-Satz 1210B gespeichert ist, überschrieben oder aktualisiert wird, wird die Paritätsinformation 64B aktualisiert, ohne eine Speicherbereinigung der Paritätsinformation 64A des Datenstroms 62A zu verursachen. Das Schreiben der Paritätsinformationen 64A, 64B in getrennte Ebenen 10A, 10B oder in einen getrennten Satz von Ebenen des/der XOR-Chip(s) 74 vermeidet auch, dass die Paritätsinformationen der verschiedenen Datenströme 62A, 62B zusammen XORverknüpft werden und die Paritätsinformationen der verschiedenen Datenströme durch die Datenwiederherstellung XOR-entfernt werden.
-
Bestimmte Ausführungsformen der Strukturierung eines nichtflüchtigen Speichers können die Lebensdauer, Zuverlässigkeit und/oder Leistung von Halbleitervorrichtungen erhöhen, die mehrere Datenströme unterstützen. In bestimmten Ausführungsformen reduzieren Workloads mehrerer Datenströme zu Superebenenblöcken, die verschiedene Ebenen der Benutzerdaten-Dies und/oder XOR-Die(s) überspannen, den Schreibverstärkungsfaktor. Das Überschreiben oder Aktualisieren eines Datenstroms verursacht keine Speicherbereinigung eines anderen Datenstroms und/oder der Paritätsinformationen eines anderen Datenstroms. In bestimmten Ausführungsformen reduzieren Workloads von mehreren Datenströmen zu Superebenenblöcken, die verschiedene Ebenen der Benutzerdaten-Dies und/oder XOR-Dies überspannen, den Konflikt des Schreibens in dieselbe Ebene. Schreibvorgänge für verschiedene Datenströme können simultan oder gleichzeitig auf verschiedene Ebenen des Dies erfolgen, ohne dass ein Hin- und Herwechseln zwischen den Ausführungen der Datenstromschreibvorgänge auf dieselbe Ebene verursacht wird. In bestimmten Ausführungsformen reduzieren Workloads von mehreren Datenströmen zu Superebenenblöcken, die verschiedene Ebenen der Benutzerdaten-Chips und/oder XOR-Dies überspannen, die löschbare Einheit von Superebenenblöcken. Wenn die Anzahl der Ebenen der Dies zunimmt, ist die löschbare Einheit eines gesamten Superebenenblocks, der zusammen gelöscht werden kann, kleiner. Eine kleinere löschbare Einheit ist in Unternehmensanwendungen wünschenswert, die NAND-Speicherzellen verwenden, die höhere Bits pro Zelle speichern, wie beispielsweise QLC-Speicherzellen. Die kleinere löschbare Einheit ermöglicht, dass eine kleinere Einheit von Daten aus dem Datenstrom in einem Cache gespeichert wird, bevor sie in den Superebenenblock geleert wird. Durch das Löschen eines gesamten Superebenenblocks wird die Speicherbereinigung vermieden und die Lebensdauer aufgrund der geringeren Schreibverstärkung verbessert. In bestimmten Ausführungsformen vereinfachen Workloads mehrerer Datenströme zu Superebenenblöcken, die sich über verschiedene Ebenen der XOR-Dies erstrecken, die XOR-Operationen und die Datenwiederherstellung im Falle eines Ausfalls der Benutzer-Dies. Das Aktualisieren der Paritätsinformationen eines Datenstroms bewirkt keine Speicherbereinigung der Paritätsinformationen eines anderen Datenstroms. Durch das Schreiben von kombinierten Paritätsinformationen mehrerer Datenströme auf separate Ebenen des/der XOR-Die(s) werden XOR-/deXOR-Operationen der kombinierten Paritätsinformationen vermieden. In bestimmten Ausführungsformen reduzieren Workloads von mehreren Datenströmen zu Superebenenblöcken, die verschiedene Ebenen der Benutzerdaten-Dies und/oder XOR-Dies überspannen, die Größe und die Kosten des Datenstrom-Cache. Ein gesamter Datenstrom-Cache wird in die Superebenenblöcke geleert, wodurch eine größere Effizienz des Datenstrom-Cache erreicht wird.
-
In einer Ausführungsform schließt ein Solid-State-Gerät eine Steuerung und einen nichtflüchtigen Speicher ein. Der nichtflüchtige Speicher schließt eine Vielzahl von Dies ein. Jeder Die schließt eine Vielzahl von Ebenen ein. Ein erster Superebenenblock ist aus einer ersten Ebene der Vielzahl von Dies strukturiert. Ein zweiter Superebenenblock ist aus einer zweiten Ebene der Vielzahl von Die strukturiert. Und eine Vielzahl von Speicheroperationsbefehlen, die, wenn sie durch die Steuerung ausgeführt werden, bewirken, dass die Steuerung einen ersten Datenstrom empfängt, den ersten Datenstrom in den ersten Superebenenblock schreibt, einen zweiten Datenstrom empfängt und den zweiten Datenstrom zu dem zweiten Superebenenblock schreibt.
-
In einer anderen Ausführungsform schließt ein Solid-State-Gerät eine Steuerung, eine Datenstrom-Unterstützungseinrichtung und eine Vielzahl von Speicheroperationsanweisungen ein. Die Datenstrom-Unterstützungseinrichtung dient zum gleichzeitigen Schreiben separater Daten auf NAND-Flash-Speicher. Die Vielzahl von Speicheroperationsbefehlen, die, wenn sie durch die Steuerung ausgeführt werden, bewirkt, dass die Steu350erung gleichzeitig separate Daten in die Datenstrom-Unterstützungseinrichtung schreibt.
-
In einer Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Strukturieren eines nichtflüchtigen Speichers in einen ersten Superebenenblock und einen zweiten Superebenenblock ein. Der erste Superebenenblock ist aus einer ersten Ebene einer Vielzahl von Dies strukturiert, und der zweite Superebenenblock ist aus einer zweiten Ebene der Vielzahl von Dies strukturiert. Ein erster Datenstrom wird in den ersten Superebenenblock geschrieben. Ein zweiter Datenstrom wird in den zweiten Superebenenblock geschrieben.
-
In einer anderen Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Bereitstellen eines nichtflüchtigen Speichers ein, der eine Vielzahl von Dies mit mehreren Ebenen umfasst. Der nichtflüchtige Speicher ist in eine Vielzahl von Superebenenblöcken strukturiert. Jeder Superebenenblock überspannt getrennte Ebenen der Vielzahl von Dies. Eine Vielzahl von Datenströmen wird in die Vielzahl von Superebenenblöcken geschrieben.
-
In noch einer weiteren Ausführungsform schließt ein Verfahren zum Betreiben eines Solid-State-Gerätes das Bereitstellen eines nichtflüchtigen Speichers ein, der eine Vielzahl von Benutzerdatendies und einen XOR-Die umfasst. Eine Paritätsinformation eines ersten Datenstroms wird in eine erste Ebene des XOR-Dies geschrieben. Eine Paritätsinformation eines zweiten Datenstroms wird in eine zweite Ebene des XOR-Dies geschrieben.
-
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 Umfang abzuweichen, und der Umfang wird durch die nachstehenden Ansprüche bestimmt.