DE102020107659A1 - Zonenbildung für gezonte namensräume - Google Patents

Zonenbildung für gezonte namensräume Download PDF

Info

Publication number
DE102020107659A1
DE102020107659A1 DE102020107659.2A DE102020107659A DE102020107659A1 DE 102020107659 A1 DE102020107659 A1 DE 102020107659A1 DE 102020107659 A DE102020107659 A DE 102020107659A DE 102020107659 A1 DE102020107659 A1 DE 102020107659A1
Authority
DE
Germany
Prior art keywords
zone
dies
available
die
erase block
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
DE102020107659.2A
Other languages
English (en)
Inventor
Alan D. Bennett
Liam Parker
Daniel L. Helmick
Sergey Anatolievich Gorobets
Peter Grayson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102020107659A1 publication Critical patent/DE102020107659A1/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speichervorrichtungen. Die Speichervorrichtung weist eine Steuerung und eine Medieneinheit auf. Die Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, und jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf. Die Steuerung ist dazu eingerichtet, ein geschätztes Alter eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter auszuwählen, um eine erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.

Description

  • RÜCKVERWEISUNG AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorteil der vorläufigen US Patentanmeldung mit der Seriennummer 62/868.785, eingereicht am 28. Juni 2019, welche hierin durch Bezugnahme aufgenommen ist.
  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich allgemein auf Speichervorrichtungen, wie zum Beispiel Solid-State-Laufwerke (SSDs).
  • Beschreibung des Stands der Technik
  • Speichervorrichtungen, wie z. B. 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. Sobald die Daten auf einen oder mehrere Löschblöcke programmiert sind, kann der Löschblock gelöscht oder geleert werden, in einen freien Pool von Löschblöcken zurückgegeben und dann wieder mit Daten neu programmiert werden.
  • Jeder Programm-Löschzyklus der Löschblöcke erhöht jedoch das Alter und die Abnutzungsmenge auf den Löschblöcken, wodurch die Retentionsfähigkeit und die Dauerhaftigkeit der Löschblöcke möglicherweise verringert und die Bitfehlerrate der Daten erhöht wird. Ein oder mehrere Löschblöcke können öfter als andere Löschblöcke ausgewählt werden, was dazu führen kann, dass die stark beanspruchten Löschblöcke unbrauchbar, beschädigt und/oder für die Speicherung von Daten nicht verfügbar werden.
  • Daher ist ein neues Verfahren zum Betrieb einer Speichervorrichtung erforderlich, welches das Alter und die Abnutzung der Löschblöcke minimiert.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speichervorrichtungen. Die Speichervorrichtung weist eine Steuerung und eine Medieneinheit auf. Die Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, und jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf. Die Steuerung ist dazu eingerichtet, ein geschätztes Alter eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere der ersten verfügbaren Löschblöcke von einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter auszuwählen, um eine erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • In einer Ausführungsform weist eine Speichervorrichtung eine Medieneinheit auf. Eine Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speichervorrichtung weist weiterhin eine Steuerung auf, die mit der Medieneinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, ein geschätztes Alter eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere der ersten verfügbaren Löschblöcke von einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter auszuwählen, um eine erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • In einer anderen Ausführungsform weist eine Speichervorrichtung eine Medieneinheit auf. Eine Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speichervorrichtung weist weiterhin eine mit der Medieneinheit gekoppelte Steuerung auf, wobei die Steuerung dazu eingerichtet ist, eine erste Zone von einem leeren Zustand in einen aktiven Zustand zu schalten, ein geschätztes Alter eines ersten verfügbaren Löschblocks in einem freien Pool von jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere erste Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus dem freien Pool von einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter zu entfernen, um die erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen, um in dem freien Pool des mindestens einen Dies zu verbleiben. Die Speichervorrichtung ist weiterhin dazu eingerichtet, eine zweite Zone vom leeren Zustand in den aktiven Zustand zu schalten, das geschätzte Alter des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere zweite Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies zu entfernen, basierend auf dem geschätzten Alter, um die zweite Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die der Vielzahl von Dies wird aus der zweiten Zone ausgeschlossen, um in dem freien Pool des mindestens einen Dies zu verbleiben.
  • In einer anderen Ausführungsform weist ein Verfahren zum Bilden einer oder mehrerer Zonen für eine Speichervorrichtung das Schalten einer ersten Zone von einem leeren Zustand in einen aktiven Zustand auf. Die Speichervorrichtung weist eine Vielzahl von Dies auf, und jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf. Das Verfahren weist weiterhin das Vergleichen eines geschätzten Alters eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander auf und das Auswählen eines oder mehrerer der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um die erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • Figurenliste
  • Zur Verdeutlichung der Art und Weise, wie die vorstehend dargelegten Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung 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 Speichersystem gemäß einer Ausführungsform veranschaulicht.
    • 2 veranschaulicht ein Speichersystem umfassend eine Speichervorrichtung, die mit einer Hostvorrichtung gemäß einer anderen Ausführungsform gekoppelt ist.
    • 3 ist ein Blockdiagramm, das ein Verfahren zum Betrieb einer Speichervorrichtung zur Ausführung eines Lese- oder Schreibbefehls gemäß einer Ausführungsform veranschaulicht.
    • 4A veranschaulicht eine Ansicht der in einer Speichervorrichtung verwendeten gezonten Namensräume gemäß einer Ausführungsform.
    • 4B veranschaulicht ein Zustandsdiagramm für die gezonten Namensräume der Speichervorrichtung aus 4A gemäß einer Ausführungsform.
    • 5 veranschaulicht eine Zone, die aus einer Vielzahl von Löschblöcken besteht, ausgewählt aus einer Vielzahl von Dies gemäß einer Ausführungsform.
    • 6A veranschaulicht gemäß einer Ausführungsform eine Vielzahl von Einzelebenen-Dies, von denen jeder eine Vielzahl von Löschblöcken aufweist, die zur Bildung einer Vielzahl von Zonen verwendet werden.
    • 6B veranschaulicht eine Tabelle, die anzeigt, welche Löschblöcke aus welchen Dies verwendet werden, um jede Zone aus 6A zu bilden.
    • 7A-7C veranschaulichen beispielhafte Ausführungsformen von Zonen, die aus einer Vielzahl von Löschblöcken bestehen, die aus einer Vielzahl von Dies ausgewählt wurden.
  • 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 Aufzählung vorteilhaft auf andere Ausführungsformen angewendet werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf die Ausführungsformen der Offenbarung verwiesen. Es sollte jedoch verstanden werden, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Umsetzung und Praxis der Offenbarung in Betracht gezogen. Auch wenn Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder dem Stand der Technik erzielen können, bedeutet die Tatsache, ob durch eine bestimmte Ausführungsform ein besonderer Vorteil erzielt wird oder nicht, keine Einschränkung der Offenbarung. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beigefügten Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen erwähnt. Ebenso 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 wird ausdrücklich in einem Anspruch bzw. in Ansprüchen angegeben.
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren zum Betrieb von Speichervorrichtungen. Die Speichervorrichtung weist eine Steuerung und eine Medieneinheit auf. Die Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, und jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf. Die Steuerung ist dazu eingerichtet, ein geschätztes Alter eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter auszuwählen, um eine erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • 1 ist ein schematisches Blockdiagramm zur Veranschaulichung eines Speichersystems 100, in dem die Speichervorrichtung 106 als Speichervorrichtung für eine Hostvorrichtung 104 gemäß einer oder mehreren Techniken dieser Offenbarung fungieren kann. Zum Beispiel kann die Hostvorrichtung 104 zum Speichern und Abrufen von Daten nichtflüchtige Speichervorrichtungen 110 benutzen, die in der Speichervorrichtung 106 eingeschlossen sind. Die Hostvorrichtung 104 weist einen Host DRAM 138 auf. In einigen Beispielen kann das Speichersystem 100 eine Vielzahl von Speichervorrichtungen einschließen, wie die Speichervorrichtung 106, die als Speicheranordnung arbeiten kann. Zum Beispiel kann das Speichersystem 100 eine Vielzahl von Speichervorrichtungen 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 Speichervorrichtungen, wie der Speichervorrichtung 106, speichern und/oder abrufen kann. Wie in 1 veranschaulicht, kann die Hostvorrichtung 104 über eine Schnittstelle 114 mit der Speichervorrichtung 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 Speichervorrichtung 106 schließt eine Steuerung 108, einen nichtflüchtigen Speicher 110 (NVM 110), eine Stromversorgung 111, einen flüchtigen Speicher 112 und eine Schnittstelle 114 ein. Die Steuerung 108 weist einen internen Speicher 120 oder Puffer auf. In einigen Beispielen kann die Speichervorrichtung 106 zusätzliche Komponenten einschließen, die aus Gründen der Übersichtlichkeit nicht in 1 dargestellt sind. Beispielsweise kann die Speichervorrichtung 106 eine Leiterplatte (PB) einschließen, an der Komponenten der Speichervorrichtung 106 mechanisch angebracht sind und die elektrisch leitende Leiterbahnen enthält, die Komponenten der Speichervorrichtung 106 oder dergleichen elektrisch miteinander verbinden. In einigen Beispielen können die physischen Abmessungen und Anschlusskonfigurationen der Speichervorrichtung 106 einem oder mehreren Standardformfaktoren entsprechen. Einige Beispiele für Standardformfaktoren umfassen unter anderem eine 3,5-Zoll-Datenspeichervorrichtung (z. B. eine Festplatte oder SSD), eine 2,5-Zoll-Datenspeichervorrichtung, eine 1,8-Zoll-Datenspeichervorrichtung, eine Peripheriekomponentenverbindung (PCI), PCI-Extended (PCl-X), PCI Express (PCle) (z. B. PCle x1, x4, x8, x16, PCle Mini Card, MiniPCI usw.). In einigen Beispielen kann die Speichervorrichtung 106 direkt mit einer Hauptplatine der Hostvorrichtung 104 gekoppelt (z. B. direkt verlötet) sein.
  • Die Schnittstelle 114 der Speichervorrichtung 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 in Übereinstimmung mit einem geeigneten Protokoll betrieben werden. 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), Serial Attached SCSI (SAS), PCI und PCle, Non-Volatile Memory Express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), 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 Speichervorrichtung 106 durch die elektrische Verbindung der Schnittstelle 114 auch Strom von der Hostvorrichtung 104 beziehen. Wie beispielsweise in 1 veranschaulicht, kann die Stromversorgung 111 über die Schnittstelle 114 Strom von der Hostvorrichtung 104 empfangen.
  • Die Speichervorrichtung 106 schließt NVM 110 ein, der eine Vielzahl von Speichervorrichtungen oder Medieneinheiten einschließen kann. NVM 110 kann konfiguriert sein, um Daten zu speichern und/oder abzurufen. Beispielsweise kann eine Medieneinheit des NVM 110 Daten und eine Nachricht von der Steuerung 108 empfangen, mit der die Medieneinheit zum Speichern der Daten angewiesen wird. In ähnlicher Weise kann die Medieneinheit des NVM 110 eine Nachricht von der Steuerung 108 empfangen, mit der die Medieneinheit zum Abrufen von Daten angewiesen wird. In einigen Beispielen kann jede der Medieneinheiten als ein Die bezeichnet werden. In einigen Beispielen kann ein einzelner physikalischer Chip eine Vielzahl von Dies (d. h. eine Vielzahl von Medieneinheiten) einschließen. In einigen Beispielen kann jede Medieneinheit zum Speichern relativ großer Datenmengen eingerichtet werden (z. B. 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.).
  • In einigen Beispielen kann jede Medieneinheit des NVM 110 jede Art von nichtflüchtigen Speichervorrichtungen einschließen, wie z. B. Flash-Speichervorrichtungen, Phasenwechselspeicher-Vorrichtungen (PCM-Vorrichtung), resistive Direktzugriffsspeichervorrichtungen (ReRAM-Vorrichtung), magnetoresistive Direktzugriffsspeichervorrichtungen (M RAM-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 Medieneinheiten aufweisen. Flash-Speichervorrichtungen können NAND- oder NOR-basierte Flash-Speichervorrichtungen einschließen und können Daten basierend auf einer Ladung speichern, die in einem Floating Gate eines Transistors für jede Flash-Speicherzelle enthalten ist. In NAND-Flash-Speichervorrichtungen kann die Flash-Speichervorrichtung in eine Vielzahl von Blöcken unterteilt werden, die in eine Vielzahl von Seiten unterteilt werden können. Jeder Block der Vielzahl von Blöcken innerhalb einer bestimmten Speichervorrichtung kann eine Vielzahl von NAND-Zellen einschließen. Reihen von NAND-Zellen können unter Verwendung einer Wortleitung elektrisch verbunden werden, um eine Seite aus einer Vielzahl von Seiten zu definieren. Entsprechende Zellen in jeder der Vielzahl von Seiten können elektrisch mit den entsprechenden Bitleitungen verbunden sein. Ferner 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. Der Controller 108 kann Daten in und aus NAND-Flash-Speichervorrichtungen auf Seitenebene schreiben und lesen und Daten aus NAND-Flash-Speichervorrichtungen auf Blockebene löschen.
  • Die Speichervorrichtung 106 schließt eine Stromversorgung 111 ein, die eine oder mehrere Komponenten der Speichervorrichtung 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. Beispielsweise kann die Stromversorgung 111 die eine oder mehrere 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 Energiespeicherkomponenten einschließen, die eingerichtet sind, um die eine oder die mehreren Komponenten mit Strom zu versorgen, wenn sie in einem Abschaltmodus betrieben werden, z. B. wenn kein Strom mehr von der externen Vorrichtung empfangen wird. Auf diese Weise kann die Stromversorgung 111 als integrierte Backup-Stromversorgung fungieren. Einige Beispiele für die eine oder die mehreren Energiespeicherkomponenten 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 Energiespeicherkomponenten gespeicherte Energiemenge eine Funktion der Kosten und/oder der Größe (z. B. Fläche / Volumen) der einen oder mehreren Energiespeicherkomponenten sein. Das heißt, wenn die von einer oder mehreren Energiespeicherkomponenten gespeicherte Energiemenge zunimmt, steigen auch die Kosten und/oder die Größe der einen oder mehreren Energiespeicherkomponenten.
  • Die Speichervorrichtung 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 Speicher 112 speichern, bis die zwischengespeicherten Informationen in den nichtflüchtigen Speicher 110 geschrieben werden. Wie in 1 veranschaulicht, kann der flüchtige Speicher 112 den von der Stromversorgung 111 empfangenen Strom verbrauchen. Beispiele für flüchtigen Speicher 112 schließen ein, sind aber nicht beschränkt auf Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4 und dergleichen)).
  • Die Speichervorrichtung 106 schließt eine Steuerung 108 ein, die eine oder mehrere Operationen der Speichervorrichtung 106 verwalten kann. Beispielsweise kann die Steuerung 108 das Lesen von Daten von und/oder das Schreiben von Daten in den NVM 110 verwalten. In einigen Ausführungsformen kann die Steuerung 108, wenn die Speichervorrichtung 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 Speichervorrichtung 106 einen Schreibbefehl von der Hostvorrichtung 104 empfängt, die mit dem Schreibbefehl verbundenen Daten vorübergehend im internen Speicher 120, bevor die Daten an den NVM 110 gesendet werden.
  • 2 veranschaulicht ein Speichersystem 200 umfassend eine Speichervorrichtung 206, die mit einer Hostvorrichtung 204 gemäß einer anderen Ausführungsform gekoppelt ist. Speichersystem 200 kann das Speichersystem 100, die Hostvorrichtung 104 und die Speichervorrichtung 106 aus 1 sein.
  • Die Speichervorrichtung 206 kann Befehle und Daten von der Hostvorrichtung 204 senden und empfangen und weist einen Befehlsprozessor 220 auf. Der Befehlsprozessor 220 kann die Steuerung 108 aus 1 sein. Der Befehlsprozessor 220 kann den Zugriff auf die Speichervorrichtung, wie beispielsweise NAND-Zugriff, planen und ein Lesen auf eine Speichervorrichtung durchführen, bevor ein zuvor empfangener Befehl ein Schreiben auf dieselbe Speichervorrichtung erfordert. Der Befehlsprozessor 220 ist mit einer oder mehreren Speichervorrichtungen 228 und einem Befehlsabruf 222 gekoppelt. Die eine oder mehreren Speichervorrichtungen 228 können nichtflüchtige NAND-Speichervorrichtungen sein. Der Befehlsabruf 222 ist mit einer Arbitrierung der Übertragungswarteschlange 224 gekoppelt. Die Arbitrierung der Übertragungswarteschlange 224 ist mit einem oder mehreren Kopf- und Endzeigern der Übertragungswarteschlange 226 gekoppelt.
  • Die Hostvorrichtung 204 besteht aus einer oder mehreren Host-Softwareanwendungen 232, die mit einer oder mehreren Verarbeitungseinheiten oder CPU-Anwendungen 234 gekoppelt sind. In einer Ausführungsform hat die Softwareanwendung 232 eine begrenzte Warteschlangentiefe für Solid-State-Laufwerke, um eine Latenz der QoS für jeden Benutzer des Systems 200 abzuleiten. Die Hostvorrichtung 204 weist ferner ein Betriebssystem (OS) oder eine Softwareanwendung 240 ohne zugehörige QoS aus. Die CPU 234 ist mit einer Zwischenverbindung 236 und einem Host DRAM 238 gekoppelt. Der Host DRAM 238 kann Daten der Übertragungswarteschlange speichern. Die Zwischenverbindung 236 ist mit der Speichervorrichtung 206 gekoppelt. Die Zwischenverbindung 236 kann sowohl mit den Kopf- und Endzeigern der Übertragungswarteschlange 226 als auch mit dem Befehlsabruf 222 in Verbindung stehen.
  • Die CPU 234 erzeugt einen oder mehrere Befehle 216 zum Senden an die Speichervorrichtung 206 und kann über das Befehlsabrufsignal 244 Befehle von der Speichervorrichtung 206 senden und empfangen. Die CPU 234 kann weiterhin eine Unterbrechung oder Türklingel 218 an die Speichervorrichtung 206 senden, um die Speichervorrichtung 206 über einen oder mehrere Befehle 216 zu informieren. Die CPU 234 kann die an die Speichervorrichtung 206 übermittelte Daten-Warteschlangentiefe begrenzen. Warteschlangentiefe (QD) ist die maximale Anzahl von Befehlen, die an die Speichervorrichtung 206 angehängt werden, und Daten-QD ist die Datenmenge, die den an eine QD angehängten Befehlen zugeordnet ist. In einer Ausführungsform entspricht die Daten-QD 242 der Speichervorrichtung 206 der Bandbreite der Speichervorrichtung 206. Die Daten-QD 242 ist auf die höchste Ebene beschränkt, unter der die Speichervorrichtung 206 noch eine gewünschte Latenz-QoS aufrechterhalten kann. Der Befehlsprozessor 220 verarbeitet dann die von der Hostvorrichtung 204 empfangenen Befehle.
  • 3 ist ein Blockdiagramm, das ein Verfahren 300 zum Betrieb einer Speichervorrichtung zum Ausführen eines Lese- oder Schreibbefehls gemäß einer Ausführungsform veranschaulicht. Verfahren 300 kann mit dem Speichersystem 100 mit einer Hostvorrichtung 104 und einer Speichervorrichtung 106 verwendet werden, die eine Steuerung 108 aufweist. Das Verfahren 300 kann ferner mit dem Speichersystem 200 mit einer Hostvorrichtung 204 und einer Speichervorrichtung 206 verwendet werden, die einen Befehlsprozessor 220 aufweist.
  • Verfahren 300 beginnt bei der Operation 350, bei der die Hostvorrichtung einen Befehl als Eintrag in eine Übertragungswarteschlange schreibt. Die Hostvorrichtung kann bei Operation 350 einen oder mehrere Befehle in die Übertragungswarteschlange schreiben. Die Befehle können Lese- oder Schreibbefehle sein. Die Hostvorrichtung kann eine oder mehrere Übertragungswarteschlangen umfassen.
  • In Operation 352 schreibt die Hostvorrichtung einen oder mehrere aktualisierte Endzeiger der Übertragungswarteschlange und läutet eine Türklingel oder sendet ein Unterbrechungssignal, um die Speichervorrichtung über den neuen Befehl zu benachrichtigen oder zu signalisieren, der zur Ausführung bereit ist. Das Türklingelsignal kann die Türklingel 218 aus 2 sein. Der Host kann einen aktualisierten Endzeiger der Übertragungswarteschlange schreiben und bei mehr als einer Übertragungswarteschlange für jede der Übertragungswarteschlangen ein Türklingel- oder Unterbrechungssignal senden. In Operation 354 ruft eine Steuerung der Speichervorrichtung als Reaktion auf das Empfangen des Türklingel- oder Unterbrechungssignals den Befehl aus der einen oder den mehreren Übertragungswarteschlangen ab, und die Steuerung empfängt den Befehl.
  • In Operation 356 verarbeitet die Steuerung den Befehl und schreibt oder überträgt die mit dem Befehl verbundenen Daten in den Speicher der Hostvorrichtung. Die Steuerung kann mehr als einen Befehl gleichzeitig verarbeiten. Die Steuerung kann einen oder mehrere Befehle in der Übertragungsreihenfolge oder in der sequentiellen Reihenfolge verarbeiten. Die Verarbeitung eines Schreibbefehls kann die Identifizierung einer Zone zum Schreiben der mit dem Befehl verbundenen Daten, das Schreiben der Daten in eine oder mehrere LBA der Zone und das Vorrücken eines Schreibzeigers der Zone zur Identifizierung der nächsten verfügbaren LBA innerhalb der Zone aufweisen.
  • In Operation 358 schreibt die Steuerung, sobald der Befehl vollständig verarbeitet wurde, einen dem ausgeführten Befehl entsprechenden Beendigungseintrag in eine Beendigungswarteschlange der Hostvorrichtung und bewegt oder aktualisiert den CQ-Kopfzeiger, um auf den neu geschriebenen Beendigungseintrag zu zeigen.
  • In Operation 360 erzeugt und sendet die Steuerung ein Unterbrechungssignal oder eine Türklingel an die Hostvorrichtung. Das Unterbrechungssignal zeigt an, dass der Befehl ausgeführt wurde und die mit dem Befehl verbundenen Daten in der Speichervorrichtung verfügbar sind. Das Unterbrechungssignal benachrichtigt weiterhin die Hostvorrichtung, dass die Beendigungswarteschlange bereit ist, gelesen oder verarbeitet zu werden.
  • In Operation 362 verarbeitet die Hostvorrichtung den Beendigungseintrag. In Operation 364 schreibt die Hostvorrichtung einen aktualisierten CQ-Kopfzeiger in die Speichervorrichtung und läutet die Türklingel oder sendet ein Unterbrechungssignal an die Speichervorrichtung, um den Beendigungseintrag freizugeben.
  • 4A veranschaulicht gemäß einer Ausführungsform eine Ansicht der gezonten Namensräume (Zoned Namespaces, ZNS) 402, die in einer Speichervorrichtung 400 verwendet werden. Die Speichervorrichtung 400 kann die Ansicht der ZNS 402 einer Hostvorrichtung präsentieren. 4B veranschaulicht ein Zustandsdiagramm 450 für die ZNS 402 der Speichervorrichtung 400 gemäß einer Ausführungsform. Die Speichervorrichtung 400 kann die Speichervorrichtung 106 des Speichersystems 100 aus 1 oder die Speichervorrichtung 206 des Speichersystems 200 aus 2 sein. Die Speichervorrichtung 400 kann einen oder mehrere ZNS 402 aufweisen, und jeder ZNS 402 kann unterschiedliche Größen aufweisen. Die Speichervorrichtung 400 kann weiterhin einen oder mehrere herkömmliche Namensräume zusätzlich zu dem einen oder den mehreren gezonten Namensräumen 402 aufweisen. Darüber hinaus kann der ZNS 402 ein Zoned Block Command (ZBC) für SAS und/oder ein Zoned-Device ATA Command Set (ZAC) für SATA sein.
  • In der Speichervorrichtung 400 ist der ZNS 402 die Menge an NVM, die in Logikblöcke formatiert werden kann, so dass die Kapazität in eine Vielzahl von Zonen 406a-406n (zusammenfassend als Zonen 406 bezeichnet) unterteilt wird. Jede der Zonen 406 weist eine Vielzahl von physikalischen oder Löschblöcken (nun gezeigt) einer Medieneinheit oder eines NVM 404 auf und jedem der Löschblöcke ist eine Vielzahl von Logikblöcken (nicht gezeigt) zugeordnet. Wenn die Steuerung 408 einen Befehl empfängt, wie z. B. von einer (nicht dargestellten) Hostvorrichtung oder der Übertragungswarteschlange einer Hostvorrichtung, kann die Steuerung 408 Daten von der Vielzahl von Logikblöcken lesen und Daten in diese schreiben, die mit der Vielzahl von Löschblöcken der ZNS 402 verbunden sind. Jeder der Logikblöcke ist einer eindeutigen LBA oder einem Sektor zugeordnet.
  • In einer Ausführungsform ist der NVM 404 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 kB pro Seite). Außerdem kann auf jede Seite mit einer Granularität zugegriffen werden, die gleich oder kleiner als die volle Seite ist. Eine Steuerung kann häufig in Benutzerdatengranularität-LBA-Größen von 512 Bytes auf NAND zugreifen. Somit sind, wie durchgehend erwähnt, NAND-Stellen gleich einer Granularität von 512 Bytes. Als solche ergibt eine LBA-Größe von 512 Bytes und eine Seitengröße von 16 kB für zwei Seiten eines MCL-NAND etwa 16 NAND-Stellen pro Wortleitung. Die Größe der NAND-Stelle ist jedoch nicht als Einschränkung gedacht und wird lediglich als nicht einschränkendes Beispiel verwendet.
  • Wenn Daten in einen Löschblock geschrieben werden, werden ein oder mehrere Logikblöcke entsprechend innerhalb einer Zone 406 aktualisiert, um zu verfolgen, wo sich die Daten innerhalb des NVM 404 befinden. Daten können zu einem Zeitpunkt in eine Zone 406 geschrieben werden, bis eine Zone 406 voll ist, oder in mehrere Zonen 406, so dass mehrere Zonen 406 teilweise gefüllt sein können. In ähnlicher Weise können beim Schreiben von Daten in eine bestimmte Zone 406 Daten blockweise gleichzeitig, in sequentieller Reihenfolge der NAND-Stellen, Seite für Seite oder Wortleitung für Wortleitung in die Vielzahl der Löschblöcke geschrieben werden, bis zu einem benachbarten Block gewechselt wird (d. h. Schreiben in einen ersten Löschblock, bis der erste Löschblock voll ist, bevor zum zweiten Löschblock gewechselt wird) oder in mehrere Blöcke gleichzeitig, in sequentieller Reihenfolge der NAND-Stellen, Seite für Seite oder Wortleitung für Wortleitung, um jeden Block teilweise in einer stärker 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).
  • Jede der Zonen 406 ist einer Zonenstart-Logikblockadresse (ZSLBA) zugeordnet. Die ZSLBA ist die erste verfügbare LBA in der Zone 406. Zum Beispiel ist die erste Zone 406a ZaSLBA zugeordnet, die zweite Zone 406b ist ZbSLBA zugeordnet, die dritte Zone 406c ist ZcSLBA zugeordnet, die vierte Zone 406d ist ZdSLBA zugeordnet und die nte Zone 406n (d. h. die letzte Zone) ist ZnSLBA zugeordnet. Jede Zone 406 wird durch ihre ZSLBA identifiziert und ist dazu eingerichtet, sequentielle 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 406 geschrieben werden, wird ein Schreibzeiger 410 vorgerückt oder aktualisiert, um auf den nächsten verfügbaren Block in der Zone 406 zu zeigen oder diesen anzuzeigen, in den Daten geschrieben werden sollen, um den nächsten Schreibstartpunkt zu verfolgen (d. h. der Beendigungspunkt des vorherigen Schreibvorgangs entspricht dem Startpunkt eines nachfolgenden Schreibvorgangs). Somit zeigt der Schreibzeiger 410 an, wo der nachfolgende Schreibvorgang in die Zone 406 beginnen wird. Nachfolgende Schreibbefehle sind ‚Zonenanhang‘-Befehle, bei denen die mit dem nachfolgenden Schreibbefehl verbundenen Daten an die Zone 406 an der Stelle angehängt werden, die der Schreibzeiger 410 als nächsten Startpunkt angibt. Eine geordnete Liste von LBAs innerhalb der Zone 406 kann für die Schreibreihenfolge gespeichert werden. Jede Zone 406 kann ihren eigenen Schreibzeiger 410 haben. Wenn somit ein Schreibbefehl empfangen wird, wird eine Zone 406 durch ihre ZSLBA identifiziert, und der Schreibzeiger 410 bestimmt, wo der Schreibvorgang der Daten innerhalb der identifizierten Zone 406 beginnt.
  • 4B veranschaulicht ein Zustandsdiagramm 450 für den ZNS 402 aus 4A. In dem Zustandsdiagramm 450 kann jede Zone in einem anderen Zustand sein, wie z. B. leer, aktiv, voll oder offline. Wenn eine Zone leer ist, ist die Zone frei von Daten (d. h. keiner der Löschblöcke in der Zone speichert gegenwärtig Daten) und der Schreibzeiger befindet sich auf der ZSLBA (d. h. WP=0). Eine leere Zone schaltet in eine offene und aktive Zone um, sobald ein Schreibvorgang in die Zone eingeplant ist oder wenn ein Zonenöffnungsbefehl durch den Host ausgegeben wird. Die Zonenverwaltungsbefehle (ZM-Befehle) können verwendet werden, um eine Zone zwischen den Zuständen „Zone offen“ und „Zone geschlossen“ zu bewegen, die beide aktive Zustände sind. Wenn eine Zone aktiv ist, weist die Zone offene Blöcke auf, die beschrieben werden können, und dem Host kann eine Beschreibung der empfohlenen Zeit im aktiven Zustand durch die ZM oder die Steuerung bereitgestellt werden. Die Steuerung kann die ZM aufweisen.
  • Der Begriff „beschrieben“ schließt das Programmieren von Benutzerdaten auf 0 oder mehr Wortleitungen in einem Löschblock, das Löschen und/oder teilweise gefüllte Wortleitungen in einem Löschblock ein, wenn die Benutzerdaten nicht alle verfügbaren Wortleitungen gefüllt haben. Der Begriff „beschrieben“ kann weiterhin das Schließen einer Zone aufgrund interner Laufwerksbehandlungsanforderungen (Bedenken hinsichtlich der Datenhaltung in offenen Blöcken, da sich die fehlerhaften Bits bei offenen Löschblöcken schneller anhäufen), das Schließen einer Zone durch die Speichervorrichtung 400 aufgrund von Ressourcenbeschränkungen, wie zu viele offene Zonen, um den Defektzustand zu verfolgen oder zu entdecken, u. a., oder das Schließen einer Zone durch eine Hostvorrichtung aufgrund von Bedenken, wie z. B. das Fehlen von Daten zum Senden an das Laufwerk, das Herunterfahren des Computers, die Fehlerbehandlung auf dem Host, begrenzte Host-Ressourcen für die Verfolgung u. a., einschließen.
  • Die aktiven Zonen können entweder offen oder geschlossen sein. Eine offene Zone ist eine leere oder teilweise gefüllte Zone, die bereit ist, beschrieben zu werden, und weist gegenwärtig zugewiesene Ressourcen auf. Die Daten, die von der Hostvorrichtung mit einem Schreibbefehl oder Zonenanhangbefehl empfangen werden, können auf einen offenen Löschblock programmiert werden, der gegenwärtig nicht mit früheren Daten gefüllt ist. Neue Daten, die von der Hostvorrichtung gezogen werden oder gültige Daten, die verlagert werden, können in eine offene Zone geschrieben werden. Gültige Daten können zum Zweck der Speicherbereinigung von einer Zone (z. B. der ersten Zone 402a) in eine andere Zone (z. B. die dritte Zone 402c) verschoben werden. Eine geschlossene Zone ist eine leere oder teilweise gefüllte Zone, die derzeit nicht fortlaufend vom Host beschrieben wird. Der Wechsel einer Zone von einem offenen Zustand in einen geschlossenen Zustand ermöglicht es der Steuerung 408, Ressourcen anderen Aufgaben neu zuzuweisen. Diese Aufgaben können andere Zonen, die offen sind, andere herkömmliche Nicht-Zonen-Bereiche oder andere Bedürfnisse der Steuerung einschließen, sind aber nicht darauf beschränkt.
  • Sowohl in der offenen als auch in der geschlossenen Zone zeigt der Schreibzeiger auf eine Stelle in der Zone irgendwo zwischen der ZSLBA und dem Ende der letzten LBA der Zone (d. h. WP>0). Aktive Zonen können zwischen dem offenen und dem geschlossenen Zustand wechseln, wenn sie von der ZM bezeichnet werden oder wenn ein Schreiben in die Zone geplant ist. Zusätzlich kann die ZM eine aktive Zone zurücksetzen, um die in der Zone gespeicherten Daten zu leeren oder zu löschen, so dass die Zone wieder auf eine leere Zone umschaltet. Sobald eine aktive Zone voll ist, schaltet die Zone in den vollen Zustand. Eine volle Zone ist eine Zone, die vollständig mit Daten gefüllt ist und keine Blöcke mehr zum Schreiben von Daten zur Verfügung hat (d. h. WP=Zonenkapazität (ZCAP)). Lesebefehle von Daten, die in vollen Zonen gespeichert sind, können weiterhin ausgeführt werden.
  • Die ZM kann eine volle Zone zurücksetzen und eine Löschung der in der Zone gespeicherten Daten planen, so dass die Zone wieder auf eine leere Zone umschaltet. 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 aktiven Zone gelöscht werden. Eine Zone kann jederzeit zwischen einem ZM-Zurücksetzen und einem ZM-Öffnen gelöscht werden. Eine Offline-Zone ist eine Zone, die nicht verfügbar ist, um Daten zu schreiben. Eine Offline-Zone kann sich im vollen Zustand, im leeren Zustand oder in einem teilweise gefüllten Zustand befinden, ohne aktiv zu sein.
  • Da das Zurücksetzen einer Zone die in der Zone gespeicherten Daten löscht oder eine Löschung plant, entfällt die Notwendigkeit der Speicherbereinigung einzelner Löschblöcke, wodurch der gesamte Speicherbereinigungsprozess der Speichervorrichtung 400 verbessert wird. Die Speichervorrichtung 400 kann einen oder mehrere Löschblöcke zum Löschen markieren. Wenn eine neue Zone gebildet wird und die Speichervorrichtung 400 ein ZM-Öffnen erwartet, können der eine oder die mehreren zum Löschen markierten Löschblöcke dann gelöscht werden. Die Speichervorrichtung 400 kann weiterhin die physikalische Sicherung der Zone beim Löschen der Löschblöcke entscheiden und erstellen. Sobald somit die neue Zone geöffnet ist und Löschblöcke zur Bildung der Zone ausgewählt werden, werden die Löschblöcke gelöscht worden sein. Darüber hinaus kann bei jedem Zurücksetzen einer Zone eine neue Reihenfolge für die LBAs und der Schreibzeiger 410 für die Zone 406 gewählt werden, wodurch die Zone 406 tolerant gegenüber dem Empfang von Befehlen außerhalb der sequentiellen Reihenfolge sein kann. Der Schreibzeiger 410 kann optional abgeschaltet werden, so dass ein Befehl in jedwede Start-LBA geschrieben werden kann, die für den Befehl angegeben wird.
  • Unter Rückbezug auf 4A kann die Steuerung 408, wenn die Steuerung 408 einen Schreibbefehl initiiert oder einzieht, eine leere Zone 406 auswählen, um die dem Befehl zugeordneten Daten zu schreiben, und die leere Zone 406 schaltet auf eine aktive Zone 406. Wie hier verwendet, weist das Initiieren, Empfangen oder Einziehen eines Schreibbefehls durch die Steuerung 408 das Empfangen eines Schreibbefehls oder das Lesen per direkten Speicherzugriff (DMA) des Schreibbefehls auf. Der Schreibbefehl kann ein Befehl zum Schreiben neuer Daten oder ein Befehl zum Verschieben gültiger Daten in eine andere Zone zum Zweck der Speicherbereinigung sein. Die Steuerung 408 ist dazu eingerichtet, neue Befehle aus einer von einer Hostvorrichtung besetzten Übertragungswarteschlange per DMA zu lesen oder einzuziehen.
  • In einer leeren Zone 406, die gerade auf eine aktive Zone 406 umgeschaltet wurde, werden die Daten beginnend bei der ZSLBA in die Zone 406 geschrieben, da der Schreibzeiger 410 den mit der ZSLBA zugeordneten Logikblock als den ersten verfügbaren Logikblock anzeigt. Die Daten können in einen oder mehrere Löschblöcke oder NAND-Stellen geschrieben werden, die für die physikalische Stelle der Zone 406 zugewiesen wurden. Nachdem die dem Schreibbefehl zugeordneten Daten in die Zone 406 geschrieben wurden, wird der Schreibzeiger 410 aktualisiert und zeigt auf den nächsten verfügbaren Block in der Zone 406, um den nächsten Schreibstartpunkt (d. h. den Beendigungspunkt des ersten Schreibvorgangs) zu verfolgen. Alternativ kann die Steuerung 408 eine aktive Zone auswählen, um die Daten zu schreiben. In einer aktiven Zone werden die Daten in den Logikblock geschrieben, der durch den Schreibzeiger 410 als der nächste verfügbare Block angezeigt wird.
  • Beispielsweise kann die Steuerung 408 einen ersten Schreibbefehl in eine dritte Zone 406c oder einen ersten Zonenanhangbefehl empfangen oder einziehen. Der Host identifiziert nacheinander, an welchen Logikblock der Zone 406 die dem ersten Befehl zugeordneten Daten zu schreiben sind. Die dem ersten Befehl zugeordneten Daten werden dann in die erste oder nächste(n) verfügbare(n) LBA(s) in der dritten Zone 406c geschrieben, wie durch den Schreibzeiger 410 angezeigt wird, und der Schreibzeiger 410 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 408 einen zweiten Schreibbefehl in die dritte Zone 406c empfängt oder einzieht, werden die dem zweiten Schreibbefehl zugeordneten Daten in die nächste(n) verfügbare(n) LBA(s) in der dritten Zone 406c geschrieben, die durch den Schreibzeiger 410 identifiziert wird. Sobald die dem zweiten Befehl zugeordneten Daten in die dritte Zone 406c geschrieben werden, rückt der Schreibzeiger 410 erneut vor oder wird aktualisiert, um auf die nächste verfügbare LBA zu zeigen, die für einen Host-Schreibvorgang zur Verfügung steht. Durch das Zurücksetzen der Zone 406c wird der Schreibzeiger 410 wieder auf ZcSLBA zurückbewegt (d. h. WP=0), und die Zone 406c schaltet auf eine leere Zone.
  • 5 veranschaulicht eine Zone 500, die aus einer Vielzahl von Löschblöcken 504 besteht, die gemäß einer Ausführungsform aus einer Vielzahl von Dies 502 ausgewählt wurden. Die Zone 500 kann eine Zone 406 der ZNS 402 aus 4A sein. Die Zone 500 kann eine Zone des NVM 110 aus 1 sein, die mit der Steuerung 108 gekoppelt ist.
  • Eine Speichervorrichtung, wie z. B. die Speichervorrichtung 106 aus 1 oder die Speichervorrichtung 206 aus 2, ist mit einer Speichervorrichtung, wie z. B. dem NVM 110 aus 1, gekoppelt, die eine Vielzahl von Dies 502 aufweist. Wenngleich 32 Dies 502 gezeigt sind, kann eine beliebige Anzahl von Dies eingeschlossen sein. Jeder Die 502 besteht aus einem Paar von Ebenen 506, und jede Ebene 506 besteht aus einer Vielzahl von Löschblöcken 504.
  • Eine Zone 500 wird durch Auswählen eines Löschblocks 504 aus jeder Ebene 506 von 30 der 32 Dies 502 und Zuweisen oder Zuordnen der Logikblockadresse, die den Löschblöcken 504 entspricht, zu der Zone 500 gebildet. Von den insgesamt 32 Dies 502 können 30 Dies 502 zum Speichern von Daten verwendet werden, ein XOR-Die 502a kann zum Speichern von XOR-Daten verwendet werden, und ein ausgeschlossener oder übersprungener Die 502b, der aus den am wenigsten erwünschten Löschblöcken 504 besteht und nicht in der Zone 500 verwendet wird. Der XOR-Die 502a ist optional und bietet Schutz vor Dieausfällen und maximiert die Wirkung bei der Verwendung. Die ausgeschlossenen Löschblöcke 504 des übersprungenen Dies 502b bleiben im verfügbaren freien Pool von Blöcken, so dass sie ausgewählt werden können, um eine andere Zone zu bilden, wodurch Optimierungsprobleme beseitigt werden.
  • Die Zone 500 kann eine beliebige Kapazität (ZCAP) haben, wie z. B. 256 MiB oder 512 MiB. Es kann jedoch vorkommen, dass ein kleiner Teil der Zone 500 für das Schreiben von Daten unzugänglich ist, aber dennoch gelesen werden kann, wie z. B. ein Teil der Zone 500, der die XOR-Daten und einen oder mehrere ausgeschlossene Löschblöcke 504 des übersprungenen Dies 502b speichert. Wenn beispielsweise die Gesamtkapazität einer Zone 500 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.
  • 6A veranschaulicht eine Vielzahl von Einzelebenen-Dies 602, die jeweils eine Vielzahl von Löschblöcken 604 aufweisen, die zur Bildung einer Vielzahl von Zonen 600 gemäß einer Ausführungsform verwendet werden. 6B veranschaulicht eine Tabelle 650, die anzeigt, welche Löschblöcke 604 aus welchen Dies 602 verwendet werden, um jede Zone 600 zu bilden. Jede Zone 600 kann eine Zone 406 des ZNS 402 aus 4A oder die Zone 500 aus 5 sein. Jede Zone 600 kann eine Zone des NVM 110 aus 1 sein, die mit der Steuerung 108 gekoppelt ist, und der NVM 110 kann die Vielzahl von Dies 602 aufweisen. Zusätzlich kann die Zone 600 eine beliebige Kapazität aufweisen, wie z. B. 256 MiB oder 512 MiB. Es kann jedoch vorkommen, dass ein kleiner Teil der Zone 600 für das Schreiben von Daten unzugänglich ist, aber dennoch gelesen werden kann, wie z. B. ein Teil der Zone 600, der die XOR-Daten und ausgeschlossene Löschblöcke von einem oder mehreren übersprungenen Dies, wie dem übersprungenen Die 502b aus 5, speichert. Wenn beispielsweise die Gesamtkapazität einer Zone 600 512 MiB, 470 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.
  • In der Ausführungsform der 6A-6B weist jede Zone 6000-6003 (zusammenfassend als Zonen 600 bezeichnet) drei Löschblöcke 604 auf, die aus drei verschiedenen Dies 602 der insgesamt vier Dies 602 ausgewählt wurden, sowie einen optionalen XOR-Die (nicht dargestellt). Während nur vier Dies 602 gezeigt sind, kann eine beliebige Anzahl von Dies 602 verwendet werden. Während jeder Die 602 als nur vier Löschblöcke 604 aufweisend angezeigt ist, können die Dies 602 zusätzlich eine beliebige Anzahl von Löschblöcken 604 aufweisen. Darüber hinaus können Dualebenen-Dies 602, wie z. B. die Dies 502 aus 5, anstelle der Einzelebenen-Dies 602 verwendet werden.
  • In 6A weist jeder Die 6020-6023 (zusammenfassend als Dies 602 bezeichnet) eine Vielzahl von Löschblöcken (Erase Blocks, EB) 604 auf. Der erste Die 6020 weist beispielsweise EB3, EB7, EB11 und EB15 auf, der zweite Die 6021 weist EB4, EB8, EB12 und EB16 auf, der dritte Die 6022 weist EB5, EB9, EB13 und EB17 auf, und der vierte Die 6023 weist EB6, EB10, EB14 und EB18 auf. Jeder der Löschblöcke 604 befindet sich in dem freien Pool (nicht gezeigt) der Löschblöcke 604, bis er für die Zonenbildung ausgewählt wird. Der freie Pool von Löschblöcken 604 ist ein Pool von allen nicht ausgewählten oder verfügbaren Löschblöcken 604, die gegenwärtig nicht in einer Zone 600 verwendet werden.
  • Jeder Löschblock 604 wird mit einer Zahl angezeigt, die das Alter des bestimmten Löschblocks 604 abschätzt. Zum Beispiel weist EB3 ein geschätztes Alter von 0 auf, während EB6 ein geschätztes Alter von 2 aufweist. Wenn Löschblöcke 604 ausgewählt werden, um eine Zone 600 zu bilden, werden zuerst die Löschblöcke 604 mit dem niedrigsten geschätzten Alter (d. h. die jüngsten Löschblöcke) ausgewählt. Die jüngsten Löschblöcke 604 können die Löschblöcke 604 sein, die bisher die geringste Anzahl von Programmier-Lösch-Zyklen, die größte geschätzte Dauerhaftigkeit und/oder die größte geschätzte Retention aufweisen. Weitere Faktoren, die auf einen jungen Löschblock 604 hinweisen können, schließen die aktuelle Bitfehlerrate (BER) der Daten, Lesegeschwindigkeit, Programmiergeschwindigkeit, Quantifizierung der Datenhaltung, Lese-/Programmierstörung, die zuletzt verwendeten und die am wenigsten kürzlich verwendeten ein. Ein oder mehrere Altersfaktoren des Löschblocks 604 können kombiniert oder aggregiert werden, um das geschätzte Alter zu bestimmen. In ähnlicher Weise kann bei der Auswahl der Löschblöcke 604 zur Bildung einer Zone 600 das Alter des Dies 602 geschätzt werden, und die Löschblöcke 604 können aus den jüngsten Dies 602 ausgewählt werden. Jedes Mal, wenn ein Löschblock 604 für eine Zone 600 ausgewählt wird, wird der Löschblock 604 aus dem freien Pool entfernt.
  • Die Tabelle 650 veranschaulicht eine Vielzahl von Zonen 6000-6003 . Jede der Zonen 600 können leere Zonen sein, die gebildet werden, um zu aktiven Zonen zu wechseln. Um jede Zone 600 zu bilden, wird eine Steuerung oder eine ZM dazu eingerichtet, um das geschätzte Alter des ersten verfügbaren Löschblocks 604 innerhalb jedes Dies 602 zu vergleichen, um die jüngsten Löschblöcke 604 auszuwählen. Die Steuerung oder ZM wählt die drei jüngsten Löschblöcke 604 für eine Zone 600 aus, wobei der älteste Löschblock ausgeschlossen wird, so dass der Abnutzungsgrad jedes der Löschblöcke 604 gemildert und gleichmäßig auf die Blöcke verteilt werden kann.
  • Um die erste Zone 6000 zu bilden, wird das geschätzte Alter jedes der ersten verfügbaren Löschblöcke 604 in jedem der Dies 602 miteinander verglichen und der Löschblock 604 mit dem größten geschätzten Alter wird übersprungen. Als solche besteht die erste Zone 6000 aus EB3 mit einem geschätzten Alter von 0 aus dem ersten Die 6020 , EB4 mit einem geschätzten Alter von 0 aus dem zweiten Die 6021 und EB5 mit einem geschätzten Alter von 1 aus dem dritten Die 6022 . Da der erste verfügbare Löschblock 604 des vierten Dies 6023 , EB6, ein geschätztes Alter von 2 aufweist, das größer ist als das geschätzte Alter des ersten verfügbaren Löschblocks 604 im ersten, zweiten und dritten Die 6020-6022 (z. B. EB3, EB4, EB5), wird EB6 ausgeschlossen oder übersprungen, und kein Löschblock 604 wird aus dem vierten Die 6023 für die erste Zone 6000 ausgewählt. Somit ist der vierte Die 6023 davon ausgeschlossen, einen Löschblock in die erste Zone 6000 einzubringen. EB6 verbleibt im freien Pool von Löschblöcken für den vierten Die 6023 und kann ausgewählt werden, um eine weitere Zone 600 zu bilden, um Optimierungsprobleme zu eliminieren. Das Belassen von EB6 im freien Pool ermöglicht es EB6, sich zu erholen, und ermöglicht es weiterhin, den Abnutzungsgrad jedes der Löschblöcke 604 in jedem Die 602 zu mindern oder so gleichmäßig wie möglich zu verteilen.
  • Da EB3, EB4 und EB5 ausgewählt wurden, um die erste Zone 6000 zu bilden, sind EB3, EB4 und EB5 nicht mehr im freien Pool von Blöcken für den ersten, zweiten und dritten Die 6020-6022 verfügbar. Somit ist EB7 mit einem geschätzten Alter von 0 der erste verfügbare Löschblock 604 aus dem ersten Die 6020 , EB8 ist mit einem geschätzten Alter von 0 der erste verfügbare Löschblock 604 aus dem zweiten Die 6021 , EB9 ist mit einem geschätzten Alter von 1 der erste verfügbare Löschblock 604 aus dem dritten Die 6022 und EB6 ist mit einem geschätzten Alter von 2 der erste verfügbare Löschblock 604 aus dem vierten Die 6023 . Die drei jüngsten ersten verfügbaren Löschblöcke 604 werden erneut ausgewählt, um eine zweite Zone 6001 zu bilden, während der älteste Löschblock 604 übersprungen wird.
  • Somit besteht die zweite Zone 6001 aus EB7, aus dem ersten Die 6020 , EB8 aus dem zweiten Die 6021 und EB9 aus dem dritten Die 6022 . Da der erste verfügbare Löschblock 604 des vierten Dies 6023 , EB6, ein geschätztes Alter von 2 aufweist, das größer ist als das geschätzte Alter des ersten verfügbaren Löschblocks 604 im ersten, zweiten und dritten Die 6020-6022 (z. B. EB7, EB8, EB9), wird EB6 erneut ausgeschlossen oder übersprungen, und kein Löschblock 604 wird aus dem vierten Die 6023 für die zweite Zone 6001 ausgewählt. Somit ist der vierte Die 6023 davon ausgeschlossen, einen Löschblock in die zweite Zone 6001 einzubringen. Wiederum verbleibt EB6 im freien Pool von Löschblöcken für den vierten Die 6023 und kann ausgewählt werden, um eine weitere Zone 600 zu bilden, um Optimierungsprobleme zu eliminieren.
  • In ähnlicher Weise besteht eine dritte Zone 6002 aus EB11 mit einem geschätzten Alter von 0 aus dem ersten Die 6020 , EB13 mit einem geschätzten Alter von 2 aus dem dritten Die 6022 und EB6 mit einem geschätzten Alter von 2 aus dem vierten Die 6023 . Da der erste verfügbare Löschblock 604 des zweiten Dies 6021 , EB12, ein geschätztes Alter von 3 aufweist, das größer ist als das geschätzte Alter des ersten verfügbaren Löschblocks 604 im ersten, dritten und vierten Die 6020 , 6022 , 6023 (z. B. EB11, EB13, EB6), wird EB12 ausgeschlossen oder übersprungen, und es wird kein Löschblock 604 aus dem zweiten Die 6021 für die dritte Zone 6002 ausgewählt. Somit ist der zweite Die 6021 davon ausgeschlossen, einen Löschblock in die dritte Zone 6002 einzubringen. EB12 verbleibt im freien Pool von Löschblöcken für den zweiten Die 6021 und kann ausgewählt werden, um eine weitere Zone 600 zu bilden, um Optimierungsprobleme zu eliminieren.
  • Nach der Bildung der dritten Zone 6002 ist EB15 mit einem geschätzten Alter von 1 der erste verfügbare Löschblock 604 aus dem ersten Die 6020 , EB12 mit einem geschätzten Alter von 3 ist der erste verfügbare Löschblock 604 aus dem zweiten Die 6021 , EB17 mit einem geschätzten Alter von 2 ist der erste verfügbare Löschblock 604 aus dem dritten Die 6022 und EB10 mit einem geschätzten Alter von 3 ist der erste verfügbare Löschblock 604 aus dem vierten Die 6023 . Um die vierte Zone 6003 zu bilden, wird EB15 aus dem ersten Die 6020 , EB17 aus dem dritten Die 6022 und entweder EB12 aus dem zweiten Die 6021 oder EB10 aus dem vierten Die 6023 ausgewählt. Da der erste verfügbare Löschblock 604 des zweiten Dies 6021 , EB12, und der erste verfügbare Löschblock des vierten Dies 6023 , EB10, das gleiche geschätzte Alter von 3 aufweisen, kann entweder EB12 oder EB10 ausgewählt werden, um die vierte Zone 6003 zu bilden.
  • In Ausführungsformen, in denen der erste verfügbare Löschblock 604 eines oder mehrerer Dies 602 dasselbe geschätzte Alter aufweist (z. B. EB12 und EB10), wird jedoch der Löschblock 604 aus dem Die 602 ausgewählt, der den größeren verfügbaren freien Pool von Löschblöcken 604 aufweist. Somit weist im Beispiel der vierten Zone 6003 der zweite Die 6021 zwei Löschblöcke 604 im freien Pool auf (z. B. EB12 und EB 16), während der vierte Die 6023 drei Löschblöcke 604 im freien Pool (z. B. EB10, EB14 und EB 18) aufweist. Somit ist der zweite Die 6021 davon ausgeschlossen, einen Löschblock in die vierte Zone 6003 einzubringen. Wiederum verbleibt EB12 im freien Pool von Löschblöcken für den zweiten Die 6021 und kann ausgewählt werden, um eine weitere Zone 600 zu bilden, um Optimierungsprobleme zu eliminieren.
  • Zusätzlich können, wenn der erste verfügbare Löschblock 604 von einem oder mehreren Dies 602 das gleiche geschätzte Alter aufweist, andere Faktoren in Betracht gezogen werden, um zu verhindern, dass der erste angetroffene Die 602 (z. B. der zweite Die 6021 ) immer ausgewählt wird. Beispielsweise kann der Löschblock 604 mit der größten geschätzten Retention ausgewählt werden, ein Grenzwert kann für das Delta von dem am meisten gewählten Die 602 zum am wenigsten gewählten Die 602 festgelegt werden oder der Startpunkt der Zonenbildung kann geändert werden (d. h. Starten mit einem anderen Die 602 als dem ersten Die 6020 ).
  • Jedes Mal, wenn eine Zone 600 von Daten gelöscht, in den Löschzustand und dann in den aktiven Zustand gewechselt wird, kann die Zone 600 mit neuen Löschblöcken 604 gemäß dem vorstehend beschriebenen Verfahren neu gebildet werden. Wenn eine Zone 600 gelöscht und in den Löschzustand gewechselt wird, werden die Löschblöcke 604 der Zone 600 in den freien Pool von Löschblöcken 604 in jedem Die 602 zurückgeführt. Nach der Rückführung in den freien Pool kann das Alter jedes der Löschblöcke 604 neu geschätzt werden.
  • Die 7A-7C veranschaulichen die Zonen 700, 750 bzw. 770, die aus einer Vielzahl von Löschblöcken 704 bestehen, die aus einer Vielzahl von Dies 702 gemäß den hierin offenbarten Ausführungsformen ausgewählt wurden. Jede der Zonen 700, 750, 770 kann einzeln eine Zone 406 des ZNS 402 aus 4A oder die Zone 600 aus den 6A-6B sein. Jede Zone 700, 750, 770 kann eine Zone des NVM 110 aus 1 sein, die mit der Steuerung 108 gekoppelt ist, und der NVM 110 kann die Vielzahl von Dies 702 aufweisen. Zusätzlich kann jede der Zonen 700, 750, 770 wie in den 6A-6B beschrieben gebildet werden, wobei eine Steuerung oder eine Zonenverwaltung (ZM) dazu eingerichtet ist, das geschätzte Alter des ersten verfügbaren Löschblocks 704 innerhalb jedes Dies 702 zu vergleichen, um die jüngsten Löschblöcke 704 auszuwählen.
  • Obwohl jeder der Dies 702 mit zwei Ebenen 706 dargestellt ist, können die Dies 702 eine oder mehrere Ebenen 706 einschließen. Eine Steuerung ist dazu eingerichtet, ein geschätztes Alter eines ersten verfügbaren Löschblocks 704 in jeder Ebene 706 von jeder der Vielzahl von Dies 702 miteinander zu vergleichen, eine oder mehrere Ebenen 706 aus einem oder mehreren der Dies 702 auszuwählen und einen oder mehrere Löschblöcke 704 aus der einen oder mehreren Ebenen 706 basierend auf dem geschätzten Alter auszuwählen, um eine Zone 700, 750, 770 zu bilden. Mindestens ein Löschblock 704 aus mindestens einer Ebene 706 eines Dies (d. h. übersprungener Die 702b) ist davon ausgeschlossen, einen oder mehrere Löschblöcke 704 in eine Zone einzubringen.
  • Darüber hinaus kann jede der Zonen 700, 750, 770 eine beliebige Kapazität aufweisen, wie z. B. 256 MiB oder 512 MiB. Ein kleiner Teil jeder Zone 700, 750, 770 kann jedoch für das Schreiben von Daten unzugänglich sein, kann aber dennoch gelesen werden, wie z. B. der Teil der Zonen 700, 750, 770, der die XOR-Daten und die ausgeschlossenen Löschblöcke 704 aus den übersprungenen Dies 702b speichert. Wenn z. B. die Gesamtkapazität einer Zone 700, 750, 770 512 MiB beträgt, können 470 MiB zum Schreiben von Daten zur Verfügung stehen, während 42 MiB nicht zum Schreiben von Daten zur Verfügung stehen.
  • 7A veranschaulicht eine beispielhafte Zone 700, die aus einer Speichervorrichtung gebildet ist, die 16 Dies 702 aufweist. Von den 16 Dies 702 werden 14 Dies 702 zur Datenspeicherung verwendet, ein XOR-Die 702a wird für XOR-Daten verwendet und ein übersprungener Die 702b, der die ältesten oder schlechtesten Löschblöcke aufweist, ist nicht in der Zone 700 enthalten. Der/die ausgeschlossene(n) Löschblock(e) 704 des übersprungenen Dies 702b verbleiben in dem freien Pool und können ausgewählt werden, um eine andere Zone zu bilden, um Optimierungsprobleme zu eliminieren.
  • 7B veranschaulicht eine andere beispielhafte Zone 750, die aus einer Speichervorrichtung mit 8 Dies 702 gebildet ist. Von den 8 Dies 702 werden 6 Dies 702 zur Datenspeicherung verwendet, ein XOR-Die 702a wird für XOR-Daten verwendet, und ein übersprungener Die 702b, der die ältesten oder schlechtesten Löschblöcke enthält, ist nicht in der Zone 750 enthalten. Der/die ausgeschlossene(n) Löschblock(e) 704 des übersprungenen Dies 702b verbleiben in dem freien Pool und können ausgewählt werden, um eine andere Zone zu bilden, um Optimierungsprobleme zu eliminieren.
  • 7C veranschaulicht noch eine andere beispielhafte Zone 770, die aus einer Speichervorrichtung gebildet ist, die 16 Dies 702 aufweist. Von den 16 Dies 702 werden 11 Dies 702 zur Datenspeicherung verwendet, ein XOR-Die 702a wird für XOR-Daten verwendet und vier übersprungene Dies 702b, die die ältesten oder schlechtesten Löschblöcke enthalten, sind nicht in der Zone 770 enthalten. Während die 6A-6B das Überspringen nur eines Löschblocks 704 aus einem Die 702 beschreiben, können mehrere Löschblöcke 704 aus mehreren Dies 702 übersprungen werden. Der/die ausgeschlossene(n) Löschblock(e) 704 des übersprungenen Dies 702b verbleiben in dem freien Pool und können ausgewählt werden, um eine andere Zone zu bilden, um Optimierungsprobleme zu eliminieren.
  • Durch das Ausschließen eines Löschblocks mit dem größten geschätzten Alter, der größten Anzahl von Programmier-Lösch-Zyklen oder der geringsten geschätzten Menge an Retention bei der Bildung einer Zone kann der Abnutzungsgrad aller Löschblöcke so gleichmäßig wie möglich verteilt werden, während Optimierungsprobleme beseitigt werden. Der/die ausgeschlossene(n) oder übersprungene(n) Löschblock(e) können sich erholen, während die jüngeren Löschblöcke verwendet werden, wodurch die Alterslücke zwischen den einzelnen Löschblöcken minimiert wird und verhindert wird, dass ein oder mehrere Löschblöcke eine unverhältnismäßig große Anzahl von Programmier-Lösch-Zyklen durchlaufen. Somit wird der Abnutzungsgrad jedes einzelnen Löschblocks gemildert, wodurch die Anzahl der unbrauchbar oder beschädigt werdenden Löschblöcke minimiert wird.
  • In einer Ausführungsform weist eine Speichervorrichtung eine Medieneinheit auf. Eine Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speichervorrichtung weist weiterhin eine Steuerung auf, die mit der Medieneinheit gekoppelt ist, wobei die Steuerung dazu eingerichtet ist, ein geschätztes Alter eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter auszuwählen, um eine erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • Die Steuerung kann weiterhin dazu eingerichtet sein, das Vergleichen des geschätzten Alters des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu wiederholen und einen oder mehrere der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies auszuwählen, um eine zweite Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der zweiten Zone ausgeschlossen ist. Der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, kann derselbe sein wie mindestens ein erster verfügbarer Löschblock, der aus der zweiten Zone ausgeschlossen ist. Der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, kann ein anderer Löschblock sein als der mindestens eine erste verfügbare Löschblock, der aus der zweiten Zone ausgeschlossen ist. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies kann ein höheres geschätztes Alter aufweisen als der eine oder die mehreren Löschblöcke, die zur Bildung der ersten Zone ausgewählt werden. Die erste Zone kann weiterhin mindestens einen XOR-Löschblock zum Speichern von XOR-Daten aufweisen. Der mindestens eine erste verfügbare Löschblock des mindestens einen mindestens einen aus der ersten Zone ausgeschlossenen Dies kann in einem freien Pool des mindestens einen Dies verbleiben.
  • In einer anderen Ausführungsform weist eine Speichervorrichtung eine Medieneinheit auf. Eine Kapazität der Medieneinheit ist in eine Vielzahl von Zonen unterteilt. Die Medieneinheit weist eine Vielzahl von Dies auf, wobei jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist. Die Speichervorrichtung weist weiterhin eine mit der Medieneinheit gekoppelte Steuerung auf, wobei die Steuerung dazu eingerichtet ist, eine erste Zone von einem leeren Zustand in einen aktiven Zustand zu schalten, ein geschätztes Alter eines ersten verfügbaren Löschblocks in einem freien Pool von jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere erste Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus dem freien Pool von einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter zu entfernen, um die erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen, um in dem freien Pool des mindestens einen Dies zu verbleiben. Die Speichervorrichtung ist weiterhin dazu eingerichtet, eine zweite Zone vom leeren Zustand in den aktiven Zustand zu schalten, das geschätzte Alter des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander zu vergleichen und einen oder mehrere zweite Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies zu entfernen, basierend auf dem geschätzten Alter, um die zweite Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die der Vielzahl von Dies wird aus der zweiten Zone ausgeschlossen, um in dem freien Pool des mindestens einen Dies zu verbleiben.
  • Der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, kann ein anderer Löschblock sein als der mindestens eine erste verfügbare Löschblock, der aus der zweiten Zone ausgeschlossen ist. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies kann ein höheres geschätztes Alter aufweisen als der eine oder die mehreren Löschblöcke, die zur Bildung der ersten Zone entfernt werden. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies kann eine größere geschätzte Anzahl von Programmier-Lösch-Zyklen durchlaufen haben als der eine oder die mehreren ersten Löschblöcke, die zur Bildung der ersten Zone entfernt werden. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der zweiten Zone ausgeschlossenen Dies kann eine größere geschätzte Anzahl von Programmier-Lösch-Zyklen durchlaufen haben als der eine oder die mehreren zweiten Löschblöcke, die zur Bildung der zweiten Zone entfernt werden.
  • Die Steuerung kann weiterhin dazu eingerichtet sein, einen oder mehrere der ersten verfügbaren Löschblöcke mit demselben geschätzten Alter zu bestimmen, die Größe des freien Pools jedes der Dies, der den einen oder die mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter aufweist, zu vergleichen und einen Löschblock des einen oder der mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter basierend auf der Größe des freien Pools auszuschließen. Der ausgeschlossene Löschblock kann in einem Die mit dem kleinsten freien Pool angeordnet sein.
  • In einer anderen Ausführungsform weist ein Verfahren zum Bilden einer oder mehrerer Zonen für eine Speichervorrichtung das Schalten einer ersten Zone von einem leeren Zustand in einen aktiven Zustand auf. Die Speichervorrichtung weist eine Vielzahl von Dies auf, und jeder der Vielzahl von Dies weist eine Vielzahl von Löschblöcken auf. Das Verfahren weist weiterhin das Vergleichen eines geschätzten Alters eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander auf und das Auswählen eines oder mehrerer der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um die erste Zone zu bilden. Mindestens ein erster verfügbarer Löschblock von mindestens einem Die aus der Vielzahl von Dies wird aus der ersten Zone ausgeschlossen.
  • Das Verfahren kann weiterhin das Bestimmen eines oder mehrerer der ersten verfügbaren Löschblöcke mit demselben geschätzten Alter aufweisen und das Ausschließen eines Löschblocks des einen oder der mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter basierend auf einer geschätzten Retention des Löschblocks oder einer Bitfehlerrate. Der eine oder mehrere der ersten verfügbaren Löschblöcke, die zur Bildung der ersten Zone ausgewählt werden, können aus einem freien Pool von einem oder mehreren Dies entfernt werden. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies kann in einem freien Pool von Löschblöcken des mindestens einen Dies verbleiben. Der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies kann ein höheres geschätztes Alter oder eine größere Anzahl von geschätzten Programmier-Lösch-Zyklen aufweisen als der eine oder die mehreren ersten verfügbaren Löschblöcke, die zur Bildung der ersten Zone ausgewählt werden. Das Vergleichen des geschätzten Alters des ersten verfügbaren Löschblocks in jedem der mehreren Dies kann weiterhin das Vergleichen der Größe eines freien Pools oder der Löschblöcke jedes der Vielzahl von Dies miteinander aufweisen.
  • 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.

