DE112020004975T5 - SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN - Google Patents

SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN Download PDF

Info

Publication number
DE112020004975T5
DE112020004975T5 DE112020004975.2T DE112020004975T DE112020004975T5 DE 112020004975 T5 DE112020004975 T5 DE 112020004975T5 DE 112020004975 T DE112020004975 T DE 112020004975T DE 112020004975 T5 DE112020004975 T5 DE 112020004975T5
Authority
DE
Germany
Prior art keywords
zone
die
storage device
write
data
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
DE112020004975.2T
Other languages
English (en)
Inventor
Alan D. Bennett
Daniel L. Helmick
Liam Parker
Sergey Anatolievich Gorobets
Peter Grayson
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.)
Western Digital Technologies Inc
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 DE112020004975T5 publication Critical patent/DE112020004975T5/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/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/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/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]

Abstract

Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speicherungsvorrichtungen. Die Speicherungsvorrichtung weist eine Steuerung und eine Speicherungseinheit auf, die in eine Vielzahl von Zonen unterteilt ist. Die Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jeder Die zwei Ebenen aufweist. Ein Löschblock aus jeder Ebene eines Dies wird für die Zonenbildung ausgewählt. Jeder Löschblock weist eine Vielzahl von Wortleitungen auf. Eine Zone weist einen oder zwei Dies auf, die zum Speichern von Paritätsdaten bestimmt sind, und eine Vielzahl von Dies, die zum Speichern von Benutzerdaten bestimmt sind. Die Zone weist weiterhin Platz auf, der für Steuerungsmetadaten vorgesehen ist. Die Speicherungsvorrichtung beschränkt eine Hostvorrichtung, um Schreibbefehle in einer minimalen Schreibgröße zu senden, um die Programmiereffizienz zu erhöhen. Die minimale Schreibgröße entspricht einer Wortleitung von einem Löschblock von jeder Ebene jedes Dies in der Zone, die dafür bestimmt ist, Benutzerdaten zu speichern, abzüglich des für Metadaten vorgesehenen Platzes.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Anmeldung 16/858,332 , eingereicht am 24. April 2020, die durch Verweis in ihrer Gesamtheit aufgenommen ist.
  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich allgemein auf Speicherungsvorrichtungen, wie zum Beispiel Solid-State-Laufwerke (SSDs).
  • Beschreibung des Stands der Technik
  • Speicherungsvorrichtungen, wie SSDs, können in Computern in Anwendungen verwendet werden, bei denen eine relativ geringe Latenz und eine hohe Speicherkapazität erwünscht sind. So können SSDs beispielsweise eine geringere Latenz aufweisen als Festplatten (HDDs), insbesondere bei Direktlese- und -schreibvorgängen. In der Regel empfängt eine Steuerung der SSD einen Befehl zum Lesen oder Schreiben von Daten von einer Hostvorrichtung auf eine Speichervorrichtung. Die Daten werden gelesen und in einen oder mehrere Löschblöcke in der Speichervorrichtung geschrieben. Jeder der Löschblöcke ist einer Logikblockadresse zugeordnet, sodass die SSD und/oder die Hostvorrichtung die Stelle kennen, an der die Daten gespeichert sind. Ein oder mehrere Löschblöcke können durch ihre jeweiligen Logikblockadressen gruppiert werden, um eine Vielzahl von Zonen zu bilden.
  • Die Hostvorrichtung kann Schreibbefehle beliebiger Größe an die Speicherungsvorrichtung senden. Die Speicherungsvorrichtung kann dann die Befehle unabhängig von der Größe der Befehle in die Speichervorrichtung schreiben, wenn die Befehle empfangen werden. Das Schreiben mehrerer kleiner Befehle in die Speichervorrichtung kann jedoch viel Zeit in Anspruch nehmen, die Programmierzeit verlangsamen und die Gesamtprogrammiereffizienz der Speicherungsvorrichtung verringern.
  • Daher wird ein neues Verfahren zum Betreiben einer Speicherungsvorrichtung benötigt, das die Effizienz der Steuerungsressource optimiert, um den Durchsatz für die Speicherungsvorrichtung zu maximieren.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speicherungsvorrichtungen. Die Speicherungsvorrichtung weist eine Steuerung und eine Speicherungseinheit auf, die in eine Vielzahl von Zonen unterteilt ist. Die Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jeder Die zwei Ebenen aufweist. Ein Löschblock aus jeder Ebene eines Dies wird für die Zonenbildung ausgewählt. Jeder Löschblock weist eine Vielzahl von Wortleitungen auf. Eine Zone weist eine oder mehrere Die-Ebenen auf, die zum Speichern von Paritätsdaten bestimmt sind, und eine Vielzahl von Dies, die zum Speichern von Benutzerdaten bestimmt sind. Die Zone weist weiterhin Platz auf, der für Steuerungsmetadaten vorgesehen ist. Die Speicherungsvorrichtung beschränkt eine Hostvorrichtung, um Schreibbefehle in einer minimalen Schreibgröße zu senden, um die Programmiereffizienz zu erhöhen. Die minimale Schreibgröße entspricht einer Wortleitung von einem Löschblock von jeder Ebene jedes Dies in der Zone, die dafür bestimmt ist, Benutzerdaten zu speichern, abzüglich des für Metadaten vorgesehenen Platzes.
  • In einer Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist. Jeder der Vielzahl von weist eine Vielzahl von Löschblöcken auf und jeder der Löschblöcke weist eine Vielzahl von Wortleitungen auf. Die Speicherungsvorrichtung weist weiterhin eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist. Die Steuerung ist eingerichtet, um eine minimale Schreibgröße für Befehle zum Schreiben von Daten zu bestimmen, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße basierend auf einer Anzahl von Löschblöcken in einer Zone, die zum Speichern von Benutzerdaten bestimmt ist, einer Seiten pro Zelle der Wortleitungen jedes Löschblocks, einer Anzahl von Wortleitungen in jedem Löschblock und einer Menge an Platz, der zum Speichern von Metadaten der Speicherungsvorrichtung bestimmt ist, bestimmt wird. Die Steuerung ist weiterhin eingerichtet, um die Hostvorrichtung zu beschränken, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist. Die Speicherungsvorrichtung weist weiterhin eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist. Die Steuerung ist eingerichtet, um eine minimale Schreibgröße für Befehle zum Schreiben von Daten zu bestimmen, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße berechnet wird, um eine vollständige Wortleitungsgröße eines Löschblocks jeder Ebene jedes Dies zu schreiben, der zum Speichern von Benutzerdaten innerhalb einer Zone bestimmt ist. Die Steuerung ist weiterhin eingerichtet, um die Hostvorrichtung zu beschränken, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist. Die Speicherungsvorrichtung weist weiterhin ein Mittel auf zum Empfangen von Befehlen zum Schreiben von Daten, die von einer Hostvorrichtung empfangen wurden, in einer minimalen Schreibgröße, wobei die minimale Schreibgröße festgelegt wird durch Multiplizieren einer Anzahl von Löschblöcken in einer zum Speichern von Benutzerdaten bestimmten Zone mal eine Seiten pro Zelle der Wortleitungen mal eine Wortleitungsgröße und Subtrahieren einer zum Speichern von Metadaten der Speichervorrichtung bestimmten Menge an Platz.
  • Figurenliste
  • Zur Verdeutlichung der Art und Weise, wie die vorstehend angegebenen Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulicht sind und diese daher nicht als ihren Schutzumfang einschränkend anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
    • 1 ist ein schematisches Blockdiagramm, das ein Speicherungssystem gemäß einer Ausführungsform veranschaulicht.
    • 2 ist ein Blockdiagramm, das ein Verfahren zum Betreiben einer Speicherungsvorrichtung zur Ausführung eines Lese- oder Schreibbefehls gemäß einer Ausführungsform veranschaulicht.
    • 3A veranschaulicht eine Ansicht der in einer Speicherungsvorrichtung verwendeten gezonten Namensräume gemäß einer Ausführungsform.
    • 3B veranschaulicht ein Zustandsdiagramm für die gezonten Namensräume der Speicherungsvorrichtung aus 3A gemäß einer Ausführungsform.
    • 4A veranschaulicht eine Zone, die eine Vielzahl von Löschblöcken aufweist, die aus einer Vielzahl von Dies gemäß einer Ausführungsform ausgewählt sind.
    • 4B veranschaulicht einen Löschblock der Zone von 4A gemäß einer Ausführungsform.
  • Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemein sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Nennung vorteilhaft bei anderen Ausführungsformen genutzt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf Ausführungsformen der Offenbarung Bezug genommen. Es versteht sich jedoch, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Implementierung und Umsetzung der Offenbarung in Betracht gezogen. Obwohl Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erreichen können, schränkt jedoch der Umstand, ob ein bestimmter Vorteil durch eine bestimmte Ausführungsform erreicht wird oder nicht, die Offenbarung nicht ein. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beiliegenden Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen angegeben. Ebenso soll eine Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und soll nicht als Element oder Einschränkung der beigefügten Ansprüche betrachtet werden, es sei denn, dies ist ausdrücklich in einem oder mehreren Ansprüchen angegeben.
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speicherungsvorrichtungen. Die Speicherungsvorrichtung weist eine Steuerung und eine Speicherungseinheit auf, die in eine Vielzahl von Zonen unterteilt ist. Die Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jeder Die zwei Ebenen aufweist. Ein Löschblock aus jeder Ebene eines Dies wird für die Zonenbildung ausgewählt. Jeder Löschblock weist eine Vielzahl von Wortleitungen auf. Eine Zone weist einen oder zwei Dies auf, die zum Speichern von Paritätsdaten bestimmt sind, und eine Vielzahl von Dies, die zum Speichern von Benutzerdaten bestimmt sind. Die Zone weist weiterhin Platz auf, der für Steuerungsmetadaten vorgesehen ist. Die Speicherungsvorrichtung beschränkt eine Hostvorrichtung, um Schreibbefehle in einer minimalen Schreibgröße zu senden, um die Programmiereffizienz zu erhöhen. Die minimale Schreibgröße entspricht einer Wortleitung von einem Löschblock von jeder Ebene jedes Dies in der Zone, die dafür bestimmt ist, Benutzerdaten zu speichern, abzüglich des für Metadaten vorgesehenen Platzes.
  • 1 ist ein schematisches Blockdiagramm zur Veranschaulichung eines Speichersystems 100, in dem die Speicherungsvorrichtung 106 als Speicherungsvorrichtung für eine Hostvorrichtung 104 gemäß einer oder mehreren Techniken dieser Offenbarung fungieren kann. Z. B. kann die Hostvorrichtung 104 zum Speichern und Abrufen von Daten nichtflüchtigen Speicher 110, wie einen nichtflüchtigen Speicher, verwenden, der in der Speicherungsvorrichtung 106 eingeschlossen ist. Die Speicherungseinheit 110 kann eine beliebige Art von nichtflüchtigem Speicher sein, wie MRAM, NAND, NOR oder HDD. In den folgenden Beschreibungen wird die Speicherungseinheit 110 zur Vereinfachung und beispielhaften Zwecken als nichtflüchtiger Speicher (NVM) 110 bezeichnet. Die Hostvorrichtung 104 weist einen Host-DRAM 138 auf. In einigen Beispielen kann das Speichersystem 100 eine Vielzahl von Speicherungsvorrichtungen einschließen, wie die Speicherungsvorrichtung 106, die als Speicheranordnung arbeiten kann. Zum Beispiel kann das Speichersystem 100 eine Vielzahl von Speicherungsvorrichtungen 106 einschließen, die als eine redundante Anordnung von preiswerten/unabhängigen Festplatten (RAID) eingerichtet sind, die zusammen als MassenSpeicherungsvorrichtung für die Hostvorrichtung 104 fungieren.
  • Das Speichersystem 100 schließt eine Hostvorrichtung 104 ein, die Daten auf und/oder von einer oder mehreren Speicherungsvorrichtungen, wie der Speicherungsvorrichtung 106, speichern und/oder abrufen kann. Wie in 1 veranschaulicht, kann die Hostvorrichtung 104 über eine Schnittstelle 114 mit der Speicherungsvorrichtung 106 kommunizieren. Die Hostvorrichtung 104 kann eine beliebige aus einer Vielzahl von Vorrichtungen aufweisen, einschließlich Computerservern, NAS-Einheiten (Network Attached Storage), Desktop-Computern, Notebook-Computern (d. h. Laptops), Tablet-Computern, Digitalempfängern, Telefonhandgeräten wie sogenannten „Smartphones“, sogenannten „Smart Pads“, Fernsehern, Kameras, Anzeigevorrichtungen, digitalen Medienplayern, Videospielkonsolen, Video-Streaming-Geräten und dergleichen.
  • Die Speicherungsvorrichtung 106 schließt eine Steuerung 108, einen nichtflüchtigen Speicher 110 (NVM 110), eine Stromversorgung 111, einen flüchtigen Speicher 112 und eine Schnittstelle 114 ein. Die Steuerung 108 weist einen internen flüchtigen Speicher 120 oder Puffer auf. In einigen Beispielen kann die Speicherungsvorrichtung 106 zusätzliche Komponenten einschließen, die aus Gründen der Übersichtlichkeit nicht in 1 dargestellt sind. Beispielsweise kann die Speicherungsvorrichtung 106 eine Leiterplatte (PCB) einschließen, an der Komponenten der Speicherungsvorrichtung 106 mechanisch angebracht sind und die elektrisch leitende Leiterbahnen einschließt, die Komponenten der Speicherungsvorrichtung 106 oder dergleichen elektrisch miteinander verbinden. In einigen Beispielen können die physischen Abmessungen und Anschlusskonfigurationen der Speicherungsvorrichtung 106 einem oder mehreren Standardformfaktoren entsprechen. Einige Beispiele für Standardformfaktoren schließen unter anderem eine 3,5-Zoll-Datenspeicherungsvorrichtung (z. B. eine Festplatte oder SSD), eine 2,5-Zoll-Datenspeicherungsvorrichtung, eine 1,8-Zoll-Datenspeicherungsvorrichtung, eine Peripheriekomponentenverbindung (PCI), PCI-Extended (PCI-X), PCI Express (PCle) (z. B. PCle x1, x4, x8, x16, PCle Mini Card, MiniPCI usw.) ein. In einigen Beispielen kann die Speicherungsvorrichtung 106 direkt mit einer Hauptplatine der Hostvorrichtung 104 gekoppelt (z. B. direkt verlötet) sein.
  • Die Schnittstelle 114 der Speicherungsvorrichtung 106 kann einen Datenbus zum Datenaustausch mit der Hostvorrichtung 104 und/oder einen Steuerbus zum Austauschen von Befehlen mit der Hostvorrichtung 104 einschließen. Die Schnittstelle 114 kann gemäß jedem geeigneten Protokoll arbeiten. Beispielsweise kann die Schnittstelle 114 gemäß einem oder mehreren der folgenden Protokolle arbeiten: Advanced Technology Attachment (ATA) (z. B. Serial-ATA (SATA) und Parallel-ATA (PATA)), Fibre Channel Protocol (FCP), Small Computer System Interface (SCSI), Serially Attached SCSI (SAS), PCI, PCIe, Non-Volatile Memory Express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), Compute Express Link (CXL), Open Channel SSD (OCSSD) oder dergleichen. Die elektrische Verbindung der Schnittstelle 114 (z. B. der Datenbus, der Steuerbus oder beides) ist elektrisch mit der Steuerung 108 verbunden und stellt eine elektrische Verbindung zwischen der Hostvorrichtung 104 und der Steuerung 108 her, so dass Daten zwischen der Hostvorrichtung 104 und der Steuerung 108 ausgetauscht werden können. In einigen Beispielen kann die Speicherungsvorrichtung 106 durch die elektrische Verbindung der Schnittstelle 114 auch Strom von der Hostvorrichtung 104 beziehen. Zum Beispiel kann die Stromversorgung 111, wie in 1 veranschaulicht, über die Schnittstelle 114 Strom von der Hostvorrichtung 104 empfangen.
  • Die Speicherungsvorrichtung 106 schließt NVM 110 ein, der eine Vielzahl von Speichervorrichtungen oder Medieneinheiten einschließen kann. Der NVM 110 kann eingerichtet sein, um Daten zu speichern und/oder abzurufen. Beispielsweise kann eine Medieneinheit des NVM 110 Daten und eine Nachricht von der Steuerung 108 empfangen, mit der die Medieneinheit zum Speichern der Daten angewiesen wird. In ähnlicher Weise kann die Medieneinheit des NVM 110 eine Nachricht von der Steuerung 108 empfangen, mit der die Medieneinheit zum Abrufen von Daten angewiesen wird. In einigen Beispielen kann jede der Medieneinheiten als ein Die bezeichnet werden. In einigen Beispielen kann ein einzelner physikalischer Chip eine Vielzahl von Dies (d. h. eine Vielzahl von Medieneinheiten) einschließen. In einigen Beispielen kann jede Medieneinheit zum Speichern relativ großer Datenmengen eingerichtet werden (z. B. 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB usw.).
  • In einigen Beispielen kann jede Medieneinheit des NVM 110 jede Art von nichtflüchtigen Speichervorrichtungen einschließen, wie Flash-Speichervorrichtungen, Phasenwechselspeicher-Vorrichtungen (PCM-Vorrichtungen), resistive Direktzugriffsspeichervorrichtungen (ReRAM-Vorrichtungen), magnetoresistive Direktzugriffsspeichervorrichtungen (MRAM-Vorrichtungen), ferroelektrische Direktzugriffsspeicher (F-RAM), holographische Speichervorrichtungen und jegliche andere Art von nichtflüchtigen Speichervorrichtungen.
  • Der NVM 110 kann eine Vielzahl von Flash-Speichervorrichtungen oder Medieneinheiten aufweisen. Flash-Speichervorrichtungen können NAND- oder NOR-basierte Flash-Speichervorrichtungen einschließen und können Daten basierend auf einer Ladung speichern, die in einem Floating Gate eines Transistors für jede Flash-Speicherzelle enthalten ist. In NAND-Flash-Speichervorrichtungen kann die Flash-Speichervorrichtung in eine Vielzahl von Blöcken unterteilt werden, die in eine Vielzahl von Seiten unterteilt werden können. Jeder Block der Vielzahl von Blöcken innerhalb einer bestimmten Speichervorrichtung kann eine Vielzahl von NAND-Zellen einschließen. Reihen von NAND-Zellen können unter Verwendung einer Wortleitung elektrisch verbunden werden, um eine Seite aus einer Vielzahl von Seiten zu definieren. Entsprechende Zellen in jeder der Vielzahl von Seiten können elektrisch mit jeweiligen Bitleitungen verbunden sein. Weiterhin können NAND-Flash-Speichervorrichtungen 2D- oder 3D-Vorrichtungen sein und Single-Level-Zellen (SLC), Multi-Level-Zellen (MLC), Triple-Level-Zellen (TLC) oder Quad-Level-Zellen (QLC) sein. Die Steuerung 108 kann Daten in und aus NAND-Flash-Speichervorrichtungen auf der Seitenebene schreiben und lesen und Daten aus NAND-Flash-Speichervorrichtungen auf der Blockebene löschen.
  • Die Speicherungsvorrichtung 106 schließt eine Stromversorgung 111 ein, die eine oder mehrere Komponenten der Speicherungsvorrichtung 106 mit Strom versorgen kann. Wenn die Stromversorgung 111 in einem Standardmodus betrieben wird, kann sie eine oder mehrere Komponenten mit Strom versorgen, der von einer externen Vorrichtung, wie der Hostvorrichtung 104, bereitgestellt wird. Zum Beispiel kann die Stromversorgung 111 die eine oder die mehreren Komponenten mit Strom versorgen, der von der Hostvorrichtung 104 über die Schnittstelle 114 empfangen wird. In einigen Beispielen kann die Stromversorgung 111 eine oder mehrere Stromspeicherkomponenten einschließen, die eingerichtet sind, um die eine oder die mehreren Komponenten mit Strom zu versorgen, wenn sie in einem Abschaltmodus arbeiten, wie wenn kein Strom mehr von der externen Vorrichtung empfangen wird. Auf diese Weise kann die Stromversorgung 111 als integrierte Notfallstromquelle fungieren. Einige Beispiele für die eine oder die mehreren Stromspeicherkomponenten schließen, ohne darauf beschränkt zu sein, Kondensatoren, Superkondensatoren, Batterien und dergleichen ein. In einigen Beispielen kann die von der einen oder den mehreren Stromspeicherkomponenten gespeicherte Strommenge eine Funktion der Kosten und/oder der Größe (z. B. Fläche / Volumen) der einen oder mehreren Stromspeicherkomponenten sein. Das heißt, wenn die von der einer oder den mehreren Stromspeicherkomponenten gespeicherte Strommenge zunimmt, steigen auch die Kosten und/oder die Größe der einen oder mehreren Stromspeicherkomponenten.
  • Die Speicherungsvorrichtung 106 schließt auch den flüchtigen Speicher 112 ein, der von der Steuerung 108 zum Speichern von Informationen verwendet werden kann. Der flüchtige Speicher 112 kann aus einer oder mehreren flüchtigen Speichervorrichtungen bestehen. In einigen Beispielen kann die Steuerung 108 den flüchtigen Speicher 112 als Cache verwenden. Zum Beispiel kann die Steuerung 108 zwischengespeicherte Informationen im flüchtigen Arbeitsspeicher 112 speichern, bis die zwischengespeicherten Informationen in den nichtflüchtigen Arbeitsspeicher 110 geschrieben werden. Wie in 1 veranschaulicht, kann der flüchtige Speicher 112 den von der Stromversorgung 111 empfangenen Strom verbrauchen. Beispiele für den flüchtigen Speicher 112 schließen, ohne darauf beschränkt zu sein, Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4 und dergleichen)) ein.
  • Die verschiedenen Arten von flüchtigen Speichern können mit unterschiedlichen Zugriffseigenschaften verwendet werden. Beispielsweise kann DRAM für längere Burst-Zugriffe angeordnet sein, um eine verbesserte Bandbreite (Bandwith, BW) desselben Zugangsbusses zu ermöglichen. Alternativ kann DRAM mit kleineren Zugriffen verwendet werden, sodass zufällige kleine Zugriffe eine bessere Latenz aufweisen können. Die Steuerung weist einen zusätzlichen optionalen SRAM 112 und/oder eingebetteten MRAM auf. Der eingebettete MRAM ist ein weiterer alternativer Speicher, der in einer anderen Ausführungsform verwendet werden kann. In ähnlicher Weise kann der Zugriff auf den MRAM für unterschiedliche Konstruktionszwecke optimiert werden, aber die Menge an eingebettetem MRAM in der SSD-Steuerung kann kostenempfindlich sein. Die Wahl, wie viele Daten und welche Daten in den nichtflüchtigen Premiumspeicher und den flüchtigen Premiumspeicher gelangen, ist daher von Systemkompromissen abhängig.
  • Die Speicherungsvorrichtung 106 schließt eine Steuerung 108 ein, die eine oder mehrere Operationen der Speicherungsvorrichtung 106 verwalten kann. Beispielsweise kann die Steuerung 108 das Lesen von Daten von und/oder das Schreiben von Daten in den NVM 110 über den Toggle-Mode-Bus (TM-Bus) verwalten (nicht gezeigt). In einigen Ausführungsformen kann die Steuerung 108, wenn die Speicherungsvorrichtung 106 einen Schreibbefehl von der Hostvorrichtung 104 empfängt, einen Datenspeicherbefehl initiieren, um Daten in den NVM 110 zu speichern und den Fortschritt des Datenspeicherbefehls zu überwachen. Die Steuerung 108 kann mindestens eine Betriebscharakteristik des Speichersystems 100 bestimmen und die mindestens eine Betriebscharakteristik in den NVM 110 speichern. In einigen Ausführungsformen speichert die Steuerung 108, wenn die Speicherungsvorrichtung 106 einen Schreibbefehl von der Hostvorrichtung 104 empfängt, die mit dem Schreibbefehl verbundenen Daten vorübergehend im internen flüchtigen Speicher 120, bevor sie die Daten an den NVM 110 sendet.
  • 2 ist ein Blockdiagramm, das ein Verfahren zum Betreiben einer Speicherungsvorrichtung zur Ausführung eines Lese- oder Schreibbefehls gemäß einer Ausführungsform veranschaulicht. 2 ist ein Blockdiagramm, das ein Verfahren 200 zum Betreiben einer Speicherungsvorrichtung zum Ausführen eines Lese- oder Schreibbefehls gemäß einer Ausführungsform veranschaulicht. Das Verfahren 200 kann mit dem Speichersystem 100 angewendet werden, das eine Hostvorrichtung 104 und eine Speicherungsvorrichtung 106 aufweist, die eine Steuerung 108 aufweist.
  • Verfahren 200 beginnt bei Operation 250, bei der die Hostvorrichtung einen Befehl als Eintrag in eine Übertragungswarteschlange schreibt. Die Hostvorrichtung kann bei Operation 250 einen oder mehrere Befehle in die Übertragungswarteschlange schreiben. Die Befehle können Lese- oder Schreibbefehle sein. Die Hostvorrichtung kann eine oder mehrere Übertragungswarteschlangen aufweisen.
  • Bei Operation 252 schreibt die Hostvorrichtung einen oder mehrere aktualisierte Endzeiger der Übertragungswarteschlange und läutet eine Türklingel oder sendet ein Unterbrechungssignal, um die Speicherungsvorrichtung über den neuen, zum Ausführen bereiten Befehl zu benachrichtigen oder ihr diesen zu signalisieren. Der Host kann einen aktualisierten Endzeiger der Übertragungswarteschlange schreiben und bei mehr als einer Übertragungswarteschlange für jede der Übertragungswarteschlangen ein Türklingel- oder Unterbrechungssignal senden. In Operation 254 ruft eine Steuerung der Speicherungsvorrichtung als Reaktion auf das Empfangen des Türklingel- oder Unterbrechungssignals den Befehl aus der einen oder den mehreren Übertragungswarteschlangen ab und die Steuerung empfängt den Befehl.
  • Bei Operation 256 verarbeitet die Steuerung den Befehl und schreibt oder überträgt die mit dem Befehl verbundenen Daten in den Speicher der Hostvorrichtung. Die Steuerung kann mehr als einen Befehl gleichzeitig verarbeiten. Die Steuerung kann einen oder mehrere Befehle in der Übertragungsreihenfolge oder in der sequentiellen Reihenfolge verarbeiten. Die Verarbeitung eines Schreibbefehls kann die Identifizierung einer Zone zum Schreiben der mit dem Befehl verbundenen Daten, das Schreiben der Daten in eine oder mehrere Logikblockadressen (Logical Block Addresses, LBA) der Zone und das Vorrücken eines Schreibzeigers der Zone zur Identifizierung der nächsten verfügbaren LBA innerhalb der Zone aufweisen.
  • Bei Operation 258 schreibt die Steuerung, sobald der Befehl vollständig verarbeitet wurde, einen dem ausgeführten Befehl entsprechenden Beendigungseintrag in eine Beendigungswarteschlange der Hostvorrichtung und verschiebt oder aktualisiert den CQ-Kopfzeiger, um auf den neu geschriebenen Beendigungseintrag zu zeigen.
  • Bei Operation 260 erzeugt und sendet die Steuerung ein Unterbrechungssignal oder eine Türklingel an die Hostvorrichtung. Das Unterbrechungssignal zeigt an, dass der Befehl ausgeführt wurde und die mit dem Befehl verbundenen Daten in der Speichervorrichtung verfügbar sind. Das Unterbrechungssignal benachrichtigt weiterhin die Hostvorrichtung, dass die Beendigungswarteschlange bereit ist, gelesen oder verarbeitet zu werden.
  • Bei Operation 262 verarbeitet die Hostvorrichtung den Beendigungseintrag. Bei Operation 264 schreibt die Hostvorrichtung einen aktualisierten CQ-Kopfzeiger in die Speicherungsvorrichtung und läutet die Türklingel oder sendet ein Unterbrechungssignal an die Speicherungsvorrichtung, um den Beendigungseintrag freizugeben.
  • 3A veranschaulicht gemäß einer Ausführungsform eine Ansicht der gezonten Namensräume (Zoned Namespaces, ZNS) 302, die in einer Speicherungsvorrichtung 300 verwendet werden. Die Speicherungsvorrichtung 300 kann einer Hostvorrichtung die Ansicht der ZNS 302 präsentieren. 3B veranschaulicht ein Zustandsdiagramm 350 für die ZNS 302 der Speicherungsvorrichtung 300 gemäß einer Ausführungsform. Die Speicherungsvorrichtung 300 kann die Speicherungsvorrichtung 106 des Speicherungssystems 100 von 1 sein. Die Speicherungsvorrichtung 300 kann einen oder mehrere ZNS 302 aufweisen, und jeder ZNS 302 kann unterschiedliche Größen aufweisen. Die Speicherungsvorrichtung 300 kann weiterhin einen oder mehrere herkömmliche Namensräume zusätzlich zu dem einen oder den mehreren gezonten Namensräumen 302 aufweisen. Darüber hinaus kann der ZNS 302 ein Zoned Block Command (ZBC) für SAS und/oder ein Zoned-Device ATA Command Set (ZAC) für SATA sein. Eine hostseitige Zonenaktivität kann aufgrund der möglichen Beziehung von logischer zu physischer Aktivität direkter mit Medienaktivität in gezonten Laufwerken in Beziehung stehen.
  • In der Speicherungsvorrichtung 300 ist der ZNS 302 die Menge an NVM, die in Logikblöcke formatiert werden kann, sodass die Kapazität in eine Vielzahl von Zonen 306a bis 306n (zusammen als Zonen 306 bezeichnet) unterteilt wird. Jede der Zonen 306 weist eine Vielzahl von physischen Blöcken oder Löschblöcken (nicht dargestellt) einer Medieneinheit oder eines NVM 304 auf und jedem der Löschblöcke ist eine Vielzahl von Logikblöcken (nicht dargestellt) zugeordnet. Wenn die Steuerung 308 einen Befehl empfängt, wie von einer (nicht dargestellten) Hostvorrichtung oder der Übertragungswarteschlange einer Hostvorrichtung, kann die Steuerung 308 Daten von der Vielzahl von Logikblöcken, die der Vielzahl von Löschblöcken (EBs) der ZNS 302 zugeordnet sind, lesen und Daten in diese schreiben. Jeder der Logikblöcke ist einer eindeutigen LBA oder einem Sektor zugeordnet.
  • In einer Ausführungsform ist der NVM 304 eine NAND-Vorrichtung. Die NAND-Vorrichtung weist einen oder mehrere Dies auf. Jeder des einen oder der mehreren Dies weist eine oder mehrere Ebenen auf. Jede der einen oder mehreren Ebenen weist einen oder mehrere Löschblöcke auf. Jeder des einen oder der mehreren Löschblöcke weist eine oder mehrere Wortleitungen (z. B. 256 Wortleitungen) auf. Jede der einen oder mehreren Wortleitungen kann auf einer oder mehreren Seiten adressiert werden. Zum Beispiel kann ein MLC-NAND-Die die obere Seite und die untere Seite verwenden, um die zwei Seiten in jeder Zelle der vollständigen Wortleitung zu erreichen (z. B. 16 KiB pro Seite). Außerdem kann auf jede Seite mit einer Granularität zugegriffen werden, die gleich oder kleiner als die volle Seite ist. Eine Steuerung kann häufig in Benutzerdatengranularität-LBA-Größen von 512 Bytes auf NAND zugreifen.
  • Wenn Daten in einen Löschblock geschrieben werden, werden ein oder mehrere Logikblöcke entsprechend innerhalb einer Zone 306 aktualisiert, um zu verfolgen, wo sich die Daten innerhalb des NVM 304 befinden. Daten können zu einem Zeitpunkt jeweils in eine einzige Zone 306 geschrieben werden, bis eine Zone 306 voll ist, oder in mehrere Zonen 306, sodass mehrere Zonen 306 teilweise gefüllt sein können. In ähnlicher Weise können beim Schreiben von Daten in eine bestimmte Zone 306 Daten blockweise nacheinander, in sequentieller Reihenfolge der NAND-Stellen, Seite für Seite oder Wortleitung für Wortleitung in die Vielzahl der Löschblöcke geschrieben werden, bis zu einem benachbarten Block gewechselt wird (d. h. Schreiben in einen ersten Löschblock, bis der erste Löschblock voll ist, bevor zum zweiten Löschblock gewechselt wird) oder in mehrere Blöcke gleichzeitig, in sequentieller Reihenfolge der NAND-Stellen, Seite für Seite oder Wortleitung für Wortleitung, um jeden Block teilweise in einer parallelen Weise zu füllen (d. h. Schreiben der ersten NAND-Stelle oder Seite jedes Löschblocks, bevor in die zweite NAND-Stelle oder Seite jedes Löschblocks geschrieben wird). Diese sequenzielle Programmierung jeder NAND-Stelle ist eine typische nicht einschränkende Anforderung vieler NAND-EBs.
  • Jede der Zonen 306 ist einer Zonenstart-Logikblockadresse (ZSLBA) zugeordnet. Die ZSLBA ist die erste verfügbare LBA in der Zone 306. Zum Beispiel ist die erste Zone 306a ZaSLBA zugeordnet, die zweite Zone 306b ist ZbSLBA zugeordnet, die dritte Zone 306c ist ZcSLBA zugeordnet, die vierte Zone 306d ist ZdSLBA zugeordnet und die nte Zone 306n (d. h. die letzte Zone) ist ZnSLBA zugeordnet. Jede Zone 306 wird durch ihre ZSLBA identifiziert und ist dazu eingerichtet, sequenzielle Schreibvorgänge zu empfangen (d. h. das Schreiben von Daten auf den NVM 110 in der Reihenfolge, in der die Schreibbefehle empfangen werden).
  • Wenn Daten in eine Zone 306 geschrieben werden, wird ein Schreibzeiger 310 vorgerückt oder aktualisiert, sodass er auf den nächsten verfügbaren Block in der Zone 306, in den Daten geschrieben werden sollen, zeigt oder diesen anzeigt, um den nächsten Schreibstartpunkt zu verfolgen (d. h. der Beendigungspunkt des vorherigen Schreibvorgangs entspricht dem Startpunkt eines nachfolgenden Schreibvorgangs). Somit zeigt der Schreibzeiger 310 an, wo der nachfolgende Schreibvorgang in die Zone 306 beginnen wird. Nachfolgende Schreibbefehle sind „Zonenanhang“-Befehle, bei denen die mit dem nachfolgenden Schreibbefehl verbundenen Daten an die Zone 306 an die Stelle angehängt werden, die der Schreibzeiger 310 als nächsten Startpunkt angibt. Eine geordnete Liste von LBAs innerhalb der Zone 306 kann für die Schreibreihenfolge gespeichert werden. Jede Zone 306 kann ihren eigenen Schreibzeiger 310 haben. Wenn somit ein Schreibbefehl empfangen wird, wird eine Zone 306 durch ihre ZSLBA identifiziert, und der Schreibzeiger 310 bestimmt, wo der Schreibvorgang der Daten innerhalb der identifizierten Zone 306 beginnt.
  • 3B veranschaulicht ein Zustandsdiagramm 350 für den ZNS 302 aus 3A. In dem Zustandsdiagramm 350 kann jede Zone in einem anderen Zustand, wie leer, aktiv, voll oder offline, sein. Wenn eine Zone leer ist, ist die Zone frei von Daten (d. h. keiner der Löschblöcke in der Zone speichert gegenwärtig Daten) und der Schreibzeiger befindet sich auf der ZSLBA (d. h. WP=0). Eine leere Zone schaltet in eine offene und aktive Zone um, sobald ein Schreibvorgang in die Zone eingeplant ist oder wenn ein Zonenöffnungsbefehl durch den Host ausgegeben wird. Die Zonenverwaltungsbefehle (ZM-Befehle) können verwendet werden, um eine Zone zwischen den Zuständen „Zone offen“ und „Zone geschlossen“ zu bewegen, die beide aktive Zustände sind. Wenn eine Zone aktiv ist, weist die Zone offene Blöcke auf, die beschrieben werden können, und dem Host kann eine Beschreibung der empfohlenen Zeit im aktiven Zustand durch die ZM oder die Steuerung bereitgestellt werden. Die Steuerung kann die ZM aufweisen.
  • Der Begriff „beschrieben“ schließt das Programmieren von Benutzerdaten auf 0 oder mehr Wortleitungen in einem Löschblock, das Löschen und/oder teilweise gefüllte Wortleitungen in einem Löschblock ein, wenn die Benutzerdaten nicht alle verfügbaren Wortleitungen gefüllt haben. Der Begriff „beschrieben“ kann weiterhin das Schließen einer Zone aufgrund interner Laufwerksbehandlungsanforderungen (Probleme hinsichtlich der Datenhaltung in offenen Blöcken, da sich die fehlerhaften Bits bei offenen Löschblöcken schneller anhäufen), das Schließen einer Zone durch die Speicherungsvorrichtung 300 aufgrund von Ressourcenbeschränkungen, wie zu viele offene Zonen, um den Defektzustand zu verfolgen oder zu entdecken, u. a., oder das Schließen einer Zone durch eine Hostvorrichtung aufgrund von Problemen, wie Fehlen von Daten, die an das Laufwerk gesendet werden können, Herunterfahren des Computers, Fehlerbehandlung auf dem Host, begrenzte Host-Ressourcen für die Verfolgung u. a., einschließen.
  • Die aktiven Zonen können entweder offen oder geschlossen sein. Eine offene Zone ist eine leere oder teilweise gefüllte Zone, die bereit ist, beschrieben zu werden, und weist gegenwärtig zugewiesene Ressourcen auf. Die Daten, die von der Hostvorrichtung mit einem Schreibbefehl oder Zonenanhangbefehl empfangen werden, können auf einen offenen Löschblock programmiert werden, der gegenwärtig nicht mit früheren Daten gefüllt ist. Neue Daten, die von der Hostvorrichtung eingezogen werden, oder gültige Daten, die verlagert werden, können in eine offene Zone geschrieben werden. Gültige Daten können zum Zweck der Speicherbereinigung von einer Zone (z. B. der ersten Zone 302a) in eine andere Zone (z. B. die dritte Zone 302c) verschoben werden. Eine geschlossene Zone ist eine leere oder teilweise gefüllte Zone, die derzeit nicht fortlaufend vom Host beschrieben wird. Der Wechsel einer Zone von einem offenen Zustand in einen geschlossenen Zustand ermöglicht es der Steuerung 308, Ressourcen anderen Aufgaben neu zuzuweisen. Diese Aufgaben können andere Zonen, die offen sind, andere herkömmliche Nicht-Zonen-Bereiche oder andere Bedürfnisse der Steuerung einschließen, sind aber nicht darauf beschränkt.
  • Sowohl in der offenen als auch in der geschlossenen Zone zeigt der Schreibzeiger auf eine Stelle in der Zone irgendwo zwischen der ZSLBA und dem Ende der letzten LBA der Zone (d. h. WP>0). Aktive Zonen können zwischen dem offenen und dem geschlossenen Zustand wechseln, wenn sie von der ZM bezeichnet werden oder wenn ein Schreiben in die Zone geplant ist. Zusätzlich kann die ZM eine aktive Zone zurücksetzen, um die in der Zone gespeicherten Daten zu leeren oder zu löschen, so dass die Zone wieder auf eine leere Zone umschaltet. Sobald eine aktive Zone voll ist, schaltet die Zone in den vollen Zustand. Eine volle Zone ist eine Zone, die vollständig mit Daten gefüllt ist und keine Sektoren oder LBAs mehr zum Schreiben von Daten zur Verfügung hat (d. h. WP = Zonenkapazität (ZCAP)). Lesebefehle von Daten, die in vollen Zonen gespeichert sind, können weiterhin ausgeführt werden.
  • Die ZM kann eine volle Zone zurücksetzen und eine Löschung der in der Zone gespeicherten Daten planen, sodass die Zone wieder in eine leere Zone wechselt. Wenn eine volle Zone zurückgesetzt wird, kann es vorkommen, dass die Zone nicht sofort von Daten gelöscht wird, obwohl die Zone als leere Zone markiert werden kann, die zum Beschreiben bereit ist. Die Rücksetzzone muss jedoch vor dem Wechsel in eine aktive Zone gelöscht werden. Eine Zone kann jederzeit zwischen einem ZM-Zurücksetzen und einem ZM-Öffnen gelöscht werden. Eine Offline-Zone ist eine Zone, die nicht verfügbar ist, um Daten zu schreiben. Eine Offline-Zone kann sich im vollen Zustand, im leeren Zustand oder in einem teilweise gefüllten Zustand befinden, ohne aktiv zu sein.
  • Da das Zurücksetzen einer Zone die in der Zone gespeicherten Daten löscht oder deren Löschung plant, entfällt die Notwendigkeit der Speicherbereinigung einzelner Löschblöcke, wodurch der gesamte Speicherbereinigungsprozess der Speicherungsvorrichtung 300 verbessert wird. Die Speicherungsvorrichtung 300 kann einen oder mehrere Löschblöcke zum Löschen markieren. Wenn eine neue Zone gebildet wird und die Speicherungsvorrichtung 300 ein ZM-Öffnen erwartet, können der eine oder die mehreren zum Löschen markierten Löschblöcke dann gelöscht werden. Die Speicherungsvorrichtung 300 kann weiterhin die physische Sicherung der Zone beim Löschen der Löschblöcke entscheiden und erstellen. Sobald somit die neue Zone geöffnet ist und Löschblöcke zur Bildung der Zone ausgewählt werden, werden die Löschblöcke gelöscht worden sein. Darüber hinaus können bei jedem Zurücksetzen einer Zone eine neue Reihenfolge für die LBAs und der Schreibzeiger 310 für die Zone 306 gewählt werden, wodurch die Zone 306 tolerant gegenüber dem Empfang von Befehlen außerhalb der sequenziellen Reihenfolge sein kann. Der Schreibzeiger 310 kann wahlweise abgeschaltet werden, sodass ein Befehl in jedwede Start-LBA geschrieben werden kann, die für den Befehl angegeben wird.
  • Unter erneuter Bezugnahme auf 3A, wenn der Host einen Schreibbefehl zum Schreiben von Daten in eine Zone 306 sendet, zieht die Steuerung 308 den Schreibbefehl ein und identifiziert den Schreibbefehl als einen Schreibvorgang in eine neu geöffnete Zone 306. Die Steuerung 308 wählt einen Satz von EBs aus, um die Daten zu speichern, die den Schreibbefehlen der neu geöffneten Zone 306 zugeordnet sind, und die neu geöffnete Zone 306 schaltet auf eine aktive Zone 306 um. Wie hier verwendet, weist das Initiieren, Empfangen oder Einziehen eines Schreibbefehls durch die Steuerung 308 das Empfangen eines Schreibbefehls oder das Lesen per direkten Speicherzugriff (DMA) des Schreibbefehls auf. Der Schreibbefehl kann ein Befehl zum Schreiben neuer Daten oder ein Befehl zum Verschieben gültiger Daten in eine andere Zone zum Zweck der Speicherbereinigung sein. Die Steuerung 308 ist eingerichtet, um neue Befehle aus einer von einer Hostvorrichtung besetzten Übertragungswarteschlange per DMA zu lesen.
  • In einer leeren Zone 306, die gerade in eine aktive Zone 306 gewechselt hat, werden die Daten beginnend bei der ZSLBA in die Zone 306 geschrieben, da der Schreibzeiger 310 den der ZSLBA zugeordneten Logikblock als den ersten verfügbaren Logikblock anzeigt. Die Daten können in einen oder mehrere Löschblöcke geschrieben werden, die für die physische Stelle der Zone 306 zugewiesen wurden. Nachdem die dem Schreibbefehl zugeordneten Daten in die Zone 306 geschrieben wurden, wird der Schreibzeiger 310 aktualisiert und zeigt auf den nächsten verfügbaren Block in der Zone 306, um den nächsten Schreibstartpunkt (d. h. den Beendigungspunkt des ersten Schreibvorgangs) zu verfolgen. Alternativ kann die Steuerung 308 eine aktive Zone auswählen, um die Daten zu schreiben. In einer aktiven Zone werden die Daten in den Logikblock geschrieben, der durch den Schreibzeiger 310 als der nächste verfügbare Block angezeigt wird.
  • Beispielsweise kann die Steuerung 308 einen ersten Schreibbefehl in eine dritte Zone 306c oder einen ersten Zonenanhangbefehl empfangen oder einziehen. Der Host identifiziert nacheinander, an welchen Logikblock der Zone 306 die Daten, die dem ersten Befehl zugeordnet sind, zu schreiben sind. Die Daten, die dem ersten Befehl zugeordnet sind, werden dann in die erste oder nächste(n) verfügbare(n) LBA(s) in der dritten Zone 306c geschrieben, wie durch den Schreibzeiger 310 angezeigt wird, und der Schreibzeiger 310 wird so vorgerückt oder aktualisiert, dass er auf die nächste verfügbare LBA zeigt, die für einen Host-Schreibvorgang verfügbar ist (d. h. WP > 0). Wenn die Steuerung 308 einen zweiten Schreibbefehl in die dritte Zone 306c empfängt oder einzieht, werden die dem zweiten Schreibbefehl zugeordneten Daten in die nächste(n) verfügbare(n) LBA(s) in der dritten Zone 306c geschrieben, die durch den Schreibzeiger 310 identifiziert werden. Sobald die Daten, die dem zweiten Befehl zugeordnet sind, in die dritte Zone 306c geschrieben worden sind, rückt der Schreibzeiger 310 erneut vor oder wird aktualisiert, sodass er auf die nächste verfügbare LBA zeigt, die für einen Host-Schreibvorgang zur Verfügung steht. Durch das Zurücksetzen der Zone 306c wird der Schreibzeiger 310 wieder auf ZcSLBA zurückbewegt (d. h. WP=0), und die Zone 306c schaltet auf eine leere Zone.
  • 4A veranschaulicht eine Zone 400, die aus einer Vielzahl von Löschblöcken 404 besteht, die gemäß einer Ausführungsform aus einer Vielzahl von Dies 402 ausgewählt wurden. Die Zone 400 kann eine Zone 306 der ZNS 302 aus 3A sein. Die Zone 400 kann eine Zone der Speicherungseinheit 110 aus 1 sein, die mit der Steuerung 108 gekoppelt ist.
  • Eine Speicherungsvorrichtung, wie die Speicherungsvorrichtung 106 aus 1, ist mit einer Speicherungseinheit, wie dem NVM 110 aus 1, gekoppelt, die eine Vielzahl von Dies 402 aufweist. Wenngleich 32 Dies 402 gezeigt sind, kann eine beliebige Anzahl von Dies enthalten sein. Jeder Die 402 besteht aus einem Paar von Ebenen 406, und jede Ebene 406 besteht aus einer Vielzahl von Löschblöcken 404.
  • Eine Zone 400 wird durch Auswählen eines Löschblocks 404 aus jeder Ebene 406 von 30 der 32 Dies 402 und Zuweisen oder Zuordnen der Logikblockadresse, die den Löschblöcken 404 entspricht, zu der Zone 400 gebildet. Die Konfiguration von Löschblöcken 404 der Zone 400 ist ein Beispiel einer Ausführungsform. In einer anderen Ausführungsform können die ausgewählten Löschblöcke 404 für eine Zone 400 nicht sequentiell (d. h. nicht derselbe Löschblock in jeder Ebene) sein.
  • Aus den insgesamt 32 Dies 402 können 30 Dies 402 verwendet werden, um Daten zu speichern, ein Paritäts-Die 402a kann verwendet werden, um Paritätsdaten (z. B. XOR-Daten, interne Fehlerkorrekturcodes (ECC), externe ECC usw.) zu speichern, und ein Paritäts-oder Benutzerdatendie 402b kann verwendet werden, um entweder Benutzerdaten oder Paritätsdaten zu speichern. In einer Ausführungsform kann die Zone 400 31 Dies 402 enthalten, die für Benutzerdaten verwendet werden sollen, und 1 Die 402a, der für Paritätsdaten verwendet werden soll. Zum Beispiel verwendet RAID 4 einen Die für Paritätsdaten. In einer anderen Ausführungsform kann die Zone 400 30 Dies 402 enthalten, die für Benutzerdaten verwendet werden sollen, und 2 Dies 402a, 402b, die für Paritätsdaten verwendet werden sollen. Zum Beispiel verwendet RAID 6 2 Dies für Paritätsdaten. Solche Ausführungsformen sollen nicht einschränkend oder beschränkend sein und sind Beispiele für mögliche Konfigurationen einer Zone 400. Darüber hinaus können andere Ausführungsformen, die weder aufgeführt noch beschrieben sind, vorhanden sein.
  • Obwohl sie durchgehend als „Paritäts-Die“ bezeichnet werden, können mögliche Ausführungsformen eine Paritätsebene einschließen, in der nur eine Ebene eines Dies Paritätsdaten zugeordnet ist. Zusätzlich können Paritätsdaten für eine Wortleitung jedes Löschblocks, die Benutzerdaten speichern (z. B. Wortleitung 60 jedes Löschblocks jeder Ebene von 30 oder 31 Dies), in einer entsprechenden Paritätswortleitung (z. B. Wortleitung 60) eines beliebigen Löschblocks gespeichert werden, in dem Benutzerdaten nicht in der Paritätswortleitung (z. B. Wortleitung 60) gespeichert werden. In einer solchen Ausführungsform können Paritätswortleitungen in einer Vielzahl von unterschiedlichen Löschblöcken oder Ebenen oder Dies innerhalb der Zone 400 gespeichert sein. Darüber hinaus kann beim Programmieren auf die nichtflüchtige Speicherungseinheit eine einzelne Ebene eines Dies anstelle beider Ebenen eines Dies auf die nichtflüchtige Speicherungseinheit programmiert werden. In den Beschreibungen hierin sind die zu einem Paritäts-Die aufgeführten Ausführungsformen auf eine Paritätsebene oder eine Paritätswortleitung anwendbar und sollen nicht einschränkend sein. Obwohl der Die 402a, der zum Speichern von Paritätsdaten verwendet wird, als der letzte Die 402 innerhalb der Zone 400 gezeigt ist, kann jeder Die 402 zum Speichern von Paritätsdaten verwendet werden.
  • Innerhalb einer Zone 400 wird der Paritäts-Die 402a für die Speicherung von Paritätsdaten für den Die-Fehlerschutz partitioniert. Ein Paritäts- oder Benutzerdatendie 402b kann entweder für die Speicherung zusätzlicher Paritätsdaten partitioniert oder für Benutzerdaten verwendet werden. Der Paritäts-Die 402a speichert p-Paritätsdaten, die Standard-Paritätsdaten sind. Der Paritäts- oder Benutzerdatendie 402b speichert, wenn er für Paritätsdaten verwendet wird, q-Paritätsdaten, die die gleiche Größe wie die p-Paritätsdaten aufweisen. Die q-Paritätsdaten werden jedoch unter Verwendung von Gauß'scher Mathematik an den Hostdaten berechnet, die auf einer bestimmten Wortleitung jedes EB gespeichert sind. Die Paritätsdaten enthalten eine Löschcodierung, die vor einem Ausfall eines einzelnen Dies und/oder einem Ausfall zweier Dies schützen kann. Die Löschcodierung kann auch ein gewisses Maß an Schutz für Ebenenverlustausfall bieten.
  • In der Codierungstheorie ist ein Löschcode ein Vorwärtsfehlerkorrekturcode (FEC, Forward Error Correction) unter der Annahme von Bitlöschungen (anstelle von Bitfehlern), der eine Nachricht von k Symbolen in eine längere Nachricht (Codewort) mit n Symbolen umwandelt, so dass die ursprüngliche Nachricht aus einer Teilmenge der n Symbole wiederhergestellt werden kann. Beispiele für verschiedene Löschcodeklassen sind Tornado-Codes, Fontänencodes (d. h. ratenlose Löschcodes), Paritäts- und Reed-Solomon-Codes. Zum Beispiel sind die Reed-Solomon-Codes eine Gruppe von Fehlerkorrekturcodes (ECC), wobei die Codes in der Lage sind, mehrere Symbolfehler zu erkennen und zu korrigieren.
  • In einer Ausführungsform können sich die von einem ECC-Decodierer zum Korrigieren von Fehlern verwendeten Fehlerkorrekturinformationen auf redundante und/oder codierte Bits beziehen, die von einem Codierer für einen Fehlerkorrekturcode erzeugt werden. In verschiedenen Ausführungsformen kann ein Fehlerkorrekturcode einer von verschiedenen Arten von Fehlerkorrekturcodes sein, wie ein Blockcode, ein Faltungscode, ein Bose-Chaudhuri-Hocquenghem-Code (BCH-Code), ein Low-Density-Parity-Check-Code (LDPC-Code), ein Hamming-Code, ein Reed-Solomon-Code, ein Turbo-Code oder dergleichen. In einer bestimmten Ausführungsform kann der Fehlerkorrekturcode ein systematischer Fehlerkorrekturcode sein, sodass jedes ECC-Datensegment oder Codewort von einem Codierer empfangene Daten für den Fehlerkorrekturcode sowie Paritätsbits oder Prüfbits speichern kann. Der ECC kann auch einen Fehlererkennungscode (EDC, Error Detecting Code) aufweisen, wobei der EDC ein Sentinel-Wert, eine Logikadresse, ein zyklischer Redundanzcode (CRC) oder eine andere ECC-Fehlkorrekturprüfung sein kann, die dem ECC-Dekodieren folgt. Die Fehlkorrekturprüfung erkennt, ob der ECC einen Wert auf ein ungültiges Ergebnis korrigiert hat. Die Fehlkorrekturprüfung ist erforderlich, da es Fälle gibt, in denen kein ECC verwendet wird, aber der EDC immer noch Fehler erfasst.
  • Die Zone 400 kann eine beliebige Kapazität (ZCAP) aufweisen, wie 256 MiB oder 512 MiB. Es kann jedoch vorkommen, dass ein kleiner Teil der Zone 400 für das Schreiben von Daten unzugänglich ist, aber dennoch gelesen werden kann, wie ein Teil der Zone 400, der die Paritätsdaten speichert (z. B. Paritäts-Die 402a und/oder Paritäts- oder Benutzerdatendie 402b). Wenn beispielsweise die Gesamtkapazität einer Zone 400 512 MiB beträgt, kann die ZCAP 470 MiB betragen, was der verfügbaren Kapazität zum Schreiben von Daten entspricht, während 42 MiB nicht zum Schreiben von Daten zur Verfügung stehen.
  • 4B veranschaulicht einen beispielhaften Löschblock 404 der Zone 400 von 4A gemäß einer Ausführungsform. 4B ist ein Beispiel eines Löschblocks 404 in einem TLC-Speicher. Andere Arten von Speicherzellen, die nicht aufgelistet sind, können auf die Ausführungsform anwendbar sein, wie vorstehend erörtert. Der Löschblock 404 weist mehrere Wortleitungen, wie WL0 460, WL1 470, WL2 480 und WLn 490 auf. Der Buchstabe „n“ bezeichnet einen Wert, der auf die letzte Wortleitung innerhalb eines Löschblocks 404 anwendbar ist. Zum Beispiel kann ein Löschblock 404 aus 256 Wortleitungen bestehen. Ein Löschblock 404 kann jedoch auch aus mehr als 256 Wortleitungen oder weniger als 256 Wortleitungen bestehen.
  • Darüber hinaus enthält jede Wortleitung eine Anzahl von Seiten, wobei die Anzahl der Art von Speicherzelle entspricht. Zum Beispiel weist ein SLC-Speicher 1 Seite pro Wortleitung auf, ein MLC-Speicher weist 2 Seiten pro Wortleitung auf, ein TLC-Speicher weist 3 Seiten pro Wortleitung auf und so weiter. In 4B ist der Löschblock 404 TLC-Speicher und jede Wortleitung weist eine obere Seite 472, eine mittlere Seite 474 und eine untere Seite 476 auf, wie in WL1 470 gezeigt. In der folgenden Beschreibung wird ein TLC-Speicherlöschblock mit 256 Wortleitungen als Beispiel verwendet; ein solches Beispiel dient jedoch nur zu Erläuterungszwecken und soll nicht einschränkend sein.
  • Die Gesamtgröße einer Wortleitung in einem TLC-Speicher in einem Löschblock 404, wie WL1 470, beträgt 48 KiB (d. h. 16 KiB *3 Seiten). Da zwei Ebenen in einem Die vorhanden sind, ist eine Wortleitung derselben Größe parallel zu WL1 vorhanden (nicht gezeigt). Die kombinierte Wortleitungsgröße von zwei Löschblöcken 404, einer von jeder Ebene 406, in einem Die 402 (nachstehend als „eine Wortleitung“ bezeichnet) ist: 1 Die * 2 EB/Die * 3 Seite/EB * 16 KiB/Seite = 96 KiB, wobei eine einzelne Löschblock-Wortleitung 48 KiB beträgt, was die Hälfte der Größe einer Wortleitung ist. Darüber hinaus kann die Die-Wortleitungsgröße von 96 KiB und die Löschblock-Wortleitungsgröße von 48 KiB aufgrund von Platz, der zum Speichern von Metadaten bestimmt ist, geringer sein. Somit ist die gesamte kombinierte Größe einer Wortleitung in jeder Ebene eines Dies im TLC-Speicher in einem Die 96 KiB abzüglich des Platzes, der zum Speichern von Metadaten bestimmt ist. Die vorstehenden Werte sind Beispiele für eine mögliche Ausführungsform und die aufgeführten Werte sind weder einschränkend noch beschränkend.
  • Eine Super-Wortleitung oder eine Mehrfach-Wortleitung besteht aus einer Die-Wortleitung von jedem Die einer Zone (d. h. die Summe einer Wortleitung von einem Löschblock von jeder Ebene eines Dies und von jedem Die einer Zone, die Benutzerdaten speichert), sodass eine Zone gemäß einer Ausführungsform 256 Superwortleitungen aufweist. In einer Ausführungsform stellt jede Ebene eines Dies für eine Zone einen identischen Löschblock (d. h. EB1 jeder Ebene) bereit. In einer anderen Ausführungsform stellt jede Ebene eines Dies für eine Zone einen nicht identischen Löschblock (d. h. unterschiedliche Löschblöcke für jede Ebene) bereit. Wenn zum Beispiel eine Zone 30 Dies aufweist, die zum Speichern von Benutzerdaten vorgesehen sind, wäre eine Super-Wortleitung in der RAID 6 Implementierung 96 KiB *30 Dies, abzüglich des Platzes, der zum Speichern von Metadaten bestimmt ist. Wenn dementsprechend eine Zone 31 Dies aufweist, die zum Speichern von Benutzerdaten vorgesehen sind, wäre eine Super-Wortleitung in der RAID 4 Implementierung 96 KiB *31 Dies, abzüglich des Platzes, der zum Speichern von Metadaten bestimmt ist.
  • Mit anderen Worten kann eine Super-Wortleitungskapazität für beschreibbare Daten (d. h. Gesamtkapazität abzüglich des Platzes, der aufgrund von Steuerungsmetadaten verloren geht) für eine Zone durch die folgende Gleichung gelöst werden: # Die * 2 (EB/Die) * (Seite/EB) * Größe Wortleitung (VVL) - Metadaten. Obwohl der Begriff „Metadaten“ durchgehend verwendet wird, können sich Metadaten auch auf Daten-Overhead beziehen. Somit können Metadaten für beispielhafte Zwecke durchgehend austauschbar mit Daten-Overhead verwendet werden. Die Metadaten können interne Verfolgungsinformationen sein, wie die Zonenlogikblockadressen, die auf der Super-Wortleitung für die Speicherungsvorrichtung gespeichert sind. Die auf der Super-Wortleitung gespeicherten Zonenlogikblockadressen weisen die Stelle der Paritätsdaten und/oder der Steuerungsdebuginformationen auf. Die Super-Wortleitungsgröße kann als minimale Schreibgröße für Befehle zum Schreiben von Daten verwendet werden, die von einem Host empfangen werden, wie unten besprochen.
  • Zum Beispiel wird für den TLC-Speicher (d. h. 3 Seiten pro Zelle) die Super-Wortleitungskapazität für Benutzerdaten mit einem Die, der für Paritätsdaten zugewiesen ist, wie folgt gelöst: 31 Die * 2 EB ausgewählt/Die * 3 Seite/EB * 16 KiB/Seite - 16 KiB = 2960 KiB. 16 KiB/Seite bezieht sich auf die WL-Datengröße pro Seite innerhalb einer Speicherzelle. 16 KiB bezieht sich auf die Datengröße der Metadaten. Die Werte für die WL-Datengröße und die Metadaten-Datengröße sind lediglich Beispiele für mögliche Größen und sollen nicht einschränkend sein. Zusätzlich können die Metadaten einer Zone einer einzelnen Wortleitung in einem einzelnen EB, mehreren Wortleitungen in einem einzelnen EB oder mehreren Wortleitungen über mehrere EBs zugeordnet sein. Darüber hinaus können die Metadaten einem Abschnitt einer einzelnen Wortleitung in einem einzigen EB zugeordnet sein, einem Abschnitt mehrerer Wortleitungen in einem einzelnen EB oder einem Abschnitt mehrerer Wortleitungen über mehrere EBs.
  • Darüber hinaus ist die Gleichung auf andere Formen von Speicherzellen wie SLC, MLC, QLC und andere höhere Iterationen von Speicherzellen anwendbar. Seiten/Zelle bezieht sich auf die Anzahl von Seiten, die eine bestimmte Art von Speicherzelle enthalten kann. Wenn zwei Dies für Paritätsdaten innerhalb des TLC-Speichers zugewiesen wurden, würde die Gleichung wie folgt gelöst werden: 30 Die * 2 EB/Die * 3 Seite/EB * 16 KiB/Seite - 16 KiB = 2864 KiB. In einem einzigen Die 402 sind zwei Ebenen 406 vorhanden und ein Löschblock 404 ist zur Zonenbildung aus jeder Ebene 406 ausgewählt.
  • Eine Steuerung einer Speicherungsvorrichtung, wie die Steuerung 108 der Speicherungsvorrichtung 106 von 1, kann eine minimale Schreibgröße für Befehle berechnen und festlegen, um Daten in eine oder mehrere Zonen zu schreiben, die von einem Host empfangen werden. Die minimale Schreibgröße für den TLC-Speicher für Befehle zum Schreiben von Daten, die von einem Host empfangen werden, kann auf der Die-WL-Größe von 96 KiB abzüglich des Platzes basieren, der dafür bestimmt ist, Metadaten zu speichern, sodass eine kombinierte Die-WL, wie WL0 460, einmal in die volle Kapazität geschrieben wird.
  • Der flüchtige Speicher, wie der flüchtige Speicher 112 von 1, kann einen Bereich aufweisen, der zum Speichern von Daten im Flug bestimmt ist, wie nicht geschriebene Host- oder Benutzerdaten, die von einem Host in einer Größe gesendet werden, die kleiner als die minimale Schreibgröße ist, die nicht in NVM 110 und Paritätsdaten geschrieben wurde. Zum Beispiel kann der Bereich des flüchtigen Speichers 112 dem Speichern von Schreibbefehlen gewidmet sein, die weniger als eine Datenwortleitung, gleich einer Datenwortleitung oder mehr als eine Datenwortleitung aufweisen. Der Host kann darauf beschränkt sein, Schreibbefehle in einer minimalen Schreibgröße zu senden, wenn Daten durch die Steuerung 108 in Zonen geschrieben werden. Ungeschriebene Host- oder Benutzerdaten, die in den Bereich des flüchtigen Speichers 112 oder des internen flüchtigen Speichers 120 geschrieben werden, der zum Speichern von Daten im Flug bestimmt ist, können aggregiert werden, bis die minimale Schreibgrößenanforderung für eine Zone erreicht ist.
  • Um den Schreibprozess besser zu optimieren und die Programmiereffizienz zu erhöhen, kann die minimale Schreibgröße so ausgewählt werden, dass eine Wortleitung in jedem Löschblock 404 in einer Zone 400 gefüllt wird (d. h. eine Die-WL in jedem Löschblock der Zone wird gleichzeitig beschrieben). Somit kann die minimale Schreibgröße auf die Super-Wortleitungsgröße festgelegt werden. In dem Beispiel in 4A, wo 31 Dies 402 (oder EB-Paare) für Benutzerdaten sind und 1 Die 402a (oder EB-Paar) für Paritätsdaten ist, sind etwa 2960 KiB Daten (d. h. 96 KiB * 31 Benutzer-Dies) erforderlich, um eine kombinierte Die-Wortleitung in jedem der verfügbaren Dies 402 in einer Zone 400 bis zur Kapazitätsgrenze zu füllen, abzüglich des Platzes, der für Metadaten verloren geht. Die minimale Schreibgröße soll nicht einschränkend oder beschränkend sein und andere minimale Schreibgrößen können für andere Arten von Speicherzellen existieren. Darüber hinaus kann die minimale Schreibgröße, die referenziert wird, größer oder kleiner als die hierin erörterte Super-Wortleitungsgröße sein, wie zwei oder mehr Die-Wortleitungen in jedem Löschblock der Zone oder eine halbe Die-Wortleitung in jedem Löschblock der Zone.
  • In einer Ausführungsform werden Paritätsdaten in die Gesamtheit von Wortleitungen eines einzelnen Löschblocks einer Zone geschrieben. In einer anderen Ausführungsform werden Paritätsdaten identisch in eine Wortleitung jedes Löschblocks geschrieben (d. h. WL0 jedes Löschblocks). In noch einer anderen Ausführungsform werden Paritätsdaten nicht identisch in eine Wortleitung jedes Löschblocks geschrieben (d. h. unterschiedliche Wortleitungen in jedem Löschblock). In einer Ausführungsform ist die Gesamtanzahl von Wortleitungen, die für Paritätsdaten bestimmt sind, innerhalb einer Zone gleich einem Vielfachen eines oder mehrerer Löschblöcke einer Zone.
  • In einer Ausführungsform kann der Platz, der für Metadaten verloren geht, von einer Wortleitung stammen. In einer anderen Ausführungsform kann der Platz, der für Metadaten verloren geht, von einem Löschblock 404 stammen. In noch einer anderen Ausführungsform kann der Platz, der für Metadaten verloren geht, von einer Ebene 406 stammen. In einer anderen Ausführungsform kann der Platz, der für Metadaten verloren geht, von einem Die 402 stammen. In noch einer anderen Ausführungsform kann der Platz, der für Metadaten verloren geht, von der Zone 400 stammen.
  • Zum Beispiel speichert der Host, wie der Host 104 von 1, Daten, die an die Speicherungsvorrichtung gesendet werden sollen, wie die Speicherungsvorrichtung 106 von 1, bis ein Schwellenwert oder eine minimale Schreibgröße erreicht ist, wenn sie auf die minimale Schreibgröße beschränkt ist. Der Schwellenwert kann die Super-Wortleitungskapazität von 2960 KiB sein, die zuvor berechnet wurde. Wenn die Speicherungsvorrichtung 106 2960 KilB an Daten vom Host 104 empfängt, bestimmt eine Steuerung, wie die Steuerung 108, ob die Daten ausreichen, um eine Wortleitung, wie WL2 480, über jeden der Dies 402 in einer Zone 400 zu füllen. Wenn die empfangenen Daten keine Wortleitung über alle Dies 402 in einer Zone 400 bis zu Kapazität füllen, kann die Steuerung 108 die Datenschreibbefehle in eine Warteschlange stellen, bis die gespeicherte Gesamtaggregationsschreibgröße ausreicht, um jede Wortleitung über alle Dies 402 in einer Zone 400 zu Kapazität zu füllen.
  • In einer Ausführungsform ist die minimale Schreibgröße eine Wortleitungskapazität eines Löschblocks 404 abzüglich des Platzes, der für Metadaten verloren geht. In einer anderen Ausführungsform ist die minimale Schreibgröße die Größe einer kombinierten Die-Wortleitung über zwei Ebenen 406 eines Dies 402 abzüglich des Platzes, der für Metadaten verloren geht. In noch einer anderen Ausführungsform ist die minimale Schreibgröße die Größe einer Super-Wortleitung, die Benutzerdaten in einer Zone 400 speichert, abzüglich des Platzes, der für Metadaten verloren geht. In einer anderen Ausführungsform ist die minimale Schreibgröße die Größe einer oder mehrerer Super-Wortleitungen, die Benutzerdaten in einer Zone 400 speichern, abzüglich des Platzes, der für Metadaten verloren geht.
  • Wenn die minimale Schreibgröße eine Wortleitung einer Ebene ist, kann ein Puffer für jede Ebene und die relevante Paritätsebene verwendet werden. Zum Beispiel werden für einen zweischichtigen Schreibvorgang, bei dem jede Wortleitung auf parallelen Ebenen eines Dies liegt, vier Puffer verwendet, während sich die Daten in dem internen flüchtigen Speicher befinden. Wenn eine Wortleitung der Ebene in die nichtflüchtige Speicherungseinheit geschrieben wird (d. h. kein paralleler Schreibvorgang), werden zwei Puffer freigegeben (d. h. in den Pool von verfügbaren Puffern zurückgeführt). Die freigegebenen Puffer sind ein Paritätspuffer, der der Wortleitung und dem Wortleitungspuffer zugeordnet ist. In ähnlicher Weise werden, wenn beide Wortleitungen in die nichtflüchtige Speicherungseinheit geschrieben werden (d. h. ein paralleler Schreibvorgang), alle verwendeten Puffer in den Pool von verfügbaren Puffern zurückgeführt. Ein Paritätspuffer kann einer Ebene jedes Dies zugeordnet sein, sodass der Paritätspuffer vorhanden ist, bis alle identischen Ebenen in die nichtflüchtige Speicherungseinheit geschrieben werden. Wenn die endgültige verwendete Ebene in die nichtflüchtige Speicherungseinheit geschrieben wird, wird der Paritätspuffer ebenfalls in die nichtflüchtige Speicherungseinheit geschrieben, was zu einem nicht verwendeten internen flüchtigen Speicher führt.
  • Der Schreibvorgang in eine Zone kann durch gleichzeitiges Schreiben in eine Wortleitung über alle Dies innerhalb einer Zone optimiert werden. Indem der Host auf eine minimale Schreibgröße beschränkt wird oder der Steuerung ermöglicht wird, Daten zu speichern, bis eine minimale Schreibgröße erreicht ist, wie eine Größe, um eine Wortleitung in jedem Löschblock über alle Dies innerhalb einer Zone bis zur Kapazitätsgrenze zu füllen, können die Gesamtschreibleistung und die Programmiereffizienz verbessert werden.
  • In einer Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist. Jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf und jeder der Löschblöcke weist eine Vielzahl von Wortleitungen auf. Die Speicherungsvorrichtung weist weiterhin eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist. Die Steuerung ist eingerichtet, um eine minimale Schreibgröße für Befehle zum Schreiben von Daten zu bestimmen, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße basierend auf einer Anzahl von Löschblöcken in einer Zone, die zum Speichern von Benutzerdaten bestimmt ist, einer Seiten pro Zelle der Wortleitungen jedes Löschblocks, einer Anzahl von Wortleitungen in jedem Löschblock und einer Menge an Platz, der zum Speichern von Metadaten der Speicherungsvorrichtung bestimmt ist, bestimmt wird. Die Steuerung ist weiterhin eingerichtet, um die Hostvorrichtung zu beschränken, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  • Jede Zone der Vielzahl von Zonen weist die gleiche Anzahl von Löschblöcken auf und weist eine gleiche beschreibbare Zonenkapazität auf. Die minimale Schreibgröße wird bestimmt, um zwei volle Wortleitungen in jedem Die der Zone zu schreiben, abzüglich der Menge an Platz, die zum Speichern von Metadaten bestimmt ist. Jeder Die der Zone weist zwei Ebenen auf und die minimale Schreibgröße wird bestimmt, um auf eine volle Wortleitung in jeder Ebene jedes Dies der Zone zu schreiben, abzüglich der Menge an Platz, die zum Speichern von Metadaten bestimmt ist. Ein Abschnitt jeder Wortleitung weist die Menge an Platz auf, die zum Speichern von Metadaten bestimmt ist. Ein Abschnitt jedes Löschblocks weist die Menge an Platz auf, die zum Speichern von Metadaten bestimmt ist. Weiterhin ist mindestens ein Die in jeder Zone zum Speichern von Die-Fehlerschutzdaten bestimmt.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist. Die Speicherungsvorrichtung weist weiterhin eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist. Die Steuerung ist eingerichtet, um eine minimale Schreibgröße für Befehle zum Schreiben von Daten zu bestimmen, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße berechnet wird, um eine vollständige Wortleitungsgröße eines Löschblocks jeder Ebene jedes Dies zu schreiben, der zum Speichern von Benutzerdaten innerhalb einer Zone bestimmt ist. Die Steuerung ist weiterhin eingerichtet, um die Hostvorrichtung zu beschränken, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  • Die minimale Schreibgröße wird basierend auf einer Seiten pro Zelle der Vielzahl von Wortleitungen berechnet. Ein Abschnitt jeder Zone weist eine Metadatenkapazität um in die Speicherungsvorrichtung zu schreiben auf. Die minimale Schreibgröße wird berechnet, um die Metadatenkapazität zu berücksichtigen. Die Steuerung ist weiterhin eingerichtet, um einen oder mehrere Schreibbefehle von der Hostvorrichtung zu empfangen, deren Größe kleiner als die minimale Schreibgröße ist, den einen oder die mehreren Schreibbefehle zu halten, bis der eine oder die mehreren Schreibbefehle auf die minimale Schreibgröße aggregiert sind, und den einen oder die mehreren Schreibbefehle in die nichtflüchtige Speicherungseinheit zu schreiben, sobald der eine oder die mehreren Schreibbefehle auf die minimale Schreibgröße aggregiert sind. Jede Zone weist eine Vielzahl von Benutzerdatendies, die zum Speichern von Benutzerdaten vorgesehen sind, einen ersten Paritäts-Die und einen zweiten Paritäts-Die auf. Der erste Paritäts-Die ist zum Speichern von p-Paritätsdaten bestimmt und der zweite Paritäts-Die ist zum Speichern von q-Paritätsdaten bestimmt.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist. Die Speicherungsvorrichtung weist weiterhin ein Mittel auf zum Empfangen von Befehlen zum Schreiben von Daten, die von einer Hostvorrichtung empfangen wurden, in einer minimalen Schreibgröße, wobei die minimale Schreibgröße festgelegt wird durch Multiplizieren einer Anzahl von Löschblöcken in einer zum Speichern von Benutzerdaten bestimmten Zone mal eine Seiten pro Zelle der Wortleitungen mal eine Wortleitungsgröße und Subtrahieren einer zum Speichern von Metadaten der Speichervorrichtung bestimmten Menge an Platz.
  • Die minimale Schreibgröße wird so festgelegt, dass sie auf eine Größe einer Wortleitung ausgerichtet ist. Die Speicherungsvorrichtung weist weiterhin ein Mittel zum Berechnen der minimalen Schreibgröße für Befehle und ein Mittel zum Beschränken der Hostvorrichtung, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden, auf. Eine oder mehrere Zonen einer Speicherungsvorrichtung weisen jeweils 32 Dies auf, und mindestens 30 Dies der 32 Dies jeder der einen oder mehreren Zonen sind zum Speichern von Benutzerdaten bestimmt. Weiterhin ist mindestens ein Die der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von Paritätsdaten bestimmt. Außerdem ist ein erster Die der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von p-Paritätsdaten bestimmt und ein zweiter Die der 32 Dies jeder der einen oder mehreren Zonen ist zum Speichern q-Paritätsdaten bestimmt.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Offenbarung ausgearbeitet werden, ohne vom grundlegenden Schutzumfang davon abzuweichen, und der Schutzumfang wird durch die nachstehenden Ansprüche bestimmt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16858332 [0001]

