DE112020004959T5 - Zonenbasierte vorrichtung mit vom host ausgewählter steuerebene - Google Patents

Zonenbasierte vorrichtung mit vom host ausgewählter steuerebene Download PDF

Info

Publication number
DE112020004959T5
DE112020004959T5 DE112020004959.0T DE112020004959T DE112020004959T5 DE 112020004959 T5 DE112020004959 T5 DE 112020004959T5 DE 112020004959 T DE112020004959 T DE 112020004959T DE 112020004959 T5 DE112020004959 T5 DE 112020004959T5
Authority
DE
Germany
Prior art keywords
storage device
data storage
host
host device
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020004959.0T
Other languages
English (en)
Inventor
Idan Alrod
Shay Benisty
Ariel Navon
Judah Gamliel Hahn
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 DE112020004959T5 publication Critical patent/DE112020004959T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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/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/0658Controller construction arrangements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

Die vorliegende Offenbarung bezieht sich allgemein auf eine flexible oder weiche Architekturlösung eines Host-Datenspeicherungsvorrichtungssystems. Dem Host werden unterschiedliche Zwischenebenen der Verantwortung für die Speicherverwaltung gestattet. Die unterschiedlichen Ebenen der Host-Beteiligung in der Speicherverwaltung der Speichervorrichtung liegen irgendwo zwischen einer vorhandenen Zonen-Namensraum-Lösung (ZNS-Lösung) und einer offenen Kanallösung. Die Datenspeicherungsvorrichtung bietet eine Auswahl spezifischer Speicherverwaltungsoptionen für die Hostvorrichtung. Die Hostvorrichtung wählt dann den gewünschten Grad an Speicherverwaltung aus und richtet die Datenspeicherungsvorrichtung ein, um die Speicherverwaltungsauswahl zu erfüllen. Hierzu steuert die Hostvorrichtung den Kompromiss zwischen dem Host-Vorrichtung-Speicherverwaltungsaufwand und der Flexibilität der Hostvorrichtung.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Anmeldung 16/859.940 , eingereicht am 27. April 2020, die durch Verweis in ihrer Gesamtheit aufgenommen ist.
  • HINTERGRUND
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf das Ermöglichen eines Kompromisses zwischen dem Host- Speicherverwaltungsaufwand und der Host-Flexibilität gemäß den hostspezifischen Anforderungen.
  • Beschreibung des Stands der Technik
  • In Zonen unterteilte Namensräume (ZNS) sind eine neue Speicherrichtung, in der die Datenspeichervorrichtung Schreibvorgänge auf aufeinanderfolgende Zonen beschränkt. ZNS soll die vorrichtungsseitige Schreibverstärkung und Überversorgung reduzieren, indem Host-Schreibmuster mit interner Vorrichtungsgeometrie ausgerichtet werden und der Bedarf an vorrichtungsseitigen Schreibvorgängen, die nicht direkt mit einem Host-Schreibvorgang verknüpft sind, reduziert wird.
  • ZNS bietet viele Vorteile, einschließlich: verringerte TCO aufgrund minimaler DRAM-Anforderungen pro SSD; potenzielle Einsparungen aufgrund eines verringerten Bedarfs an Überversorgung von NAND-Medien; bessere SSD-Lebensdauer durch Reduzieren der Schreibverstärkung; dramatisch reduzierte Latenz; signifikant verbesserter Durchsatz; und Aufweisen einer standardisierten Schnittstelle, die ein starkes Software- und Hardware-Exosystem ermöglicht.
  • In einer offenen Kanalumgebung führt die Hostvorrichtung viele Aspekte der Flash-Verwaltung über mehrere Vorrichtungen durch und die Vorrichtung stellt ihre interne Geometrie für die Hostvorrichtung dar. Sowohl ZNS als auch offene Kanalarchitekturen stellen Lösungen bereit, bei denen die Hostvorrichtung erweiterte Verantwortlichkeiten auf einer Datenspeicherungsvorrichtung zum Zweck der reduzierten vorrichtungsseitigen Schreibverstärkung und Überversorgung hat. Der Hauptunterschied zwischen ZNS und offenen Kanalarchitekturen ist, dass die Hostvorrichtung im offenen Kanal die physische Struktur der Datenspeicherungsvorrichtung (z. B. Anzahl der Kanäle, Chips, Ebenen und Blöcke) kennt und die Hostvorrichtung dafür verantwortlich ist, die Speicherwartung wie Speicherbereinigung, Datenverschiebung usw. handzuhaben. Die Zonenabstraktion kann direkt oder indirekt auf eine spezifische Vorrichtungsstruktur abgebildet werden.
  • ZNS und offener Kanal sind zwei unterschiedliche Lösungen, jeweils mit einer festen Steuerebene der Hostvorrichtung auf der Datenspeicherungsvorrichtung. Jeder dieser Ansätze leidet unter zugehörigen Nachteilen. Für den offenen Kanal gibt es mehr Flexibilität für die Hostvorrichtung auf Kosten eines höheren Host-Vorrichtungs-Speicherwartungsaufwands. Für ZNS wird die Host-Verantwortung für die Speicherwartung reduziert, aber die Hostvorrichtung wird gezwungen, strikte Einschränkungen der Schreibmodi auf dem ZNS zu verfolgen.
  • Daher besteht in der Technik ein Bedarf an einer flexiblen Systemarchitektur-Lösung, die einen Kompromiss zwischen dem Host-Vorrichtungsaufwand der Speicherverwaltung und der Flexibilität der Hostvorrichtung gemäß den hostspezifischen Anforderungen ermöglicht.
  • KURZDARSTELLUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf eine flexible oder weiche Architekturlösung eines Host-Datenspeicherungsvorrichtungssystems. Dem Host werden unterschiedliche Zwischenebenen der Verantwortung für die Speicherverwaltung gestattet. Die unterschiedlichen Ebenen der Host-Beteiligung in der Speicherverwaltung der Speichervorrichtung liegen irgendwo zwischen einer vorhandenen Zonen-Namensraum-Lösung (ZNS-Lösung) und einer offenen Kanallösung. Die Datenspeicherungsvorrichtung bietet eine Auswahl spezifischer Speicherverwaltungsoptionen für die Hostvorrichtung. Die Hostvorrichtung wählt dann den gewünschten Grad an Speicherverwaltung aus und richtet die Datenspeicherungsvorrichtung ein, um die Speicherverwaltungsauswahl zu erfüllen. Hierzu steuert die Hostvorrichtung den Kompromiss zwischen dem Host-Vorrichtung-Speicherverwaltungsaufwand und der Flexibilität der Hostvorrichtung.
  • In einer Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; und eine Steuerung auf, die mit der Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Liste von unterstützten Merkmalen an eine Hostvorrichtung, wobei die Liste unterstützter Merkmale eine Abnutzungsgrad-Handhabung, eine Speicherbereinigung, eine Datenmarkierung, eine Lesebereinigung; und Aktualisieren der Verwaltungstabellen einschließt; Empfangen einer Auswahl der unterstützten Merkmale von der Hostvorrichtung; und Einrichten der Datenspeicherungsvorrichtung gemäß den ausgewählten unterstützten Merkmalen.
  • In einer anderen Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; und eine Steuerung auf, die mit der Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Auswahl von Konfigurationen an eine Hostvorrichtung, wobei die Auswahl von Konfigurationen eine offene Kanalkonfiguration, eine Zonennamensraum-Konfiguration (ZNS-Konfiguration) und eine Konfiguration zwischen der ZNS-Konfiguration und der offenen Kanalkonfiguration einschließt.
  • In einer anderen Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; eine Steuereinheit, die mit der Speichervorrichtung verbunden ist; Mittel zum Empfangen einer Host-Vorrichtungsanweisung zum Einrichten der Datenspeicherungsvorrichtung in einer Konfiguration, die durch die Hostvorrichtung ausgewählt wird, wobei vor dem Empfangen der Host-Vorrichtungsanweisung die Datenspeicherungsvorrichtung entweder in einer offenen Kanalkonfiguration, einer ZNS-Konfiguration oder einer Konfiguration zwischen der offenen Kanalkonfiguration und der ZNS-Konfiguration arbeiten kann; und Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um die durch die Hostvorrichtung ausgewählte Konfiguration betreiben zu können.
  • Figurenliste
  • Zur Verdeutlichung der Art und Weise, wie die vorstehend angegebenen Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulicht sind und diese daher nicht als ihren Schutzumfang einschränkend anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
    • 1 ist ein schematisches Blockdiagramm, das ein Speicherungssystem veranschaulicht, das eine Speichervorrichtung aufweist, die als Speichervorrichtung für eine Hostvorrichtung gemäß einer oder mehreren Techniken dieser Offenbarung fungieren kann.
    • 2A ist eine schematische Veranschaulichung einer herkömmlichen Blockspeicherungsvorrichtung.
    • 2B ist eine schematische Veranschaulichung einer in Zonen aufgeteilten Blockspeicherungsvorrichtung.
    • 3A ist eine schematische Veranschaulichung der Vorrichtungssteuerung eines herkömmlichen SSD.
    • 3B ist eine schematische Veranschaulichung der Vorrichtungssteuerung eines ZNS-SSD.
    • 4 ist eine schematische Veranschaulichung einer logischen Parallelität des offenen Kanals in einem SSD.
    • 5 ist ein Flussdiagramm, das ein Verfahren zum Anpassen von Konfigurationen gemäß den hostspezifischen Anforderungen veranschaulicht.
  • Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemein sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Nennung vorteilhaft bei anderen Ausführungsformen genutzt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf Ausführungsformen der Offenbarung Bezug genommen. Es versteht sich jedoch, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Implementierung und Umsetzung der Offenbarung in Betracht gezogen. Obwohl Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erreichen können, schränkt jedoch der Umstand, ob ein bestimmter Vorteil durch eine bestimmte Ausführungsform erreicht wird oder nicht, die Offenbarung nicht ein. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beiliegenden Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen angegeben. Ebenso soll eine Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und soll nicht als Element oder Einschränkung der beigefügten Ansprüche betrachtet werden, es sei denn, dies ist ausdrücklich in einem oder mehreren Ansprüchen angegeben.
  • Die vorliegende Offenbarung bezieht sich allgemein auf eine flexible oder weiche Architekturlösung eines Host-Datenspeicherungsvorrichtungssystems. Dem Host werden unterschiedliche Zwischenebenen der Verantwortung für die Speicherverwaltung gestattet. Die unterschiedlichen Ebenen der Host-Beteiligung in der Speicherverwaltung der Speichervorrichtung liegen irgendwo zwischen einer vorhandenen Zonen-Namensraum-Lösung (ZNS-Lösung) und einer offenen Kanallösung. Die Datenspeicherungsvorrichtung bietet eine Auswahl spezifischer Speicherverwaltungsoptionen für die Hostvorrichtung. Die Hostvorrichtung wählt dann den gewünschten Grad an Speicherverwaltung aus und richtet die Datenspeicherungsvorrichtung ein, um die Speicherverwaltungsauswahl zu erfüllen. Hierzu steuert die Hostvorrichtung den Kompromiss zwischen dem Host-Vorrichtung-Speicherverwaltungsaufwand und der Flexibilität der Hostvorrichtung.
  • 1 ist ein schematisches Blockdiagramm, das ein Speicherungssystem 100, in dem die Datenspeichervorrichtung 106 als Speichervorrichtung für eine Hostvorrichtung 104 fungieren kann, gemäß einer oder mehreren Techniken dieser Offenbarung veranschaulicht. Zum Beispiel kann die Hostvorrichtung 104 zum Speichern und Abrufen von Daten NVM 110 verwenden, der in der Datenspeichervorrichtung 106 eingeschlossen ist. Die Hostvorrichtung 104 weist einen Host-DRAM 138 auf, der einen Lesepuffer 140 aufweist. Der Lesepuffer 140 kann verwendet werden, um Lesebefehle zu speichern, die an die Datenspeicherungsvorrichtung 106 gesendet werden sollen. In einigen Beispielen kann das Speicherungssystem 100 eine Vielzahl von Speicherungsvorrichtungen, wie die Datenspeicherungsvorrichtung 106, die als Speicheranordnung arbeiten kann, einschließen. Zum Beispiel kann das Speicherungssystem 100 eine Vielzahl von Datenspeicherungsvorrichtungen 106 einschließen, die als eine redundante Anordnung von preiswerten/unabhängigen Festplatten (RAID) eingerichtet sind, die zusammen als Massenspeicherungsvorrichtung für die Hostvorrichtung 104 fungieren.
  • Das Speicherungssystem 100 schließt eine Hostvorrichtung 104 ein, die Daten auf und/oder von einer oder mehreren Speichervorrichtungen, wie der Datenspeichervorrichtung 106, speichern und/oder abrufen kann. Wie in 1 veranschaulicht, kann die Hostvorrichtung 104 über eine Schnittstelle 114 mit der Datenspeicherungsvorrichtung 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 Datenspeichervorrichtung 106 schließt eine Steuerung 108, einen nichtflüchtigen Speicher 110 (NVM 110), eine Stromversorgung 111, einen flüchtigen Speicher 112, eine Schnittstelle 114 und einen Schreibpuffer 116 ein. In einigen Beispielen kann die Datenspeichervorrichtung 106 zusätzliche Komponenten einschließen, die aus Gründen der Übersichtlichkeit nicht in 1 dargestellt sind. Zum Beispiel kann die Datenspeichervorrichtung 106 eine Leiterplatte (PB) einschließen, an der Komponenten der Datenspeichervorrichtung 106 mechanisch angebracht sind und die elektrisch leitende Leiterbahnen enthält, die Komponenten der Datenspeichervorrichtung 106 oder dergleichen elektrisch miteinander verbinden. In einigen Beispielen können die physischen Abmessungen und Steckverbinderkonfigurationen der Datenspeicherungsvorrichtung 106 einem oder mehreren Standardformfaktoren entsprechen. Einige Beispiele für Standardformfaktoren schließen unter anderem eine 3,5-Zoll-Datenspeicherungsvorrichtung (z. B. eine Festplatte oder SSD), eine 2,5-Zoll-Datenspeicherungsvorrichtung, eine 1,8-Zoll-Datenspeicherungsvorrichtung, eine Peripheriekomponentenverbindung (PCI), PCI-Extended (PCI-X), PCI Express (PCle) (z. B. PCle x1, x4, x8, x16, PCle Mini Card, MiniPCI usw.) ein. In einigen Beispielen kann die Datenspeichervorrichtung 106 direkt mit einer Hauptplatine der Hostvorrichtung 104 gekoppelt (z. B. direkt verlötet) sein.
  • Die Schnittstelle 114 der Datenspeichervorrichtung 106 kann einen Datenbus zum Datenaustausch mit der Hostvorrichtung 104 und/oder einen Steuerbus zum Austauschen von Befehlen mit der Hostvorrichtung 104 einschließen. Die Schnittstelle 114 kann gemäß jedem geeigneten Protokoll arbeiten. Zum Beispiel kann die Schnittstelle 114 gemäß einem oder mehreren der folgenden Protokolle arbeiten: Advanced Technology Attachment (ATA) (z. B. Serial-ATA (SATA) und Parallel-ATA (PATA)), Fibre Channel Protocol (FCP), Small Computer System Interface (SCSI), Serially Attached SCSI (SAS), PCI und PCle, Non-Volatile Memory Express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), Open Channel SSD (OCSSD) oder dergleichen, vorausgesetzt, dass diese Protokolle in Zonen aufgeteilte Namensraum-Abstraktionen unterstützen. Die elektrische Verbindung der Schnittstelle 114 (z. B. der Datenbus, der Steuerbus oder beides) ist elektrisch mit der Steuerung 108 verbunden und stellt eine elektrische Verbindung zwischen der Hostvorrichtung 104 und der Steuerung 108 her, so dass Daten zwischen der Hostvorrichtung 104 und der Steuerung 108 ausgetauscht werden können. In einigen Beispielen kann die elektrische Verbindung der Schnittstelle 114 der Datenspeicherungsvorrichtung 106 auch ermöglichen, Strom von der Hostvorrichtung 104 zu empfangen. Zum Beispiel kann die Stromversorgung 111, wie in 1 veranschaulicht, über die Schnittstelle 114 Strom von der Hostvorrichtung 104 empfangen.
  • Die Datenspeichervorrichtung 106 schließt NVM 110 ein, der eine Vielzahl von Speichervorrichtungen oder Speichereinheiten einschließen kann. Der NVM 110 kann eingerichtet sein, um Daten zu speichern und/oder abzurufen. Zum Beispiel kann eine Speichereinheit des NVM 110 Daten und eine Nachricht von der Steuerung 108 empfangen, mit der die Speichereinheit zum Speichern der Daten angewiesen wird. In ähnlicher Weise kann die Speichereinheit des NVM 110 eine Nachricht von der Steuerung 108 empfangen, mit der die Speichereinheit zum Abrufen von Daten angewiesen wird. In einigen Beispielen kann jede der Speichereinheiten als ein Die bezeichnet werden. In einigen Beispielen kann ein einzelner physikalischer Chip eine Vielzahl von Dies (d. h. eine Vielzahl von Speichereinheiten) einschließen. In einigen Beispielen kann jede Speichereinheit zum Speichern relativ großer Datenmengen (z. B. 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, 64 GB, 128 GB, 256 GB, 512 GB, 1 TB usw.) eingerichtet sein.
  • In einigen Beispielen kann jede Speichereinheit des NVM 110 jede Art von nichtflüchtigen Speichervorrichtungen einschließen, wie z. B. Flash-Speichervorrichtungen, Phasenwechselspeicher-Vorrichtungen (PCM-Vorrichtung), resistive Direktzugriffsspeichervorrichtungen (ReRAM-Vorrichtung), magnetoresistive Direktzugriffsspeichervorrichtungen (MRAM-Vorrichtung), ferroelektrische Direktzugriffsspeicher (F-RAM), holographische Speichervorrichtungen und jede andere Art von nichtflüchtigen Speichervorrichtungen.
  • Der NVM 110 kann eine Vielzahl von Flash-Speichervorrichtungen oder -Speichereinheiten aufweisen. Flash-Speichervorrichtungen können NAND- oder NORbasierte Flash-Speichervorrichtungen einschließen und können Daten basierend auf einer Ladung speichern, die in einem Floating Gate eines Transistors für jede Flash-Speicherzelle enthalten ist. In NAND-Flash-Speichervorrichtungen kann die Flash-Speichervorrichtung in eine Vielzahl von Blöcken unterteilt werden, die in eine Vielzahl von Seiten unterteilt werden können. Jeder Block der Vielzahl von Blöcken innerhalb einer bestimmten Speichervorrichtung kann eine Vielzahl von NAND-Zellen einschließen. Reihen von NAND-Zellen können unter Verwendung einer Wortleitung elektrisch verbunden werden, um eine Seite aus einer Vielzahl von Seiten zu definieren. Entsprechende Zellen in jeder der Vielzahl von Seiten können elektrisch mit jeweiligen Bitleitungen verbunden sein. Weiterhin können NAND-Flash-Speichervorrichtungen 2D- oder 3D-Vorrichtungen sein und Single-Level-Zellen (SLC), Multi-Level-Zellen (MLC), Triple-Level-Zellen (TLC) oder Quad-Level-Zellen (QLC) sein. Die Steuerung 108 kann Daten in und aus NAND-Flash-Speichervorrichtungen auf der Seitenebene schreiben und lesen und Daten aus NAND-Flash-Speichervorrichtungen auf der Blockebene löschen.
  • Die Datenspeichervorrichtung 106 schließt eine Stromversorgung 111 ein, die eine oder mehrere Komponenten der Datenspeichervorrichtung 106 mit Strom versorgen kann. Wenn die Stromversorgung 111 in einem Standardmodus betrieben wird, kann sie eine oder mehrere Komponenten mit Strom versorgen, der von einer externen Vorrichtung, wie der Hostvorrichtung 104, bereitgestellt wird. Zum Beispiel kann die Stromversorgung 111 die eine oder die mehreren Komponenten mit Strom versorgen, der von der Hostvorrichtung 104 über die Schnittstelle 114 empfangen wird. In einigen Beispielen kann die Stromversorgung 111 eine oder mehrere Stromspeicherkomponenten einschließen, die eingerichtet sind, um die eine oder die mehreren Komponenten mit Strom zu versorgen, wenn sie in einem Abschaltmodus arbeiten, wie wenn kein Strom mehr von der externen Vorrichtung empfangen wird. Auf diese Weise kann die Stromversorgung 111 als integrierte Notfallstromquelle fungieren. Einige Beispiele für die eine oder die mehreren Stromspeicherkomponenten schließen, ohne darauf beschränkt zu sein, Kondensatoren, Superkondensatoren, Batterien und dergleichen ein. In einigen Beispielen kann die von der einen oder den mehreren Stromspeicherkomponenten gespeicherte Strommenge eine Funktion der Kosten und/oder der Größe (z. B. Fläche / Volumen) der einen oder mehreren Stromspeicherkomponenten sein. Das heißt, wenn die von der einer oder den mehreren Stromspeicherkomponenten gespeicherte Strommenge zunimmt, steigen auch die Kosten und/oder die Größe der einen oder mehreren Stromspeicherkomponenten.
  • Die Datenspeichervorrichtung 106 schließt auch den flüchtigen Arbeitsspeicher 112 ein, der von der Steuerung 108 zum Speichern von Informationen verwendet werden kann. Der flüchtige Speicher 112 kann aus einer oder mehreren flüchtigen Speichervorrichtungen bestehen. In einigen Beispielen kann die Steuerung 108 den flüchtigen Speicher 112 als Cache verwenden. Zum Beispiel kann die Steuerung 108 zwischengespeicherte Informationen im flüchtigen Arbeitsspeicher 112 speichern, bis die zwischengespeicherten Informationen in den nichtflüchtigen Arbeitsspeicher 110 geschrieben werden. Wie in 1 veranschaulicht, kann der flüchtige Speicher 112 den von der Stromversorgung 111 empfangenen Strom verbrauchen. Beispiele für den flüchtigen Speicher 112 schließen, ohne darauf beschränkt zu sein, Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4 und dergleichen)) ein.
  • Die Datenspeichervorrichtung 106 schließt eine Steuerung 108 ein, die eine oder mehrere Vorgänge der Datenspeichervorrichtung 106 verwalten kann. Zum Beispiel kann die Steuerung 108 das Lesen von Daten von und/oder das Schreiben von Daten in den NVM 110 verwalten. In einigen Ausführungsformen, wenn die Datenspeicherungsvorrichtung 106 einen Schreibbefehl von der Hostvorrichtung 104 empfängt, kann die Steuerung 108 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 Speicherungssystems 100 bestimmen und die mindestens eine Betriebscharakteristik in den NVM 110 speichern. In einigen Ausführungsformen, wenn die Datenspeicherungsvorrichtung 106 einen Schreibbefehl von der Hostvorrichtung 104 empfängt, speichert die Steuerung 108 die mit dem Schreibbefehl verbundenen Daten vorübergehend im internen Speicher oder in dem Schreibpuffer 116, bevor die Daten an den NVM 110 gesendet werden.
  • 2A und 2B sind schematische Veranschaulichungen einer Blockspeicherungsvorrichtung gemäß verschiedenen Ausführungsformen. In einer Ausführungsform kann die Blockspeicherungsvorrichtung von 2A und 2B das NVM 110 der Datenspeicherungsvorrichtung 106 von 1 sein. Außerdem kann gemäß verschiedenen Ausführungsformen die Blockspeicherungsvorrichtung von 2A und 2B eine Multi-Level-Zelle sein, wie SLC, MLC, TLC, QLC oder jede andere Iteration der Multi-Level-Zelle, die nicht aufgeführt ist. Jedes Quadrat der Blockspeichervorrichtung von 2A und 2B stellt einen Block dar, der zur Datenspeicherung verfügbar ist. Ein schraffiertes Quadrat oder Block bedeutet, dass der Block Daten aufweist. Die Daten können Benutzerdaten, XOR- oder Paritätsdaten, Vorrichtungsmetadaten oder beliebige andere geeignete Daten sein, die in der Blockspeicherungsvorrichtung gespeichert werden sollen.
  • 2A ist eine schematische Veranschaulichung einer herkömmlichen Blockspeicherungsvorrichtung. In einem herkömmlichen Blockspeicherungssystem werden Daten nacheinander in die Speicherungsvorrichtung geschrieben. Die Daten können jedoch ineffizient in das Laufwerk geschrieben werden, was zu einer Abnahme der Arbeits- oder effektiven Kapazität des Laufwerks führt. In 2A wurden Daten in Blöcke geschrieben, die in der Blockspeicherungsvorrichtung verstreut waren. Um die ineffizienten Schreibvorgänge in das Laufwerk zu überwinden, kann das Blockspeicherungssystem überversorgt werden, so dass die exponierte Kapazität (d. h. die für Daten verfügbare Kapazität) einer effizient geschriebenen Blockspeicherungsvorrichtungskapazität ähnelt. Die erhöhte Kapazität der Speicherungsvorrichtung und die ineffizienten Schreibvorgänge in die Speicherungsvorrichtung können eine große Abbildungstabelle erfordern, wie eine logisch-zu-physische (L2P) Tabelle innerhalb des flüchtigen Speichers, wie des flüchtigen Speichers 112 von 1, um den Ort der Daten innerhalb der Blockspeicherungsvorrichtung zu speichern. Die große Abbildungstabelle kann einen flüchtigen Speicher mit hoher Kapazität 112 erfordern, der kostenungünstig oder -aufwändig sein kann.
  • 2B ist eine schematische Veranschaulichung einer in Zonen aufgeteilten Blockspeicherungsvorrichtung. Die in Zonen aufgeteilte Blockspeicherungsvorrichtung ist in verschiedene Zonen unterteilt, wobei die N-te Zone der letzten Zone in der Speicherungsvorrichtung entspricht und die Kapazität jeder Zone gleich ist. In einer anderen Ausführungsform wird die in Zonen aufgeteilte Blockspeicherungsvorrichtung in verschiedene Ströme unterteilt, wobei die Kapazität jedes Stroms unterschiedlich ist. In dem in Zonen aufgeteilten Blockspeicherungssystem weist das System Firmware auf, wie ZNS. ZNS schränkt Datenschreibvorgänge in einer Zone sequentiell ein. In 2B wurden Daten in die ersten vier Blöcke nacheinander von Zone 1, in die ersten sechs Blöcke nacheinander von Zone 2 und in die ersten vier Blöcke nacheinander von Zone N geschrieben. Da ZNS Datenschreibvorgänge in einer Zone sequentiell einschränkt, wird die Kapazität jeder Zone optimiert. Somit wird die nutzbare Kapazität der Speicherungsvorrichtung (d. h. verfügbare Kapazität für Daten) erhöht, anstatt die Speichervorrichtung überversorgen zu müssen, um den gleichen Betrag der nutzbaren Kapazität beizubehalten. Die bessere Nutzung der verfügbaren Kapazität für Daten der in Zonen aufgeteilten Blockspeicherungsvorrichtung kann die Größe der Abbildungstabelle oder der in dem flüchtigen Speicher 112 gespeicherten L2P-Tabelle verringern, wodurch die erforderliche Größe des flüchtigen Speichers 112 verringert werden kann.
  • 3A und 3B sind schematische Veranschaulichungen einer Vorrichtungsteuerung eines SSD gemäß verschiedenen Ausführungsformen. Gesichtspunkte von 2A und 2B können auf das Verständnis von 3A und 3B anwendbar sein. In einer Ausführungsform kann die Flash-Vorrichtung von 3A und 3B der NVM 110 der Datenspeicherungsvorrichtung 106 von 1 sein. Außerdem kann gemäß verschiedenen Ausführungsformen die Flash-Vorrichtung von 3A und 3B eine Multi-Level-Zelle sein, wie SLC, MLC, TLC, QLC oder jede andere Iteration der Multi-Level-Zelle, die nicht aufgeführt ist. Jedes Quadrat der Blockspeicherungsvorrichtung von 3A und 3B stellt einen Block dar, der zur Datenspeicherung verfügbar ist. Ein schraffiertes Quadrat oder Block bedeutet, dass der Block Daten aufweist. Die Daten können Benutzerdaten, XOR- oder Paritätsdaten, Vorrichtungsmetadaten oder beliebige andere geeignete Daten sein, die im Flash des SSD gespeichert werden sollen.
  • 3A ist eine schematische Veranschaulichung der Vorrichtungssteuerung eines herkömmlichen SSD. Das SSD empfängt Daten von mehreren Anwendungen, wie beispielsweise Anwendung 1, Anwendung 2 und Anwendung 3. Die Daten werden im Flash des SSD gespeichert. Im SSD steuert die Speichervorrichtung die Datenplatzierung. Daten werden sequentiell in den Flash geschrieben, so dass die Daten von jeder Anwendung in der Reihenfolge geschrieben werden können, in der die Daten empfangen werden. Da die Daten von jeder Anwendung während der sequentiellen Schreibvorgänge zufällig sein können, können die Beständigkeit und die Lebensdauer der Vorrichtung negativ beeinflusst werden. ZNS-Vorrichtungen neigen dazu, einen geringeren Durchsatz zu haben, da es weniger Parallelität gibt, wenn einzeln auf die Zonen zugegriffen wird. Die Tatsache, dass alle Schreibvorgänge in einer Zone sequentiell sind, und dass eine Zone nur vollständig zurückgesetzt werden kann, bedeutet, dass keine Speicherbereinigung erforderlich ist und autonome Schreibvorgänge weniger sind, was eine bessere Schreibverstärkung und eine längere Lebensdauer der Vorrichtung ergibt.
  • 3B ist eine schematische Veranschaulichung der Vorrichtungssteuerung eines ZNS-SSD. Ähnlich wie in 3A empfängt der SSD Daten von mehreren Anwendungen, wie Anwendung 1, Anwendung 2 und Anwendung 3. Die Daten werden im Flash des SSD gespeichert. In der SSD steuern die Anwendungen oder der Host, wie beispielsweise die Hostvorrichtung 104 von 1, die Datenplatzierung in den Zonen. Der Flash des SSD ist in verschiedene gleiche Kapazitätszonen aufgeteilt. Die Zonen können als parallele Einheiten betrachtet werden, in denen die Hostvorrichtung 104 Arbeitslasten oder Daten an eine spezifische parallele Einheit leiten kann (d. h. der Host hat Blockzugriff auf den Flash). Zum Beispiel befinden sich die der Anwendung 1 zugeordneten Daten in einer ersten Zone, während sich die der Anwendung 2 zugeordneten Daten in einer zweiten Zone und die der Anwendung 3 zugeordneten Daten in einer dritten Zone befinden. Aufgrund der Zonenbereitstellung können Beständigkeit und Lebensdauer der Vorrichtung im Vergleich zu herkömmlichen SSD-Vorrichtungen verbessert werden.
  • In einer offenen Kanalumgebung führt die Hostvorrichtung viele Gesichtspunkte der Flash-Verwaltung über mehrere Datenspeicherungsvorrichtungen durch, und die Datenspeicherungsvorrichtungen stellen ihre interne Geometrie an die Hostvorrichtung dar. 4 ist eine schematische Veranschaulichung einer logischen Parallelität des offenen Kanals in einem SSD. In 4 ist die Struktur in Gruppen, parallele Einheiten (PUs), Blöcke und logische Blöcke unterteilt. Eine Gruppe ist ein gemeinsamer Bus innerhalb des offenen Kanal-SSD, in dem Bandbreite und Übertragungsaufwand (PCle, Steuerung, DRAM, keine Blockierung zwischen Lese-/Schreib/Reset) zwischen den angefügten PUs gemeinsam genutzt werden. Eine PU ist die Einheit der Parallelität innerhalb des SSD, und der PU-Zugang ist vollständig unabhängig von anderen PUs. Wenn zum Beispiel ein Schreibvorgang an eine PU ausgegeben wird, sollte eine andere PU nicht belegt sein, außer die durch die gemeinsame Nutzung derselben Gruppe eingeführte Verzögerung. Es ist zu beachten, dass die Darstellung nicht notwendigerweise die physischen Medienanfügungen ist und eine logische Darstellung sein kann. Innerhalb der PUs gibt es einen Satz von Blöcken. Die Blöcke stellen einen linearen Bereich von logischen Blöcken dar. Die Blöcke erfordern, dass Schreibvorgänge in den Blöcken nacheinander ausgegeben werden und dass ein Block zurückgesetzt wird, bevor erneut in diesen geschrieben wird.
  • Wie vorstehend erwähnt, erfordert ZNS eine minimale Beteiligung der Hostvorrichtung in der Datenspeicherungsvorrichtungsverwaltung einerseits, aber andererseits erzwingt es strenge Einschränkungen der Hostvorrichtung, wie das Schreiben nur großer Datenblöcke auf sequentielle Weise. Die offene Kanallösung ermöglicht viel mehr Flexibilität der Hostvorrichtung auf Kosten nahezu der gesamten Verantwortung der Hostvorrichtung, die Speicherwartung handzuhaben.
  • Wie hierin erörtert, wird eine konfigurierbare, abgestufte Host-Speicher-Verwaltungsarchitektur offenbart, die es der Hostvorrichtung ermöglicht, eine „Soft“-Ebene der Speicherverwaltung zu wählen, welche die Hostvorrichtung handhaben möchte. Die Datenspeicherungsvorrichtung unterstützt diese Mehrfachoptionen der Speicherverwaltung gemäß der Konfiguration der Hostvorrichtung. Die Konfiguration der Host-Interferenzebene könnte statisch sein oder in einer Ausführungsform dynamisch sein.
  • Tatsächlich präsentiert die Datenspeicherungsvorrichtung ein „Menü“ von Optionen für die Speicherverwaltung. Die Optionen reichen von der offenen Kanalkonfiguration, in der die Hostvorrichtung die überwiegende Mehrheit der Speicherverwaltung auf ZNS handhabt, wodurch die Datenspeicherungsvorrichtung die überwiegende Mehrheit der Speicherverwaltung handhabt, und alles dazwischen. Die Hostvorrichtung kann aus dem „Menü“ der Speicherverwaltungsoptionen auswählen. Die Hostvorrichtung kann die Speicherverwaltungsoptionen auswählen, welche die Hostvorrichtung verwalten wird und somit die verbleibenden Speicherverwaltungsoptionen für die zu verwaltende Datenspeicherungsvorrichtung belassen. Alternativ kann die Hostvorrichtung die Speicherverwaltungsoptionen auswählen, welche die Datenspeicherungsvorrichtung verwalten wird und die verbleibenden Speicherverwaltungsoptionen für die zu verwaltende Hostvorrichtung belassen. In jedem Fall kann die Speicherverwaltung angepasst oder zugeschnitten werden, um die spezifischen Bedürfnisse der Hostvorrichtung zu erfüllen, indem es der Hostvorrichtung ermöglicht wird, den gewünschten Speicherverwaltungsgrad auszuwählen. Darüber hinaus könnte die Hostvorrichtung, falls gewünscht, die Speicherverwaltungsverteilung ändern. In einigen seltenen Fällen wird in Betracht gezogen, dass die Hostvorrichtung die Speicherverwaltungsverteilung ändern möchte und somit eine Anforderung an die Datenspeicherungsvorrichtung initiiert, um das Menü erneut darzustellen. Um eine solche Änderung vorzunehmen, könnte die Datenspeicherungsvorrichtung jederzeit die Anforderung empfangen, dann jedoch das „Menü“ während der nächsten Leerlaufzeit für die Datenspeicherungsvorrichtung vorlegen. Obwohl unwahrscheinlich, wird in Betracht gezogen, dass eine dynamische Änderung der Speicherverwaltung möglich ist, wodurch das „Menü“ präsentiert wird, während die Datenspeicherungsvorrichtung nicht inaktiv ist.
  • Es gibt viele Funktionen, die entweder durch die Datenspeicherungsvorrichtung oder durch die Hostvorrichtung verwaltet werden können. Einer der Vorgänge ist die Handhabung der Abnutzung, sprich die Balance zwischen Programmier-/Löschzählungen der physischen Blöcke entlang der gesamten Datenspeicherungsvorrichtung. Ein anderer Vorgang ist die Speicherbereinigung, was die Neuordnung von Daten entlang der Datenspeicherungsvorrichtung ist, um verwandte Daten zu sammeln und eine fragmentierte Datenreihenfolge zu vermeiden. Ein weiterer Vorgang ist die Datenmarkierung, was die Kreuztemperatur-Verzögerung, Datenzuverlässigkeit, Kalt-/Heißebene (d. h. Zugangsfrequenz und Datenwichtigkeit) ist. Noch ein weiterer Vorgang ist die Lesebereinigung, was die Aktualisierung von gespeicherten Daten ist, um Fehler aufgrund verschiedener Speicherstörungen wie Datenretention zu reduzieren. Ein weiterer Vorgang ist das Aktualisieren der Verwaltungstabellen, während ein anderer Vorgang Fehlerkorrekturcodes (ECC) ist, die Daten codieren und decodieren. Die ECC würden vorzugsweise auf der Speichersteuerungsebene in der Datenspeicherungsvorrichtung bleiben, könnte jedoch bei Bedarf von der Hostvorrichtung vorgenommen werden.
  • Wie hierin erörtert wird die Hostvorrichtung mit einem Menü von Optionen für die Speicherverwaltung präsentiert, die von von offener Kanalverwaltung bis ZNS-Verwaltung mit allem dazwischen variiert. Das Menü stellt unterschiedliche vordefinierte Kombinationen von Speicherverwaltungsvorgängen bereit, die entweder durch die Datenspeicherungsvorrichtung oder die Hostvorrichtung vorgenommen werden sollen. Die Datenspeicherungsvorrichtung präsentiert die Speicherverwaltungsoptionen an die Hostvorrichtung, und die Hostvorrichtung wählt den gewünschten Grad an Speicherverwaltung aus. Die nachstehende Tabelle veranschaulicht mehrere Optionen, die der Hostvorrichtung durch die Datenspeicherungsvorrichtung präsentiert werden können. Es wird in Betracht gezogen, dass die vorstehend erörterten einzelnen Optionen der Hostvorrichtung oder voreingestellte Kombinationen der einzelnen Optionen der Hostvorrichtung präsentiert werden können. Tabelle
    Abnutzungsgrad-Handhabung Speicherbereinigung Datenmarkierung Lesebereinigung Aktualisierung der Verwaltungstabellen
    Option 1 Host Host Host Host Host
    Option 2 Vorrichtung Vorrichtung Host Vorrichtung Vorrichtung
    Option 3 Host Vorrichtung Host Vorrichtung Vorrichtung
    Option 4 Host Vorrichtung Host Vorrichtung Vorrichtung
    Option 5 Vorrichtung Vorrichtung Vorrichtung Vorrichtung Vorrichtung
    Option 6 Host Host Host Host Vorrichtung
    Option 7 Vorrichtung Vorrichtung Vorrichtung Host Vorrichtung
  • Es versteht sich, dass, obwohl sieben Optionen in der Tabelle gezeigt wurden, auch andere Optionen in Betracht gezogen werden. Tatsächlich wird allgemein jede Kombination der Abnutzungsgrad-Handhabung, der Speicherbereinigung, der Datenmarkierung, der Lesebereinigung und der Aktualisierung von Verwaltungstabellen in Betracht gezogen. Es versteht sich auch, dass eine Unterteilung auf eine höhere Granularität vorgenommen werden könnte, sodass ein Teil der Datenmarkierung durch den Host und einen anderen Teil durch die Datenspeicherungsvorrichtungssteuerung vorgenommen werden könnte. Die Konfiguration der Host-Verwaltungsebene könnte statisch sein, was bedeutet, dass die Host-Verwaltungsebene nach dem Booten nicht geändert würde. Es wird jedoch in Betracht gezogen, dass die Host-Verwaltungsebene dynamisch sein könnte, sodass die Hostvorrichtung auslösen könnte, dass die Datenspeicherungsvorrichtung andere solche Interferenzoptionen aus der vordefinierten Liste verwendet, die sowohl von der Hostvorrichtung als auch der Datenspeicherungsvorrichtung unterstützt würde. Die hierin erörterten Ausführungsformen schließen die Handhabung mehrerer Partitionen innerhalb desselben Speicherarrays, ansonsten mehrere unterschiedliche Chips oder unterschiedliche Speichervorrichtungen einer Datenspeicherungsvorrichtung ein, die mit derselben Hostvorrichtung verbunden sind, an der jede Partition/Chip/Vorrichtung von der Hostvorrichtung in einer anderen Interferenzebene gehandhabt wird.
  • 5 ist ein Flussdiagramm, das ein Verfahren veranschaulicht, dass einer Hostvorrichtung das Anpassen von Konfigurationen gemäß den hostspezifischen Anforderungen veranschaulicht. Als Teil der Host-Vorrichtungsprotokoll-Initialisierung (z. B. NVMe) in Block 502 meldet die Datenspeicherungsvorrichtung die Speicherungsvorrichtungskapazität und Flexibilitätsunterstützung an die Hostvorrichtung in Block 504. Zum Beispiel meldet die Datenspeicherungsvorrichtung der Hostvorrichtung die unterstützten und nicht unterstützten Merkmale (d. h. aus der obigen Tabelle oder auf Grundlage einer einzelnen Option). Dann konfiguriert die Hostvorrichtung die Datenspeicherungsvorrichtung durch Ermöglichen der gewünschten Merkmale in Block 506. Die Hostvorrichtung und die Datenspeicherungsvorrichtung arbeiten dann gemäß der Konfiguration in Block 508. Zu einem bestimmten Zeitpunkt kann die Hostvorrichtung wünschen, dass sich die Konfiguration in Block 510 ändert und muss also warten, bis sich die Datenspeicherungsvorrichtung in Block 512 in einem Ruhezustand befindet, bevor das Rekonfigurieren beginnt.
  • Das Menü der Optionen, die der Hostvorrichtung durch die Datenspeicherungsvorrichtung bereitgestellt werden, stellt der Hostvorrichtung größere Flexibilität bereit, um den Kompromiss zwischen der Flexibilität der Hostvorrichtung zu manövrieren, um den Speicher der Datenspeicherungsvorrichtung und den resultierenden Aufwand in Bezug auf speicherverwaltungsbezogene Vorgänge zu betreiben. Wenn die Optionen geändert und an den aktuellen Zustand des Systems angepasst werden können, kann die Möglichkeit, Optionen zu wählen, Strom sparen und die Leistung erhöhen. Zum Beispiel schreibt die Hostvorrichtung normalerweise große Blöcke sequentieller Daten, aber in einigen Szenarien benötigt die Hostvorrichtung einen Direktschreibzugriff. Somit kann das System für diese seltenen Schreibbefehle auf einen offenen Kanalmodus umschalten und danach zum ZNS-Modus zurückkehren.
  • Durch Bereitstellen einer Auswahl spezifischer Speicherverwaltungsoptionen an die Hostvorrichtung kann die Hostvorrichtung eine gewünschte Speicherverwaltungsebene auswählen. Hierzu steuert die Hostvorrichtung den Kompromiss zwischen dem HostVorrichtung-Speicherverwaltungsaufwand und der Flexibilität der Hostvorrichtung.
  • In einer Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; und eine Steuerung auf, die mit der Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Liste von unterstützten Merkmalen an eine Hostvorrichtung, wobei die Liste unterstützter Merkmale eine Abnutzungsgrad-Handhabung, eine Speicherbereinigung, eine Datenmarkierung, eine Lesebereinigung; und Aktualisieren der Verwaltungstabellen einschließt; Empfangen einer Auswahl der unterstützten Merkmale von der Hostvorrichtung; und Einrichten der Datenspeicherungsvorrichtung gemäß den ausgewählten unterstützten Merkmalen. Das Empfangen der Auswahl der unterstützten Merkmale weist das Empfangen der Auswahl der unterstützten Merkmale, welche die Hostvorrichtung verwalten wird, auf. Die empfangene Auswahl weist das Auswählen von ausreichenden unterstützten Merkmalen für die zu verwaltende Hostvorrichtung auf, sodass die Datenspeicherungsvorrichtung als eine in Zonen aufgeteilte Namensraumvorrichtung (ZNS) arbeitet. Die empfangene Auswahl weist das Auswählen von ausreichenden unterstützten Merkmalen für die zu verwaltende Hostvorrichtung auf, sodass die Datenspeicherungsvorrichtung als eine offene Kanalvorrichtung arbeitet. Die Steuerung ist eingerichtet, um Daten zu codieren und zu decodieren. Das Empfangen der Auswahl der unterstützten Merkmale weist das Empfangen der Auswahl der Abnutzungsgrad-Handhabung und Datenmarkierung, welche die Hostvorrichtung verwalten wird, auf. Die Steuerung ist eingerichtet, um eine Benachrichtigung von der Hostvorrichtung zu empfangen, dass die Hostvorrichtung die Auswahl der unterstützten Merkmale ändern möchte. Die Steuerung ist eingerichtet, um zu warten, bis die Datenspeicherungsvorrichtung inaktiv ist, bevor die Auswahl der unterstützten Merkmale geändert wird.
  • In einer anderen Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; und eine Steuerung auf, die mit der Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Auswahl von Konfigurationen an eine Hostvorrichtung, wobei die Auswahl von Konfigurationen eine offene Kanalkonfiguration, eine Zonennamensraum-Konfiguration (ZNS-Konfiguration) und eine Konfiguration zwischen der ZNS-Konfiguration und der offenen Kanalkonfiguration einschließt. Die Steuerung ist weiterhin eingerichtet, um eine Host-Auswahl der Hostvorrichtung zu empfangen, welche die Datenmarkierung verwaltet. Die Steuerung ist weiterhin eingerichtet, um eine Host-Auswahl der Hostvorrichtung zu empfangen, welche die Abnutzungsgrad-Handhabung verwaltet. Die Steuerung ist weiterhin eingerichtet, um eine Host-Auswahl der Hostvorrichtung, welche die Abnutzungsgrad-Handhabung, Speicherbereinigung, Datenmarkierung, Lesebereinigung und eine Aktualisierung von Verwaltungstabellen verwaltet, zu empfangen. Die Steuerung ist weiterhin eingerichtet, um eine Host-Auswahl zu empfangen, dass die Datenspeicherungsvorrichtung die Abnutzungsgrad-Handhabung, die Speicherbereinigung, die Datenmarkierung, die Lesebereinigung und die Aktualisierungen der Verwaltungstabellen verwalten wird. Die Steuerung ist eingerichtet, um Fehlerkorrekturcodes zu verwalten.
  • In einer anderen Ausführungsform weist eine Datenspeichervorrichtung: eine Speichervorrichtung; eine Steuereinheit, die mit der Speichervorrichtung verbunden ist; Mittel zum Empfangen einer Host-Vorrichtungsanweisung zum Einrichten der Datenspeicherungsvorrichtung in einer Konfiguration, die durch die Hostvorrichtung ausgewählt wird, wobei vor dem Empfangen der Host-Vorrichtungsanweisung die Datenspeicherungsvorrichtung entweder in einer offenen Kanalkonfiguration, einer ZNS-Konfiguration oder einer Konfiguration zwischen der offenen Kanalkonfiguration und der ZNS-Konfiguration arbeiten kann; und Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um die durch die Hostvorrichtung ausgewählte Konfiguration betreiben zu können. Die Datenspeicherungsvorrichtung weist weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung zum Verwalten der Speicherbereinigung; und Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um es der Hostvorrichtung zu ermöglichen, die Abnutzungsgrad-Handhabung zu verwalten. Die Datenspeicherungsvorrichtung weist weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um es der Hostvorrichtung zu ermöglichen, die Datenmarkierung zu verwalten. Die Datenspeicherungsvorrichtung weist weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung zum Verwalten von Fehlerkorrekturcodes auf. Die Datenspeicherungsvorrichtung weist weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um es der Hostvorrichtung zu ermöglichen, eine Lesebereinigung zu verwalten. Die Datenspeicherungsvorrichtung weist weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung auf, um es der Hostvorrichtung zu ermöglichen, die Aktualisierung von Verwaltungstabellen zu verwalten.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Offenbarung ausgearbeitet werden, ohne vom grundlegenden Schutzumfang davon abzuweichen, und der Schutzumfang wird durch die nachstehenden Ansprüche bestimmt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/859940 [0001]

