DE102019123709A1 - Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen - Google Patents

Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen Download PDF

Info

Publication number
DE102019123709A1
DE102019123709A1 DE102019123709.2A DE102019123709A DE102019123709A1 DE 102019123709 A1 DE102019123709 A1 DE 102019123709A1 DE 102019123709 A DE102019123709 A DE 102019123709A DE 102019123709 A1 DE102019123709 A1 DE 102019123709A1
Authority
DE
Germany
Prior art keywords
super
level
data stream
data
dies
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019123709.2A
Other languages
English (en)
Inventor
Liam Parker
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATE, US
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102019123709A1 publication Critical patent/DE102019123709A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

In einer Ausführungsform schließt ein Solid-State-Gerät eine Steuerung und einen nichtflüchtigen Speicher ein. Der nichtflüchtige Speicher umfasst eine Vielzahl von Dies. 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.

Description

  • 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.

Claims (20)

  1. Ein Solid-State-Gerät, umfassend: eine Steuerung; einen nichtflüchtigen Speicher mit einer Vielzahl von Dies, wobei jeder Die eine Vielzahl von Ebenen aufweist; einen ersten Superebenenblock, der aus einer ersten Ebene der Vielzahl von Dies aufgebaut ist; einen zweiten Superebenenblock, der aus einer zweiten Ebene der Vielzahl von Dies aufgebaut ist; und eine Vielzahl von Speicheroperationsbefehlen, die, wenn sie von der Steuerung ausgeführt werden, die Steuerung veranlassen zum: Empfangen eines ersten Datenstroms; Schreiben des ersten Datenstroms in den ersten Superebenenblock; Empfangen eines zweiten Datenstroms; und Schreiben des zweiten Datenstroms in den zweiten Superebenenblock;
  2. Solid-State-Gerät gemäß Anspruch 1, wobei die Vielzahl von Speicheroperationsbefehlen ferner die Steuerung veranlasst, eine erste Paritätsinformation des ersten Datenstroms in eine erste Ebene eines XOR-Dies des ersten Superebenenblocks zu schreiben und eine zweite Paritätsinformation des zweiten Datenstroms zu einer zweiten Ebene des XOR-Dies des zweiten Superebenenblocks zu schreiben.
  3. Solid-State-Gerät gemäß Anspruch 1, wobei die Vielzahl von Speicheroperationsbefehlen ferner die Steuerung veranlasst, gleichzeitig den ersten Datenstrom in den ersten Superebenenblock und den zweiten Datenstrom in den zweiten Superebenenblock zu schreiben.
  4. Solid-State-Gerät gemäß Anspruch 1, wobei die Vielzahl von Dies Vierpegel-Speicherzellen aufweist.
  5. Solid-State-Gerät gemäß Anspruch 1, wobei der erste Superebenenblock und der zweite Superebenenblock löschbare Einheiten bilden.
  6. Solid-State-Gerät gemäß Anspruch 1, das ferner einen logischen Seiten-Cache aufweist, wobei die Vielzahl von Speicheroperationsbefehlen ferner die Steuerung veranlasst, den ersten Datenstrom in den ersten Superebenenblock und den zweiten Datenstrom in den zweiten Superebenenblock zu leeren.
  7. Ein Solid-State-Gerät, umfassend: einen nichtflüchtigen Speicher, der eine Vielzahl von Dies mit mehreren Ebenen aufweist; und eine Steuerung, die mit dem nichtflüchtigen Speicher verbunden ist und konfiguriert ist, zum: Strukturieren des nichtflüchtigen Speichers in eine Vielzahl von Superebenenblöcken, wobei jeder Superebenenblock separate Ebenen der Vielzahl von Dies überspannt; und Schreiben einer Vielzahl von Datenströmen in die Vielzahl von Superebenenblöcken.
  8. Solid-State-Gerät gemäß Anspruch 7, wobei jeder Datenstrom der Vielzahl von Datenströmen in einen oder mehrere der Vielzahl von Superebenenblock geschrieben wird.
  9. Solid-State-Gerät gemäß Anspruch 8, wobei die Anzahl von Datenströmen, die in die Vielzahl von Superebenenblöcken geschrieben werden, gleich oder kleiner als die Anzahl von Ebenen ist.
  10. Solid-State-Gerät gemäß Anspruch 7, ferner umfassend das Randomisieren der Ebenen der Superebenenblöcke.
  11. Das Solid-State-Gerät gemäß Anspruch 7, ferner umfassend: Speichern einer Vielzahl von Datenströmen in einem logischen Seiten-Cache; und Leeren des logischen Seiten-Caches in einer Größe, um die Vielzahl von Superebenenblöcken im Wesentlichen zu füllen.
  12. Solid-State-Gerät gemäß Anspruch 11, wobei der logische Seiten-Cache aus einem Host-Cache, einem SSD-SRAM-Cache, einem SSD-DRAM-Cache, einem SSD-NAND-Flash-Cache und Kombinationen davon auswählt.
  13. Solid-State-Gerät gemäß Anspruch 7, wobei der nichtflüchtige Speicher eine Vielzahl von Benutzerdaten-Dies und einen XOR-Die umfasst, wobei die Steuerung ferner konfiguriert ist zum: Schreiben einer Paritätsinformation eines ersten Datenstroms auf eine erste Ebene des XOR-Dies; und Schreiben einer Paritätsinformation eines zweiten Datenstroms auf eine zweite Ebene des XOR-Dies.
  14. Solid-State-Gerät gemäß Anspruch 13, wobei der erste Datenstrom und der zweite Datenstrom nicht auf der Vielzahl von Benutzerdaten-Dies verschachtelt sind und wobei die Paritätsinformationen des ersten Datenstroms und die Paritätsinformationen des zweiten Datenstroms auf erster Ebene und der zweiten Ebene des XOR-Dies verschachtelt sind.
  15. Solid-State-Gerät gemäß Anspruch 13, wobei die Steuerung ferner eingerichtet ist zum: Strukturieren des nichtflüchtigen Speichers in einen ersten Superebenenblock und einen zweiten Superebenenblock, wobei der erste Superebenenblock eine erste Ebene jedes Benutzerdaten-Dies überspannt und der zweite Superebenenblock eine zweite Ebene jedes Benutzerdaten-Dies überspannt; Schreiben des ersten Datenstroms in den ersten Superebenenblock; und Schreiben des zweiten Datenstroms in den zweiten Superebenenblock;
  16. Solid-State-Gerät gemäß Anspruch 15, wobei der erste Datenstrom und der zweite Datenstrom auf der Vielzahl von Benutzerdaten-Dies verschachtelt sind und wobei die Paritätsinformationen des ersten Datenstroms und die Paritätsinformationen des zweiten Datenstroms auf erster Ebene und der zweiten Ebene des XOR-Dies verschachtelt sind.
  17. Solid-State-Gerät gemäß Anspruch 15, wobei die Steuerung ferner eingerichtet ist zum: Ungültigmachen der Paritätsinformation des ersten Datenstroms, der in den ersten Superebenenblock geschrieben wurde, und Löschen der Paritätsinformationen des ersten Datenstroms, ohne eine Speicherbereinigung der Paritätsinformationen des zweiten Datenstroms zu verursachen.
  18. Ein Solid-State-Gerät, umfassend: eine Steuerung; eine Datenstrom-Unterstützungseinrichtung zum gleichzeitigen Schreiben getrennter Daten in einen NAND-Flash-Speicher; und eine 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.
  19. Solid-State-Gerät gemäß Anspruch 18, wobei die separaten Daten Benutzerdaten aus Datenströmen sind.
  20. Solid-State-Gerät gemäß Anspruch 18, wobei die separaten Daten Paritätsinformationen von Datenströmen sind.