Claims (20)

  1. Speicherungsvorrichtung, aufweisend: eine nichtflüchtige Speicherungseinheit, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist; und eine Steuerung, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Bestimmen einer minimalen Schreibgröße für Befehle zum Schreiben von Daten, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße basierend auf einer Anzahl von Löschblöcken in einer Zone, die zum Speichern von Benutzerdaten bestimmt ist, einer Seiten pro Zelle der Wortleitungen jedes Löschblocks, einer Anzahl von Wortleitungen in jedem Löschblock und einer Menge an Platz, der zum Speichern von Metadaten der Speicherungsvorrichtung bestimmt ist, bestimmt wird; und Beschränken der Hostvorrichtung, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  2. Speicherungsvorrichtung nach Anspruch 1, wobei jede Zone der Vielzahl von Zonen die gleiche Anzahl von Löschblöcken aufweist und eine gleiche beschreibbare Zonenkapazität aufweist.
  3. Speicherungsvorrichtung nach Anspruch 1, wobei die minimale Schreibgröße bestimmt wird, um zwei volle Wortleitungen in jedem Die der Zone zu schreiben, abzüglich der Menge an Platz, die zum Speichern von Metadaten bestimmt ist.
  4. Speicherungsvorrichtung nach Anspruch 3, wobei jeder Die der Zone zwei Ebenen aufweist und wobei die minimale Schreibgröße bestimmt wird, um zwei volle Wortleitungen in jedem Die der Zone zu schreiben, abzüglich der Menge an Platz, die zum Speichern von Metadaten bestimmt ist.
  5. Speicherungsvorrichtung nach Anspruch 1, wobei ein Abschnitt jeder Wortleitung die Menge an Platz aufweist, die zum Speichern von Metadaten bestimmt ist.
  6. Speicherungsvorrichtung nach Anspruch 1, wobei ein Abschnitt jedes Löschblocks die Menge an Platz aufweist, die zum Speichern von Metadaten bestimmt ist.
  7. Speicherungsvorrichtung nach Anspruch 1, wobei mindestens ein Die in jeder Zone zum Speichern von Die-Fehlerschutzdaten bestimmt ist.
  8. Speicherungsvorrichtung, aufweisend: eine nichtflüchtige Speicherungseinheit, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist; und eine Steuerung, die mit der nichtflüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Berechnen einer minimalen Schreibgröße für Befehle zum Schreiben von Daten, die von einer Hostvorrichtung empfangen werden, wobei die minimale Schreibgröße berechnet wird, um eine vollständige Wortleitungsgröße eines Löschblocks jeder Ebene jedes Dies zu schreiben, der zum Speichern von Benutzerdaten innerhalb einer Zone bestimmt ist; und Beschränken der Hostvorrichtung, die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  9. Speicherungsvorrichtung nach Anspruch 8, wobei die minimale Schreibgröße basierend auf einer Seiten pro Zelle der Vielzahl von Wortleitungen berechnet wird.
  10. Speicherungsvorrichtung nach Anspruch 8, wobei ein Abschnitt jeder Zone eine Metadatenkapazität aufweist, in die die Speicherungsvorrichtung schreiben kann.
  11. Speicherungsvorrichtung nach Anspruch 10, wobei die minimale Schreibgröße berechnet wird, um die Metadatenkapazität zu berücksichtigen.
  12. Speicherungsvorrichtung nach Anspruch 8, wobei die Steuerung weiterhin eingerichtet ist zum: Empfangen eines oder mehrerer Schreibbefehle von der Hostvorrichtung in einer Größe, die kleiner als die minimale Schreibgröße ist; Halten des einen oder der mehreren Schreibbefehle, bis der eine oder die mehreren Schreibbefehle auf die minimale Schreibgröße aggregiert sind; und Schreiben des einen oder der mehreren Schreibbefehle in die nichtflüchtige Speicherungseinheit, sobald der eine oder die mehreren Schreibbefehle auf die minimale Schreibgröße aggregiert sind.
  13. Speicherungsvorrichtung nach Anspruch 8, wobei jede Zone eine Vielzahl von Benutzerdatendies, die zum Speichern von Benutzerdaten bestimmt sind, einen ersten Paritäts-Die und einen zweiten Paritäts-Die aufweist.
  14. Speicherungsvorrichtung nach Anspruch 13, wobei der erste Paritäts-Die zum Speichern von p-Paritätsdaten bestimmt ist und der zweite Paritäts-Die zum Speichern von q-Paritätsdaten bestimmt ist.
  15. Speicherungsvorrichtung, aufweisend: eine nichtflüchtige Speicherungseinheit, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist und wobei die nichtflüchtige Speicherungseinheit eine Vielzahl von Dies aufweist, wobei jeder der Vielzahl von Dies eine Vielzahl von Ebenen aufweist, wobei jede der Ebenen eine Vielzahl von Löschblöcken aufweist und jeder der Löschblöcke eine Vielzahl von Wortleitungen aufweist; und Mittel zum Empfangen von Befehlen zum Schreiben von Daten, die von einer Hostvorrichtung empfangen werden, in einer minimalen Schreibgröße, wobei die minimale Schreibgröße festgelegt wird durch Multiplizieren einer Anzahl von Löschblöcken in einer zum Speichern von Benutzerdaten bestimmten Zone mal eine Seiten pro Zelle der Wortleitungen mal eine Wortleitungsgröße und Subtrahieren einer zum Speichern von Metadaten der Speichervorrichtung bestimmten Menge an Platz.
  16. Speicherungsvorrichtung nach Anspruch 15, wobei die minimale Schreibgröße so festgelegt ist, dass sie auf eine Größe einer Wortleitung ausgerichtet ist.
  17. Speicherungsvorrichtung nach Anspruch 15, weiterhin aufweisend: Mittel zum Berechnen der minimalen Schreibgröße für Befehle; und Mittel zum Beschränken der Hostvorrichtung, um die Befehle zum Schreiben von Daten in der minimalen Schreibgröße zu senden.
  18. Speicherungsvorrichtung nach Anspruch 15, wobei eine oder mehrere Zonen einzeln 32 Dies aufweisen und wobei mindestens 30 Dies der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von Benutzerdaten bestimmt sind.
  19. Speicherungsvorrichtung nach Anspruch 18, wobei mindestens ein Die der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von Paritätsdaten bestimmt ist.
  20. Speicherungsvorrichtung nach Anspruch 18, wobei ein erster Die der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von p-Paritätsdaten bestimmt ist und ein zweiter Die der 32 Dies jeder der einen oder mehreren Zonen zum Speichern von q-Paritätsdaten bestimmt ist.
DE112020004975.2T 2020-04-24 2020-12-11 SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN Pending DE112020004975T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/858,332 US11294598B2 (en) 2020-04-24 2020-04-24 Storage devices having minimum write sizes of data
US16/858,332 2020-04-24
PCT/US2020/064614 WO2021216125A1 (en) 2020-04-24 2020-12-11 Storage devices having minimum write sizes of data

Publications (1)

Publication Number Publication Date
DE112020004975T5 true DE112020004975T5 (de) 2022-06-30

Family

ID=78222180

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004975.2T Pending DE112020004975T5 (de) 2020-04-24 2020-12-11 SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN

Country Status (4)

Country Link
US (1) US11294598B2 (de)
CN (1) CN114730247A (de)
DE (1) DE112020004975T5 (de)
WO (1) WO2021216125A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481136B1 (en) * 2021-04-14 2022-10-25 Western Digital Technologies, Inc. Very low sized zone support for storage devices

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1720119A4 (de) * 2004-03-31 2008-01-23 Matsushita Electric Ind Co Ltd Speicherkarte und speicherkartensystem
US20120221767A1 (en) * 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US9304714B2 (en) 2012-04-20 2016-04-05 Violin Memory Inc LUN management with distributed RAID controllers
US8554997B1 (en) * 2013-01-18 2013-10-08 DSSD, Inc. Method and system for mirrored multi-dimensional raid
US8996796B1 (en) 2013-03-15 2015-03-31 Virident Systems Inc. Small block write operations in non-volatile memory systems
US9588841B2 (en) 2014-09-26 2017-03-07 Intel Corporation Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
KR102360211B1 (ko) 2015-01-21 2022-02-08 삼성전자주식회사 메모리 시스템의 동작 방법
US9870157B2 (en) * 2015-03-31 2018-01-16 Toshiba Memory Corporation Command balancing and interleaving for write and reads between front end and back end of solid state drive
US20160357462A1 (en) 2015-06-08 2016-12-08 Samsung Electronics Co., Ltd. Nonvolatile Memory Modules and Data Management Methods Thereof
US10481830B2 (en) * 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
US20180137005A1 (en) 2016-11-15 2018-05-17 Intel Corporation Increased redundancy in multi-device memory package to improve reliability
KR102611566B1 (ko) 2018-07-06 2023-12-07 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법
US10872036B1 (en) * 2019-05-31 2020-12-22 Netapp, Inc. Methods for facilitating efficient storage operations using host-managed solid-state disks and devices thereof
US10956062B2 (en) 2019-07-09 2021-03-23 International Business Machines Corporation Aggregating separate data within a single data log wherein single data log is divided in a plurality of blocks assigned to plurality of different streams
JP2021015461A (ja) * 2019-07-12 2021-02-12 株式会社日立製作所 ストレージ装置およびストレージ管理方法
KR20210017181A (ko) 2019-08-07 2021-02-17 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
JP2021033849A (ja) 2019-08-28 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
JP2021033847A (ja) 2019-08-28 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
US10950315B1 (en) 2019-12-16 2021-03-16 Micron Technology, Inc. Preread and read threshold voltage optimization
US11055176B1 (en) * 2020-04-24 2021-07-06 Western Digital Technologies, Inc. Storage devices hiding parity swapping behavior

Also Published As

Publication number Publication date
US11294598B2 (en) 2022-04-05
US20210334041A1 (en) 2021-10-28
CN114730247A (zh) 2022-07-08
WO2021216125A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
DE102021115858A1 (de) Tlc-datenprogrammierung mit hybrid-parität
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112020005078T5 (de) Verschieben von änderungsprotokolltabellen zum abstimmen mit zonen
DE102021115893A1 (de) EFFIZIENTE DATENSPEICHERUNGSNUTZUNG IM ZUSAMMENHANG MIT EINEM NICHT ORDNUNGSGEMÄßEN HERUNTERFAHREN
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE102021115500A1 (de) Hostverwaltete hardwarekomprimierung mit gezonten namensräumen
DE102021115235A1 (de) Verschiebungsablauf unter verwendung der cba-technologie
DE112020005096T5 (de) Gewichtung von lesebefehlen an zonen in speicherungsvorrichtungen
US11537510B2 (en) Storage devices having minimum write sizes of data
DE112020004975T5 (de) SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN
US11847337B2 (en) Data parking for ZNS devices

Legal Events

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

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MURGITROYD & COMPANY, DE