Claims (20)

  1. Datenspeicherungsvorrichtung, aufweisend: eine Speichervorrichtung und eine Steuerung, die an die Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Liste von unterstützten Merkmalen an eine Hostvorrichtung, wobei die Liste unterstützter Merkmale eine Abnutzungsgrad-Handhabung, eine Speicherbereinigung, eine Datenmarkierung, eine Lesebereinigung; und Aktualisieren der Verwaltungstabellen einschließt; Empfangen einer Auswahl der unterstützten Merkmale von der Hostvorrichtung; und Einrichten der Datenspeicherungsvorrichtung gemäß den ausgewählten unterstützten Merkmalen.
  2. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei das Empfangen der Auswahl der unterstützten Merkmale das Empfangen der Auswahl der unterstützten Merkmale, welche die Hostvorrichtung verwalten wird, aufweist.
  3. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die empfangene Auswahl das Auswählen von ausreichenden unterstützten Merkmalen für die zu verwaltende Hostvorrichtung aufweist, sodass die Datenspeicherungsvorrichtung als eine in Zonen aufgeteilte Namensraumvorrichtung (ZNS) arbeitet.
  4. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die empfangene Auswahl das Auswählen von ausreichenden unterstützten Merkmalen für die zu verwaltende Hostvorrichtung aufweist, sodass die Datenspeicherungsvorrichtung als eine offene Kanalvorrichtung arbeitet.
  5. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung weiterhin eingerichtet ist zum Codieren und Decodieren von Daten.
  6. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei das Empfangen der Auswahl der unterstützten Merkmale das Empfangen der Auswahl der Abnutzungsgrad-Handhabung und Datenmarkierung, welche die Hostvorrichtung verwalten wird, aufweist.
  7. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um eine Benachrichtigung von der Hostvorrichtung zu empfangen, dass die Hostvorrichtung die Auswahl der unterstützten Merkmale ändern möchte.
  8. Datenspeicherungsvorrichtung gemäß Anspruch 7, wobei die Steuerung eingerichtet ist, um zu warten, bis die Datenspeicherungsvorrichtung inaktiv ist, bevor die Auswahl der unterstützten Merkmale geändert wird.
  9. Datenspeicherungsvorrichtung, aufweisend: eine Speichervorrichtung und eine Steuerung, die an die Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Liefern einer Auswahl von Konfigurationen an eine Hostvorrichtung, wobei die Auswahl von Konfigurationen eine offene Kanalkonfiguration, eine Zonennamensraum-Konfiguration (ZNS-Konfiguration) und eine Konfiguration zwischen der ZNS-Konfiguration und der offenen Kanalkonfiguration einschließt.
  10. Datenspeicherungsvorrichtung gemäß Anspruch 9, wobei die Steuerung weiterhin eingerichtet ist, um eine Host-Auswahl der Hostvorrichtung zu empfangen, welche die Datenmarkierung verwaltet.
  11. Datenspeicherungsvorrichtung gemäß Anspruch 10, wobei die Steuerung weiterhin eingerichtet ist, um eine Host-Auswahl der Hostvorrichtung zu empfangen, welche die Handhabung der Abnutzung verwaltet.
  12. Datenspeicherungsvorrichtung gemäß Anspruch 9, wobei die Steuerung weiterhin eingerichtet ist, um eine Host-Auswahl der Hostvorrichtung zu empfangen, die eine Abnutzungsgrad-Handhabung, eine Speicherbereinigung, eine Datenmarkierung, eine Lesebereinigung und eine Aktualisierung von Verwaltungstabellen verwaltet.
  13. Datenspeicherungsvorrichtung gemäß Anspruch 9, wobei die Steuerung weiterhin eingerichtet ist, um eine Host-Auswahl zu empfangen, dass die Datenspeicherungsvorrichtung die Abnutzungsgrad-Handhabung, die Speicherbereinigung, die Datenmarkierung, die Lesebereinigung und die Aktualisierungen der Verwaltungstabellen verwaltet.
  14. Datenspeicherungsvorrichtung gemäß Anspruch 9, wobei die Steuerung weiterhin eingerichtet ist, um die Fehlerkorrekturcodes zu verwalten.
  15. Datenspeicherungsvorrichtung, aufweisend: eine Speichervorrichtung eine Steuereinheit, die mit der Speichervorrichtung verbunden ist; Mittel zum Empfangen einer Host-Vorrichtungsanweisung zum Einrichten der Datenspeicherungsvorrichtung in einer Konfiguration, die durch die Hostvorrichtung ausgewählt wird, wobei vor dem Empfangen der Host-Vorrichtungsanweisung die Datenspeicherungsvorrichtung entweder in einer offenen Kanalkonfiguration, einer ZNS-Konfiguration oder einer Konfiguration zwischen der offenen Kanalkonfiguration und der ZNS-Konfiguration arbeiten kann; und Mittel zum Konfigurieren der Datenspeicherungsvorrichtung, um die durch die Hostvorrichtung ausgewählte Konfiguration betreiben zu können.
  16. Datenspeicherungsvorrichtung gemäß Anspruch 15, weiterhin aufweisend: Mittel zum Konfigurieren der Datenspeicherungsvorrichtung zum Verwalten der Speicherbereinigung; und Mittel zum Konfigurieren der Datenspeicherungsvorrichtung, um es der Hostvorrichtung zu ermöglichen, die Abnutzungsgrad-Handhabung zu verwalten.
  17. Datenspeicherungsvorrichtung gemäß Anspruch 16, weiterhin aufweisend Mittel zum Konfigurieren der Datenspeicherungsvorrichtung, um es der Hostvorrichtung zu ermöglichen, die Datenmarkierung zu verwalten.
  18. Datenspeicherungsvorrichtung gemäß Anspruch 17, weiterhin aufweisend Mittel zum Konfigurieren der Datenspeicherungsvorrichtung zum Verwalten von Fehlerkorrekturcodes.
  19. Datenspeicherungsvorrichtung gemäß Anspruch 18, weiterhin Mittel zum Konfigurieren der Datenspeicherungsvorrichtung, um es der Hostvorrichtung zu ermöglichen, eine Lesebereinigung zu verwalten.
  20. Datenspeicherungsvorrichtung gemäß Anspruch 19, weiterhin aufweisend Mittel zum Konfigurieren der Datenspeicherungsvorrichtung, um es der Hostvorrichtung zu ermöglichen, die Aktualisierung von Verwaltungstabellen zu verwalten.
