DE112020005180T5 - Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen - Google Patents

Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen Download PDF

Info

Publication number
DE112020005180T5
DE112020005180T5 DE112020005180.3T DE112020005180T DE112020005180T5 DE 112020005180 T5 DE112020005180 T5 DE 112020005180T5 DE 112020005180 T DE112020005180 T DE 112020005180T DE 112020005180 T5 DE112020005180 T5 DE 112020005180T5
Authority
DE
Germany
Prior art keywords
data
zone
logical
storage unit
volatile storage
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
DE112020005180.3T
Other languages
English (en)
Inventor
Daniel L. Helmick
Liam Parker
Alan D. Bennett
Horst-christoph Georg HELLWIG
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 DE112020005180T5 publication Critical patent/DE112020005180T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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

Abstract

Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speicherungsvorrichtungen. Die Speicherungsvorrichtung weist eine Steuerung, einen Direktzugriffsspeicher (RAM) und eine NVM-Einheit auf, wobei die NVM-Einheit eine Vielzahl von Zonen aufweist. Die RAM-Einheit weist eine logisch-zu-physische Adress-Tabelle (L2P-Tabelle) für die Vielzahl von Zonen auf. Die L2P-Tabelle weist Zeiger auf, die einer logischen Blockadresse (LBA) und dem physischen Ort der im NVM gespeicherten Daten zugeordnet sind. Die L2P-Tabelle weist einen Zeiger pro Löschblock oder Zone auf. Wenn ein Befehl empfangen wird, um Daten innerhalb des NVM zu lesen, liest die Steuerung die L2P-Tabelle, um die LBA und den zugehörigen Zeiger der Daten zu bestimmen. Die Steuerung kann dann bestimmen, in welcher Zone oder in welchem Löschblock die Daten gespeichert werden und berechnet verschiedene Offsets von Wortleitungen, Seiten und Seitenadressen, um den genauen Ort der Daten in dem NVM zu finden.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Anmeldung 16/861,068 , eingereicht am 28. April 2020, die durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf Speicherungsvorrichtungen, wie 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. Wenn ein Schreibbefehl empfangen wird, weisen die dem Schreibbefehl zugeordneten Daten eine logische Blockadresse (LBA) auf. Eine logisch-zu-physische Adressen-Tabelle (L2P-Tabelle), die im flüchtigen Speicher der SSD gespeichert ist, ordnet eine oder mehrere LBAs der Daten einer physischen Adresse des Ortes zu, an dem die Daten beim Schreiben der Daten in der SSD gespeichert werden. Die L2P-Tabelle wird aktualisiert, wenn Daten von der SSD gelöscht werden, um auf einen Sentinel-Wert (z. B. „Null“) zu zeigen, wie während Speicherbereinigungsvorgängen.
  • Um die LBA der Daten einer physischen Adresse des Ortes zuzuordnen, an dem die Daten in der SSD gespeichert sind, weist die L2P-Tabelle Zeiger auf, um auf jeden Ort in der Speicherungsvorrichtung zu zeigen oder ihn zu identifizieren, oder um auf den Sentinel-Wert zu zeigen, um anzugeben, dass die Daten ungültig sind. Da Daten sequenziell in die Speicherungsvorrichtung geschrieben werden, erfordern Änderungen an den Daten einen Lese-Änderungs-Schreibprozess, der ein zeitraubender und mühsamer Prozess sein kann. In einem Lese-Änderungs-Schreibprozess werden Daten in einem Abschnitt von etwa 4KB oder 8KB gelesen und dann in einem Abschnitt von etwa 512B geändert. Die geänderten Daten werden sequenziell an einen verfügbaren Ort in der Speicherungseinheit geschrieben. Obwohl die früheren Daten, die den geänderten Daten entsprechen, gelöscht werden können, weist die L2P-Tabelle Zeiger auf, die auf den physischen Ort der vorhandenen Daten zeigen. Da die Speicherungsvorrichtung im Allgemeinen eine sehr begrenzte Menge an flüchtigem Speicher aufweist, kann ein großer Anteil des verfügbaren flüchtigen Speichers mit dem Speichern der L2P-Tabelle belegt sein.
  • Es ist daher ein neues Verfahren zum Verbessern der Datenspeicherung in einer Speicherungsvorrichtung erforderlich.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speicherungsvorrichtungen. Die Speicherungsvorrichtung weist eine Steuerung, einen Direktzugriffsspeicher (RAM) und eine NVM-Einheit auf, wobei die NVM-Einheit eine Vielzahl von Zonen aufweist. Die RAM-Einheit weist eine logisch-zu-physische Adress-Tabelle (L2P-Tabelle) für die Vielzahl von Zonen auf. Die L2P-Tabelle weist Zeiger auf, die einer logischen Blockadresse (LBA) und dem physischen Ort der im NVM gespeicherten Daten zugeordnet sind. Die L2P-Tabelle weist einen Zeiger pro Löschblock oder Zone auf. Wenn ein Befehl empfangen wird, um Daten innerhalb des NVM zu lesen, liest die Steuerung die L2P-Tabelle, um die LBA und den zugehörigen Zeiger der Daten zu bestimmen. Die Steuerung kann dann bestimmen, in welcher Zone oder in welchem Löschblock die Daten gespeichert werden und berechnet verschiedene Offsets von Wortleitungen, Seiten und Seitenadressen, um den genauen Ort der Daten in dem NVM zu finden.
  • 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. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jedes der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, einen ersten Lesebefehl zum Lesen erster Daten zu empfangen, die in der nichtflüchtigen Speicherungseinheit gespeichert sind, und einen ersten Zeiger in der ersten logisch-zu-physischen Tabelle zu lesen, der den ersten Daten zugeordnet ist, um zu bestimmen, dass die ersten Daten in einem ersten Löschblock einer ersten Zone der Vielzahl von Zonen gespeichert sind. Die Steuerung ist weiterhin dazu eingerichtet, einen Offset von Seiten und Wortleitungen innerhalb des ersten Löschblocks zu bestimmen, um die ersten Daten zu finden und die ersten Daten zu lesen.
  • In einer weiteren Ausführungsform weist eine Datenspeicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jedes der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Jeder der Löschblöcke weist eine Vielzahl von Wortleitungen und Seiten auf. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, erste Daten, die einem oder mehreren ersten Befehlen zugeordnet sind, in einer ersten Zone der Vielzahl von Zonen zu schreiben und die in der flüchtigen Speicherungseinheit gespeicherte erste logisch-zu-physische Adresstabelle zu aktualisieren, wobei das Aktualisieren der ersten logisch-zu-physischen Tabelle das Zuordnen eines Zeigers zu der ersten Zone und den ersten Daten umfasst. Die Steuerung ist weiterhin dazu eingerichtet, einen Lesebefehl zum Lesen der ersten Daten zu empfangen, eine erste logische Blockadresse der ersten Daten zu identifizieren, den Zeiger zu lesen, der der ersten Zone zugeordnet ist, um die ersten Daten in der ersten Zone zu bestimmen, einen Offset von Löschblöcken zu berechnen, um die ersten Daten zu bestimmen, die in dem ersten Löschblock gespeichert sind, und einen Offset von Seiten und Wortleitungen innerhalb des ersten Löschblocks zu berechnen, um die ersten Daten zu finden.
  • In einer weiteren Ausführungsform weist eine Datenspeicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jedes der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch Mittel zum Empfangen eines ersten Lesebefehls zum Lesen erster Daten auf, die in der nichtflüchtigen Speicherungseinheit gespeichert sind, Mittel zum Identifizieren einer ersten logischen Blockadresse der ersten Daten und Mittel zum Lesen eines Zeigers in der ersten logisch-zu-physischen Tabelle, die der ersten Zone zugeordnet ist, um zu bestimmen, dass die ersten Daten in einer ersten Zone der Vielzahl von Zonen gespeichert sind. Die Speicherungsvorrichtung weist weiterhin Mittel zum Berechnen eines Offsets von Löschblöcken zum Bestimmen auf, dass die ersten Daten in einem ersten Löschblock der ersten Zone gespeichert sind, und Mittel zum Berechnen eines Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks, um die ersten Daten zu finden.
  • 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.
    • 2A veranschaulicht einen in einer Speicherungsvorrichtung verwendeten gezonten Namensraum gemäß einer Ausführungsform.
    • 2B veranschaulicht ein Zustandsdiagramm für die gezonten Namensräume der Speicherungsvorrichtung aus 2A gemäß einer Ausführungsform.
    • 3A veranschaulicht einen Löschblock einer Zone gemäß einer Ausführungsform.
    • 3B veranschaulicht eine Zone, die einen oder mehrere Löschblöcke gemäß einer Ausführungsform aufweist.
    • 4 ist ein schematisches Blockdiagramm, das ein Speicherungssystem gemäß einer Ausführungsform veranschaulicht.
  • 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, einen Direktzugriffsspeicher (RAM) und eine NVM-Einheit auf, wobei die NVM-Einheit eine Vielzahl von Zonen aufweist. Die RAM-Einheit weist eine logisch-zu-physische Adress-Tabelle (L2P-Tabelle) für die Vielzahl von Zonen auf. Die L2P-Tabelle weist Zeiger auf, die einer logischen Blockadresse (LBA) und dem physischen Ort der im NVM gespeicherten Daten zugeordnet sind. Die L2P-Tabelle weist einen Zeiger pro Löschblock oder Zone auf. Wenn ein Befehl empfangen wird, um Daten innerhalb des NVM zu lesen, liest die Steuerung die L2P-Tabelle, um die LBA und den zugehörigen Zeiger der Daten zu bestimmen. Die Steuerung kann dann bestimmen, in welcher Zone oder in welchem Löschblock die Daten gespeichert werden und berechnet verschiedene Offsets von Wortleitungen, Seiten und Seitenadressen, um den genauen Ort der Daten in dem NVM zu finden.
  • 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. Beispielsweise kann die Host-Vorrichtung 104 zum Speichern und Abrufen von Daten eine Speicherungseinheit 110, wie einen nichtflüchtigen Speicher (Nonvolatile Memory, NVM), verwenden, der in der Speicherungsvorrichtung 106 enthalten ist. Die Speicherungseinheit 110 kann eine beliebige Art von nichtflüchtigem Speicher sein, wie beispielsweise 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 Massenspeichervorrichtung 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 eine Zonenverwaltung 120 und einen Puffer (nicht dargestellt) 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, PCle, 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, sodass 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 Datenspeicherungsvorrichtung 106 schließt NVM 110 ein, der eine Vielzahl von Speicherungsvorrichtungen oder Speicherungseinheiten einschließen kann. Der NVM 110 kann eingerichtet sein, um Daten zu speichern und/oder abzurufen. Zum Beispiel kann eine Speichereinheit des NVM 110 Daten und eine Nachricht von der Steuerung 108 empfangen, mit der die Speichereinheit zum Speichern der Daten angewiesen wird. In ähnlicher Weise kann die Speichereinheit des NVM 110 eine Nachricht von der Steuerung 108 empfangen, mit der die Speichereinheit zum Abrufen von Daten angewiesen wird. In einigen Beispielen kann jede der Speichereinheiten als ein Die bezeichnet werden. In einigen Beispielen kann ein einzelner physikalischer Chip eine Vielzahl von Dies (d. h. eine Vielzahl von Speichereinheiten) einschließen. In einigen Beispielen kann jede Speichereinheit zum Speichern relativ großer Datenmengen (z. B. 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, 64 GB, 128 GB, 256 GB, 512 GB, 1 TB usw.) eingerichtet sein.
  • In einigen Beispielen kann jede Speichereinheit des NVM 110 jede Art von nichtflüchtigen Speichervorrichtungen einschließen, wie Flash-Speichervorrichtungen, Phasenwechselspeicher-Vorrichtungen (PCM-Vorrichtung), resistive Direktzugriffsspeichervorrichtungen (ReRAM-Vorrichtung), magnetoresistive Direktzugriffsspeichervorrichtungen (MRAM-Vorrichtung), ferroelektrische Direktzugriffsspeicher (F-RAM), holographische Speichervorrichtungen und jede andere Art von nichtflüchtigen Speichervorrichtungen.
  • Der NVM 110 kann eine Vielzahl von Flash-Speichervorrichtungen oder -Speichereinheiten aufweisen. Flash-Speichervorrichtungen können NAND- oder NORbasierte 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, DDR5, LPDDR5 und dergleichen)) ein.
  • Die verschiedenen Arten von flüchtigen Speichern können mit unterschiedlichen Zugriffseigenschaften verwendet werden. Beispielsweise kann die DRAM 112 für längere Burst-Zugriffe angeordnet sein, um eine verbesserte Bandbreite (Bandwith, BW) desselben Zugangsbusses zu ermöglichen. Alternativ kann die DRAM 112 mit kleineren Zugriffen verwendet werden, sodass zufällige kleine Zugriffe eine bessere Latenz aufweisen können. Die Steuerung 108 weist einen zusätzlichen optionalen SRAM und/oder eingebetteten MRAM (nicht dargestellt) auf. Der eingebettete MRAM (nicht dargestellt) ist ein weiterer alternativer Speicher, der in einer anderen Ausführungsform verwendet werden kann. In ähnlicher Weise kann der Zugriff auf den MRAM (nicht dargestellt) für unterschiedliche Konstruktionszwecke optimiert werden, aber die Menge des eingebetteten MRAM (nicht dargestellt) in der SSD-Steuerung 108 kann kostensensibel 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) 128 verwalten. Die Steuerung 108 kann eine Zonenverwaltung (ZM) 120 aufweisen, um Lese- und Schreibvorgänge in Zonen sowie die Verschiebung gültiger Daten in und aus Zonen zu Speicherbereinigungszwecken zu verwalten. Zonenmetadaten 122 können entweder in der Zonenverwaltung 120 oder der Steuerung 108 gespeichert werden. 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 Puffer (nicht dargestellt), bevor sie die Daten an den NVM 110 sendet.
  • 2A veranschaulicht gemäß einer Ausführungsform eine Ansicht der gezonten Namensräume (Zoned Namespaces, ZNS) 202, die in einer Speicherungsvorrichtung 200 verwendet werden. Die Speicherungsvorrichtung 200 kann einer Host-Vorrichtung die Ansicht der ZNS 202 präsentieren. 2B veranschaulicht ein Zustandsdiagramm 250 für die ZNS 202 der Speicherungsvorrichtung 200 gemäß einer Ausführungsform. Die Speicherungsvorrichtung 200 kann die Speicherungsvorrichtung 106 des Speicherungssystems 100 von 1 sein. Die Speicherungsvorrichtung 200 kann einen oder mehrere ZNS 202 aufweisen, und jeder ZNS 202 kann unterschiedliche Größen aufweisen. Die Speicherungsvorrichtung 200 kann weiterhin einen oder mehrere herkömmliche Namensräume zusätzlich zu dem einen oder den mehreren gezonten Namensräumen 202 aufweisen. Darüber hinaus kann der ZNS 202 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 200 ist der ZNS 202 die Menge an NVM, die in Logikblöcke formatiert werden kann, sodass die Kapazität in eine Vielzahl von Zonen 206a bis 206n (zusammen als Zonen 206 bezeichnet) unterteilt wird. Der NVM kann die Speicherungseinheit oder der NVM 110 von 1 sein. Jede der Zonen 206 weist eine Vielzahl von physischen Blöcken oder Löschblöcken (nicht dargestellt) einer Speicherungseinheit oder eines NVM 204 auf und jedem der Löschblöcke ist eine Vielzahl von Logikblöcken (nicht dargestellt) zugeordnet. Jede der Zonen 206 kann eine Größe aufweisen, die mit der Kapazität von einem oder mehreren Löschblöcken des NVM oder der NAND-Vorrichtung abgestimmt ist. Wenn die Steuerung 208 einen Befehl empfängt, wie von einer (nicht dargestellten) HostVorrichtung oder der Übertragungswarteschlange einer Host-Vorrichtung, kann die Steuerung 208 Daten von der Vielzahl von Logikblöcken, die der Vielzahl von Löschblöcken (EBs) der ZNS 202 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 204 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 Bits 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-Logikblockadress-(LBA)-Größen von 512 Bytes auf NAND zugreifen. Somit sind, wie in der nachstehenden Beschreibung erwähnt, NAND-Stellen gleich einer Granularität von 512 Bytes. Somit ergibt eine LBA-Größe von 512 Bytes und eine Seitengröße von 16 KiB für zwei Seiten eines MCL-NAND 32 LBAs pro Wortleitung. Die Größe der NAND-Stelle ist jedoch nicht als Einschränkung gedacht und wird lediglich als Beispiel verwendet.
  • Wenn Daten in einen Löschblock geschrieben werden, werden ein oder mehrere Logikblöcke entsprechend innerhalb einer Zone 206 aktualisiert, um zu verfolgen, wo sich die Daten innerhalb des NVM 204 befinden. Daten können zu einem Zeitpunkt jeweils in eine einzige Zone 206 geschrieben werden, bis eine Zone 206 voll ist, oder in mehrere Zonen 206, sodass mehrere Zonen 206 teilweise gefüllt sein können. In ähnlicher Weise können beim Schreiben von Daten in eine bestimmte Zone 206 Daten blockweise gleichzeitig, in sequenzieller 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 sequenzieller 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.
  • Wenn eine Steuerung 208 die Löschblöcke auswählt, welche die Daten für jede Zone speichern werden, kann die Steuerung 208 die Löschblöcke entweder zum Zeitpunkt des Öffnens der Zone auswählen oder kann die Löschblöcke auswählen, wenn eine Notwendigkeit zum Füllen der ersten Wortleitung dieses bestimmten Löschblocks eintritt. Dies kann differenzierter sein, wenn das vorstehend beschriebene Verfahren zum vollständigen Füllen eines Löschblocks vor dem Starten des nächsten Löschblocks verwendet wird. Die Steuerung 208 kann die Zeitdifferenz verwenden, um einen optimaleren Löschblock auf einer Just-in-Time-Basis auszuwählen. Die Entscheidung, welcher Löschblock für jede Zone und ihre zusammenhängenden LBAs zugeordnet und zugewiesen wird, kann für null oder mehr gleichzeitige Zonen zu jeder Zeit innerhalb der Steuerung 208 erfolgen.
  • Jede der Zonen 206 ist einer Zonenstart-Logikblockadresse (ZSLBA) oder einem Zonenstartsektor zugeordnet. Die ZSLBA ist die erste verfügbare LBA in der Zone 206. Zum Beispiel ist die erste Zone 206a ZaSLBA zugeordnet, die zweite Zone 206b ist ZbSLBA zugeordnet, die dritte Zone 206c ist ZcSLBA zugeordnet, die vierte Zone 206d ist ZdSLBA zugeordnet und die nte Zone 206n (d. h. die letzte Zone) ist ZnSLBA zugeordnet. Jede Zone 206 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 206 geschrieben werden, wird ein Schreibzeiger 210 vorgerückt oder aktualisiert, sodass er auf den nächsten verfügbaren Block in der Zone 206, 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 gibt der Schreibzeiger 210 an, wo der nachfolgende Schreibvorgang in die Zone 206 beginnen wird. Nachfolgende Schreibbefehle sind „Zonenanhang“-Befehle, bei denen die mit dem nachfolgenden Schreibbefehl verbundenen Daten an die Zone 206 an dem Ort angehängt werden, den der Schreibzeiger 210 als nächsten Startpunkt angibt. Eine geordnete Liste von LBAs innerhalb der Zone 206 kann für die Schreibreihenfolge gespeichert werden. Jede Zone 206 kann ihren eigenen Schreibzeiger 210 haben. Wenn somit ein Schreibbefehl empfangen wird, wird eine Zone durch ihre ZSLBA identifiziert, und der Schreibzeiger 210 bestimmt, wo der Schreibvorgang der Daten innerhalb der identifizierten Zone beginnt.
  • 2B veranschaulicht ein Zustandsdiagramm 250 für den ZNS 202 aus 2A. In dem Zustandsdiagramm 250 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 wechselt in eine offene und aktive Zone, sobald ein Schreibvorgang in die Zone eingeplant ist oder wenn der 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 bereitgestellt werden. Die Steuerung 208 weist die ZM auf. Zonen-Metadaten können in der ZM und/oder der Steuerung 208 gespeichert sein.
  • Der Begriff „geschrieben“ schließt das Programmieren von Benutzerdaten auf 0 oder mehr NAND-Stellen in einem Löschblock und/oder teilweise gefüllte NAND-Stellen in einem Löschblock ein, wenn die Benutzerdaten nicht alle verfügbaren NAND-Stellen gefüllt haben. Der Begriff „beschrieben“ kann weiterhin das Wechseln einer Zone zu „voll“ aufgrund von Anforderungen an die interne Laufwerksbehandlung (Bedenken hinsichtlich der Datenhaltung in offenen Blöcken, da sich die fehlerhaften Bits bei offenen Löschblöcken schneller anhäufen), das Schließen oder Füllen einer Zone durch die Speicherungsvorrichtung 200 aufgrund von Ressourcenbeschränkungen, wie zu viele offene Zonen, um sie zu verfolgen oder Entdecken eines Fehlerzustands, oder das Schließen einer Zone durch eine Hostvorrichtung aufgrund von Bedenken, wie u. a. Fehlen von Daten zum Senden an das Laufwerk, das Herunterfahren des Computers, die Fehlerbehandlung auf dem Host, begrenzte Hostressourcen 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. 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, sodass 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)). In einer vollen Zone zeigt der Schreibzeiger auf das Ende der beschreibbaren Kapazität der Zone. Lesebefehle von Daten, die in vollen Zonen gespeichert sind, können weiterhin ausgeführt werden.
  • Die Zonen können eine beliebige Gesamtkapazität haben, wie 256 MiB oder 512 MiB. Ein kleiner Anteil jeder Zone kann jedoch für das Schreiben von Daten unzugänglich sein, kann aber dennoch gelesen werden, wie ein Anteil jeder Zone, der die Paritätsdaten und einen oder mehrere ausgeschlossene Löschblöcke speichert. Wenn beispielsweise die Gesamtkapazität einer Zone 206 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. Die beschreibbare Kapazität (ZCAP) einer Zone ist gleich oder kleiner als die Gesamtzonenspeicherkapazität. Die Speicherungsvorrichtung 200 kann beim Zonenrücksetzen die ZCAP jeder Zone bestimmen. Zum Beispiel kann die Steuerung 208 oder die ZM die ZCAP jeder Zone bestimmen. Die Speicherungsvorrichtung 200 kann die ZCAP einer Zone bestimmen, wenn die Zone zurückgesetzt wird.
  • 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 zu einer offenen und aktiven Zone gelöscht werden. Eine Zone kann jederzeit zwischen einem ZM-Zurücksetzen und einem ZM-Öffnen gelöscht werden. Beim Zurücksetzen einer Zone kann die Speicherungsvorrichtung 200 eine neue ZCAP der Rücksetzzone bestimmen und das beschreibbare ZCAP-Attribut in den Zonenmetadaten aktualisieren. 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 alle in der Zone gespeicherten Daten löscht oder eine Löschung plant, entfällt die Notwendigkeit der Speicherbereinigung einzelner Löschblöcke, wodurch der gesamte Speicherbereinigungsprozess der Speicherungsvorrichtung 200 verbessert wird. Die Speicherungsvorrichtung 200 kann einen oder mehrere Löschblöcke zum Löschen markieren. Wenn eine neue Zone gebildet wird und die Speicherungsvorrichtung 200 ein ZM-Öffnen erwartet, können der eine oder die mehreren zum Löschen markierten Löschblöcke dann gelöscht werden. Die Speicherungsvorrichtung 200 kann weiterhin die physische Sicherung der Zone beim Löschen der Löschblöcke entscheiden und diese 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 210 für die Zone 206 gewählt werden, wodurch die Zone 206 tolerant gegenüber dem Empfang von Befehlen außerhalb der sequenziellen Reihenfolge sein kann. Der Schreibzeiger 210 kann wahlweise abgeschaltet werden, sodass ein Befehl in jegliche Start-LBA geschrieben werden kann, die für den Befehl angegeben wird.
  • Unter erneuter Bezugnahme auf 2A, wenn der Host einen Schreibbefehl zum Schreiben von Daten in eine Zone 206 sendet, zieht die Steuerung 208 den Schreibbefehl ein und identifiziert den Schreibbefehl als einen Schreibvorgang in eine neu geöffnete Zone 206. Die Steuerung 208 wählt einen Satz von EBs aus, um die Daten zu speichern, die den Schreibbefehlen der neu geöffneten Zone 206 zugeordnet sind, und die neu geöffnete Zone 206 schaltet auf eine aktive Zone 206 um. 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 208 ist dazu eingerichtet, neue Befehle aus einer von einer Host-Vorrichtung besetzten Übertragungswarteschlange per DMA zu lesen.
  • In einer leeren Zone 206, die gerade in eine aktive Zone 206 gewechselt hat, werden die Daten beginnend bei der ZSLBA der Zone 206 und dem zugeordneten Satz sequenzieller LBAs der Zone 206 zugewiesen, da der Schreibzeiger 210 den der ZSLBA zugeordneten Logikblock als den ersten verfügbaren Logikblock angibt. Die Daten können in/an eine(n) oder mehrere Löschblöcke oder NAND-Stellen geschrieben werden, die für den physischen Ort der Zone 206 zugewiesen wurden. Nachdem die dem Schreibbefehl zugeordneten Daten in die Zone 206 geschrieben wurden, wird ein Schreibzeiger 210 aktualisiert, um auf die nächste verfügbare LBA für einen Schreibvorgang (d. h. den Beendigungspunkt des ersten Schreibvorgangs) zu zeigen. Die Schreibdaten aus diesem Host-Schreibbefehl werden sequenziell in die nächste verfügbare NAND-Stelle in dem Löschblock programmiert, der für die physische Sicherung der Zone ausgewählt wurde.
  • Beispielsweise kann die Steuerung 208 einen ersten Schreibbefehl in eine dritte Zone 206c oder einen ersten Zonenanhangbefehl empfangen. Der Host identifiziert sequenziell, in welchen Logikblock der Zone 206 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 206c geschrieben, wie durch den Schreibzeiger 210 angegeben wird, und der Schreibzeiger 210 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 208 einen zweiten Schreibbefehl für die dritte Zone 206c oder einen zweiten Zonenanhangbefehl empfängt, werden die dem zweiten Schreibbefehl zugeordneten Daten in die nächste(n) verfügbare(n) LBA(s) in der dritten Zone 206c geschrieben, die durch den Schreibzeiger 210 identifiziert werden. Sobald die Daten, die dem zweiten Befehl zugeordnet sind, in die dritte Zone 206c geschrieben worden sind, rückt der Schreibzeiger 210 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 dritten Zone 206c wird der Schreibzeiger 210 wieder auf ZcSLBA zurück verschoben (d. h. WP=0), und die dritte Zone 206c wechselt in eine leere Zone.
  • 3A veranschaulicht einen Löschblock 300 einer Zone gemäß einer Ausführungsform. 3A ist ein Beispiel eines Löschblocks 300 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 300 weist mehrere Wortleitungen, wie WL0 310, WL1 320, WL2 330 und WLn 340, auf. Der Buchstabe „n“ bezeichnet einen Wert, der auf die letzte Wortleitung innerhalb eines Löschblocks 300 anwendbar ist. Zum Beispiel kann ein Löschblock 300 aus 256 Wortleitungen bestehen. Ein Löschblock 300 kann jedoch aus mehr als 256 Wortleitungen oder aus weniger als 256 Wortleitungen bestehen.
  • Darüber hinaus enthält jede Wortleitung eine Anzahl von Seiten, wobei die Anzahl dem Typ der 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 3A ist der Löschblock 300 ein TLC-Speicher und jede Wortleitung weist eine obere Seite wie UP1 322, eine mittlere Seite wie MP1 324, und eine untere Seite wie beispielsweise LP1 476, auf, wie in WL1 470 dargestellt. Jede Seite, wie UP1 322, weist vier NAND-Stellen oder vier Slots (z. B. Seitenadressen), wie 95, 96, 97 und 98 von UP1 322 auf, die für die Datenspeicherung zur Verfügung stehen. In der folgenden Beschreibung wird als Beispiel ein TLC-Speicherlöschblock verwendet, der 256 Wortleitungen aufweist; ein solches Beispiel dient jedoch nur zu Erläuterungszwecken und ist nicht einschränkend zu verstehen.
  • Ein Slot kann als Datencodewort, Seitenadresse oder Seiten-Offset betrachtet werden, wobei die Datencodewortgröße 4.096 B + Fehlererkennungscode (EDC) + Fehlerkorrekturcode (ECC) ist. Der EDC kann eine Größe von 8 B aufweisen und der ECC kann eine Größe von 128 B aufweisen. Somit ist die Datencodewortgröße 4.232 B. Wenn eine NAND-Seite 17.000 B ist, können vier Datencodewörter (d. h. 16.928 B) in die NAND-Seite passen. Ein Slot ist ein Offset, um jedes Datencodewort über die Seitenadresse zu erreichen. Zum Beispiel weist das zweite Datencodewort 96 der oberen Seite UP1 322 einen Offset eines Slots auf. Das zweite Datencodewort 96 kann jedoch als zweiter Slot 96 der oberen Seite UP1 322 adressiert sein. Somit kann ein Slot in der gesamten Beschreibung zu Beispielzwecken austauschbar mit Datencodewort verwendet werden.
  • Aufgrund der Tatsache, dass die ursprünglichen Host-Daten 4.096 B oder 4 KB groß sind, und aufgrund der Tatsache, dass die EDC- und ECC-Anteile optional und variabel sind, kann der Offset, um jedes Codewort zu erreichen, hierin als 4 KB bezeichnet werden. Es sollte jedoch allgemein verstanden werden, dass 4 KB in den hierin erörterten Beispielen tatsächlich die Größe 4.232 B aufweist. In einem weiteren Beispiel können die NAND-Seiten als mit der Größe 16 KB bezeichnet werden, aber die NAND-Seiten werden genauer als vier der 4.232 B-Datencodewörter plus etwas ungenutzter Raum beschrieben. Der ungenutzte Raum ist in diesem Beispiel der Bereich zwischen 16.928 B und 17.000 B.
  • Daten werden sequenziell in jede 4.232 B (d. h. 4 KB) NAND-Stelle der nichtflüchtigen Speicherungseinheit in einer Größe von einer oder mehreren Wortleitungen (d. h. eines Vielfachen von 48 KB) geschrieben. Zum Beispiel werden Daten sequenziell in jede 4KB-NAND-Stelle der oberen Seite UP1 322, der mittleren Seite MP1 324 und der unteren Seite LP1 326 geschrieben. Darüber hinaus werden Daten sequenziell von Wortleitung zu Wortleitung geschrieben, sodass Daten in eine WL0 310 geschrieben werden, bevor Daten in eine WL1 320 geschrieben werden. Wie vorstehend erörtert, können Daten in einen Löschblock von oben nach unten (d. h. WL0 bis WL1 bis WL2 usw.) geschrieben werden, bevor sie sich in den nächsten verfügbaren Löschblock bewegen, oder Daten können in jedem Löschblock vor dem Schreiben der nächsten verfügbaren Wortleitung (z. B. WL1) in jedem Löschblock in eine Wortleitung geschrieben werden (z. B. WL0). Schreibbefehle von weniger als einer Wortleitungsgröße werden in einem Steuerpufferbereich gehalten, wie einem temporären SRAM-Speicherort, der zum Halten von Daten im Flug bestimmt ist (d. h. Host-Daten, die nicht in die NAND-und/oder Paritätsdaten geschrieben werden), bis die aggregierte Größe der Schreibbefehle gleich einer oder größer als eine Wortleitungsgröße ist.
  • In einer Ausführungsform kann das teilweise Schreiben der Daten ein „foggy“-Schreiben oder Programmieren sein. Das teilweise Schreiben kann ein erstes Durchgangsprogramm der Daten sein. Das zweite Durchgangsprogramm der Daten kann ein „feiner“ Schreibvorgang sein, wobei die Daten aus der Speicherungsvorrichtung lesbar sind. Zum Beispiel können erste Daten auf eine WL1 320 geschrieben werden, wobei zweite Daten in eine WL2 330 „foggy“ geschrieben werden, und dann ein „feines“ Neuschreiben der ersten Daten in die WL1 320 erfolgt. Daten können in eine NAND-Stelle oder einen Slot geschrieben oder von einer NAND-Stelle oder einem Slot in einer Größe von etwa 4 KB bis etwa 16 KB gelesen werden. Löschdaten treten jedoch auf Löschblockebene auf, wobei der Löschblock aus 256 Wortleitungen, 768 Seiten oder 3.072 NAND-Stellen oder 3.072 Slots bestehen kann. Bei Speicherungsvorrichtungen, die ZNS verwenden, können Löschblöcke innerhalb einer Zone nur gelöscht werden, wenn jeder Löschblock innerhalb der Zone gelöscht wird. Mit anderen Worten treten Löschdaten in einer Zone auf einer Zonenebene auf.
  • 3B veranschaulicht die Zone 350, die einen oder mehrere Löschblöcke 300 von 3A gemäß einer Ausführungsform aufweist. Die Zone 350 kann eine Zone 206 der ZNS 202 aus 3A sein. Die Zone 350 kann eine Zone des NVM 110 aus 1 sein, die mit der Steuerung 108 gekoppelt ist. Eine Speicherungsvorrichtung, wie die Speicherungsvorrichtung 106 von 1, ist mit einer Speicherungsvorrichtung gekoppelt, wie dem NVM 110 von 1, der eine Vielzahl von Zonen aufweist, die jeweils eine Vielzahl von Dies 370 aufweisen. Wenngleich 32 Dies 370 in der Zone 350 gezeigt sind, kann eine beliebige Anzahl von Dies eingeschlossen sein. Jedes Die 370, wie D0 370a, weist ein Paar von Ebenen 360, wie P0 360a und P1 360b auf, und jede Ebene 360 weist eine Vielzahl von Löschblöcken 300 von 3A, wie beispielsweise EB0 300a, auf.
  • Eine Zone 350 wird durch Auswählen eines Löschblocks 300 aus jeder Ebene 360 von 31 der 32 Dies 370 zur Datenspeicherung durch den Benutzer und Zuweisen oder Zuordnen der logischen Blockadresse, die den Löschblöcken 300 entspricht, zu der Zone 350 gebildet. In einer Ausführungsform kann die Zone 350 31 Dies 370, 380b enthalten, die für Benutzerdaten verwendet werden sollen, und 1 Die 380a, das für Paritätsdaten verwendet werden soll. Zum Beispiel verwendet RAID 4 ein (1) Die für Paritätsdaten. In einer anderen Ausführungsform kann die Zone 350 30 Dies 370 enthalten, die für Benutzerdaten verwendet werden sollen, und 2 Dies 380a, 380b, die für Paritätsdaten verwendet werden sollen. Zum Beispiel verwendet RAID 6 2 Dies für Paritätsdaten. Solche Ausführungsformen sollen nicht begrenzend oder einschränkend sein und sind Beispiele für mögliche Konfigurationen einer Zone 350. Darüber hinaus können andere Ausführungsformen, die weder aufgeführt noch beschrieben sind, vorhanden sein.
  • Zusätzlich können Paritätsdaten für eine Wortleitung jedes Löschblocks, die Benutzerdaten speichert (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 350 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. Darüber hinaus kann, während das Die 380a, das zum Speichern von Paritätsdaten verwendet wird, als das letzte Die 380a innerhalb der Zone 350 dargestellt ist, jedes Die 370, 380a, 380b zum Speichern von Paritätsdaten verwendet werden.
  • Innerhalb einer Zone 350 wird der Paritäts-Die 380a für die Speicherung von Parität oder Paritätsdaten für den Die-Ausfallschutz partitioniert. Der Paritäts-Die 380a kann p-Paritätsdaten speichern, die Standard-Paritätsdaten sind oder q-Paritätsdaten speichern, die von gleicher Größe wie die p-Paritätsdaten sind. Die q-Paritätsdaten werden jedoch unter Verwendung von Gaußscher Mathematik aufgrund der Host-Daten berechnet, die auf einer bestimmten Wortleitung jedes EB gespeichert sind. Die Paritätsdaten schließen eine Löschcodierung ein, die vor einem oder mehreren Die-Ausfällen und/oder einem oder mehreren Ebenenausfällen schützen kann. Die Löschcodierung kann auch ein gewisses Maß an Schutz bei Ebenenverlustausfall bieten.
  • In der Codierungstheorie ist ein Löschcode ein Vorwärtsfehlerkorrektur-Code (FEC-Code) 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, sodass die ursprüngliche Nachricht aus einer Teilmenge der n Symbole wiederhergestellt werden kann. Beispiele für verschiedene Löschcodeklassen sind Tornado-Codes, Fountain-Codes (d. h. ratenlose Löschcodes), Paritäts- und Reed-Solomon-Codes. Zum Beispiel sind die Reed-Solomon-Codes eine Gruppe von ECC, wobei die Codes in der Lage sind, mehrere Symbolfehler zu erkennen und zu korrigieren.
  • In einer Ausführungsform können sich die Fehlerkorrekturinformationen, die von einem ECC-Decodierer zum Korrigieren von Fehlern verwendet werden, auf redundante und/oder codierte Bits beziehen, die von einem Codierer für einen Fehlerkorrekturcode erzeugt werden. In verschiedenen Ausführungsformen kann ein Fehlerkorrekturcode eine von verschiedenen Arten von Fehlerkorrekturcodes sein, wie ein Blockcode, ein Faltungscode, ein Bose-Chaudhuri-Hocquenghem (BCH)-Code, ein Low-Density-Parity-Check-Code (LDPC-Code), ein Hamming-Code, ein Reed-Solomon-Code, ein Turbo-Code oder dergleichen. Die ECC kann auch EDC aufweisen, wobei der EDC ein Sentinel-Wert, eine logische Adresse, ein Cyclic-Redundanz-Code (CRC) oder eine andere ECC-Fehlkorrekturprüfung sein kann, die dem ECC-Decodieren 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 der ECC auf einen falschen Wert decodiert, aber der EDC innerhalb des Codeworts ein bekanntes Ergebnis oder einen bekannten Wert aufweist, um dafür Fehlkorrekturen zu erkennen.
  • Darüber hinaus werden Daten sequenziell aus dem Löschblock in den Löschblock in einer ersten Zone geschrieben, sodass Daten in EB0 300a geschrieben werden, bevor Daten in EB1 300b geschrieben werden. Daten werden auch sequenziell von Zone zu Zone geschrieben, sodass Daten aus einer ersten Zone geschrieben werden, bevor Daten in eine zweite Zone geschrieben werden. Die Zone 350 kann eine beliebige beschreibbare Kapazität (ZCAP) haben, wie 256 MB oder 512 MB. Jede Zone, wie eine Zone 350, einer Vielzahl von Zonen weist die gleiche Zonenkapazität auf. Die Daten werden in der Zonenkapazitätsgröße gelöscht, wenn eine Vorrichtung, wie die Datenspeicherungsvorrichtung 106 von 1, ZNS verwendet. Mit anderen Worten können einzelne Löschblöcke nicht gelöscht werden, sofern nicht eine gesamte Zone gelöscht oder in den Zustand „Zone leer“ bewegt wird (d. h. Zone leer), wie in 2B beschrieben. Wenn die Datenspeicherungsvorrichtung 106 jedoch eine nichtflüchtige Speicherungseinheit aufweist, die eine ZNS-Teilfähigkeit aufweist, werden Daten aus der Datenspeicherungsvorrichtung 106 in der Zonenkapazitätsgröße in dem Anteil der nichtflüchtigen Speicherungseinheit gelöscht, der ZNS-Fähigkeit aufweist. Daten können aus einer nicht-ZNSfähigen nichtflüchtigen Speicherungseinheit in einer Löschblockgröße gelöscht werden.
  • Darüber hinaus wird der Ort der Daten, die in einem ZNS-aktivierten Anteil des NVM, wie dem NVM 110 von 1, gespeichert sind, in einer ersten logisch-zu-physischen (L2P) Tabelle als LBAs in einer flüchtigen Speicherungseinheit, wie der flüchtigen Speicherungseinheit 112, aufgezeichnet. Der Ort der Daten, die in einem nicht-ZNS-aktivierten Anteil des NVM, wie dem NVM 110 von 1, gespeichert sind, wird in einer zweiten L2P-Tabelle als LBAs in einer flüchtigen Speicherungseinheit, wie der flüchtigen Speicherungseinheit 112, aufgezeichnet. Die flüchtige Speicherungseinheit 112 kann eine DRAM-Einheit sein. Darüber hinaus weist der NVM 110 eine erste L2P-Tabelle auf, die mit der ersten L2P-Tabelle der flüchtigen Speicherungseinheit 112 übereinstimmt, und einer zweiten L2P-Tabelle, die mit der zweiten L2P-Tabelle der flüchtigen Speicherungseinheit 112 übereinstimmt. Die L2P-Tabellen in dem NVM 110 werden aktualisiert, um den L2P-Tabellen der flüchtigen Speicherungseinheit 112 zu entsprechen.
  • Die L2P-Tabellen weisen Zeiger auf, die auf jeden physischen Ort der Daten innerhalb des NVM 110 zeigen. Unter Bezugnahme auf 3A ist in herkömmlichen oder nicht-ZNS-Speicherungsvorrichtungen jeder NAND-Stelle oder jedem Slot, wie Slot 99, Slot 100, Slot 101 und Slot 102 von MP1 324 ein Zeiger zugeordnet. Der physische Standort der Daten wird in einem logischen Array abgebildet, sodass das Zeigeradressarray den Ort aufweist, der von der Die auf die NAND-Stelle abgebildet wird. In einem Löschblock wird die Gesamtzahl der Zeiger wie folgt berechnet: 256 WL * 3 Seiten/WL * 4 Slots/Seite * 1 ZeigerlSlot = 3.072 Zeiger. Innerhalb einer ersten Zone mit einer Kapazität, die 62 Löschblöcke aufweist, können 190.464 Zeiger vorhanden sein (d. h. 3.072 Zeiger/Löschblock * 62 Löschblöcke = 190.464 Zeiger). Jeder Zeiger weist eine bestimmte Datenmenge auf, die die verfügbare Speicherung des DRAM 112 und des NVM 110 nutzt.
  • Durch Konsolidieren der Zeiger kann mehr Speicher in dem DRAM 112 verfügbar sein, da der DRAM 112 in der Lage ist, eine kleinere L2P-Tabelle zu speichern. Zum Beispiel weist bei herkömmlichen oder nicht-ZNS-Speicherungsvorrichtungen eine obere Seite, wie UP1 322, 4 Zeiger auf, die 4 Slots oder 4 NAND-Stellen zugeordnet sind. Stattdessen nimmt in einer Speicherungsvorrichtung, die ZNS verwendet, wenn ein Zeiger nur der ersten NAND-Stelle oder dem ersten Slot 99 in der MP1 324 zugeordnet ist, die Anzahl von Zeigern der Seite um 3 bis 1 ab. Durch Verwenden eines Zeigers auf den ersten Slot oder die erste NAND-Stelle einer Seite wird der Zeiger dem Seitenanfang zugeordnet. Um auf einen zweiten, dritten oder vierten Slot oder eine zweite, dritte oder vierte NAND-Stelle in der MP1 324 zuzugreifen, wird ein Offset berechnet und verwendet. Zum Beispiel verwendet der zweite Slot oder die zweite NAND-Stelle 100 der MP1 324 den Zeiger, der auf den ersten Slot oder die erste NAND-Stelle 99 der MP1 324 zeigt, mit einem Offset von 1. Der dritte Slot oder die dritte NAND-Stelle 100 der MP1 324 verwendet den Zeiger, der auf den ersten Slot oder die erste NAND-Stelle 99 der MP1 324 zeigt, mit einem Offset von 2. Der vierte Slot oder die vierte NAND-Stelle 100 der MP1 324 verwendet den Zeiger, der auf den ersten Slot oder die erste NAND-Stelle 99 der MP1 324 zeigt, mit einem Offset von 3.
  • Außerdem verwendet die Steuerung 108 bei der Suche nach einer NAND-Stelle oder einem Slot aufgrund eines empfangenen ersten Lesebefehls, wie zum Lesen von in dem vierten Slot 102 gespeicherten Daten, die L2P-Tabelle, um den Ort der relevanten LBA zu finden, die der physischen Adresse der zu lesenden Daten zugeordnet ist. Da die Zeiger auf jede Seite konsolidiert werden, kann ein Zeiger den Slot 95 von UP1 322, den Slot 99 von MP1 324 oder den Slot 103 von LP1 326 referenzieren. Wenn die Steuerung 108 nach der LBA sucht, die dem Slot 102 zugeordnet ist, bestimmt die Steuerung 108, dass der Zeiger für den Slot 99 von MP1 324 zu niedrig ist und der Zeiger für den Slot 103 von LP1 326 zu hoch ist. Somit bestimmt die Steuerung 108, dass die LBA der zu lesenden Daten zwischen dem Slot 99 und dem Slot 103 (z. B. innerhalb von MP1 324) liegt. Die Steuerung 108 verwendet dann den Zeiger, der dem Slot 99 von MP1 324 zugeordnet ist, und integriert einen NAND-Stellen-/Slot-Offset von 3, um die Ziel-LBA zu erhalten, die einem ersten Lesebefehl für die Daten zugeordnet ist, die in dem vierten Slot 102 von MP1 324 gespeichert sind.
  • Zeiger können weiterhin konsolidiert werden, um die Seiten einer Wortleitung zu integrieren. Zum Beispiel weisen die obere Seite, wie UP1 322, die mittlere Seite, wie MP1 324 und die untere Seite, wie 326 LP1, jeweils einen Zeiger auf den ersten Slot oder die erste NAND-Stelle der Seite (d. h. Seitenanfang) aus der Konsolidierung der NAND-Slots auf, wie zuvor beschrieben. Die drei Zeiger, die jeweils einer Seite zugeordnet sind, können zu einem Zeiger konsolidiert werden, der auf den Beginn einer Wortleitung zeigt, wie den Slot 95 von UP1 322. Zum Referenzieren einer mittleren Seite wird der einer oberen Seite zugeordnete Zeiger mit einem Seiten-Offset von 1 verwendet. Ebenso wird zum Referenzieren einer unteren Seite der Zeiger, der einer oberen Seite zugeordnet ist, mit einem Seiten-Offset von 2 verwendet. Somit hätte jede Wortleitung einen Zeiger, der verwendet werden könnte, um Daten in einer der Seiten der Wortleitung und in einer der NAND-Stellen oder Slots der Seite zu lesen.
  • Außerdem verwendet die Steuerung 108 bei der Suche nach einer Seite einer Wortleitung aufgrund eines empfangenen ersten Lesebefehls, wie zum Lesen von in dem vierten Slot 102 der mittleren Seite MP1 324 gespeicherten Daten, die L2P-Tabelle, um den Ort der relevanten LBA zu finden, die der physischen Adresse der zu lesenden Daten zugeordnet ist. Da die Zeiger auf jede Wortleitung konsolidiert werden, kann ein Zeiger WL0 310, WL1 320, WL2 330 oder WLn 340 referenzieren. Wenn die Steuerung 108 nach der LBA sucht, die in WL1 320 zugeordnet ist, bestimmt die Steuerung 108, dass der Zeiger für WL1 320 zu niedrig ist und der Zeiger für WL2 330 zu hoch ist. Somit bestimmt die Steuerung 108, dass die LBA der zu lesenden Daten zwischen WL1 320 und WL2 330 (z. B. innerhalb von WL1 320) liegt. Die Steuerung 108 führt dann den gleichen Prozess durch, wie vorstehend erörtert, um zuerst zu bestimmen, auf welcher Seite die Daten gespeichert werden, und dann durch Berechnen der verschiedenen Offsets zu bestimmen, in welchem Slot oder an welcher NAND-Stelle die Daten gespeichert werden. Die Steuerung 108 verwendet dann den Zeiger, der WL1 320 zugeordnet ist, und integriert einen Seiten-Offset von 1 und einen Slot- oder NAND-Stellen-Offset von 3, um die Ziel-LBA zu erhalten, die einem ersten Lesebefehl im vierten Slot 102 der mittleren Seite MP1 324 zugeordnet ist.
  • Zeiger können noch weiter konsolidiert werden, um die Wortleitungen eines Löschblocks zu integrieren. Zum Beispiel weisen WL0 310, WL1 320, WL2 330 und WLn 340 jeweils einen Zeiger auf den ersten Slot oder die erste NAND-Stelle der Wortleitung (d. h. Beginn der Wortleitung) aus der Konsolidierung der Seiten auf, wie zuvor beschrieben. Die Zeiger, die jeweils einer Wortleitung zugeordnet sind, können zu einem Zeiger konsolidiert werden, der auf den Beginn eines Löschblocks zeigt, wie WL0 310 des Löschblocks 300. Außerdem wird zum Referenzieren einer zweiten Wortleitung WL1 320 der dem Löschblock zugeordnete Zeiger mit einem Wortleitungs-Offset von 1 verwendet. Ebenso wird, um eine dritte Wortleitung WL2 330 zu referenzieren, der dem Löschblock zugeordnete Zeiger mit einem Wortleitungs-Offset von 2 verwendet. Somit hätte jeder Löschblock einen Zeiger, der zum Lesen von Daten in einer der Wortleitungen des Löschblocks verwendet werden könnte.
  • Bei der Suche nach einer Wortzeile eines Löschblocks aufgrund eines empfangenen ersten Lesebefehls, z. B. zum Lesen von Daten, die in der dritten WL2 330 des Löschblocks 300 gespeichert sind, verwendet die Steuerung 108 die L2P-Tabelle, um den Ort der relevanten LBA zu finden, die der physischen Adresse der zu lesenden Daten zugeordnet ist. Der Löschblock 300 von 3A kann ein beliebiger der Löschblöcke 300a-300n von 3B sein. Da die Zeiger auf jeden Löschblock konsolidiert werden, kann ein Zeiger den Löschblock EB0 300a oder einen anderen Löschblock, wie den Löschblock EB1 300b von 3B, referenzieren.
  • Wenn der erste Löschblock EB0 300a der erste Löschblock einer ersten Zone 350 ist und ein zweiter Löschblock EB1 300b der zweite Löschblock einer ersten Zone 350 ist, bestimmt die Steuerung 108, dass der Zeiger für den ersten Löschblock EB0 300a zu niedrig ist und der Zeiger für den zweiten Löschblock EB1 300b zu hoch ist. Somit bestimmt die Steuerung 108, dass sich die LBA der zu lesenden Daten zwischen dem ersten Löschblock EB0 300a und dem zweiten Löschblock EB1 befindet (z. B. innerhalb des ersten Löschblocks EB0 300a). Die Steuerung 108 führt dann den gleichen Prozess durch, wie vorstehend erörtert, um zuerst zu bestimmen, auf welcher Wortleitung die Daten gespeichert werden, und dann zu bestimmen, auf welcher Seite die Daten gespeichert werden, und dann durch Berechnen der verschiedenen Offsets zu bestimmen, in welchem Slot oder an welcher NAND-Stelle die Daten gespeichert werden. Die Steuerung 108 verwendet den Zeiger, der dem ersten Löschblock EB0 300a zugeordnet ist, und integriert einen Wortleitungs-Offset von 2 und die geeigneten Seiten- und Slot- oder NAND-Stellen-Offsets, um die Ziel-LBA zu erhalten, die einem ersten Lesebefehl für die dritte Wortleitung WL2 330 zugeordnet ist.
  • In einer Ausführungsform können Zeiger auch weiter konsolidiert werden, um die Löschblöcke einer Zone zu integrieren, wenn jeder Löschblock der Zone dieselbe Adresse in der Ebene aufweist (d. h. ein dritter Löschblock jeder Ebene jedes Dies einer Zone). Zum Beispiel weisen ein erster Löschblock 300a, ein zweiter Löschblock 300b, ein dritter Löschblock 300c und ein vierter Löschblock 300n jeweils einen Zeiger auf den ersten Slot oder die erste NAND-Stelle des Löschblocks (d. h. Beginn des Löschblocks) aus der Konsolidierung der Wortleitungen auf, wie zuvor beschrieben. In einigen Ausführungsformen können die Zeiger, die jeweils einem Löschblock zugeordnet sind, zu einem Zeiger konsolidiert werden, der auf den ersten physischen Ort oder den anfänglichen physischen Ort einer Zone zeigt, wie einer ersten Zone 350 und einer zweiten Zone(nicht dargestellt) (d. h. einen ersten Löschblock der Zone oder eine erste NAND-Stelle oder einen ersten Slot eines ersten Löschblocks der Zone). Mit anderen Worten, da eine Zone eine Reihe von sequenziellen LBAs aufweist, kann jede Zone einem Zeiger zugeordnet sein, der auf den ersten oder den anfänglichen physischen Ort innerhalb der Zone zeigt oder ihn angibt. Weiterhin wird zum Referenzieren eines zweiten Löschblocks EB1 300b der dem Löschblock zugeordnete Zeiger mit einem Löschblock-Offset von 1 verwendet. Ebenso wird zum Referenzieren eines dritten Löschblocks EB2 300c der dem Löschblock zugeordnete Zeiger mit einem Löschblock-Offset von 2 verwendet.
  • Bei der Suche nach einem Löschblock einer Zone aufgrund eines empfangenen ersten Lesebefehls, z. B. zum Lesen von Daten, die in dem zweiten Löschblock EB1 300b der ersten Zone 350 gespeichert sind, verwendet die Steuerung 108 die L2P-Tabelle, um den Ort der relevanten LBA zu finden, die der physischen Adresse der zu lesenden Daten zugeordnet ist. Da die Zeiger auf jede Zone konsolidiert werden, kann ein Zeiger auf eine erste oder anfängliche physische Adresse einer ersten Zone, eine erste oder eine anfängliche physische Adresse einer zweiten Zone, usw. referenzieren. Wenn die Steuerung 108 nach der LBA sucht, die einem zweiten Löschblock EB1 300b zugeordnet ist, bestimmt die Steuerung 108, dass der Zeiger für die erste oder die anfängliche physische Adresse einer ersten Zone zu niedrig ist und der Zeiger für die erste oder anfängliche physische Adresse einer zweiten Zone zu hoch ist. Somit bestimmt die Steuerung 108, dass die LBA der zu lesenden Daten zwischen der ersten Zone und der zweiten Zone (z. B. innerhalb der ersten Zone 350) liegt.
  • Die Steuerung 108 führt dann den gleichen Prozess durch, wie vorstehend erörtert, um zuerst zu bestimmen, in welchem Löschblock die Daten gespeichert werden, dann zu bestimmen, auf welcher Wortleitung die Daten gespeichert werden, dann zu bestimmen, auf welcher Seite die Daten gespeichert werden, und dann durch Berechnen der verschiedenen Offsets zu bestimmen, in welchem Slot oder an welcher NAND-Stelle die Daten gespeichert werden. Die Steuerung 108 verwendet den Zeiger, der der ersten Zone 350 zugeordnet ist, und integriert einen Löschblock-Offset von 1 und die geeigneten Offsets für Wortleitung, Seite und Slot oder NAND-Stelle, um die Ziel-LBA zu erhalten, die einem ersten Lesebefehl für den zweiten Löschblock EB1 300b der ersten Zone 350 zugeordnet ist. Somit hätte jede Zone einen Zeiger, der zum Lesen von Daten in einem der Löschblöcke der Zone verwendet werden könnte.
  • Durch Konsolidieren von Zeigern in einer ersten L2L-Tabelle, die für ZNS eingerichtet ist, kann die Menge von Zeigern für eine Zone von einem Wert von etwa 190.464-Zeiger pro Zone, die 62 Löschblöcke aufweist, auf einen Wert von deutlich weniger als etwa 190.464 Zeiger abnehmen. Die erste L2P-Tabelle kann einen Zeiger pro Zone so zuordnen, dass eine erste oder anfängliche physische Adresse einer ersten Zone einem ersten Zeiger zugeordnet ist, eine erste oder anfängliche physische Adresse einer zweiten Zone einem zweiten Zeiger zugeordnet ist und so weiter. Die Daten innerhalb jeder Zone können durch Berechnen verschiedener Offsets gefunden werden. Durch Verringern der Anzahl von Zeigern in der ersten L2P-Tabelle kann mehr Speicherplatz zur Speicherung anderer Daten verwendet werden, anstatt Zeiger zu speichern. Zusätzlich verwendet die Steuerung 108 logische Steuerelemente, um den Ort von Daten basierend auf einem Zeiger und verschiedenen Offsets zu bestimmen.
  • 4 ist ein schematisches Blockdiagramm, das ein Speicherungssystem 400 gemäß einer anderen Ausführungsform veranschaulicht. Der Host 402 kann der Host 104 von 1 sein, die SSD 406 kann die Speicherungsvorrichtung 106 von 1 sein, die Steuerung 408 kann die Steuerung 108 von 1 sein, ein erster RAM oder ein flüchtiger Speicher 410 (d. h. ein erster RAM1-Speicher), wie der DRAM, kann der flüchtige Speicher 112 von 1 sein, und der NVM 404 kann der nichtflüchtige Speicher 110 von 1 sein. In den folgenden Beschreibungen kann der Einfachheit halber und beispielhaft ein erster flüchtiger Speicher 112 als DRAM-Speicher referenziert werden.
  • Der NVM 404 weist einen ZNS-Abschnitt 440 und einen Nicht-ZNS-Abschnitt 448 auf. Der ZNS-Abschnitt 440 kann eine beliebige Anzahl von Zonen aufweisen, wie eine erste Zone 442, eine zweite Zone 444 und eine n-te Zone 446. Der ZNS-Abschnitt 440 kann Zonen unterschiedlicher Größen oder Kapazitäten aufweisen. Zum Beispiel können die erste Zone 442, die zweite Zone 444 und die dritte Zone 446 eine erste Größe oder Kapazität aufweisen, während eine vierte Zone 460, eine fünfte Zone 462 und eine sechste Zone 464 eine zweite Größe oder Kapazität aufweisen, die sich von der ersten Größe oder Kapazität unterscheidet. Der DRAM 410 weist eine oder mehrere erste ZNS-L2P-Tabellen (erste ZNS-L2P-Tabelle 420 dargestellt) und eine oder mehrere Nicht-ZNS-L2P-Tabellen 428 auf. Die erste ZNS-L2P-Tabelle 420 weist einen Zeiger auf die erste oder die anfängliche physische Adresse jeder Zone auf, sodass jeder Zonenstart-LBA (ZSLBA) ein Zeiger zugeordnet ist. Eine ZSLBA kann ZoSLBA 422, Z1SLBA 424 oder ZNSLBA 426 sein, wobei „N“ eine ganze Zahl ist. Der DRAM 410 kann weiterhin eine oder mehrere zweite ZNS-L2P-Tabellen (zweite L2P-Tabelle 430 dargestellt) aufweisen. Die zweite ZNS-L2P-Tabelle 430 weist einen Zeiger auf jeden Löschblock innerhalb jeder Zone auf, wie weiter unten erörtert. Die Zonen in den L2P-Tabellen können in beliebiger Reihenfolge angeordnet sein, sodass eine zweite Zone vor einer ersten Zone aufgelistet ist.
  • Darüber hinaus weist der NVM 404 eine oder mehrere ZNS-L2P-Tabellen (nicht dargestellt) und eine oder mehrere Nicht-ZNS L2P-Tabellen (nicht dargestellt) auf. Die L2P-Tabellen in dem NVM 404 werden periodisch aktualisiert, um den L2P-Tabellen 420, 428, 430 der flüchtigen Speicherungseinheit 112 zu entsprechen. In einer Ausführungsform kann die Steuerung 408 auf Abschnitte der L2P-Tabelle zugreifen, die sich in dem NVM 404 befinden, anstelle der L2P-Tabellen 420, 428, 430, die sich in dem DRAM 410 befinden.
  • Der DRAM 410 kann einen begrenzten Datenspeicherraum aufweisen, da der DRAM 410 kleiner als der NVM 404 ist. Der Datenspeicherraum des DRAM 410 und des NVM 404 kann entweder eine ZNS-L2P-Tabelle(n) und einen ZNS-Abschnitt, eine Nicht-ZNS-L2T-Tabelle(n) und einen Nicht-ZNS-Abschnitt aufweisen, oder beide können eine ZNS-L2P-Tabelle(n), einen ZNS-Abschnitt, eine Nicht-ZNS 2LP-Tabelle(n) und einen Nicht-ZNS-Abschnitt aufweisen. Wenn der Datenspeicherraum des DRAM 410 oder des NVM 404 eine ZNS-L2P-Tabelle(n) und einen ZNS-Abschnitt 440 aufweist, dann kann die Steuerung 408 Zeiger in jeder ZNS-L2P-Tabelle (d. h. den ersten Zeiger 452 auf die erste oder die anfängliche physische Adresse der ersten Zone 442, einen zweiten Zeiger 454 auf die erste oder die anfängliche physische Adresse der zweiten Zone 444, und einen n-ten Zeiger 456 auf die erste oder anfängliche physische Adresse der n-ten Zone 446) konsolidieren. Die Nicht-ZNS L2P-Tabellen sind jedoch so eingerichtet, dass sie in einer herkömmlichen Einstellung ohne ZNS arbeiten.
  • In einem DRAM 410, der sowohl eine erste ZNS-L2P-Tabelle 420 als auch eine zweite Nicht-ZNS 2L-Tabelle 428 aufweist, kann die erste ZNS-L2P-Tabelle 420 alle Zonen minus drei Zonen aufweisen, wobei die Löschblöcke, die sich in den drei Zonen befinden würden, der zweiten Nicht-ZNS-L2P-Tabelle 428 zugeordnet sind. Die zweite Nicht-ZNS L2P-Tabelle 428 beträgt möglicherweise nur etwa 1 % der DRAM 410-Kapazität mit einer Seitengröße von 4K. Wenn der DRAM 410 nur eine zweite Nicht-ZNS-L2P-Tabelle 428, wie einen herkömmlichen flüchtigen Speicherbetrieb, aufweist, kann die Kapazität durch eine Seitengröße von 128K begrenzt sein. Die vorstehend aufgelisteten Werte sind nicht als Einschränkung gedacht, sondern sollen ein Beispiel für eine mögliche Ausführungsform bereitstellen.
  • Der DRAM 410 kann eine oder mehrere ZNS-L2P-Tabellen aufweisen, sodass sich jede ZNS-L2P-Tabelle auf Zonen unterschiedlicher Größe beziehen kann. Zum Beispiel kann sich eine erste ZNS-L2P-Tabelle 420 auf eine Zone beziehen, die zwei Löschblöcke aus jeder Ebene jedes Dies aufweist, während sich eine zweite ZNS-L2P-Tabelle 430 auf eine Zone beziehen kann, die einen Löschblock aus jeder Ebene jedes Dies aufweist. In einer Ausführungsform zeigt ein Zeiger auf die erste oder anfängliche physische Adresse jeder Zone. In einer anderen Ausführungsform zeigt ein Zeiger auf jeden Löschblock einer Zone. Zum Beispiel zeigt der Zeiger 452 in der ersten ZNS-L2P-Tabelle 420 auf die erste oder die anfängliche physische Adresse der ersten Zone 442, der Zeiger 454 Tabelle 420 zeigt auf die erste oder die anfängliche physische Adresse der zweiten Zone 444 und der Zeiger 456 zeigt auf die erste oder die anfängliche physische Adresse der n-ten Zone 456. In der zweiten L2P-Tabelle 430 zeigt der Zeiger 472 jedoch auf den zweiten Löschblock EB1 der N+1-Zone 460 und der Zeiger 474 auf den n-ten Löschblock EBN der N+M-Zone 464, wobei „M“ eine ganze Zahl ist. In der Ausführungsform, in der ein Zeiger auf jeden Löschblock einer Zone zeigt, werden die verschiedenen Seiten- und Slot-Offsets noch berechnet, wie vorstehend erörtert.
  • In einer Ausführungsform weist das DRAM 410 sowohl eine erste ZNS-L2P-Tabelle 420 als auch eine zweite Nicht-ZNS L2P-Tabelle 428 auf. Erste Schreibdaten, die einem oder mehreren ersten Befehlen an den NVM 404 zugeordnet sind, werden von der Steuerung empfangen, um Daten in einen vierten Slot oder eine vierte NAND-Stelle einer dritten Seite einer dritten Wortleitung eines ersten Löschblocks EB0 einer ersten Zone 442 zu schreiben. Der physische Ort der Daten wird als LBA in einer ersten ZNS-L2P-Tabelle 420 gespeichert. Da die LBA in der ersten ZNS-L2P-Tabelle 420 gespeichert ist, ist ein erster Zeiger 452, der der ersten Zone 442 zugeordnet ist, dem Ort der ersten Schreibdaten zugeordnet.
  • Wenn jedoch ein erster Lesebefehl, der den ersten Schreibdaten in den NVM 404 zugeordnet ist, von der Steuerung empfangen wird, können die ersten Schreibdaten durch den ersten Zeiger 452 auf die erste Zone 442 mit einem Löschblock-Offset von 0 für den ersten Löschblock EB0, wie vorstehend beschrieben, referenziert werden. Die ersten Schreibdaten können weiterhin durch den ersten Zeiger 452 auf den ersten Löschblock EB0 mit einem Wortleitungs-Offset von 2 für die dritte Wortleitung referenziert werden, wie vorstehend beschrieben. Die ersten Schreibdaten können durch den ersten Zeiger 452 auf die dritte Wortleitung mit einem Seiten-Offset von 2 für die dritte Seite referenziert werden, wie vorstehend beschrieben. Die ersten Schreibdaten können weiterhin durch den ersten Zeiger 452 auf die dritte Seite mit einem Slot- oder NAND-Stellen-Offset von 3 für den vierten Slot oder die vierte NAND-Stelle der dritten Seite referenziert werden, wie vorstehend beschrieben.
  • Wenn ein oder mehrere Befehle zum Schreiben erster Daten in den NVM 404 von der Steuerung empfangen werden, um die ersten Daten in einen vierten Slot oder an eine vierte NAND-Stelle einer dritten Seite einer dritten Wortleitung eines ersten Löschblocks innerhalb des Nicht-ZNS-Abschnitts zu schreiben, existiert ein Zeiger in der Nicht-ZNS-L2P-Tabelle 428 für jeden Unterort der Daten (z. B. ein Zeiger für jede NAND-Stelle oder jeden -Slot, die/der den ersten Schreibdaten zugeordnet ist, oder ein Zeiger auf Datengrößen von 4 K oder 8 K innerhalb eines Löschblocks).
  • Um Platz in einem DRAM einer Speicherungsvorrichtung unter Verwendung von ZNS zu sparen, wobei die LBAs in einer ZNS-L2P-Tabelle gespeichert sind, können Zeiger auf den ersten Wert jedes Unterabschnitts, wie eine erste Zone, einen ersten Löschblock, eine erste Wortleitung, eine erste Seite und eine erste NAND-Stelle oder einen ersten Slot, konsolidiert werden. Verschiedene Offsets können mit dem Zeiger verwendet werden, der einem ersten Wert zugeordnet ist, um den Ort der im ZNS gespeicherten Daten zu bestimmen. Die Konsolidierung von Zeigern verringert die Speichermenge, die für die Zeigerdaten in dem DRAM bestimmt ist, was die Notwendigkeit einer größeren DRAM-Einheit verringert oder das Speichern anderer Daten in dem DRAM ermöglicht.
  • 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. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jedes der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, einen ersten Lesebefehl zum Lesen erster Daten zu empfangen, die in der nichtflüchtigen Speicherungseinheit gespeichert sind, und einen ersten Zeiger in der ersten logisch-zu-physischen Tabelle zu lesen, der den ersten Daten zugeordnet ist, um zu bestimmen, dass die ersten Daten in einem ersten Löschblock einer ersten Zone der Vielzahl von Zonen gespeichert sind. Die Steuerung ist weiterhin dazu eingerichtet, einen Offset von Seiten und Wortleitungen innerhalb des ersten Löschblocks zu bestimmen, um die ersten Daten zu finden und die ersten Daten zu lesen.
  • Die flüchtige Speicherungseinheit speichert eine zweite logisch-zu-physische Tabelle. Die erste logisch-zu-physische Tabelle ist für die Vielzahl von Zonen und die zweite logisch-zu-physische Tabelle ist für einen nicht-gezonten Namensraum vorgesehen. Die Steuerung ist dazu eingerichtet zu verfolgen, welche Löschblöcke sich innerhalb jeder Zone befinden. Die erste logisch-zu-physische Tabelle weist einen Zeiger für jeden Löschblock innerhalb jeder Zone auf. Das Bestimmen des Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks umfasst das Scannen der logischen Blockadressen, die in der ersten logisch-zu-physischen Tabelle gespeichert sind, nach Seitengröße und Wortleitungsgröße. Daten für jede Zone werden sequenziell in jeden Löschblock der Zone geschrieben.
  • In einer weiteren Ausführungsform weist eine Datenspeicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Jeder der Löschblöcke weist eine Vielzahl von Wortleitungen und Seiten auf. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch eine Steuerung auf, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, erste Daten, die einem oder mehreren ersten Befehlen zugeordnet sind, in einer ersten Zone der Vielzahl von Zonen zu schreiben und die in der flüchtigen Speicherungseinheit gespeicherte erste logisch-zu-physische Adresstabelle zu aktualisieren, wobei das Aktualisieren der ersten logisch-zu-physischen Tabelle das Zuordnen eines Zeigers zu der ersten Zone und den ersten Daten umfasst. Die Steuerung ist weiterhin dazu eingerichtet, einen Lesebefehl zum Lesen der ersten Daten zu empfangen, eine erste logische Blockadresse der ersten Daten zu identifizieren, den Zeiger zu lesen, der der ersten Zone zugeordnet ist, um die ersten Daten in der ersten Zone zu bestimmen, einen Offset von Löschblöcken zu berechnen, um die ersten Daten zu bestimmen, die in dem ersten Löschblock gespeichert sind, und einen Offset von Seiten und Wortleitungen innerhalb des ersten Löschblocks zu berechnen, um die ersten Daten zu finden.
  • Die Steuerung ist weiterhin dazu eingerichtet, zweite Daten, die einem oder mehreren zweiten Befehlen zugeordnet sind, sequenziell in einen zweiten Löschblock in der ersten Zone zu schreiben, die in der flüchtigen Speicherungseinheit gespeicherte erste logisch-zu-physische Adresstabelle zu aktualisieren, wobei das Aktualisieren der logisch-zu-physischen Tabelle das Zuordnen des Zeigers zu der ersten Zone und den zweiten Daten umfasst, und eine zweite logische Blockadresse der zweiten Daten zu identifizieren. Die Steuerung ist auch dazu eingerichtet, den Zeiger zu lesen, der der ersten Zone zugeordnet ist, um die zweiten Daten in der ersten Zone zu bestimmen, einen Offset von Löschblöcken zu berechnen, um zu bestimmen, dass die zweiten Daten in dem zweiten Löschblock gespeichert sind, und einen Offset von Seiten und Wortleitungen innerhalb des zweiten Löschblocks zu berechnen, um die zweiten Daten zu finden. Die erste logisch-zu-physische Tabelle speichert einen Zeiger pro Zone. Jeder Zeiger weist eine erste oder anfängliche physische Adresse jeder Zone auf oder gibt sie an. Der nichtflüchtige Speicher weist weiterhin einen nicht-gezonten Namensraum auf. Die flüchtige Speicherungseinheit speichert eine zweite logisch-zu-physische Adresstabelle für den nicht-gezonten Namensraum. Das Berechnen des Offsets von Löschblöcken umfasst das Scannen der in der ersten logisch-zu-physischen Tabelle gespeicherten logischen Blockadressen nach Löschblockgröße, und wobei das Berechnen des Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks das Scannen der in der ersten logisch-zu-physischen Tabelle gespeicherten logischen Blockadressen nach Seitengröße und Wortleitungsgröße umfasst. Die flüchtige Speicherungseinheit speichert eine dritte logisch-zu-physische Tabelle. Die erste logisch-zu-physische Tabelle weist Zeiger für die erste Zone und eine oder mehrere erste Zonen mit einer ersten Kapazität auf und die dritte logisch-zu-physische Tabelle weist Zeiger für eine oder mehrere zweite Zonen mit einer zweiten Kapazität auf, die sich von der ersten Kapazität unterscheidet.
  • In einer weiteren Ausführungsform weist eine Datenspeicherungsvorrichtung eine nichtflüchtige Speicherungseinheit auf, wobei eine Kapazität der nichtflüchtigen Speicherungseinheit in eine Vielzahl von Zonen unterteilt ist. Die nichtflüchtige Speicherungseinheit weist eine Vielzahl von Dies auf, wobei jedes der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speicherungsvorrichtung weist weiterhin eine flüchtige Speicherungseinheit auf, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert und die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind. Die Speicherungsvorrichtung weist auch Mittel zum Empfangen eines ersten Lesebefehls zum Lesen erster Daten auf, die in der nichtflüchtigen Speicherungseinheit gespeichert sind, Mittel zum Identifizieren einer ersten logischen Blockadresse der ersten Daten und Mittel zum Lesen eines Zeigers in der ersten logisch-zu-physischen Tabelle, die der ersten Zone zugeordnet ist, um zu bestimmen, dass die ersten Daten in einer ersten Zone der Vielzahl von Zonen gespeichert sind. Die Speicherungsvorrichtung weist weiterhin Mittel zum Berechnen eines Offsets von Löschblöcken zum Bestimmen auf, dass die ersten Daten in einem ersten Löschblock der ersten Zone gespeichert sind, und Mittel zum Berechnen eines Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks, um die ersten Daten zu finden.
  • Das Mittel zum Berechnen des Offsets von Löschblöcken ist dazu eingerichtet, die logischen Blockadressen, die in der ersten logisch-zu-physischen Tabelle gespeichert sind, nach Löschblockgröße zu scannen. Das Mittel zum Berechnen des Offsets von Seiten und Wortleitungen ist dazu eingerichtet, die logischen Blockadressen, die in der ersten logisch-zu-physischen Tabelle gespeichert sind, nach Seitengröße und Wortleitungsgröße zu scannen. Daten werden sequenziell in jede Zone geschrieben. Der Zeiger, der der ersten Zone zugeordnet ist, zeigt auf eine erste oder anfängliche physische Adresse der ersten Zone oder gibt sie an. Der nichtflüchtige Speicher weist weiterhin einen nicht-gezonten Namensraum auf. Die flüchtige Speicherungseinheit speichert eine zweite logisch-zu-physische Adresstabelle für den nicht-gezonten Namensraum. Die Steuerung ist dazu eingerichtet zu verfolgen, welche Löschblöcke sich innerhalb jeder Zone befinden und wie viele logische Blockadressen sich innerhalb jedes Löschblocks befinden.
  • 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 16861068 [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 jede der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist; eine flüchtige Speicherungseinheit, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert, wobei die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind; und eine Steuerung, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Empfangen eines ersten Lesebefehls zum Lesen erster Daten, die in der nichtflüchtigen Speicherungseinheit gespeichert sind; Lesen eines ersten Zeigers in der ersten logisch-zu-physischen Tabelle, die den ersten Daten zugeordnet sind, um zu bestimmen, dass die ersten Daten in einem ersten Löschblock einer ersten Zone der Vielzahl von Zonen gespeichert werden; Bestimmen eines Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks, um die ersten Daten zu finden; und Lesen der ersten Daten.
  2. Speicherungsvorrichtung gemäß Anspruch 1, wobei die flüchtige Speicherungseinheit eine zweite logisch-zu-physische Tabelle speichert.
  3. Speicherungsvorrichtung gemäß Anspruch 2, wobei die erste logisch-zu-physische Tabelle für die Vielzahl von Zonen und die zweite logisch-zu-physische Tabelle für einen nicht-gezonten Namensraum vorgesehen ist.
  4. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung dazu eingerichtet ist zu verfolgen, welche Löschblöcke sich innerhalb jeder Zone befinden.
  5. Speicherungsvorrichtung gemäß Anspruch 1, wobei die erste logisch-zu-physische Tabelle einen Zeiger für jeden Löschblock innerhalb jeder Zone aufweist.
  6. Speicherungsvorrichtung gemäß Anspruch 1, wobei das Bestimmen des Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks das Scannen der in der ersten logisch-zu-physischen Tabelle gespeicherten logischen Blockadressen nach Seitengröße und Wortleitungsgröße aufweist.
  7. Speicherungsvorrichtung gemäß Anspruch 1, wobei Daten für jede Zone sequenziell in jeden Löschblock der Zone geschrieben werden.
  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 jede der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist, und jeder der Löschblöcke eine Vielzahl von Wortleitungen und Seiten aufweist; eine flüchtige Speicherungseinheit, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert, wobei die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind; und eine Steuerung, die mit der nichtflüchtigen Speicherungseinheit und der flüchtigen Speicherungseinheit gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Schreiben erster Daten, die einem oder mehreren ersten Befehlen zugeordnet sind, in einen ersten Löschblock in einer ersten Zone der Vielzahl von Zonen; Aktualisieren der ersten logisch-zu-physischen Adresstabelle, die in der flüchtigen Speicherungseinheit gespeichert ist, wobei das Aktualisieren der ersten logisch-zu-physischen Tabelle das Zuordnen eines Zeigers zu der ersten Zone und den ersten Daten umfasst; Empfangen eines Lesebefehls zum Lesen der ersten Daten; Identifizieren einer ersten logischen Blockadresse der ersten Daten; Lesen des Zeigers, der der ersten Zone zugeordnet ist, um zu bestimmen, dass die ersten Daten innerhalb der ersten Zone gespeichert werden; Berechnen eines Offsets von Löschblöcken, um zu bestimmen, dass die ersten Daten in dem ersten Löschblock gespeichert werden; und Berechnen eines Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks, um die ersten Daten zu finden.
  9. Speicherungsvorrichtung gemäß Anspruch 8, wobei die Steuerung weiterhin eingerichtet ist zum: sequenziellen Schreiben zweiter Daten, die einem oder mehreren zweiten Befehlen zugeordnet sind, in einen zweiten Löschblock in der ersten Zone; Aktualisieren der ersten logisch-zu-physischen Adresstabelle, die in der flüchtigen Speicherungseinheit gespeichert ist, wobei das Aktualisieren der logisch-zu-physischen Tabelle das Zuordnen des Zeigers zu der ersten Zone und den zweiten Daten umfasst; Identifizieren einer zweiten logischen Blockadresse der zweiten Daten; Lesen des Zeigers, der der ersten Zone zugeordnet ist, um zu bestimmen, dass die zweiten Daten innerhalb der ersten Zone gespeichert werden; Berechnen eines Offsets von Löschblöcken, um zu bestimmen, dass die zweiten Daten in dem zweiten Löschblock gespeichert werden; und Berechnen eines Offsets von Seiten und Wortleitungen innerhalb des zweiten Löschblocks, um die zweiten Daten zu finden.
  10. Speicherungsvorrichtung gemäß Anspruch 8, wobei die erste logisch-zu-physische Tabelle einen Zeiger pro Zone speichert und wobei jeder Zeiger auf eine erste oder anfängliche physische Adresse jeder Zone zeigt oder sie angibt.
  11. Speicherungsvorrichtung gemäß Anspruch 8, wobei der nichtflüchtige Speicher weiterhin einen nicht-gezonten Namensraum aufweist, und wobei die flüchtige Speicherungseinheit eine zweite logisch-zu-physische Adresstabelle für den nicht-gezonten Namensraum speichert.
  12. Speicherungsvorrichtung gemäß Anspruch 8, wobei das Berechnen des Offsets von Löschblöcken das Scannen der in der ersten logisch-zu-physischen Tabelle gespeicherten logischen Blockadressen nach Löschblockgröße umfasst, und wobei das Berechnen des Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks das Scannen der in der ersten logisch-zu-physischen Tabelle gespeicherten logischen Blockadressen nach Seitengröße und Wortleitungsgröße umfasst.
  13. Speicherungsvorrichtung gemäß Anspruch 8, wobei die flüchtige Speicherungseinheit eine dritte logisch-zu-physische Tabelle speichert.
  14. Speicherungsvorrichtung gemäß Anspruch 13, wobei die erste logisch-zu-physische Tabelle Zeiger für die erste Zone und eine oder mehrere erste Zonen mit einer ersten Kapazität aufweist und die dritte logisch-zu-physische Tabelle Zeiger für eine oder mehrere zweite Zonen mit einer zweiten Kapazität aufweist, die sich von der ersten Kapazität unterscheidet.
  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 jede der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist; eine flüchtige Speicherungseinheit, wobei die flüchtige Speicherungseinheit eine erste logisch-zu-physische Adresstabelle speichert, wobei die erste logisch-zu-physische Adresstabelle logische Blockadressen von Daten einer physischen Adresse des Ortes zuordnet, an dem die Daten in der nichtflüchtigen Speicherungseinheit gespeichert sind; Mittel zum Empfangen eines ersten Lesebefehls zum Lesen erster Daten, die in der nichtflüchtigen Speicherungseinheit gespeichert sind; Mittel zum Identifizieren einer ersten logischen Blockadresse der ersten Daten; Mittel zum Lesen eines Zeigers in der ersten logisch-zu-physischen Tabelle, die einer ersten Zone der Vielzahl von Zonen zugeordnet ist, um zu bestimmen, dass die ersten Daten in einer ersten Zone der Vielzahl von Zonen gespeichert sind; Mittel zum Berechnen eines Offsets von Löschblöcken, um zu bestimmen, dass die ersten Daten in dem ersten Löschblock gespeichert sind; und Mittel zum Berechnen eines Offsets von Seiten und Wortleitungen innerhalb des ersten Löschblocks, um die ersten Daten zu finden.
  16. Speicherungsvorrichtung gemäß Anspruch 15, wobei das Mittel zum Berechnen des Offsets von Löschblöcken dazu eingerichtet ist, die logischen Blockadressen, die in der ersten logisch-zu-physischen Tabelle gespeichert sind, nach Löschblockgröße zu scannen.
  17. Speicherungsvorrichtung gemäß Anspruch 15, wobei das Mittel zum Berechnen des Offsets von Seiten und Wortleitungen dazu eingerichtet ist, die logischen Blockadressen, die in der ersten logisch-zu-physischen Tabelle gespeichert sind, nach Seitengröße und Wortleitungsgröße zu scannen.
  18. Speicherungsvorrichtung gemäß Anspruch 15, wobei der Zeiger, der der ersten Zone zugeordnet ist, auf eine erste oder anfängliche physische Adresse der ersten Zone zeigt oder sie angibt.
  19. Speicherungsvorrichtung gemäß Anspruch 15, wobei der nichtflüchtige Speicher weiterhin einen nicht-gezonten Namensraum aufweist, und wobei die flüchtige Speicherungseinheit eine zweite logisch-zu-physische Adresstabelle für den nicht-gezonten Namensraum speichert.
  20. Speicherungsvorrichtung gemäß Anspruch 15, wobei die Steuerung dazu eingerichtet ist, zu verfolgen, welche Löschblöcke sich innerhalb jeder Zone befinden und wie viele logische Blockadressen sich innerhalb jedes Löschblocks befinden.
DE112020005180.3T 2020-04-28 2020-12-15 Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen Pending DE112020005180T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/861,068 2020-04-28
US16/861,068 US11200162B2 (en) 2020-04-28 2020-04-28 Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
PCT/US2020/065159 WO2021221727A1 (en) 2020-04-28 2020-12-15 Condensing logical to physical table pointers in ssds utilizing zoned namespaces

Publications (1)

Publication Number Publication Date
DE112020005180T5 true DE112020005180T5 (de) 2022-09-22

Family

ID=78222318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005180.3T Pending DE112020005180T5 (de) 2020-04-28 2020-12-15 Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen

Country Status (4)

Country Link
US (1) US11200162B2 (de)
CN (1) CN114730598A (de)
DE (1) DE112020005180T5 (de)
WO (1) WO2021221727A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058224A (ko) * 2020-10-30 2022-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법
KR20220060372A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US20220318157A1 (en) * 2021-04-01 2022-10-06 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
US20220382668A1 (en) * 2021-05-28 2022-12-01 Advantest Corporation Systems and methods for concurrent and automated testing of zoned namespace solid state drives
TWI813362B (zh) * 2022-06-30 2023-08-21 群聯電子股份有限公司 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元
CN115273274A (zh) * 2022-07-28 2022-11-01 中国第一汽车股份有限公司 数据记录方法、装置、电子设备及存储介质
US11921641B1 (en) 2022-08-31 2024-03-05 Western Digital Technologies, Inc. Address translation for zoned namespace nonvolatile memory using a compacted logical-to-physical table
CN117075810A (zh) * 2023-08-18 2023-11-17 武汉麓谷科技有限公司 一种基于zns固态硬盘的数据管理方法
CN117406933B (zh) * 2023-12-12 2024-03-29 深圳大普微电子股份有限公司 固态硬盘数据处理方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1746510A4 (de) 2004-04-28 2008-08-27 Matsushita Electric Ind Co Ltd Nichtflüchtige speichereinrichtung und datenschreibverfahren
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8612666B2 (en) * 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
KR101861545B1 (ko) 2012-01-02 2018-05-29 삼성전자주식회사 저장 장치의 데이터 관리 방법
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
CN111984441B (zh) * 2019-05-21 2023-09-22 慧荣科技股份有限公司 瞬间断电回复处理方法及装置以及计算机可读取存储介质

Also Published As

Publication number Publication date
CN114730598A (zh) 2022-07-08
US20210334203A1 (en) 2021-10-28
WO2021221727A1 (en) 2021-11-04
US11200162B2 (en) 2021-12-14

Similar Documents

Publication Publication Date Title
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
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
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE102021115858A1 (de) Tlc-datenprogrammierung mit hybrid-parität
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE112020005078T5 (de) Verschieben von änderungsprotokolltabellen zum abstimmen mit zonen
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE102021115893A1 (de) EFFIZIENTE DATENSPEICHERUNGSNUTZUNG IM ZUSAMMENHANG MIT EINEM NICHT ORDNUNGSGEMÄßEN HERUNTERFAHREN
DE102021115500A1 (de) Hostverwaltete hardwarekomprimierung mit gezonten namensräumen
DE102019133167A1 (de) Optimierte Handhabung mehrerer Kopien im Speichermanagment
DE112020005096T5 (de) Gewichtung von lesebefehlen an zonen in speicherungsvorrichtungen

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

R083 Amendment of/additions to inventor(s)