Claims (20)

  1. Speichervorrichtung, umfassend: eine Medieneinheit, wobei eine Kapazität der Medieneinheit in eine Vielzahl von Zonen unterteilt ist und wobei die Medieneinheit eine Vielzahl von Dies umfasst, wobei jede der Vielzahl von Dies eine Vielzahl von Löschblöcken umfasst; und eine mit der Medieneinheit gekoppelte Steuerung, die eingerichtet ist zum: Vergleichen des geschätzten Alters eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander und Auswählen eines oder mehrerer der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um eine erste Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der ersten Zone ausgeschlossen ist.
  2. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung weiterhin eingerichtet ist zum: Wiederholen des Vergleichs des geschätzten Alters des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander und Auswählen eines oder mehrerer der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um eine zweite Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der zweiten Zone ausgeschlossen ist.
  3. Speichervorrichtung gemäß Anspruch 2, wobei der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, derselbe mindestens eine erste verfügbare Löschblock ist, der aus der zweiten Zone ausgeschlossen ist.
  4. Speichervorrichtung gemäß Anspruch 2, wobei der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, ein anderer Löschblock als der mindestens eine erste verfügbare Löschblock ist, der aus der zweiten Zone ausgeschlossen ist.
  5. Speichervorrichtung gemäß Anspruch 1, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies ein größeres geschätztes Alter aufweist als der eine oder die mehreren ersten verfügbaren Löschblöcke, die zur Bildung der ersten Zone ausgewählt werden.
  6. Speichervorrichtung gemäß Anspruch 1, wobei die erste Zone weiterhin mindestens einen XOR-Löschblock zur Speicherung von XOR-Daten umfasst.
  7. Speichervorrichtung gemäß Anspruch 1, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies in einem freien Pool des mindestens einen Dies verbleibt.
  8. Speichervorrichtung, umfassend: eine Medieneinheit, wobei eine Kapazität der Medieneinheit in eine Vielzahl von Zonen unterteilt ist und wobei die Medieneinheit eine Vielzahl von Dies aufweist, wobei jede der Vielzahl von Dies eine Vielzahl von Löschblöcken aufweist; und eine mit der Medieneinheit gekoppelte Steuerung, die eingerichtet ist zum: Schalten einer ersten Zone von einem leeren Zustand in einen aktiven Zustand; Vergleichen eines geschätzten Alters eines ersten verfügbaren Löschblocks in einem freien Pool von jedem der Vielzahl von Dies miteinander; Entfernen eines oder mehrerer erster Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus dem freien Pool eines oder mehrerer Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um die erste Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der ersten Zone ausgeschlossen wird, um in dem freien Pool des mindestens einen Dies zu verbleiben; Schalten einer zweiten Zone von dem leeren Zustand in den aktiven Zustand; Vergleichen des geschätzten Alters des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander und Entfernen eines oder mehrerer zweiter Löschblöcke der verglichenen ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um die zweite Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der zweiten Zone ausgeschlossen wird, um in dem freien Pool des mindestens einen Dies zu verbleiben.
  9. Speichervorrichtung gemäß Anspruch 8, wobei der mindestens eine erste verfügbare Löschblock, der aus der ersten Zone ausgeschlossen ist, ein anderer Löschblock als der mindestens eine erste verfügbare Löschblock ist, der aus der zweiten Zone ausgeschlossen ist.
  10. Speichervorrichtung gemäß Anspruch 8, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies ein größeres geschätztes Alter aufweist als der eine oder die mehreren ersten Löschblöcke, die zur Bildung der ersten Zone entfernt werden.
  11. Speichervorrichtung gemäß Anspruch 8, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies eine größere geschätzte Anzahl von Programmier-Lösch-Zyklen durchlaufen hat als der eine oder die mehreren ersten Löschblöcke, die zur Bildung der ersten Zone entfernt werden.
  12. Speichervorrichtung gemäß Anspruch 8, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der zweiten Zone ausgeschlossenen Dies eine größere geschätzte Anzahl von Programmier-Lösch-Zyklen durchlaufen hat als der eine oder die mehreren zweiten Löschblöcke, die zur Bildung der zweiten Zone entfernt werden.
  13. Speichervorrichtung gemäß Anspruch 8, wobei die Steuerung weiterhin eingerichtet ist zum: Bestimmen, dass einer oder mehrere der ersten verfügbaren Löschblöcke das gleiche geschätzte Alter aufweisen; Vergleichen einer Größe des freien Pools von jedem der Dies, die den einen oder die mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter aufweisen; und Ausschließen eines Löschblocks des einen oder der mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter basierend auf der Größe des freien Pools.
  14. Speichervorrichtung gemäß Anspruch 13, wobei der ausgeschlossene Löschblock in einem Die mit dem kleinsten freien Pool angeordnet ist.
  15. Verfahren zum Bilden einer oder mehrerer Zonen für eine Speichervorrichtung, umfassend: Schalten einer ersten Zone von einem leeren Zustand in einen aktiven Zustand, wobei die Speichervorrichtung eine Vielzahl von Dies umfasst und jeder der Vielzahl von Dies eine Vielzahl von Löschblöcken umfasst; Vergleichen eines geschätzten Alters eines ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander und Auswählen eines oder mehrerer der ersten verfügbaren Löschblöcke aus einem oder mehreren Dies aus der Vielzahl von Dies basierend auf dem geschätzten Alter, um eine erste Zone zu bilden, wobei mindestens ein erster verfügbarer Löschblock aus mindestens einem Die aus der Vielzahl von Dies aus der ersten Zone ausgeschlossen ist.
  16. Verfahren gemäß Anspruch 15, weiterhin umfassend: Bestimmen, dass einer oder mehrere der ersten verfügbaren Löschblöcke das gleiche geschätzte Alter aufweisen; und Ausschließen eines Löschblocks des einen oder der mehreren ersten verfügbaren Löschblöcke mit demselben geschätzten Alter basierend auf einer geschätzten Retention des Löschblocks oder einer Bitfehlerrate.
  17. Verfahren gemäß Anspruch 15, wobei ein oder mehrere der ersten verfügbaren Löschblöcke, die zur Bildung der ersten Zone ausgewählt wurden, aus einem freien Pool des einen oder der mehreren Dies entfernt werden.
  18. Verfahren gemäß Anspruch 15, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies in einem freien Pool von Löschblöcken des mindestens einen Dies verbleibt.
  19. Verfahren gemäß Anspruch 15, wobei der mindestens eine erste verfügbare Löschblock des mindestens einen aus der ersten Zone ausgeschlossenen Dies ein größeres geschätztes Alter oder eine größere Anzahl von geschätzten Programmier-Lösch-Zyklen aufweist als der eine oder die mehreren ersten verfügbaren Löschblöcke, die zur Bildung der ersten Zone ausgewählt werden.
  20. Verfahren gemäß Anspruch 15, wobei das Vergleichen des geschätzten Alters des ersten verfügbaren Löschblocks in jedem der Vielzahl von Dies miteinander weiterhin das Vergleichen einer Größe eines freien Pools oder der Löschblöcke jedes der Vielzahl von Dies aufweist.