DE112020004959.0T 2020-04-27 2020-12-14 Zonenbasierte vorrichtung mit vom host ausgewählter steuerebene Pending DE112020004959T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/859,940 2020-04-27
US16/859,940 US11194489B2 (en) 2020-04-27 2020-04-27 Zone-based device with control level selected by the host
PCT/US2020/064916 WO2021221725A1 (en) 2020-04-27 2020-12-14 Zone-based device with control level selected by the host

Publications (1)

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

Family

ID=78222431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004959.0T Pending DE112020004959T5 (de) 2020-04-27 2020-12-14 Zonenbasierte vorrichtung mit vom host ausgewählter steuerebene

Country Status (4)

Country Link
US (1) US11194489B2 (de)
CN (1) CN114730287A (de)
DE (1) DE112020004959T5 (de)
WO (1) WO2021221725A1 (de)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823171B1 (ko) 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US9329990B2 (en) 2013-01-11 2016-05-03 Micron Technology, Inc. Host controlled enablement of automatic background operations in a memory device
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9542118B1 (en) * 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US10254979B1 (en) 2017-09-28 2019-04-09 Intel Corporation Relocating or aborting a block of data by a host, based on media policies managed by a storage device
US20210117117A1 (en) * 2019-10-22 2021-04-22 Micron Technology, Inc. Construction of a block device

Also Published As

Publication number Publication date
WO2021221725A1 (en) 2021-11-04
CN114730287A (zh) 2022-07-08
US20210334022A1 (en) 2021-10-28
US11194489B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102018105871A1 (de) Speichersystem und Verfahren zur Vermeidung von Befehlskollisionen in nicht flüchtigen Datenspeichern mit expliziter Kachelgruppierung
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112020005078T5 (de) Verschieben von änderungsprotokolltabellen zum abstimmen mit zonen
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE102021115500A1 (de) Hostverwaltete hardwarekomprimierung mit gezonten namensräumen
DE112020005096T5 (de) Gewichtung von lesebefehlen an zonen in speicherungsvorrichtungen

Legal Events

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

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MURGITROYD & COMPANY, DE