DE102019123709.2A 2018-10-18 2019-09-04 Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen Pending DE102019123709A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862747525P 2018-10-18 2018-10-18
US62/747,525 2018-10-18
US16/440,233 2019-06-13
US16/440,233 US10949123B2 (en) 2018-10-18 2019-06-13 Using interleaved writes to separate die planes

Publications (1)

Publication Number Publication Date
DE102019123709A1 true DE102019123709A1 (de) 2020-04-23

Family

ID=70279175

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019123709.2A Pending DE102019123709A1 (de) 2018-10-18 2019-09-04 Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen

Country Status (3)

Country Link
US (1) US10949123B2 (de)
CN (1) CN111078131B (de)
DE (1) DE102019123709A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907586B2 (en) 2019-12-31 2024-02-20 Samsung Electronics Co., Ltd. Storage device configured to support multi-streams and operation method thereof

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872035B1 (en) * 2019-05-29 2020-12-22 Apple Inc. Systems and methods for managing an artificially limited logical space of non-volatile memory
WO2020258197A1 (en) * 2019-06-28 2020-12-30 Yangtze Memory Technologies Co., Ltd. Computation-in-memory in three-dimensional memory device
CN110537259A (zh) 2019-06-28 2019-12-03 长江存储科技有限责任公司 三维存储器件中的存储器内计算
KR20210007503A (ko) * 2019-07-11 2021-01-20 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11106813B2 (en) 2019-09-20 2021-08-31 International Business Machines Corporation Credentials for consent based file access
US11327665B2 (en) * 2019-09-20 2022-05-10 International Business Machines Corporation Managing data on volumes
US11321488B2 (en) 2019-09-20 2022-05-03 International Business Machines Corporation Policy driven data movement
US11188680B2 (en) 2019-09-20 2021-11-30 International Business Machines Corporation Creating research study corpus
US11443056B2 (en) 2019-09-20 2022-09-13 International Business Machines Corporation File access restrictions enforcement
US11328089B2 (en) 2019-09-20 2022-05-10 International Business Machines Corporation Built-in legal framework file management
US11137938B1 (en) * 2020-04-30 2021-10-05 Micron Technology, Inc. Converting a multi-plane write operation into multiple single plane write operations performed in parallel on a multi-plane memory device
US11442646B2 (en) 2020-09-09 2022-09-13 Western Digital Technologies Inc. Identified zones for optimal parity sharing zones
US12019913B2 (en) * 2021-05-17 2024-06-25 Western Digital Technologies, Inc. Storing log and user data in SSD with independent plane operations
US11966618B2 (en) * 2021-08-25 2024-04-23 Western Digital Technologies, Inc. Purposeful super device imbalance for ZNS SSD efficiency
US11960753B2 (en) 2021-08-25 2024-04-16 Western Digital Technologies, Inc. Solution for super device imbalance in ZNS SSD
US20240111422A1 (en) * 2022-09-30 2024-04-04 Samsung Electronics Co., Ltd Method of optimizing quality of service (qos) in solid-state drives (ssds) and an ssd thereof

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239614B2 (en) * 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US10067829B2 (en) * 2013-12-13 2018-09-04 Intel Corporation Managing redundancy information in a non-volatile memory
US9564212B2 (en) * 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US10409526B2 (en) 2014-12-17 2019-09-10 Violin Systems Llc Adaptive garbage collection
US9830093B2 (en) * 2015-03-27 2017-11-28 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory
US9898202B2 (en) * 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
TWI672703B (zh) * 2016-04-27 2019-09-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
US10032488B1 (en) * 2016-12-29 2018-07-24 Sandisk Technologies Llc System and method of managing data in a non-volatile memory having a staging sub-drive
US10228862B2 (en) * 2017-03-15 2019-03-12 Western Digital Technologies, Inc. Capacity-aware wear leveling in solid-state storage devices
JP2018160195A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステムおよび不揮発性メモリの制御方法
US20190317889A1 (en) * 2018-04-15 2019-10-17 Synology Inc. Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907586B2 (en) 2019-12-31 2024-02-20 Samsung Electronics Co., Ltd. Storage device configured to support multi-streams and operation method thereof

Also Published As

Publication number Publication date
US20200125294A1 (en) 2020-04-23
CN111078131A (zh) 2020-04-28
CN111078131B (zh) 2023-06-30
US10949123B2 (en) 2021-03-16

Similar Documents

Publication Publication Date Title
DE102019123709A1 (de) Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen
DE102017128940B4 (de) System und Verfahren zum dynamischen Falten oder direkten Schreiben basierend auf Block-Störungsfreiheit in einem nichtflüchtigen Speichersystem
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE602004011097T2 (de) Flash-speicherdatenkorrektur- und scrub-techniken
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112018004275T5 (de) Raid-array-wiederherstellungsunterstützung anhand einer externen array-kopie
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE102009034836A1 (de) Verfahren und Vorrichtung zum Speichern von Daten in einem Festkörperspeicher
DE112008001151B4 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE112014004761T5 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE112020000143T5 (de) Ssd-system, das einschaltzyklus-basierten read-scrub verwendet
DE102010037290A1 (de) Speichersysteme und Verfahren zur Erfassung einer Verteilung von instabilen Speicherzellen
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE102017128941A1 (de) Speichersystem und Verfahren zur prädiktiven Blockzuweisung zur effizienten Speicherbereinigung
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen
DE112020005502T5 (de) Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke
DE102020202379A1 (de) Speichersystem, speicher-controller und deren betriebsverfahren
DE112020000230T5 (de) Datenspeichervorrichtung mit dynamischem streifenlängenmanager

Legal Events

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

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATE, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., SAN JOSE, CA, US