DE102020107659.2A 2019-06-28 2020-03-19 Zonenbildung für gezonte namensräume Pending DE102020107659A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962868785P 2019-06-28 2019-06-28
US62/868,785 2019-06-28

Publications (1)

Publication Number Publication Date
DE102020107659A1 true DE102020107659A1 (de) 2020-12-31

Family

ID=73747497

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020107659.2A Pending DE102020107659A1 (de) 2019-06-28 2020-03-19 Zonenbildung für gezonte namensräume

Country Status (4)

Country Link
US (1) US11416161B2 (de)
KR (1) KR102370760B1 (de)
CN (1) CN112148627A (de)
DE (1) DE102020107659A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11402999B2 (en) * 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US11249896B2 (en) * 2019-12-20 2022-02-15 Micron Technology, Inc. Logical-to-physical mapping of data groups with data locality
US11797433B2 (en) * 2019-12-20 2023-10-24 Sk Hynix Nand Product Solutions Corp. Zoned namespace with zone grouping
KR20210125774A (ko) * 2020-04-09 2021-10-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11789611B2 (en) 2020-04-24 2023-10-17 Netapp, Inc. Methods for handling input-output operations in zoned storage systems and devices thereof
TWI775268B (zh) * 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
CN117120985A (zh) * 2021-02-04 2023-11-24 华为技术有限公司 用于存储设备应用的基于nvm主机控制器接口规范的持久性日志记录
US11340987B1 (en) 2021-03-04 2022-05-24 Netapp, Inc. Methods and systems for raid protection in zoned solid-state drives
US11630593B2 (en) * 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11816345B2 (en) * 2021-03-29 2023-11-14 Micron Technology, Inc. Zone block staging component for a memory subsystem with zoned namespace
JP2022171208A (ja) 2021-04-30 2022-11-11 キオクシア株式会社 メモリシステムおよび制御方法
US11797377B2 (en) 2021-10-05 2023-10-24 Netapp, Inc. Efficient parity determination in zoned solid-state drives of a storage system
US11803329B2 (en) 2021-11-22 2023-10-31 Netapp, Inc. Methods and systems for processing write requests in a storage system
US11687263B2 (en) 2021-12-01 2023-06-27 Western Digital Technologies, Inc. Full die recovery in ZNS SSD
WO2023113944A1 (en) * 2021-12-16 2023-06-22 Netapp, Inc. Scalable solid-state storage system and methods thereof
US11861231B2 (en) 2021-12-16 2024-01-02 Netapp, Inc. Scalable solid-state storage system and methods thereof
US20240111456A1 (en) * 2022-10-02 2024-04-04 Silicon Motion, Inc. Storage device controller and method capable of allowing incoming out-of-sequence write command signals
CN117369729B (zh) * 2023-12-04 2024-02-06 武汉麓谷科技有限公司 一种zns ssd的附加写入实现方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US20060282610A1 (en) 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US8898376B2 (en) * 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
JP5976939B2 (ja) 2012-08-23 2016-08-24 アップル インコーポレイテッド ホスト支援型メモリブロックコンパクション
US9361222B2 (en) * 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US20150046664A1 (en) * 2013-08-08 2015-02-12 SMART Storage Systems, Inc. Storage Control System with Settings Adjustment Mechanism and Method of Operation Thereof
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US10649661B2 (en) 2017-06-26 2020-05-12 Western Digital Technologies, Inc. Dynamically resizing logical storage blocks
JP2019020788A (ja) 2017-07-11 2019-02-07 東芝メモリ株式会社 メモリシステムおよび制御方法
US11294594B2 (en) 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
KR20190063054A (ko) 2017-11-29 2019-06-07 삼성전자주식회사 메모리 시스템 및 이의 동작 방법

Also Published As

Publication number Publication date
KR20210001898A (ko) 2021-01-06
US11416161B2 (en) 2022-08-16
US20200409589A1 (en) 2020-12-31
CN112148627A (zh) 2020-12-29
KR102370760B1 (ko) 2022-03-04

Similar Documents

Publication Publication Date Title
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE102019124450A1 (de) Bandbreitenbegrenzung in solid-state-laufwerken
DE102010018765A1 (de) Speichervorrichtung und Speicherverfahren
DE102009034836A1 (de) Verfahren und Vorrichtung zum Speichern von Daten in einem Festkörperspeicher
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020005078T5 (de) Verschieben von änderungsprotokolltabellen zum abstimmen mit zonen

Legal Events

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

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE