DE102017113439B4 - Abbildungstabellen für Speichervorrichtungen - Google Patents

Abbildungstabellen für Speichervorrichtungen Download PDF

Info

Publication number
DE102017113439B4
DE102017113439B4 DE102017113439.5A DE102017113439A DE102017113439B4 DE 102017113439 B4 DE102017113439 B4 DE 102017113439B4 DE 102017113439 A DE102017113439 A DE 102017113439A DE 102017113439 B4 DE102017113439 B4 DE 102017113439B4
Authority
DE
Germany
Prior art keywords
volatile memory
mapping table
virtual
memory device
physical mapping
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.)
Active
Application number
DE102017113439.5A
Other languages
English (en)
Other versions
DE102017113439A1 (de
Inventor
Adam Christopher GEML
Colin Christopher MCCAMBRIDGE
Philip James Sanders
Lee Anton Sendelbach
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 DE102017113439A1 publication Critical patent/DE102017113439A1/de
Application granted granted Critical
Publication of DE102017113439B4 publication Critical patent/DE102017113439B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

Speichervorrichtung (6), umfassend:eine erste nichtflüchtige Speicheranordnung (10AN), konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung;eine zweite nichtflüchtige Speicheranordnung (16), konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist;eine flüchtige Speicheranordnung (12), die eingerichtet ist, Informationen, die eine virtuelle zu physikalische Abbildungstabelle (18B) enthalten, vorübergehend zu speichern, undeine Steuerung (8), konfiguriert zum:Speichern der virtuellen zu physikalischen Abbildungstabelle (18A) in der ersten nichtflüchtigen Speicheranordnung;Speichern eines Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle in der zweiten nichtflüchtigen Speicheranordnung;Verarbeiten von Leseanforderungen und Schreibanforderungen unter Verwendung des in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle während eines Urladeprozesses der Wirtsvorrichtung, wobei der Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Teilmenge der in der ersten nichtflüchtigen Speicheranordnung gespeicherten vollständigen Version der virtuellen zu physikalischen Abbildungstabelle ist;Kopieren der virtuellen zu physikalischen Abbildungstabelle (18A) von der ersten nichtflüchtigen Speicheranordnung in der flüchtigen Speicheranordnung (12) während des Urladeprozesses;Durchführen eines Verschleißausgleichs und einer Müllsammlung;Umpositionieren von Daten in der zweiten nichtflüchtigen Speicheranordnung basierend auf dem Verschleißausgleich und der Müllsammlung;Aktualisieren der virtuellen zu physikalischen Abbildungstabelle basierend auf den umpositionierten Daten in der zweiten nichtflüchtigen Speicheranordnung (16).

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung betrifft Abbildungstabellen für Speichervorrichtungen und insbesondere virtuelle zu physikalische Abbildungstabellen bzw. V2P-Abbildungstabellen für Speichervorrichtungen.
  • HINTERGRUND
  • Eine Datenspeichervorrichtung wie ein Festplattenlaufwerk (HDD) oder Festkörperlaufwerk (SSD) kann eine virtuelle zu physikalische Abbildungstabelle bzw. V2P-Abbildungstabelle führen, die physikalische Blockadressen (PBAs), die dem tatsächlichen Speichermedium zugewiesen sind, auf virtuelle Blockadressen (die auch als „logische Blockadressen“ oder „LBAs“ bezeichnet werden können) abbildet. Die Datenspeichervorrichtung kann die V2P-Abbildungstabelle führen, um mehr LBAs zur Verwendung durch eine in Ausführung begriffene Anwendung oder ein Betriebssystem zu exponieren. Aus der Perspektive der in Ausführung begriffenen Anwendung oder des Betriebssystems ändert sich die LBA, die Daten zugewiesen ist, nicht (und ist demzufolge statisch). Die Datenspeichervorrichtung kann die LBA auf eine PBA abbilden, die sich während des Betriebs der Datenspeichervorrichtung ändert. SDDs können zum Beispiel verschiedene Arten von Wartung (z. B. zu Zwecken des Verschleißausgleichs, der Müllsammlung usw.) durchführen, die Daten zwischen PBAs verlagern. Zum Berücksichtigen der Verlagerung von Daten kann die Datenspeichervorrichtung die Assoziation oder Abbildung der LBA auf die neue PBA ändern.
  • Die Datenspeichervorrichtung kann eine Kopie der V2P-Abbildungstabelle in einer nichtflüchtigen Speicheranordnung des Massenspeicherbereichs der Datenspeichervorrichtung zu Zwecken des Haltens zwischen Ein-/Ausschaltzyklen speichern. Um einen effizienteren Zugriff (hinsichtlich der Zugriffszeiten) zu ermöglichen, kann die Datenspeichervorrichtung die V2P-Abbildungstabelle jedoch aus dem nichtflüchtigen Speicher in einen flüchtigen Speicher wie dynamischen Direktzugriffspeicher („DRAM“) laden.
  • [0003a] US 8966205 B1 betrifft ein Speichersystem, das Müllsammlung (Garbage Collection) und hybride Eigenzuordnung zum Verwalten von Systemdaten verwendet. US 8612666 B2 betrifft eine logisch-zu-physikalisch Adress-Zuordnungsstruktur, die Teil einer mit einem nichtflüchtigen Speicher assoziierten Weiterleitungs-Systemzuordnung ist, wobei ermöglicht wird, dass Segmente der logisch-zu-physikalisch Adress-Zuordnungsstruktur in dem nichtflüchtigen Speicher gespeichert werden. US 2014/0281150 A1 betrifft ein Verfahren zum Verwalten eines Datensatzes, wobei eine Basiskopie des Datensatzes in einem ersten nichtflüchtigen Speicher gespeichert wird, Änderungen des Datensatzes in einem zweiten nichtflüchtigen Speicher gespeichert werden und eine aktuelle Kopie des Datensatzes durch Lesen der Basiskopie und der Änderungen erhalten wird.
  • ZUSAMMENFASSUNG
  • [0003b] Erfindungsgemäß bereitgestellt werden eine Speichervorrichtung, ein Verfahren und ein computerlesbares Speichermedium mit den Merkmalen der unabhängigen Ansprüche; abhängige Ansprüche betreffen bevorzugte Ausführungsformen.
  • In einigen Beispielen beschreibt die Offenbarung eine Speichervorrichtung, enthaltend eine erste nichtflüchtige Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung, und eine zweite nichtflüchtige Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist. Die Speichervorrichtung enthält außerdem eine Steuerung, konfiguriert zum Speichern einer virtuellen zu physikalischen Abbildungstabelle in der ersten nichtflüchtigen Speicheranordnung und zum Speichern eines Abschnitts der virtuellen zu physikalischen Abbildungstabelle in der zweiten nichtflüchtigen Speicheranordnung.
  • In einigen Beispielen beschreibt die Offenbarung ein Verfahren, enthaltend Speichern, durch eine Steuerung einer Speichervorrichtung, einer virtuellen zu physikalischen Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung. Das Verfahren enthält außerdem Speichern, durch die Steuerung, eines Abschnitts der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist.
  • In einigen Beispielen beschreibt die Offenbarung eine computerlesbare Speichervorrichtung, die Anweisungen enthält, die, wenn sie ausgeführt werden, einen oder mehrere Prozessoren der Speichervorrichtung konfigurieren, eine virtuelle zu physikalische Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung, zu speichern. Die computerlesbare Speichervorrichtung enthält außerdem Anweisungen, die, wenn sie ausgeführt werden, den einen oder die mehreren Prozessoren konfigurieren, einen Abschnitt der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, zu speichern, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist.
  • Die Einzelheiten eines oder mehrerer Beispiele sind in den beigefügten Zeichnungen und der nachstehenden Beschreibung angeführt. Andere Merkmale, Aufgaben und Vorteile werden aus der Beschreibung und den Zeichnungen sowie aus den Ansprüchen offensichtlich sein.
  • Figurenliste
    • 1 zeigt ein konzeptionelles Blockdiagramm, das eine beispielhafte Speicherumgebung darstellt, in der eine Datenspeichervorrichtung eine virtuelle zu physikalische Abbildungstabelle bzw. V2P-Abbildungstabelle gemäß einer oder mehreren Techniken dieser Offenbarung speichern kann.
    • 2 zeigt ein konzeptionelles Blockdiagramm, das verschiedene Module in einer Steuerung gemäß einer oder mehreren Techniken dieser Offenbarung darstellt.
    • 3 zeigt ein konzeptionelles Blockdiagramm, das in flüchtigen und nichtflüchtigen Speicheranordnungen gespeicherte V2P-Abbildungstabellen gemäß einer oder mehreren Techniken dieser Offenbarung darstellt.
    • 4 zeigt ein Ablaufdiagramm, das eine beispielhafte Technik zum Speichern eines Abschnitts einer V2P-Abbildungstabelle gemäß einer oder mehreren Techniken dieser Offenbarung darstellt.
    • 5 zeigt ein Ablaufdiagramm, das eine beispielhafte Technik zum Zugreifen auf eine V2P-Abbildungstabelle während des Hochfahrens gemäß einer oder mehreren Techniken dieser Offenbarung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine Datenspeichervorrichtung kann eine virtuelle zu physikalische Abbildungstabelle bzw. V2P-Abbildungstabelle enthalten, die die virtuellen Adressen von durch einen Wirt gespeicherten Daten mit physikalischen Adressen, die Orte in Speicheranordnungen identifizieren, assoziiert. Die Datenspeichervorrichtung kann die V2P-Abbildungstabelle in einem Massenspeicherbereich (der eine nichtflüchtige Speicheranordnung (NVMA) repräsentieren kann, die verwendet wird, Daten von sowohl der Speichervorrichtung als auch der Wirtsvorrichtung zu speichern) der Datenspeichervorrichtung speichern, um die V2P-Abbildungstabelle zwischen Ein-/Ausschaltzyklen zu erhalten. Während des Urladeprozesses kann die Datenspeichervorrichtung die V2P-Abbildungstabelle aus dem Massenspeicherbereich abrufen und die V2P-Abbildungstabelle in einem flüchtigen Speicher speichern, um einen effizienteren Zugriff (hinsichtlich der Zugriffszeiten) auf die V2P-Abbildungstabelle zu ermöglichen.
  • Die Wirtsvorrichtung kann jedoch versuchen, Daten zu schreiben oder zu lesen (durch Ausgeben von Schreib- oder Leseanforderungen), bevor die Datenspeichervorrichtung die V2P-Abbildungstabelle vollständig in dem flüchtigen Speicher gespeichert hat. Wenn noch nicht auf die V2P-Abbildungstabelle in dem flüchtigen Speicher zugegriffen werden kann, kann die Datenspeichervorrichtung entweder die Verarbeitung der Schreib- oder Leseanforderungen verzögern, bis die V2P-Abbildungstabelle in dem flüchtigen Speicher gespeichert wurde, oder den Eintrag der V2P-Abbildungstabelle aus dem Massenspeicherbereich abrufen, wobei beide die Wartezeit beim Verarbeiten der Schreib- oder Leseanforderungen verlängern können.
  • Im Allgemeinen beschreibt diese Offenbarung durch eine Steuerung in einer Datenspeichervorrichtung implementierte Techniken, die konfiguriert sind, einen Abschnitt einer V2P-Abbildungstabelle in einer nichtflüchtigen Speicheranordnung zu speichern, die von dem Massenspeicherbereich getrennt ist. Die Steuerung kann auf den Abschnitt der V2P-Abbildungstabelle während eines Urladeprozesses zugreifen, um Schreib- oder Leseanforderungen zu verarbeiten, und dadurch Daten lokalisieren, während die Datenspeichervorrichtung eine vollständige Version der V2P-Abbildungstabelle (die auch als ein „Umleitungssystem“ bezeichnet werden kann) im flüchtigen Speicher konstruiert.
  • 1 zeigt ein konzeptionelles Blockdiagramm, das eine beispielhafte Speicherumgebung 2 darstellt, in der eine Datenspeichervorrichtung 6 eine V2P-Abbildungstabelle 18 speichern kann, gemäß einer oder mehreren Techniken dieser Offenbarung. Zum Beispiel kann die Wirtsvorrichtung 4 nichtflüchtige Speichervorrichtungen nutzen, die in der Datenspeichervorrichtung 6 enthalten sind, um Daten zu speichern und abzurufen. In einigen Beispielen kann die Speicherumgebung 2 eine Vielzahl von Speichervorrichtungen wie die Datenspeichervorrichtung 6 enthalten, die als eine Speicheranordnung betrieben werden können. Zum Beispiel kann die Speicherumgebung 2 eine Vielzahl von Speichervorrichtungen 6 enthalten, die als eine redundante Anordnung von kostengünstigen/unabhängigen Platten (RAID) konfiguriert sind, die zusammen als eine Massenspeichervorrichtung für die Wirtsvorrichtung 4 arbeiten. Die Datenspeichervorrichtung 6 kann zum Beispiel ein Festkörperlaufwerk (SSD), ein Festplattenlaufwerk (HDD), ein Hybridlaufwerk, das sowohl Festkörperspeicher als auch magnetische Medien enthält, und dergleichen sein.
  • Die Speicherumgebung 2 kann die Wirtsvorrichtung 4 enthalten, die Daten in und/oder aus einer oder mehreren Speichervorrichtungen wie die Datenspeichervorrichtung 6 speichern und/oder abrufen kann. Wie in 1 dargestellt, kann die Wirtsvorrichtung 4 über die Schnittstelle 14 mit der Datenspeichervorrichtung 6 kommunizieren. Die Wirtsvorrichtung 4 kann beliebige eines großen Bereichs von Vorrichtungen umfassen, einschließlich von Computerservern, Netzwerkspeicher- bzw. NAS-Einheiten, Tischcomputern, Notebook- (d. h. Laptop-)Computern, Tablet-Computern, Settop-Boxen, Telefon-Handgeräten wie so genannten „Smartphones“, so genannten „Smartpads“, Fernsehgeräten, Kameras, Anzeigevorrichtungen, Abspielgeräten für digitale Medien, Videospielkonsolen, Videostreamingvorrichtungen und dergleichen. Typischerweise umfasst die Wirtsvorrichtung 4 jede Vorrichtung, die einen Prozessor aufweist, was sich auf jede Form von Hardware beziehen kann, die imstande ist, Daten zu verarbeiten, und eine Allzweck-Verarbeitungseinheit wie eine Zentralverarbeitungseinheit (CPU), dedizierte Hardware (wie eine anwendungsspezifische integrierte Schaltung (ASIC)), konfigurierbare Hardware wie eine feldprogrammierbare Gatteranordnung (FPGA) oder eine beliebige andere Form von Verarbeitungseinheit, die mittels Software-Anweisungen, Mikrocode, Firmware oder dergleichen konfiguriert ist, enthalten kann.
  • Wie in 1 dargestellt, kann die Datenspeichervorrichtung 6 die Steuerung 8, die nichtflüchtigen Speicheranordnungen 10A-10N (NVMAs 10), die Leistungsversorgung 11, den flüchtigen Speicher 12 und die Schnittstelle 14 enthalten. In einigen Beispielen kann die Datenspeichervorrichtung 6 zusätzliche Komponenten enthalten, die der Deutlichkeit halber in 1 nicht dargestellt sind. Zum Beispiel kann die Datenspeichervorrichtung 6 eine gedruckte Leiterplatte (PCB), an der Komponenten der Datenspeichervorrichtung 6 mechanisch angebracht sind und die elektrisch leitende Leiterbahnen enthält, die Komponenten der Datenspeichervorrichtung 6 elektrisch verschalten, oder dergleichen enthalten. In einigen Beispielen können die physikalischen Abmessungen und Steckverbinder-Konfigurationen der Datenspeichervorrichtung 6 einem oder mehreren Standardformfaktoren entsprechen. Einige beispielhafte Standardformfaktoren enthalten 3,5''-Festplattenlaufwerk (HDD), 2,5''-HDD, 1,8''-HDD, Peripheral Component Interconnect (PCI), PCI-extended (PCI-X), PCI Express (PCIe), z. B. PCIe x1, x4, x8, x16, PCIe Mini Card, MiniPCI usw., sind aber nicht darauf beschränkt. In einigen Beispielen kann die Datenspeichervorrichtung 6 an eine Hauptplatine der Wirtsvorrichtung 4 direkt gekoppelt (z. B. direkt gelötet) sein.
  • Die Datenspeichervorrichtung 6 kann die Schnittstelle 14 zum Anschalten an die Wirtsvorrichtung 4 enthalten. Die Schnittstelle 14 kann einen oder beide eines Datenbusses zum Austauschen von Daten mit der Wirtsvorrichtung 4 und eines Steuerbusses zum Austauschen von Befehlen mit der Wirtsvorrichtung 4 enthalten. Die Schnittstelle 14 kann gemäß jedem geeigneten Protokoll betrieben werden. Zum Beispiel kann die Schnittstelle 14 gemäß einem oder mehreren der folgenden Protokolle betrieben werden: Advanced Technology Attachment (ATA) (z. B. serielle ATA (SATA) und parallele ATA (PATA)), Fibre Channel, Small Computer System Interface (SCSI), seriell angeschlossene SCSI (SAS), Peripheral Component Interconnect (PCI), PCI-express oder Non-Volatile Memory Express (NVMe). Der elektrische Anschluss der Schnittstelle 14 (z. B. der Datenbus, der Steuerbus oder beide) ist mit der Steuerung 8 elektrisch verbunden, wodurch eine elektrische Verbindung zwischen der Wirtsvorrichtung 4 und der Steuerung 8 hergestellt wird, so dass Daten zwischen der Wirtsvorrichtung 4 und der Steuerung 8 ausgetauscht werden können. In einigen Beispielen kann die elektrische Verbindung der Schnittstelle 14 außerdem der Datenspeichervorrichtung 6 gestatten, Leistung von der Wirtsvorrichtung 4 zu empfangen. Zum Beispiel kann, wie in 1 dargestellt, die Leistungsversorgung 11 Leistung von der Wirtsvorrichtung 4 über die Schnittstelle 14 empfangen.
  • Die Datenspeichervorrichtung 6 kann die Leistungsversorgung 11 enthalten, die einer oder mehreren Komponenten der Datenspeichervorrichtung 6 Leistung bereitstellen kann. Beim Betrieb in einem Standardmodus kann die Leistungsversorgung 11 einer oder mehreren Komponenten Leistung unter Verwendung von Leistung, die von einer externen Vorrichtung wie die Wirtsvorrichtung 4 bereitgestellt wird, bereitstellen. Zum Beispiel kann die Leistungsversorgung 11 einer oder mehreren Komponenten Leistung unter Verwendung von Leistung, die von der Wirtsvorrichtung 4 über die Schnittstelle 14 empfangen wird, bereitstellen.
  • Einige Beispiele der einen oder mehreren Leistungsspeicherkomponenten in der Leistungsversorgung 11 enthalten Kondensatoren, Super-Kondensatoren, Batterien und dergleichen, sind aber nicht darauf beschränkt. In einigen Beispielen kann die Energiemenge, die durch die eine oder mehreren Leistungsspeicherkomponenten in der Leistungsversorgung 11 gespeichert werden kann, eine Funktion der Kosten und/oder der Größe (z. B. Fläche/Volumen) der einen oder mehreren Leistungsspeicherkomponenten sein. Anders ausgedrückt, steigen bei steigender Menge der durch die eine oder mehreren Leistungsspeicherkomponenten gespeicherten Energie ebenfalls die Kosten und/oder die Größe der einen oder mehreren Leistungsspeicherkomponenten.
  • Die Datenspeichervorrichtung 6 kann den flüchtigen Speicher 12 enthalten, der von der Steuerung 8 verwendet werden kann, Informationen, die eine V2P-Abbildungstabelle 18B enthalten, vorübergehend zu speichern. In einigen Beispielen kann die Steuerung 8 den flüchtigen Speicher 12 als einen Zwischenspeicher verwenden. Zum Beispiel kann die Steuerung 8 zwischengespeicherte Informationen im flüchtigen Speicher 12 speichern, bis die zwischengespeicherten Informationen in die NVMAs 10 geschrieben werden. Der flüchtige Speicher 12 kann von der Leistungsversorgung 11 empfangene Leistung verbrauchen, um die im flüchtigen Speicher 12 gespeicherten Daten zu erhalten. Beispiele des flüchtigen Speichers 12 enthalten einen Direktzugriffspeicher (RAM), einen dynamischen Direktzugriffspeicher (DRAM), einen statischen RAM (SRAM) und einen synchronen dynamischen RAM (SDRAM - z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4 und dergleichen), sind aber nicht darauf beschränkt.
  • Die NVMAs 10 können jeden Typ von nichtflüchtigen Speichervorrichtungen enthalten. Einige Beispiele von NVMAs 10 enthalten Flash-Speichervorrichtungen (z. B. NAND oder NOR), Phasenwechsel-Speicher- bzw. PCM-Vorrichtungen, resistive Direktzugriffspeicher- bzw. ReRAM-Vorrichtungen, magnetoresistive Direktzugriffspeicher- bzw. MRAM-Vorrichtungen, ferroelektrische Direktzugriffspeicher (F-RAM), holografische Speichervorrichtungen und andere Typen von nichtflüchtigen Speichervorrichtungen, sind aber nicht darauf beschränkt.
  • In einigen Beispielen können die NVMAs 10 Flash-Speichervorrichtungen enthalten, die als Massenspeicher für die Datenspeichervorrichtung 6 betrieben werden. Flash-Speichervorrichtungen können NAND- oder NOR-basierte Flash-Speichervorrichtungen enthalten und können Daten basierend auf einer in einem Schwebegate eines Transistors für jede Flash-Speicherzelle enthaltenen Ladung speichern. In NAND-Flash-Speichervorrichtungen kann die Flash-Speichervorrichtung in eine Vielzahl von Blöcken aufgeteilt sein, die in eine Vielzahl von Seiten aufgeteilt werden können. Jeder Block der Vielzahl von Blöcken in einer bestimmten Speichervorrichtung kann eine Vielzahl von NAND-Zellen enthalten. Reihen von NAND-Zellen können unter Verwendung einer Wortleitung elektrisch verbunden sein, um eine Seite einer Vielzahl von Seiten zu definieren.
  • Die NVMAs 10 können als ein Massenspeicher betrieben werden und können Flash-Speichervorrichtungen enthalten. Flash-Speicher kann Vorteile wie Kosten, Größe und Dauerhaftigkeit aufweisen, aber Flash-Speicher kann auch Probleme mit Programmzeiten, Verschleißausgleich, Müllsammlung und anderen Richtlinien, die die Zugriffszeiten verlängern, aufweisen. Flüchtige Speichervorrichtungen wie DRAM können schnellere Zugriffszeiten als Flash-Speichervorrichtungen aufweisen. Anders als die NVMAs 10 können flüchtige Speichervorrichtungen jedoch keine Daten ohne Leistungsversorgung speichern.
  • Die Datenspeichervorrichtung 6 enthält die Steuerung 8, die einen oder mehrere Betriebsvorgänge der Datenspeichervorrichtung 6 verwalten kann. Zum Beispiel kann die Steuerung 8 das Lesen von Daten aus den/dem und/oder das Schreiben von Daten in die NVMAs 10 oder den flüchtigen Speicher 12 verwalten. In einigen Beispielen kann die Steuerung 8 das Lesen von Daten aus den/dem und/oder das Schreiben von Daten in die NVMAs 10 oder den flüchtigen Speicher 12 durch Austauschen von Signalen mit den NVMAs 10 oder dem flüchtigen Speicher 12 verwalten. Die Steuerung 8 kann Signale mit den NVMAs 10 oder dem flüchtigen Speicher 12 gemäß einem Kommunikationsprotokoll austauschen. Die Steuerung 8 kann einen Mikroprozessor, einen Digitalsignalprozessor (DSP), anwendungsspezifische integrierte Schaltungen (ASIC), feldprogrammierbare Gatteranordnungen (FPGA) oder andere digitale Logikschaltungen enthalten.
  • Die Steuerung 8 kann die V2P-Abbildungstabelle 18A für die Speichervorrichtung 6 in einer oder mehreren nichtflüchtigen Speicheranordnungen der NVMAs 10 speichern. 1 zeigt die V2P-Abbildungstabelle 18A als in der NVMA 10B gespeichert, aber die V2P-Abbildungstabelle 18A kann in einer beliebigen der NVMAs 10 gespeichert werden. Die V2P-Abbildungstabelle 18A kann eine Tabelle repräsentieren, die Assoziationen zwischen einer virtuellen Adresse und einer physikalischen Adresse speichert. Eine virtuelle Adresse kann eine logische Blockadresse (LBA) enthalten. Eine physikalische Adresse kann eine physikalische Blockadresse (PBA) enthalten. Die Steuerung 8 kann der Wirtsvorrichtung 4 virtuelle Adressen exponieren, um eine statischere Adressierung der NVMAs 10 zu gestatten. Das heißt, die Steuerung 8 kann eine Anzahl von Betriebsvorgängen wie Verschleißausgleich und Müllsammlung durchführen, die Umpositionieren von Daten in den NVMAs 10 beinhalten.
  • Die Steuerung 8 kann der Wirtsvorrichtung 4 die virtuelle Adresse präsentieren und die V2P-Abbildungstabelle 18A führen, die die virtuelle Adresse auf die physikalische Adresse, die sich als ein Ergebnis der Umpositionierungsvorgänge ändern kann, abbildet. Während die Steuerung 8 die Datenumpositionierungsvorgänge durchführt, um Daten aus einem adressierbaren Abschnitt der NVMAs 10, der mit einer ersten physikalischen Adresse assoziiert ist, zu einem anderen adressierbaren Abschnitt der NVMAs 10, der mit einer zweiten physikalischen Adresse assoziiert ist, zu verlagern, kann die Steuerung 8 die Assoziation in der V2P-Abbildungstabelle 18A zwischen der virtuellen Adresse, die den Daten zugewiesen ist, aktualisieren, um die virtuelle Adresse mit der zweiten physikalischen Adresse anstelle der ersten physikalischen Adresse zu assoziieren. Die V2P-Abbildungstabelle 18A kann eine Schicht der Umleitung bereitstellen (und kann folglich auch als „Umleitungstabelle 18A“ bezeichnet werden), die es gestattet, dass eine statische virtuelle Adresse zu einer beliebigen der physikalischen Adressen umgeleitet wird. Die Steuerung 8 kann, durch Nutzung der V2P-Abbildungstabelle 18A, Datenumpositionierungsvorgänge durchführen, ohne die Wirtsvorrichtung 4 über die Änderungen an den unterliegenden physikalischen Adressen informieren zu müssen.
  • Die NVMA 10B und anderen NVMAs 10 können außerdem Kontextinformationen hinsichtlich des Orts von Einträgen in der V2P-Abbildungstabelle 18A speichern. Die Steuerung 8 kann die Kontextinformationen während jedes Urladeprozesses detektieren und laden, um auf die Einträge in der V2P-Abbildungstabelle 18A zuzugreifen.
  • In einigen Beispielen kann die Steuerung 8 eine Kopie der V2P-Abbildungstabelle 18A in den flüchtigen Speicher 12 als die V2P-Abbildungstabelle 18B während jedes Urladeprozesses schreiben, um schnellere Zugriffszeiten auf die V2P-Abbildungstabelle 18B im Vergleich mit den Zugriffszeiten zum Zugreifen auf die in der NVMA 10B gespeicherten V2P-Abbildungstabelle 18A bereitzustellen. Die V2P-Abbildungstabelle 18B kann eine vollständige Version der V2P-Abbildungstabelle 18A sein. In einigen Beispielen kann die Steuerung 8 die V2P-Abbildungstabelle 18B während jedes Urladeprozesses in den flüchtigen Speicher 12 schreiben, da der flüchtige Speicher 12 unter Umständen nicht imstande ist, Daten ohne Leistung beizubehalten.
  • Der flüchtige Speicher 12 kann schnellere Zugriffszeiten als die NVMAs 10 des Massenspeicherbereichs der Datenspeichervorrichtung 6 haben. Als ein Ergebnis kann das Betriebssystem der Wirtsvorrichtung 4 hinsichtlich von Lese- und Schreibanforderungen eine Wartezeit erfahren, bis die Steuerung 8 die V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 geschrieben hat. Die Länge der Zeit zum Schreiben der V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 kann von der Größe der V2P-Abbildungstabelle 18B abhängen. Die Größe der V2P-Abbildungstabelle 18B selbst kann von der Größe des Massenspeicherbereichs (d. h. die NVMAs 10 im Beispiel von 1) abhängen. Zum Beispiel kann ein Terabyte-Speicher bzw. TB-Speicher in einer V2P-Abbildungstabelle resultieren, die in der Größe ungefähr ein Gigabyte (GB) aufweist. Da Speichervorrichtungen 6 in der Speicherkapazität zunehmen, nimmt auch die Länge der Zeit zum Schreiben der V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 zu.
  • Da auf keine Daten zugegriffen werden kann, bis uneingeschränkt auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann, ist die Wirtsvorrichtung 4 unter Umständen nicht imstande, Daten zum Urladen des Betriebssystems (oder anderer in den NVMAs 10 gespeicherter Software) während des anfänglichen Hochfahrens der Wirtsvorrichtung 4 abzurufen. Da Speichervorrichtungen in der Größe zunehmen, wird auch die Urladeverzögerung aufgrund des Kopierens der V2P-Abbildungstabelle 18A in den flüchtigen Speicher 12 zunehmen. Derartige Verzögerungen können das Benutzererlebnis frustrieren. Des Weiteren kann die Urladeverzögerung bestimmte Vorrichtungszertifizierungen, die bestimmte Urladezeiten auferlegen, beeinträchtigen. Zum Beispiel kann es erforderlich sein, um die Zertifizierung „Ultrabook“ zu erhalten, dass eine Vorrichtung aus einem ausgeschalteten Zustand in 7 Sekunden oder weniger urlädt (was als ein „Kaltstart“ bezeichnet werden kann).
  • Gemäß den in dieser Offenbarung beschriebenen Techniken kann die Steuerung 8 konfiguriert sein, einen Abschnitt der V2P-Abbildungstabelle 18C in der NVMA 16 zu speichern, die von den NVMAs 10 des Massenspeicherbereichs in der Speichervorrichtung 6 getrennt sein kann. Das heißt, die NVMAs 10 können konfiguriert sein, Daten von der Wirtsvorrichtung 4 und der Datenspeichervorrichtung 6 zu speichern, während die NVMA 16 konfiguriert sein kann, nur Daten von der Datenspeichervorrichtung 6 zu speichern. Dabei repräsentiert die NVMA 6 eine NVMA, die für Verwendung durch die Datenspeichervorrichtung 6 zum Zweck des Zwischenspeicherns eines Abschnitts der V2P-Abbildungstabelle 18A, der als ein Abschnitt der V2P-Abbildungstabelle 18C dargestellt ist, reserviert ist. Dagegen kann die Datenspeichervorrichtung 6 die NVMAs 10 als Massenspeicher zum Speichern von Benutzerdateien von der Wirtsvorrichtung 4 verwenden.
  • Die Steuerung 8 kann den Abschnitt der V2P-Abbildungstabelle 18A, der in der NVMA 16 zu speichern ist, als den Abschnitt der V2P-Abbildungstabelle 18C in einer Weise auswählen, die Verzögerung während des Urladeprozesses reduziert. Anders ausgedrückt, kann die Steuerung 8 konfiguriert sein, den Abschnitt der V2P-Abbildungstabelle 18C in einer Weise zu führen, die Einträge des Abschnitts der V2P-Abbildungstabelle 18C bereitstellt, auf die während des Urladeprozesses häufig zugegriffen wird. Die Steuerung 8 kann einen Algorithmus ausführen, um die Einträge des Abschnitts der V2P-Abbildungstabelle 18B zu identifizieren, auf die während des Urladeprozesses der Wirtsvorrichtung 4 häufig zugegriffen wird.
  • Obwohl dieser in Bezug auf Frequenz beschrieben wird, kann die Steuerung 8 jede Form von Algorithmus zum Identifizieren von Einträgen der V2P-Abbildungstabelle 18B, die in den Abschnitt der V2P-Abbildungstabelle 18C zu speichern sind, ausführen oder implementieren. Zum Beispiel kann die Steuerung 8 einen Algorithmus des maschinellen Lernens (z. B. zum Trainieren eines künstlichen neuralen Netzwerks, Durchführen von Entscheidungsbaum-Lernen oder tiefes Lernen, Trainieren eines Bayesschen Netzwerks usw.) ausführen oder implementieren, um den Abschnitt der V2P-Abbildungstabelle 18C zu identifizieren.
  • Um die Reduktion von Urladezeiten weiter zu erleichtern, kann die Datenspeichervorrichtung 6 bestimmte Typen von NVMA 16 enthalten, die schnellere Lesezeiten als andere NVMA-Typen aufweisen. Zum Beispiel kann die NVMA 16 MRAM oder PCM nutzen, die schnellere Lesezeiten als Flash-Speicher aufweisen. Die Verwendung von MRAM oder PCM kann aufgrund der schnelleren Zugriffszeiten die Urladezeiten weiter reduzieren.
  • Im Betrieb speichert die Steuerung 8 den Abschnitt der V2P-Abbildungstabelle 18C vor dem Herunterfahren der Datenspeichervorrichtung 6. Die Steuerung 8 behält außerdem die V2P-Abbildungstabelle 18A in der NVMA 10B vor dem Herunterfahren der Datenspeichervorrichtung 6. Wenn die Datenspeichervorrichtung 6 heruntergefahren wird (das bedeutet, nicht länger mit Leistung versorgt wird), verliert der flüchtige Speicher 12 die V2P-Abbildungstabelle 18B.
  • Beim erneuten Hochfahren (das bedeutet, mit ausreichend Leistung für den Betrieb versorgt werden) kann die Steuerung 8 Leseanforderungen von der Wirtsvorrichtung 4 empfangen, die Daten zum Urladen des Betriebssystems (z. B. des Kerns des Betriebssystems) anfordern. In einigen Beispielen kann die Steuerung 8 Anforderungen von Speicherbetriebsvorgängen von der Wirtsvorrichtung 4 für andere Anwendungen als das Betriebssystem empfangen. Die Steuerung 8 kann den Algorithmus zum Identifizieren der Einträge, die mit jeder Anforderung assoziiert sind, die während des Urladens der Datenspeichervorrichtung 6 gesandt werden, implementieren oder ausführen und statistische Metadaten speichern, die angeben, auf welche Einträge als Reaktion auf die Anforderungen zugegriffen wird.
  • Während des Urladeprozesses der Wirtsvorrichtung 4 kann die Steuerung 8 außerdem die V2P-Abbildungstabelle 18A in den flüchtigen Speicher 12 kopieren. Anstatt vor dem Antworten auf die Leseanforderungen zu warten, bis die V2P-Abbildungstabelle 18A vollständig in den flüchtigen Speicher 12 kopiert ist, versucht die Steuerung 8, die Leseanforderung unter Verwendung des Abschnitts der V2P-Abbildungstabelle 18C zu verarbeiten. Anders ausgedrückt, kann die Steuerung 8, während sie die V2P-Abbildungstabelle 18A aus der NVMA 10B in den flüchtigen Speicher 12 kopiert, und als Reaktion auf Leseanforderungen (oder Schreibanforderungen) auf den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 18C zugreifen. In diesem Sinn führt die Steuerung 8, was effektiv als ein „NVMA-Zwischenspeicher“ bezeichnet werden kann, nahe der Steuerung 8 (wenn nicht in der Steuerung 8 integriert), der das Verarbeiten von Lese- und Schreibanforderungen während des Urladens der Wirtsvorrichtung 4 erleichtert, wenn noch nicht auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann.
  • Die Steuerung 8 kann fortfahren, Lese- und/oder Schreibanforderungen unter Verwendung des Abschnitts der V2P-Abbildungstabelle 18C zu verarbeiten, bis auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann. Sobald auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann, kann die Steuerung 8 Lese- und Schreibanforderungen unter Verwendung der V2P-Abbildungstabelle 18B verarbeiten. Die Steuerung 8 kann, sobald auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann, außerdem den Abschnitt der V2P-Abbildungstabelle 18C basierend auf statistischen Metadaten aktualisieren. Zum Beispiel kann die Steuerung 8 bestimmte Einträge in dem Abschnitt der V2P-Abbildungstabelle 18C ersetzen, auf die weniger häufig zugegriffen wurde als auf andere Einträge, wie durch die statistischen Metadaten identifiziert.
  • Auf diese Weise kann die Steuerung 8 einen Abschnitt der V2P-Abbildungstabelle 18A in einer lokalen NVMA 16 speichern, um die Einwirkung hinsichtlich der Urladeverzögerung aufgrund von Laden der V2P-Abbildungstabelle aus dem Massenspeicherbereich 6 (d. h. NVMA 10B im Beispiel von 1) in den flüchtigen Speicher 12 zu reduzieren. Die Steuerung 8 kann bei einem Versuch zum Auswählen der Abschnitte der V2P-Abbildungstabelle 18A, auf die durch die Wirtsvorrichtung 4 während des Urladeprozesses häufig zugegriffen wird, einen Algorithmus verwenden. Dabei kann die Steuerung 8 schneller Lese- oder Schreibanforderungen unter Verwendung der V2P-Abbildungstabelle 18C verarbeiten, während sie die V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 lädt. Überdies kann die NVMA 16 als ein besonderer Typ von NVMA konfiguriert sein, der schnellere Zugriffszeiten aufweist als andere NVMA-Typen, um das Verarbeiten von Lese- und Schreibanforderungen während des Urladeprozesses weiter zu erleichtern. Die Techniken können daher ein besseres Benutzererlebnis fördern, während sie außerdem schnellere Urladezeiten (relativ zu Datenspeichervorrichtungen, die nicht aufweisen, dass die NVMA 16 einen Abschnitt der V2P-Abbildungstabelle 18A speichert) bereitstellen, um erfolgreiche Zertifizierung von Vorrichtungen zu erleichtern.
  • Obwohl als während des Urladeprozesses durchgeführt beschrieben, kann die Steuerung 8 konfiguriert sein, die Techniken dieser Offenbarung jederzeit durchzuführen, wenn nicht auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann. Auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 kann unter Umständen nicht zugegriffen werden, wenn sie für andere Lese- oder Schreibaufgaben (wie Müllsammlung oder Verschleißausgleich) gesperrt ist. Allgemein können die Techniken während jeder Zeitperiode durchgeführt werden, in der nicht auf die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann.
  • 2 zeigt ein konzeptionelles Blockdiagramm, das verschiedene Module in einer Steuerung 8 darstellt, gemäß einer oder mehreren Techniken dieser Offenbarung. In einigen Beispielen kann die Steuerung 8 ein Adressenübersetzungsmodul 20, ein Urlademodul 22, ein Schreibmodul 24, ein Lesemodul 26, ein Algorithmusmodul 28 und ein Auswahlmodul 30 enthalten. In anderen Beispielen kann die Steuerung 8 zusätzliche Module oder Hardware-Einheiten enthalten oder kann weniger Module oder Hardware-Einheiten enthalten. Die Steuerung 8 kann einen Mikroprozessor, einen Digitalsignalprozessor (DSP), anwendungsspezifische integrierte Schaltungen (ASIC), feldprogrammierbare Gatteranordnungen (FPGA) oder andere digitale Logikschaltungen enthalten.
  • Die Steuerung 8 kann über die Schnittstelle 14 an die Wirtsvorrichtung 4 anbinden und die Speicherung von Daten in die/den und das Abrufen von Daten aus den/dem NVMAs 10 und flüchtigen Speicher 12 verwalten. Zum Beispiel kann das Schreibmodul 24 der Steuerung 8 Schreibvorgänge in die NVMAs 10 verwalten. Das Schreibmodul 24 kann eine Nachricht von der Wirtsvorrichtung 4 über die Schnittstelle 14, die die Datenspeichervorrichtung 6 anweist, mit einer LBA assoziierte Daten zu speichern, und die Daten empfangen. Gleichermaßen kann das Lesemodul 26 das Lesen von Daten aus den NVMAs 10 und dem flüchtigen Speicher 12 verwalten.
  • Das Adressenübersetzungsmodul 20 kann Schreibvorgänge verfolgen, die durch das Schreibmodul 24 in die NVMAs 10 durchgeführt werden. Das Adressenübersetzungsmodul 20 kann außerdem Löschungen von Daten in den NVMAs 10 verfolgen. Das Verfolgen von Schreib- und Löschvorgängen kann als Berichtsführung oder Protokollierung bekannt sein. Das Adressenübersetzungsmodul 20 kann einen Bericht, eine Momentaufnahme oder ein Protokoll der Schreib- und Löschvorgänge führen, um die in der NVMA 10B und dem flüchtigen Speicher 12 gespeicherten V2P-Abbildungstabellen zu aktualisieren. Das Adressenübersetzungsmodul 20 kann den Bericht, die Momentaufnahme oder das Protokoll verwenden, den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 zu aktualisieren. Der Abschnitt der V2P-Abbildungstabelle 32 kann eine teilweise Kopie der vollständigen Version der in der NVMA 10B des Massenspeicherbereichs der Datenspeichervorrichtung 6 gespeicherten V2P-Abbildungstabelle 18A sein. Der Abschnitt der V2P-Abbildungstabelle 32 kann eine kartenbasierte oder baumbasierte Struktur anstelle von oder in Kombination mit einer teilweisen Kopie der V2P-Abbildungstabelle 18A sein. Der Abschnitt der V2P-Abbildungstabelle 32 kann im Adressenübersetzungsmodul 20, im Auswahlmodul 30, in einem anderen Modul der Steuerung 8 oder außerhalb der Steuerung 8 residieren.
  • Vollständige Versionen der V2P-Abbildungstabelle 18A, 18B, gespeichert in der NVMA 10B und im flüchtigen Speicher 12, können Markierungen enthalten, die angeben, ob jeder Eintrag in der vollständigen Tabelle in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 18C gespeichert ist. Jede Markierung in der V2P-Abbildungstabelle 18A, 18B, gespeichert in der NVMA 10B und im flüchtigen Speicher 12, kann ein Schmutzig-Bit enthalten, das angibt, ob der Abschnitt der vollständigen Version der V2P-Abbildungstabelle 18C, gespeichert in der NVMA 16, mit den letzten Schreib- und Löschvorgängen aktualisiert wurde. Schmutzige Einträge können Einträge in dem Abschnitt der V2P-Abbildungstabelle 18C, gespeichert in der NVMA 16, sein, die in der NVMA 16 modifiziert wurden, aber nicht in der V2P-Abbildungstabelle 18A oder der V2P-Abbildungstabelle 18Bs modifiziert wurden. Die Datenspeichervorrichtung 6 kann schmutzige Einträge in einem vorübergehenden Ort beim Herunterfahren speichern. Während des nächsten Urladeprozesses kann die Datenspeichervorrichtung 6 die schmutzigen Einträge aus dem vorübergehenden Ort lesen oder warten, bis die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 verfügbar ist.
  • Das Adressenübersetzungsmodul 20 kann die V2P-Abbildungstabellen aktualisieren, bevor die Datenspeichervorrichtung 6 heruntergefahren wird. Wenn die Datenspeichervorrichtung 6 plötzlich Leistung verliert, kann das Adressenübersetzungsmodul 20 die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A vor dem Herunterfahren oder während des nächsten Urladeprozesses aktualisieren. Das Adressenübersetzungsmodul 20 kann Abschnitte der V2P-Abbildungstabelle 18A unter Verwendung von Momentaufnahmen und Berichten, die beim Herunterfahren der Datenspeichervorrichtung 6 gesichert wurden, neu erstellen, wodurch die für einen Urladeprozess erforderliche Zeit verlängert werden kann.
  • 2 zeigt die NVMAs 10 als außerhalb der Steuerung 8. In einigen Beispielen kann die NVMA 16, die den Abschnitt der V2P-Abbildungstabelle 32 speichern kann, jedoch in der Steuerung 8 oder an einem anderen Ort in der Datenspeichervorrichtung 6 außerhalb des Massenspeicherbereichs sein. Die NVMA 16 kann außerdem in einer SSD-Karte in der Datenspeichervorrichtung 6 residieren. Der Ort der NVMA 16 kann beeinflussen, wie schnell das Lesemodul 26 den Abschnitt der V2P-Abbildungstabelle 32 lesen kann.
  • Zum Beispiel kann das Schreibmodul 24 mit dem Adressenübersetzungsmodul 20, das Übersetzung zwischen von der Wirtsvorrichtung 4 verwendeten LBAs verwaltet, kommunizieren. Das Adressenübersetzungsmodul 20 kann Speicherorte von Daten und PBAs, die vom Schreibmodul 24 verwendet werden, verwalten. Das Adressenübersetzungsmodul 20 der Steuerung 8 kann die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A nutzen, die LBAs von Daten, gespeichert von NVMAs 10, in PBAs, die den physikalischen Ort der Daten in der Datenspeichervorrichtung 6 angeben, übersetzt. Zum Beispiel kann die Wirtsvorrichtung 4 die LBAs der von NVMAs 10 gespeicherten Daten in Anweisungen oder Nachrichten an die Datenspeichervorrichtung 6 nutzen, während das Schreibmodul 24 PBAs nutzen kann, das Schreiben von Daten in NVMAs 10 zu steuern. Gleichermaßen kann das Lesemodul 26 PBAs nutzen, um das Lesen von Daten aus NVMAs 10 zu steuern.
  • Auf diese Weise kann der Wirtsvorrichtung 4 gestattet sein, eine statische LBA für einen bestimmten Satz von Daten zu verwenden, während sich die PBA, an der die Daten tatsächlich gespeichert sind, ändern kann. Das Adressenübersetzungsmodul 20 kann die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A führen, um die LBAs auf PBAs abzubilden, um Verwendung der statischen LBA durch die Wirtsvorrichtung 4 zu gestatten, während sich die PBA der Daten ändern kann, z. B. aufgrund von Verschleißausgleich, Müllsammlung oder dergleichen. Das Adressenübersetzungsmodul 20 kann einen Bericht, eine Momentaufnahme oder ein Protokoll führen, um Schreib- und Löschvorgänge zu verfolgen, die die in dem Massenspeicher der Datenspeichervorrichtung 6 gespeicherten Daten beeinflussen können. Das Adressenübersetzungsmodul 20 kann die V2P-Abbildungstabellen basierend auf dem Bericht, der Momentaufnahme oder dem Protokoll aktualisieren.
  • Das Adressenübersetzungsmodul 20 kann die in der NVMA 10B und dem flüchtigen Speicher 12 gespeicherten V2P-Abbildungstabellen sowie den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 führen. Die V2P-Abbildungstabellen können Einträge für die in dem Massenspeicherbereich der Datenspeichervorrichtung 6 gespeicherten Daten enthalten. Das Adressenübersetzungsmodul 20 kann verschiedene Formate wie Hash-Tabellen oder Hash-Wörterbücher, satz-/vollassoziierte Tabellen und/oder ein baumbasiertes Umleitungssystem zum Speichern von Einträgen in den V2P-Abbildungstabellen verwenden. Das Adressenübersetzungsmodul 20 kann beliebige dieser Formate, eine Kombination oder Modifikation davon oder andere, hierin nicht aufgelistete Formate verwenden.
  • Wie vorstehend diskutiert, kann das Schreibmodul 24 der Steuerung 8 einen oder mehrere Betriebsvorgänge durchführen, um das Schreiben von Daten in NVMAs 10 zu verwalten. Zum Beispiel kann das Schreibmodul 24 das Schreiben von Daten in NVMAs 10 durch Auswählen eines oder mehrerer Blöcke in den NVMAs 10 zum Speichern der Daten und Bewirken, dass die Speichervorrichtungen der NVMAs 10, die die ausgewählten Blöcke enthalten, die Daten tatsächlich speichern, verwalten. Wie vorstehend diskutiert, kann das Schreibmodul 24 bewirken, dass das Adressenübersetzungsmodul 20 die V2P-Abbildungstabellen basierend auf den ausgewählten Blöcken aktualisiert. Zum Beispiel kann das Schreibmodul 24 eine Nachricht von der Wirtsvorrichtung 4 empfangen, die eine Einheit von Daten und eine LBA enthält, einen Block in einer bestimmten Speichervorrichtung der NVMAs 10 zum Speichern der Daten auswählen, bewirken, dass die bestimmte Speichervorrichtung der NVMAs 10 die Daten tatsächlich speichert, und bewirken, dass das Adressenübersetzungsmodul 20 die im flüchtigen Speicher 12 gespeicherte V2P-Abbildungstabelle 18B aktualisiert, um anzugeben, dass die LBA mit dem ausgewählten Block in der bestimmten Speichervorrichtung korrespondiert.
  • Für jede Aktualisierung der V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 kann das Schreibmodul 24 auch die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A aktualisieren. Das Schreibmodul 24 kann auch den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 aktualisieren, wenn die Aktualisierung einen Eintrag in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 beeinflusst. Die Aktualisierung kann unmittelbar nach der Aktualisierung im flüchtigen Speicher 12 erfolgen oder das Adressenübersetzungsmodul 20 kann einen Bericht der Aktualisierungen führen, um sie zu einer späteren Zeit an das Schreibmodul 24 zu senden. Wenn die Datenspeichervorrichtung 6 plötzlich keine Leistung mehr erhält, kann das Adressenübersetzungsmodul 20 die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A und den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 vor dem Ausschalten oder während des nächsten Urladeprozesses aktualisieren.
  • Die V2P-Abbildungstabellen können außerdem das Aufteilen der von der Wirtsvorrichtung 4 empfangenen Daten über eine Vielzahl von PBAs erleichtern. Zum Beispiel können die von der Wirtsvorrichtung 4 empfangenen Daten in einigen Fällen größer sein als ein einzelner Block. Dabei kann die Steuerung 8 mehrere Blöcke auswählen, jeweils einen Abschnitt der Dateneinheit zu speichern. Anstatt mehrere Blöcke in einer einzelnen Speichervorrichtung der NVMAs 10 zum Speichern der Abschnitte der Dateneinheit auszuwählen, kann die Steuerung 8 Blöcke aus einer Vielzahl von NVMAs 10 zum Speichern der Abschnitte der Dateneinheit auswählen. Die Steuerung 8 kann dann bewirken, dass die Vielzahl von Speichervorrichtungen in den NVMAs 10 die Abschnitte der Dateneinheit parallel speichern. Auf diese Weise kann die Steuerung 8 die Rate erhöhen, mit der Daten in NVMAs 10 gespeichert werden können, indem Abschnitte der Daten in verschiedene Speichervorrichtungen in den NVMAs 10 geschrieben werden.
  • Zum Schreiben eines Bits mit einem logischen Wert von 0 (geladen) in ein Bit mit einem vorherigen logischen Wert von 1 (ungeladen) wird ein großer Strom verwendet. Dieser Strom kann ausreichend groß sein, dass er unbeabsichtigte Änderungen an der Ladung angrenzender Flash-Speicherzellen verursachen kann. Zum Schützen gegen unbeabsichtigte Änderungen kann ein gesamter Block von Flash-Speicherzellen vor dem Schreiben irgendwelcher Daten in Zellen in dem Block zu einem logischen Wert von 1 (ungeladen) gelöscht werden. Deshalb können Flash-Speicherzellen auf Blockebene gelöscht und auf Seitenebene geschrieben werden.
  • Zum Schreiben einer Datenmenge, die weniger als eine Seite verbrauchen würde, kann es demgemäß sein, dass die Steuerung 8 bewirkt, dass ein gesamter Block gelöscht wird. Dies führt zum Schreibfaktor (Write Amplification), der das Verhältnis zwischen der von der Wirtsvorrichtung 4 empfangenen Datenmenge, die in NVMAs 10 zu schreiben ist, und der Datenmenge, die tatsächlich in NVMAs 10 geschrieben wird, angibt. Der Schreibfaktor trägt zu einem schnelleren Verschleiß der Flash-Speicherzellen bei, als ohne Schreibfaktor vorkommen würde. Verschleiß von Flash-Speicherzellen kann aufgrund der relativ hohen Spannungen, die zum Löschen der Flash-Speicherzellen verwendet werden, beim Löschen von Flash-Speicherzellen vorkommen. Über eine Vielzahl von Löschzyklen können die relativ hohen Spannungen in physikalischen Veränderungen der Flash-Speicherzellen resultieren. Schließlich können die Flash-Speicherzellen verschleißen, so dass keine Daten mehr in die Zellen geschrieben werden können.
  • Das Urlademodul 22 kann den Betrieb der Datenspeichervorrichtung 6 während jedes Urladeprozesses steuern. Zum Beispiel kann das Urlademodul 22 das Wiederherstellen, Laden und Neuerstellen von Kontextinformationen und Laufwerkkonfigurationen, wie das Umleitungssystem, während des Urladeprozesses koordinieren. Das Urlademodul 22 kann das Schreibmodul 24 anweisen, die V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zu speichern. Das Urlademodul 22 kann außerdem bestimmen, welche Einträge in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 zu speichern sind. Das Urlademodul 22 kann das Lesemodul 26 anweisen, eine PBA aus der NVMA 16 zu erlangen, wenn die Wirtsvorrichtung 4 Daten anfordert, die in dem Abschnitt der V2P-Abbildungstabelle 32 aufgelistet sind.
  • Das Lesemodul 26 kann das Lesen von Daten aus den NVMAs 10 und dem flüchtigen Speicher 12 steuern. Zum Beispiel kann das Lesemodul 26 eine Nachricht von der Wirtsvorrichtung 4 empfangen, die Daten mit einer assoziierten LBA anfordert. Das Lesemodul 26 kann bestimmen, ob die angeforderten Daten in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 aufgelistet sind. Wenn die angeforderten Daten in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 aufgelistet sind, kann das Lesemodul 26 den Abschnitt der V2P-Abbildungstabelle 32 lesen und eine oder mehrere PBAs an das Adressenübersetzungsmodul 20 liefern.
  • Das Auswahlmodul 30 kann bestimmen, welche Einträge in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 zu speichern sind. Das Auswahlmodul 30 kann Seiten auswählen, auf die während des Urladeprozesses häufig durch die Wirtsvorrichtung 4 zugegriffen wird. Das Auswahlmodul 30 kann mit dem Algorithmusmodul 28 interagieren, um zu bestimmen, welcher Algorithmus zum Auswählen von Seiten, die in dem Abschnitt der V2P-Abbildungstabelle 32 zu speichern sind, auszuwählen ist. Der Algorithmus 28 kann Zwischenspeicherung-Algorithmen oder Verfahren wie Einzellaufwerk-Namensraum, Algorithmen, die Datenzugriffsmuster lernen, zeit-/zählerbasierte Zwischenspeicherung während des ersten Urladezugriffs auf die Datenspeichervorrichtung 6, dynamik- oder profilbasierte Algorithmen während des normalen Betriebs der Datenspeichervorrichtung 6 und/oder statische/wirtsgerichtete Befehle nutzen. Ein zählerbasiertes Profil kann die von der Wirtsvorrichtung 4 während eines Urladeprozesses angeforderten Daten zur Vorbereitung auf künftige Urladeprozesse verfolgen. Das Algorithmusmodul 28 kann hashbasierte und/oder baumbasierte Verfahren zum Auswählen und Speichern von Einträgen für den Abschnitt der V2P-Abbildungstabelle 32 nutzen. Das Algorithmusmodul 28 kann beliebige dieser Algorithmen oder Verfahren einschließlich einer Kombination, Mischung oder Modifikation einer beliebigen Anzahl der Algorithmen oder Verfahren nutzen. Das Algorithmusmodul 28 kann außerdem Algorithmen oder Verfahren nutzen, die hierin nicht aufgelistet sind.
  • Das Auswahlmodul 30 kann außerdem mit der Wirtsvorrichtung 4 kommunizieren, um die Einträge in dem Abschnitt der V2P-Abbildungstabelle 32 auszuwählen. Die Wirtsvorrichtung 4 kann bestimmen, welche Daten während des Urladeprozesses kritisch sind, und an das Auswahlmodul 30 kommunizieren und das Auswahlmodul 30 kann die kritischen Daten in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 auflisten. Außerdem kann das Auswahlmodul 30 verfolgen, welche Daten die Wirtsvorrichtung 4 während jedes Urladeprozesses anfordert. Das Auswahlmodul 30 kann dann die am häufigsten angeforderten Daten in dem Abschnitt der V2P-Abbildungstabelle 32 auflisten.
  • Die Datenspeichervorrichtung 6 (z. B. das Urlademodul 22) kann gemäß einem oder mehreren Beispielen dieser Offenbarung bestimmen, ob das Schreibmodul 24 die V2P-Abbildungstabelle in den flüchtigen Speicher 12 geschrieben hat. Wenn das Schreibmodul 24 die V2P-Abbildungstabelle in den flüchtigen Speicher 12 geschrieben hat, kann das Urlademodul 22 das Lesemodul 26 anweisen, einen oder mehrere Einträge aus der in dem flüchtigen Speicher 12 gespeicherten V2P-Abbildungstabelle 18B zu lesen. Wenn das Schreibmodul 24 die V2P-Abbildungstabelle 18B nicht in den flüchtigen Speicher 12 geschrieben hat, kann das Urlademodul 22 bestimmen, ob eine Seite in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 aufgelistet ist. Wenn die Seite in dem Abschnitt der V2P-Abbildungstabelle 32 aufgelistet ist, kann das Urlademodul 22 das Lesemodul 26 anweisen, einen oder mehrere Einträge aus dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 zu lesen. Wenn die Seite nicht in dem Abschnitt der V2P-Abbildungstabelle 32 aufgelistet ist, kann das Urlademodul 22 das Lesemodul 26 anweisen, zu warten, bis das Schreibmodul 24 die V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 schreibt.
  • Das Urlademodul 22 kann über verschiedene Verfahren zum Handhaben einer Situation verfügen, in denen die Wirtsvorrichtung 4 Daten anfordert, die nicht in dem in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle 32 gespeichert sind. In derartigen Situationen kann das Urlademodul 22 die PBA aus NVMAs 10 oder einer im flüchtigen Speicher 12 gespeicherten unvollständigen V2P-Abbildungstabelle 18B abrufen. Das Urlademodul 22 kann außerdem das Lesemodul 26 verzögern, bis die V2P-Abbildungstabelle 18B vollständig im flüchtigen Speicher 12 gespeichert ist.
  • 3 zeigt ein konzeptionelles Blockdiagramm, das V2P-Abbildungstabellen darstellt, die in flüchtigen und nichtflüchtigen Speicheranordnungen 40, 42, 44 gespeichert sind, gemäß einer oder mehreren Techniken dieser Offenbarung. Die Datenspeichervorrichtung 6 kann eine oder mehrere flüchtige Speicheranordnungen 42 und NVMAs 40, 44 enthalten. Der flüchtige Speicher und nichtflüchtige Speicher in der Datenspeichervorrichtung 6 kann jeder geeignete Speichertyp sein, einschließlich von Flash-Speichervorrichtungen, eines Festplattenlaufwerks, DRAM, PCM, MRAM oder jedes anderen geeigneten Speichertyps.
  • In einigen Beispielen kann die NAND-Anordnung 40 eine vollständige Version der V2P-Abbildungstabelle für die Datenspeichervorrichtung 6 speichern. Zum Beispiel kann die vollständige Version der V2P-Abbildungstabelle Einträge für sämtliche der in der NAND-Anordnung 40 gespeicherten Daten enthalten. Die in der NAND-Anordnung 40 gespeicherte V2P-Abbildungstabelle kann Einträge enthalten, die jede Datenseite mit einer PBA in der Datenspeichervorrichtung 6 paaren. Die in der NAND-Anordnung 40 gespeicherte V2P-Abbildungstabelle kann ein oder mehrere Paare von LBAs und PBAs enthalten. In einigen Beispielen kann die V2P-Abbildungstabelle, wenn die Datenspeichervorrichtung 6 eine Kapazität von einem Terabyte aufweist, ungefähr ein Gigabyte Speicherraum in der NAND-Anordnung 40 belegen. Die Datenspeichervorrichtung 6 kann die in der NAND-Anordnung 40 gespeicherte V2P-Abbildungstabelle mit neuen Schreib- und Löschvorgängen aktualisieren, bevor die Datenspeichervorrichtung 6 heruntergefahren wird. Im Fall eines plötzlichen Verlusts der Leistung kann die Datenspeichervorrichtung 6 die in der NAND-Anordnung 40 gespeicherte V2P-Abbildungstabelle vor dem Ausschalten oder beim Wiederherstellen der Leistung aktualisieren.
  • Die NAND-Anordnung 40 kann ein nichtflüchtiger Speicher sein, der die Daten selbst dann beibehält, wenn die Datenspeichervorrichtung 6 heruntergefahren wird. Die NAND-Anordnung 40 kann konfiguriert sein, Daten von der Datenspeichervorrichtung 6 und einer Wirtsvorrichtung zu speichern. Die NAND-Anordnung 40 kann langsamere Zugriffszeiten als der flüchtige Speicher 42 und die NVMA 44 aufweisen. Die NAND-Anordnung 40 kann jedoch eine viel größere Speicherkapazität als der flüchtige Speicher 42 und die NVMA 44 aufweisen. Die Datenspeichervorrichtung 6 kann die NAND-Anordnung 40 aufgrund der Kosten, Größe und Dauerhaftigkeit der NAND-Anordnung 40 im Vergleich mit den Kosten, der Größe und der Dauerhaftigkeit des flüchtigen Speichers 42, der NVMA 44 und anderer Speichertypen für Massenspeicherung verwenden.
  • Der flüchtige Speicher 42 kann eine Kopie der vollständigen Version der V2P-Abbildungstabelle speichern, wenn die Datenspeichervorrichtung 6 hochgefahren wird. Die Datenspeichervorrichtung 6 kann die vollständige Version der V2P-Abbildungstabelle während jedes Urladeprozesses in den flüchtigen Speicher 42 schreiben. Die Zeit zum Wiederaufbauen der V2P-Abbildungstabelle im flüchtigen Speicher 42 während jedes Urladeprozesses kann zur Größe der V2P-Abbildungstabelle in Beziehung stehen. Die Zeit zum Wiederaufbauen der V2P-Abbildungstabelle im flüchtigen Speicher 42 kann das Benutzererlebnis beim Hochfahren beeinflussen. Während der Wiederaufbauperiode ist eine Wirtsvorrichtung unter Umständen nicht imstande, auf Seiten, die in der NAND-Anordnung 40 gespeichert sind, zuzugreifen, weil die Wirtsvorrichtung unter Umständen nicht über die PBAs der Seiten verfügt.
  • Die im flüchtigen Speicher gespeicherte V2P-Abbildungstabelle kann LBAs sequenziell oder in einem anderen Format auflisten. Wenn die Wirtsvorrichtung eine Seite durch Bereitstellen einer LBA anfordert, kann die Steuerung 8 die im flüchtigen Speicher 42 gespeicherte übereinstimmende PBA finden. In einer ähnlichen Weise kann, wenn die Wirtsvorrichtung Daten an die Datenspeichervorrichtung 6 zum Schreiben in die NAND-Anordnung 40 sendet, der flüchtige Speicher 42 die PBA der Daten in die V2P-Abbildungstabelle setzen. Der flüchtige Speicher 42 kann die PBA der Daten an der durch die Wirtsvorrichtung bereitgestellten LBA in die V2P-Abbildungstabelle setzen, wie in 3 dargestellt. Die Datenspeichervorrichtung 6 kann die im flüchtigen Speicher 42 gespeicherte V2P-Abbildungstabelle und den in der NVMA 44 gespeicherten Abschnitt der V2P-Abbildungstabelle für jeden Schreib- und Löschvorgang in der NAND-Anordnung 40 aktualisieren. Die Datenspeichervorrichtung 6 kann Einträge in der in der NAND-Anordnung 40 gespeicherten V2P-Abbildungstabelle weniger häufig als die Einträge in der im flüchtigen Speicher 42 gespeicherten V2P-Abbildungstabelle und in dem in der NVMA 44 gespeicherten Abschnitt der V2P-Abbildungstabelle aktualisieren.
  • Der flüchtige Speicher 42 kann schnellere Zugriffszeiten als die NAND-Anordnung 40 aufweisen. Durch Speichern der V2P-Abbildungstabelle im flüchtigen Speicher 42 kann eine Wirtsvorrichtung schnell auf Seiten zugreifen und sie lesen, indem sie die PBAs für die Seiten schnell bestimmt. Der flüchtige Speicher 42 kann jedoch höhere Kosten pro Byte als die NAND-Anordnung 40 haben und mehr Leistung pro Byte als die NAND-Anordnung 40 verbrauchen.
  • Die NVMA 44 kann einen Abschnitt der V2P-Abbildungstabelle speichern, der Einträge enthält, die eine Wirtsvorrichtung während eines Urladeprozesses anfordern kann. Der Abschnitt der V2P-Abbildungstabelle kann eine Teilmenge, aber nicht alle, der V2P-Abbildungstabellen enthalten, die in der NAND-Anordnung 40 und im flüchtigen Speicher 42 gespeichert sind. Die Einträge in dem Abschnitt der V2P-Abbildungstabelle können mit Seiten korrespondieren, die die Wirtsvorrichtung während eines Urladeprozesses wahrscheinlich anfordern wird. Die Datenspeichervorrichtung 6 kann einen Algorithmus verwenden, um die Einträge auszuwählen, die in dem in der NVMA 44 gespeicherten Abschnitt der V2P-Abbildungstabelle aufzunehmen sind.
  • Wie in 3 gezeigt, kann der in der NVMA 44 gespeicherte Abschnitt der V2P-Abbildungstabelle LBAs und PBAs auflisten. Die NVMA 44 kann die Einträge sequenziell oder in einem anderen geeigneten Format auflisten. Wenn eine Wirtsvorrichtung eine Seite an einer LBA anfordert, kann die Datenspeichervorrichtung 6 die korrespondierende PBA aus der NVMA 44 erlangen, um den physikalischen Ort von in der NAND-Anordnung 40 gespeicherten Daten zu bestimmen.
  • Wie die NAND-Anordnung 40 kann die NVMA 44 nichtflüchtiger Speicher sein, aber die NVMA 44 kann von der NAND-Anordnung 40 getrennt sein. Die NVMA 44 kann konfiguriert sein, nur Daten von der Datenspeichervorrichtung 6 und keine Daten von einer Wirtsvorrichtung zu speichern. Sowohl die NAND-Anordnung 40 als auch die NVMA 44 können in der Datenspeichervorrichtung 6 residieren. In einigen Beispielen kann die NVMA 44 in einer SSD-Karte in der Datenspeichervorrichtung 6 residieren.
  • Die NVMA 44 kann aus verschiedenen Gründen in der Größe und der Speicherkapazität viel kleiner als die NAND-Anordnung 40 sein. Die NVMA 44 kann viel teurer pro Byte sein als die NAND-Anordnung 40. Als ein Ergebnis kann es kostengünstig sein, eine gesamte Speichervorrichtung aus NVMA 44 aufzubauen. In einigen Beispielen kann die NVMA 44 ein Speichertyp wie PCM oder MRAM sein, der schnellere Zugriffszeiten als die NAND-Anordnung 40 aufweist und Daten beibehält, wenn die Datenspeichervorrichtung 6 heruntergefahren wird.
  • 4 zeigt ein Ablaufdiagramm, das eine beispielhafte Technik zum Speichern eines Abschnitts einer V2P-Abbildungstabelle darstellt, gemäß einer oder mehreren Techniken dieser Offenbarung. Die Technik 50 wird in Bezug auf das System von 1, das die Steuerung 8 enthält, beschrieben, obwohl andere Komponenten wie die Steuerung 8 in 2 oder die Datenspeichervorrichtung 6 in 3 ähnliche Techniken durchführen können.
  • Die Technik von 4 enthält Speichern der V2P-Abbildungstabelle 18A in einer ersten nichtflüchtigen Speicheranordnung 10B (52). Die erste NVMA 10B kann konfiguriert sein, Daten von der Wirtsvorrichtung 4 und der Datenspeichervorrichtung 6 zu speichern. Die NVMA 10B kann in dem Massenspeicherbereich der Datenspeichervorrichtung 6 angeordnet sein. Die in der NVMA 10B gespeicherte V2P-Abbildungstabelle 18A kann Einträge enthalten, die die von der Wirtsvorrichtung 4 verwendeten LBAs mit den PBAs paaren, an denen Daten in dem Massenspeicherbereich der NVMAs 10 gespeichert sind. Anders als der flüchtige Speicher 12 kann die erste NVMA 10B imstande sein, Daten beizubehalten, wenn die Datenspeichervorrichtung 6 heruntergefahren wird.
  • Die Technik von 4 enthält außerdem, einen Abschnitt der V2P-Abbildungstabelle 18C in einer zweiten NVMA 16 zu speichern, die von der ersten NVMA 10B getrennt ist (54). Die zweite NVMA 16 kann konfiguriert sein, Daten von der Datenspeichervorrichtung 6 zu speichern. Die NVMA 16 kann außerhalb des Massenspeicherbereichs der Datenspeichervorrichtung 6 residieren. Die NVMA 16 kann eine Teilmenge der Einträge der in der NVMA 10B gespeicherten vollständigen Version der V2P-Abbildungstabelle 18A enthalten. Die Teilmenge kann Einträge für Daten enthalten, auf die während des Urladeprozesses häufig durch die Wirtsvorrichtung 4 zugegriffen wird. Die zweite NVMA 16 kann imstande sein, Daten beizubehalten, wenn die Datenspeichervorrichtung 6 heruntergefahren wird. Die zweite NVMA 16 kann außerdem schnellere Zugriffszeiten als die NVMA 10B aufweisen, wodurch die Leistung der Datenspeichervorrichtung 6 während der Urladeprozesse verbessert werden kann.
  • 5 zeigt ein Ablaufdiagramm, das eine beispielhafte Technik zum Zugreifen auf eine V2P-Abbildungstabelle während des Hochfahrens darstellt, gemäß einer oder mehreren Techniken dieser Offenbarung. Die Technik 60 wird in Bezug auf das System von 1, das die Steuerung 8 enthält, beschrieben, obwohl andere Komponenten wie die Steuerung 8 in 2 oder die Datenspeichervorrichtung 6 in 3 ähnliche Techniken durchführen können.
  • Die Technik von 5 enthält Empfangen, an der Datenspeichervorrichtung 6, eines von der Wirtsvorrichtung 4 ausgegebenen Lesebefehls für LBA X (62). Die Wirtsvorrichtung 4 kann eine Seite anfordern, indem sie der Datenspeichervorrichtung 6 eine LBA, die die Wirtsvorrichtung 4 der Seite zugewiesen hat, bereitstellt. Das Adressenübersetzungsmodul 20 in der Steuerung 8 kann die LBA empfangen und kann für das Bestimmen der übereinstimmenden PBA verantwortlich sein.
  • Die Technik von 5 enthält außerdem, zu bestimmen, ob das Umleitungssystem im flüchtigen Speicher 12 vollständig aufgebaut ist (64). Das Umleitungssystem kann eine vollständige Version der V2P-Abbildungstabelle 18B enthalten, die im flüchtigen Speicher 12 gespeichert ist. Die Datenspeichervorrichtung 6 kann die vollständige Version der V2P-Abbildungstabelle 18B während jedes Urladeprozesses der Datenspeichervorrichtung 6 in den flüchtigen Speicher 12 schreiben. Das Umleitungssystem kann vollständig aufgebaut sein, wenn auf die vollständige Version der V2P-Abbildungstabelle 18B im flüchtigen Speicher 12 zugegriffen werden kann und sie aktualisiert ist.
  • Wenn das Umleitungssystem vollständig aufgebaut ist, enthält die Technik von 5 außerdem Lesen des Umleitungssystems für einen mit LBA X assoziierten physikalischen Ort (66). Die V2P-Abbildungstabelle in dem Umleitungssystem kann Einträge enthalten, die LBAs und PBAs paaren. Das Adressenübersetzungsmodul 20 kann das Lesemodul 26 in der Steuerung 8 anweisen, den flüchtigen Speicher 12 zu lesen, um die PBA zu erlangen, die mit der LBA X übereinstimmt, wie durch die Wirtsvorrichtung 4 angefordert.
  • Nach dem Lesen des Umleitungssystems enthält die Technik von 5 außerdem Zugreifen auf eine NAND-Anordnung (68). Die NAND-Anordnung kann sich in den NVMAs 10 befinden und kann als Massenspeicher für die Datenspeichervorrichtung 6 betrieben werden. Das Lesemodul 26 kann die NVMAs 10 lesen, um die von der Wirtsvorrichtung 4 angeforderten Daten zu erlangen. Das Lesemodul 26 kann Daten aus der PBA lesen, die mit LBA X korrespondiert.
  • Nach dem Zugreifen auf die NAND-Anordnung enthält die Technik von 5 außerdem Senden der angeforderten Daten an die Wirtsvorrichtung 4 (70). Das Lesemodul 26 in der Steuerung 8 kann die angeforderten Daten über die Schnittstelle 14 an die Wirtsvorrichtung 4 übertragen.
  • Wenn das Umleitungssystem nicht vollständig aufgebaut ist, enthält die Technik von 5 das Bestimmen, ob die angeforderten Daten in einem Sofort-ein-Zwischenspeicher verfolgt werden (72). Der Sofort-ein-Zwischenspeicher kann sich in der NVMA 16 befinden, in der ein Abschnitt der V2P-Abbildungstabelle 18C gespeichert ist. Der Sofort-ein-Zwischenspeicher ist im strengen Sinn von „sofort“ unter Umständen nicht sofortig, kann aber einem menschlichen Benutzer als sofortig erscheinen. Die Steuerung 8 kann bestimmen, ob die NVMA 16 einen Eintrag von LBA X in dem Abschnitt der V2P-Abbildungstabelle 18C speichert.
  • Wenn der Sofort-ein-Zwischenspeicher in der NVMA 16 die angeforderten Daten verfolgt, enthält die Technik von 5 außerdem das Lesen des physikalischen Orts der angeforderten Daten im Sofort-ein-Zwischenspeicher (74). Das Adressenübersetzungsmodul 20 kann das Lesemodul 26 anweisen, den in der NVMA 16 gespeicherten Abschnitt der V2P-Abbildungstabelle zu lesen, um die mit LBA X assoziierte PBA zu erlangen.
  • Nach dem Lesen des Sofort-ein-Zwischenspeichers enthält die Technik von 5 das Zugreifen auf die NAND-Anordnung (68). Die NAND-Anordnung kann sich in den NVMAs 10 befinden und kann als Massenspeicher für die Datenspeichervorrichtung 6 betrieben werden. Das Lesemodul 26 kann die NVMAs 10 lesen, um die von der Wirtsvorrichtung 4 angeforderten Daten zu erlangen. Das Lesemodul 26 kann Daten aus der PBA, die mit LBA X korrespondiert, lesen. Nach dem Zugreifen auf die NAND-Anordnung enthält die Technik von 5 außerdem das Senden der angeforderten Daten an die Wirtsvorrichtung 4 (70). Das Lesemodul 26 in der Steuerung 8 kann die angeforderten Daten über die Schnittstelle 14 an die Wirtsvorrichtung 4 übertragen.
  • Wenn der Sofort-ein-Zwischenspeicher die angeforderten Daten nicht verfolgt, enthält die Technik von 5 das Warten, bis das Umleitungssystem aufgebaut ist (76). Das Schreibmodul 24 kann das Umleitungssystem durch Schreiben der V2P-Abbildungstabelle 18B in den flüchtigen Speicher 12 aufbauen. Das Aufbauen des Umleitungssystems kann außerdem Aktualisieren der V2P-Abbildungstabelle 18B enthalten. Nachdem das Umleitungssystem aufgebaut ist, kann das Adressenübersetzungsmodul 20 das Lesemodul 26 anweisen, durch Lesen der V2P-Abbildungstabelle 18B, die im flüchten Speicher 12 gespeichert ist, die PBA zu erlangen, die mit LBA X korrespondiert.
  • Nach dem Erlangen der PBA enthält die Technik von 5 das Zugreifen auf die NAND-Anordnung (68). Die NAND-Anordnung kann sich in den NVMAs 10 befinden und kann als Massenspeicher für die Datenspeichervorrichtung 6 betrieben werden. Das Lesemodul 26 kann die NVMAs 10 lesen, um die von der Wirtsvorrichtung 4 angeforderten Daten zu erlangen. Das Lesemodul 26 kann Daten aus der PBA, die mit LBA X korrespondiert, lesen. Nach dem Zugreifen auf die NAND-Anordnung enthält die Technik von 5 außerdem das Senden der angeforderten Daten an die Wirtsvorrichtung 4 (70). Das Lesemodul 26 in der Steuerung 8 kann die angeforderten Daten über die Schnittstelle 14 an die Wirtsvorrichtung 4 übertragen.
  • Die folgenden Beispiele können eine oder mehrere der Techniken dieser Offenbarung veranschaulichen.
  • Beispiel 1. Eine Speichervorrichtung enthält eine erste nichtflüchtige Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung, und eine zweite nichtflüchtige Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist. Die Speichervorrichtung enthält außerdem eine Steuerung, konfiguriert zum Speichern einer virtuellen zu physikalischen Abbildungstabelle in der ersten nichtflüchtigen Speicheranordnung und zum Speichern eines Abschnitts der virtuellen zu physikalischen Abbildungstabelle in der zweiten nichtflüchtigen Speicheranordnung.
  • Beispiel 2. Die Speichervorrichtung von Beispiel 1, wobei die Steuerung ferner konfiguriert ist zum Auswählen, unter Verwendung eines Algorithmus, von Einträgen aus der virtuellen zu physikalischen Abbildungstabelle zum Speichern in der zweiten nichtflüchtigen Speicheranordnung.
  • Beispiel 3. Die Speichervorrichtung der Beispiele 1 oder 2, wobei der Algorithmus einen eines Einzellaufwerk-Namensraums, eines Algorithmus zum maschinellen Lernen oder eines profilbasierten Algorithmus umfasst.
  • Beispiel 4. Die Speichervorrichtung eines der Beispiele 1 bis 3, wobei die Steuerung konfiguriert ist zum Speichern einer vollständigen Version der virtuellen zu physikalischen Abbildungstabelle in der ersten nichtflüchtigen Speicheranordnung. Die Steuerung ist ferner konfiguriert zum Speichern, während des Urladeprozesses, der vollständigen Version der virtuellen zu physikalischen Abbildungstabelle in einer flüchtigen Speicheranordnung.
  • Beispiel 5. Die Speichervorrichtung eines der Beispiele 1 bis 4, wobei die Steuerung ferner konfiguriert ist zum Bestimmen, dass kein Zugriff auf die virtuelle zu physikalische Abbildungstabelle in einer flüchtigen Speicheranordnung besteht. Die Steuerung ist ferner konfiguriert zum Bestimmen, dass ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle vorhanden ist. Die Steuerung ist ferner konfiguriert zum Lesen des Eintrags aus dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  • Beispiel 6. Die Speichervorrichtung eines der Beispiele 1 bis 5, wobei die Steuerung ferner konfiguriert ist zum Bestimmen, dass in einer flüchtigen Speicheranordnung während eines Urladeprozesses kein Zugriff auf die in der ersten nichtflüchtigen Speicheranordnung gespeicherten virtuellen zu physikalischen Abbildungstabelle besteht. Die Steuerung ist ferner konfiguriert zum Bestimmen, dass während des Urladeprozesses ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle nicht gespeichert ist. Die Steuerung ist ferner konfiguriert zum Lesen des Eintrags aus der virtuellen zu physikalischen Abbildungstabelle, wenn Zugriff auf die virtuelle zu physikalische Abbildungstabelle in der flüchtigen Speicheranordnung besteht.
  • Beispiel 7. Die Speichervorrichtung eines der Beispiele 1 bis 6, wobei die erste nichtflüchtige Speicheranordnung eine Flash-Speicheranordnung umfasst und wobei die zweite nichtflüchtige Speicheranordnung eine einer magnetoresistiven Direktzugriffspeicheranordnung oder einer Phasenwechsel-Speicheranordnung umfasst.
  • Beispiel 8. Die Speichervorrichtung eines der Beispiele 1 bis 7, wobei der in der zweiten nichtflüchtigen Speicheranordnung gespeicherte Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Streuwerttabelle, eine assoziative Tabelle oder ein baumbasiertes Umleitungssystem umfasst.
  • Beispiel 9. Die Speichervorrichtung eines der Beispiele 1 bis 8, wobei die Steuerung konfiguriert ist zum Aktualisieren des in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitts der virtuellen zu physikalischen Abbildungstabelle, bevor die Vorrichtung ausgeschaltet wird.
  • Beispiel 10. Die Speichervorrichtung eines der Beispiele 1 bis 9, wobei die virtuelle zu physikalische Abbildungstabelle ein oder mehrere Paare einer logischen Adresse und einer physikalischen Adresse angibt.
  • Beispiel 11. Die Speichervorrichtung eines der Beispiele 1 bis 10, wobei die zweite nichtflüchtige Speicheranordnung konfiguriert ist, nur Daten von der Speichervorrichtung und keine Daten von der Wirtsvorrichtung zu speichern.
  • Beispiel 12. Die Speichervorrichtung eines der Beispiele 1 bis 11, wobei der in der zweiten nichtflüchtigen Speicheranordnung gespeicherte Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Kopie eines in der ersten nichtflüchtigen Speicheranordnung gespeicherten Abschnitts der virtuellen zu physikalischen Abbildungstabelle umfasst.
  • Beispiel 13. Die Speichervorrichtung eines der Beispiele 1 bis 12, wobei sich die erste nichtflüchtige Speicheranordnung in einem Massenspeicherbereich der Speichervorrichtung befindet und wobei sich die zweite nichtflüchtige Speicheranordnung in der Steuerung befindet.
  • Beispiel 14. Die Speichervorrichtung eines der Beispiele 1 bis 13, wobei die Steuerung ferner konfiguriert ist zum, während des Kopierens der in der ersten nichtflüchtigen Speicheranordnung gespeicherten virtuellen zu physikalischen Abbildungstabelle in eine flüchtige Speicheranordnung und als Reaktion auf eine Leseanforderung oder Schreibanforderung, Zugreifen auf den in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  • Beispiel 15. Ein Verfahren enthält Speichern, durch eine Steuerung einer Speichervorrichtung, einer virtuellen zu physikalischen Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung. Das Verfahren enthält außerdem Speichern, durch die Steuerung, eines Abschnitts der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist.
  • Beispiel 16. Das Verfahren von Beispiel 15, ferner enthaltend Auswählen, durch die Steuerung und unter Verwendung eines Algorithmus, von Einträgen aus der virtuellen zu physikalischen Abbildungstabelle zum Speichern in der zweiten nichtflüchtigen Speicheranordnung.
  • Beispiel 17. Das Verfahren eines der Beispiele 15 bis 16, ferner enthaltend Bestimmen, durch die Steuerung, dass kein Zugriff auf die virtuelle zu physikalische Abbildungstabelle in einer flüchtigen Speicheranordnung besteht. Das Verfahren enthält ferner Bestimmen, durch die Steuerung, dass ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle vorhanden ist. Das Verfahren enthält ferner Lesen, durch die Steuerung, des Eintrags aus dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  • Beispiel 18. Das Verfahren eines der Beispiele 15 bis 17, ferner enthaltend Bestimmen, durch die Steuerung, dass kein Zugriff auf die in der ersten nichtflüchtigen Speicheranordnung gespeicherte virtuelle zu physikalische Abbildungstabelle in einer flüchtigen Speicheranordnung während eines Urladeprozesses besteht. Das Verfahren enthält ferner Bestimmen, durch die Steuerung, dass ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle während eines Urladeprozesses nicht gespeichert ist. Das Verfahren enthält ferner Lesen, durch die Steuerung, des Eintrags aus der virtuellen zu physikalischen Abbildungstabelle, wenn Zugriff auf die virtuelle zu physikalische Abbildungstabelle in der flüchtigen Speicheranordnung besteht.
  • Beispiel 19. Das Verfahren eines der Beispiele 15 bis 18, wobei die erste nichtflüchtige Speicheranordnung eine Flash-Speicheranordnung umfasst, und wobei die zweite nichtflüchtige Speicheranordnung eine einer magnetoresistiven Direktzugriffspeicheranordnung oder einer Phasenwechsel-Speicheranordnung umfasst.
  • Beispiel 20. Das Verfahren eines der Beispiele 15 bis 19, ferner umfassend, während des Kopierens der in der ersten nichtflüchtigen Speicheranordnung gespeicherten virtuellen zu physikalischen Abbildungstabelle in einer flüchtigen Speicheranordnung und als Reaktion auf eine Leseanforderung oder Schreibanforderung, Zugreifen auf den in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  • Beispiel 21. Eine computerlesbare Speichervorrichtung enthält Anweisungen, die, wenn sie ausgeführt werden, einen oder mehrere Prozessoren der Speichervorrichtung konfigurieren zum Speichern einer virtuellen zu physikalischen Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung; und Speichern eines Abschnitts der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung, konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist.
  • Beispiel 22. Das computerlesbare Speichermedium von Beispiel 18, ferner enthaltend Anweisungen, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren das Verfahren eines der Beispiele 15 bis 20 durchführen.
  • Die in dieser Offenbarung beschriebenen Techniken können, mindestens teilweise, in Hardware, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Zum Beispiel können verschiedene Aspekte der beschriebenen Techniken in einem oder mehreren Prozessoren, die einen oder mehrere Mikroprozessoren, Digitalsignalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gatteranordnungen (FPGAs) oder beliebige andere äquivalente integrierte oder diskrete Logikschaltungen sowie beliebige Kombinationen derartiger Komponenten enthalten, implementiert werden. Der Begriff „Prozessor“ oder „verarbeitende Schaltungen“ kann sich allgemein auf beliebige der vorstehenden Logikschaltungen, allein oder in Kombination mit anderen Logikschaltungen, oder beliebige andere äquivalente Schaltungen beziehen. Eine Steuereinheit, die Hardware enthält, kann auch imstande sein, eine oder mehrere der Techniken dieser Offenbarung durchzuführen.
  • Derartige Hardware, Software und Firmware kann in derselben Vorrichtung oder in separaten Vorrichtungen implementiert sein, um die in dieser Offenbarung beschriebenen verschiedenen Techniken zu unterstützen. Des Weiteren können beliebige der beschriebenen Einheiten, Module oder Komponenten zusammen oder separat als diskrete, aber interoperable Logikvorrichtungen implementiert werden. Die Darstellung verschiedener Merkmale als Module oder Einheiten soll verschiedene funktionelle Aspekte hervorheben und impliziert nicht notwendigerweise, dass derartige Module oder Einheiten als separate Hardware-, Firmware- oder Software-Komponenten realisiert werden müssen. Vielmehr kann Funktionalität, die mit einem/einer oder mehreren Modulen oder Einheiten assoziiert ist, durch separate Hardware-, Firmware- oder Software-Komponenten durchgeführt werden oder kann in gemeinsamen oder separaten Hardware-, Firmware- oder Software-Komponenten integriert sein.
  • Die in dieser Offenbarung beschriebenen Techniken können auch in einem Fertigungsartikel verkörpert oder codiert sein, enthaltend ein computerlesbares Speichermedium, das mit Anweisungen codiert ist. Anweisungen, die in einem Fertigungsartikel eingebettet oder codiert sind, enthaltend ein computerlesbares Speichermedium, das mit Anweisungen codiert ist, können bewirken, dass ein oder mehrere programmierbare Prozessoren oder andere Prozessoren eine oder mehrere der hierin beschriebenen Techniken implementieren, wie wenn Anweisungen, die in dem computerlesbaren Speichermedium enthalten oder codiert sind, von dem einen oder den mehreren Prozessoren ausgeführt werden. Computerlesbare Speichermedien können Direktzugriffspeicher (RAM), Nur-Lese-Speicher (ROM), programmierbaren Nur-Lese-Speicher (PROM), löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektronisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), Flash-Speicher, eine Festplatte, einen Kompaktplatten-ROM (CD-ROM), eine Diskette, eine Kassette, magnetische Medien, optische Medien oder andere computerlesbare Medien enthalten. In einigen Beispielen kann ein Fertigungsartikel ein oder mehrere computerlesbare Speichermedien enthalten.
  • In einigen Beispielen kann ein computerlesbares Speichermedium ein nicht vorübergehendes Medium enthalten. Der Begriff „nicht vorübergehend“ kann angeben, dass das Speichermedium nicht in einer Trägerwelle oder einem ausgebreiteten Signal verkörpert ist. In bestimmten Beispielen kann ein nicht vorübergehendes Speichermedium Daten speichern, die sich im Verlauf der Zeit verändern können (z. B. in RAM oder Zwischenspeicher).
  • Verschiedene Beispiele wurden beschrieben. Diese und andere Beispiele befinden sich im Schutzumfang der nachstehenden Ansprüche.

Claims (19)

  1. Speichervorrichtung (6), umfassend: eine erste nichtflüchtige Speicheranordnung (10AN), konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung und der Speichervorrichtung; eine zweite nichtflüchtige Speicheranordnung (16), konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist; eine flüchtige Speicheranordnung (12), die eingerichtet ist, Informationen, die eine virtuelle zu physikalische Abbildungstabelle (18B) enthalten, vorübergehend zu speichern, und eine Steuerung (8), konfiguriert zum: Speichern der virtuellen zu physikalischen Abbildungstabelle (18A) in der ersten nichtflüchtigen Speicheranordnung; Speichern eines Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle in der zweiten nichtflüchtigen Speicheranordnung; Verarbeiten von Leseanforderungen und Schreibanforderungen unter Verwendung des in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle während eines Urladeprozesses der Wirtsvorrichtung, wobei der Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Teilmenge der in der ersten nichtflüchtigen Speicheranordnung gespeicherten vollständigen Version der virtuellen zu physikalischen Abbildungstabelle ist; Kopieren der virtuellen zu physikalischen Abbildungstabelle (18A) von der ersten nichtflüchtigen Speicheranordnung in der flüchtigen Speicheranordnung (12) während des Urladeprozesses; Durchführen eines Verschleißausgleichs und einer Müllsammlung; Umpositionieren von Daten in der zweiten nichtflüchtigen Speicheranordnung basierend auf dem Verschleißausgleich und der Müllsammlung; Aktualisieren der virtuellen zu physikalischen Abbildungstabelle basierend auf den umpositionierten Daten in der zweiten nichtflüchtigen Speicheranordnung (16).
  2. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) ferner konfiguriert ist zum, während des Kopierens der in der ersten nichtflüchtigen Speicheranordnung (10A-N) gespeicherten virtuellen zu physikalischen Abbildungstabelle in der flüchtigen Speicheranordnung (12) und als Reaktion auf die Leseanforderung oder Schreibanforderung, Zugreifen auf den in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitt (18C) der virtuellen zu physikalischen Abbildungstabelle.
  3. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) ferner konfiguriert ist zum Auswählen, unter Verwendung eines Algorithmus, von Einträgen aus der virtuellen zu physikalischen Abbildungstabelle zum Speichern in der zweiten nichtflüchtigen Speicheranordnung.
  4. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) konfiguriert ist zum Speichern einer vollständigen Version der virtuellen zu physikalischen Abbildungstabelle (18A) in der ersten nichtflüchtigen Speicheranordnung (10A-N), und wobei die Steuerung ferner konfiguriert ist zum Speichern, während des Urladeprozesses, der vollständigen Version der virtuellen zu physikalischen Abbildungstabelle (18B) in der flüchtigen Speicheranordnung (12).
  5. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) ferner konfiguriert ist zum: Bestimmen, dass kein Zugriff auf die virtuelle zu physikalische Abbildungstabelle (18B) in der flüchtigen Speicheranordnung (12) besteht; Bestimmen, dass ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitt (18C) der virtuellen zu physikalischen Abbildungstabelle vorhanden ist; und Lesen des Eintrags aus dem in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  6. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) ferner konfiguriert ist zum: Bestimmen, dass in der flüchtigen Speicheranordnung während des Urladeprozesses kein Zugriff auf die in der ersten nichtflüchtigen Speicheranordnung (10A-N) gespeicherte virtuelle zu physikalische Abbildungstabelle besteht; Bestimmen, dass während des Urladeprozesses ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle nicht gespeichert ist; und Lesen des Eintrags aus der virtuellen zu physikalischen Abbildungstabelle, wenn Zugriff auf die virtuelle zu physikalische Abbildungstabelle in der flüchtigen Speicheranordnung (12) besteht.
  7. Speichervorrichtung nach Anspruch 1, wobei die erste nichtflüchtige Speicheranordnung (10A-N) eine Flash-Speicheranordnung umfasst, und wobei die zweite nichtflüchtige Speicheranordnung (16) eine einer magnetoresistiven Direktzugriffspeicheranordnung oder einer Phasenwechsel-Speicheranordnung umfasst.
  8. Speichervorrichtung nach Anspruch 1, wobei der in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherte Abschnitt (18C) der virtuellen zu physikalischen Abbildungstabelle eine Streuwerttabelle, eine assoziative Tabelle oder ein baumbasiertes Umleitungssystem umfasst.
  9. Speichervorrichtung nach Anspruch 1, wobei die Steuerung (8) konfiguriert ist zum Aktualisieren des in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitts der virtuellen zu physikalischen Abbildungstabelle, bevor die Speichervorrichtung (6) ausgeschaltet wird.
  10. Speichervorrichtung nach Anspruch 1, wobei die virtuelle zu physikalische Abbildungstabelle ein oder mehrere Paare einer logischen Adresse und einer physikalischen Adresse angibt.
  11. Speichervorrichtung nach Anspruch 1, wobei die zweite nichtflüchtige Speicheranordnung (12) konfiguriert ist, nur Daten von der Speichervorrichtung und keine Daten von der Wirtsvorrichtung (4) zu speichern.
  12. Speichervorrichtung nach Anspruch 1, wobei der in der zweiten nichtflüchtigen Speicheranordnung (12) gespeicherte Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Kopie eines in der ersten nichtflüchtigen Speicheranordnung (10A-N) gespeicherten Abschnitts der virtuellen zu physikalischen Abbildungstabelle umfasst.
  13. Speichervorrichtung nach Anspruch 1, wobei die erste nichtflüchtige Speicheranordnung (10A-N) sich in einem Massenspeicherbereich der Speichervorrichtung befindet, und wobei die zweite nichtflüchtige Speicheranordnung (16) sich in der Steuerung (8) befindet.
  14. Verfahren, umfassend: Speichern, durch eine flüchtige Speicheranordnung (12) einer Speichervorrichtung (6), von Informationen, die eine virtuelle zu physikalische Abbildungstabelle (18B) enthalten; Speichern, durch eine Steuerung (8) der Speichervorrichtung, einer virtuellen zu physikalischen Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung (10A-N), konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung (4) und der Speichervorrichtung; und Speichern, durch die Steuerung (8), eines Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung (16), konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist; Verarbeiten, durch die Steuerung (8), von Leseanforderungen und Schreibanforderungen unter Verwendung des in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle während eines Urladeprozesses der Wirtsvorrichtung, wobei der Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Teilmenge der in der ersten nichtflüchtigen Speicheranordnung gespeicherten vollständigen Version der virtuellen zu physikalischen Abbildungstabelle ist; Kopieren, durch die Steuerung (8), der virtuellen zu physikalischen Abbildungstabelle (18A) von der ersten nichtflüchtigen Speicheranordnung (10A-N) in der flüchtigen Speicheranordnung (12) während des Urladeprozesses; Durchführen, durch die Steuerung (8), eines Verschleißausgleichs und einer Müllsammlung; Umpositionieren, durch die Steuerung (8), von Daten in der zweiten nichtflüchtigen Speicheranordnung (16) basierend auf dem Verschleißausgleich und der Müllsammlung; Aktualisieren, durch die Steuerung (8), der virtuellen zu physikalischen Abbildungstabelle basierend auf den umpositionierten Daten in der zweiten nichtflüchtigen Speicheranordnung (16).
  15. Verfahren nach Anspruch 14, ferner umfassend, während des Kopierens der in der ersten nichtflüchtigen Speicheranordnung (10A-N) gespeicherten virtuellen zu physikalischen Abbildungstabelle (18A) in der flüchtigen Speicheranordnung (12) und als Reaktion auf eine Leseanforderung oder Schreibanforderung, Zugreifen auf den in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitt (18C) der virtuellen zu physikalischen Abbildungstabelle.
  16. Verfahren nach Anspruch 14, ferner umfassend: Auswählen, durch die Steuerung (8) und unter Verwendung eines Algorithmus, von Einträgen aus der virtuellen zu physikalischen Abbildungstabelle zum Speichern in der zweiten nichtflüchtigen Speicheranordnung.
  17. Verfahren nach Anspruch 14, ferner umfassend: Bestimmen, durch die Steuerung (8), dass kein Zugriff auf die virtuelle zu physikalische Abbildungstabelle in der flüchtigen Speicheranordnung besteht; Bestimmen, durch die Steuerung (8), dass ein Eintrag in dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle vorhanden ist; und Lesen, durch die Steuerung (8), des Eintrags aus dem in der zweiten nichtflüchtigen Speicheranordnung gespeicherten Abschnitt der virtuellen zu physikalischen Abbildungstabelle.
  18. Verfahren nach Anspruch 14, wobei die erste nichtflüchtige Speicheranordnung (10A-N9 eine Flash-Speicheranordnung umfasst, und wobei die zweite nichtflüchtige Speicheranordnung (16) eine einer magnetoresistiven Direktzugriffspeicheranordnung oder einer Phasenwechsel-Speicheranordnung umfasst.
  19. Computerlesbares Speichermedium, umfassend Anweisungen, die, wenn sie ausgeführt werden, einen oder mehrere Prozessoren einer Speichervorrichtung (6) konfigurieren zum: Speichern, durch eine flüchtige Speicheranordnung (12) der Speichervorrichtung, von Informationen, die eine virtuelle zu physikalische Abbildungstabelle (18B) enthalten; Speichern einer virtuellen zu physikalischen Abbildungstabelle in einer ersten nichtflüchtigen Speicheranordnung (10A-N), konfiguriert zum Speichern von Daten von einer Wirtsvorrichtung (4) und der Speichervorrichtung; Speichern eines Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle in einer zweiten nichtflüchtigen Speicheranordnung (16), konfiguriert zum Speichern von Daten von der Speichervorrichtung, wobei die zweite nichtflüchtige Speicheranordnung von der ersten nichtflüchtigen Speicheranordnung getrennt ist; Verarbeiten von Leseanforderungen und Schreibanforderungen unter Verwendung des in der zweiten nichtflüchtigen Speicheranordnung (16) gespeicherten Abschnitts (18C) der virtuellen zu physikalischen Abbildungstabelle während eines Urladeprozesses der Wirtsvorrichtung, wobei der Abschnitt der virtuellen zu physikalischen Abbildungstabelle eine Teilmenge der in der ersten nichtflüchtigen Speicheranordnung (10A-N) gespeicherten vollständigen Version der virtuellen zu physikalischen Abbildungstabelle (18A) ist; Kopieren der virtuellen zu physikalischen Abbildungstabelle (18A) von der ersten nichtflüchtigen Speicheranordnung in der flüchtigen Speicheranordnung (12) während des Urladeprozesses; Durchführen eines Verschleißausgleichs und einer Müllsammlung; Umpositionieren von Daten in der zweiten nichtflüchtigen Speicheranordnung basierend auf dem Verschleißausgleich und der Müllsammlung; Aktualisieren der virtuellen zu physikalischen Abbildungstabelle basierend auf den umpositionierten Daten in der zweiten nichtflüchtigen Speicheranordnung (16) .
DE102017113439.5A 2016-07-19 2017-06-19 Abbildungstabellen für Speichervorrichtungen Active DE102017113439B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/214,345 US10289544B2 (en) 2016-07-19 2016-07-19 Mapping tables for storage devices
US15/214,345 2016-07-19

Publications (2)

Publication Number Publication Date
DE102017113439A1 DE102017113439A1 (de) 2018-01-25
DE102017113439B4 true DE102017113439B4 (de) 2022-06-23

Family

ID=60890394

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017113439.5A Active DE102017113439B4 (de) 2016-07-19 2017-06-19 Abbildungstabellen für Speichervorrichtungen

Country Status (4)

Country Link
US (1) US10289544B2 (de)
KR (1) KR102168838B1 (de)
CN (1) CN107632939B (de)
DE (1) DE102017113439B4 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI664568B (zh) * 2016-11-15 2019-07-01 慧榮科技股份有限公司 資料儲存裝置之操作方法
US11550481B2 (en) * 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10289421B2 (en) * 2017-02-17 2019-05-14 Dell Products, L.P. Booting of IHS from SSD using PCIe
US11579789B2 (en) * 2017-09-29 2023-02-14 Apple Inc. Techniques for managing context information for a storage device
KR20190067540A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그것의 동작 방법
US10558576B2 (en) * 2018-01-22 2020-02-11 Western Digital Technologies, Inc. Storage device with rapid overlay access
CN108536616B (zh) * 2018-03-28 2021-10-15 华中科技大学 一种提升pcm数据加密写性能和寿命的映射方法
US11157319B2 (en) * 2018-06-06 2021-10-26 Western Digital Technologies, Inc. Processor with processor memory pairs for improved process switching and methods thereof
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
US10901889B2 (en) * 2018-07-25 2021-01-26 ScaleFlux, Inc. Using hybrid-software/hardware based logical-to-physical address mapping to improve the data write throughput of solid-state data storage devices
KR20200014964A (ko) * 2018-08-02 2020-02-12 삼성전자주식회사 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법
US11301331B2 (en) * 2018-09-20 2022-04-12 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
US11175915B2 (en) * 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10901904B2 (en) 2018-10-25 2021-01-26 International Business Machines Corporation Using a machine learning module to perform destages of tracks with holes in a storage system
US11222265B2 (en) 2018-10-25 2022-01-11 International Business Machines Corporation Perform destages of tracks with holes in a storage system by training a machine learning module
US11237960B2 (en) * 2019-05-21 2022-02-01 Arm Limited Method and apparatus for asynchronous memory write-back in a data processing system
US10942659B2 (en) * 2019-06-03 2021-03-09 International Business Machines Corporation Persistent logical to virtual table
US11861692B2 (en) * 2019-06-04 2024-01-02 Sap Se Automated hybrid pipeline for customer identification
US11237841B2 (en) * 2019-08-21 2022-02-01 Micron Technology, Inc. Configurable media structure
KR20220086934A (ko) * 2020-12-17 2022-06-24 에스케이하이닉스 주식회사 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법
KR102386292B1 (ko) * 2021-09-09 2022-04-28 주식회사 유락 데이터 삭제 장치 및 방법
US20230083104A1 (en) * 2021-09-10 2023-03-16 Vmware, Inc. Efficiently Deleting Snapshots in a Log-Structured File System (LFS)-Based Storage System

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612666B2 (en) 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US20140281150A1 (en) 2013-03-12 2014-09-18 Macronix International Co., Ltd. Difference l2p method
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI248617B (en) * 2004-08-13 2006-02-01 Prolific Technology Inc Data storage device
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US20080082752A1 (en) * 2006-09-29 2008-04-03 Ram Chary Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
US20090327601A1 (en) * 2008-06-30 2009-12-31 Shachar Fienblit Asynchronous data mirroring with look-ahead synchronization record
KR100969385B1 (ko) * 2008-07-07 2010-07-09 현대자동차주식회사 가변 압축비 장치
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8131700B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Transitioning clone data maps and synchronizing with a data query
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US9563501B2 (en) * 2010-11-30 2017-02-07 Micron Technology, Inc. Preserving data integrity in a memory system
JP5295286B2 (ja) 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
JP5646402B2 (ja) 2011-07-06 2014-12-24 パナソニック株式会社 不揮発性メモリのページ管理方法
US9009396B2 (en) * 2011-09-23 2015-04-14 Avalanche Technology, Inc. Physically addressed solid state disk employing magnetic random access memory (MRAM)
JP2013097416A (ja) 2011-10-28 2013-05-20 Hitachi Ltd 記憶装置および計算機
US9448922B2 (en) * 2011-12-21 2016-09-20 Intel Corporation High-performance storage structures and systems featuring multiple non-volatile memories
US9323542B2 (en) * 2011-12-27 2016-04-26 Intel Corporation Optimized cold boot for non-volatile memory
US9507639B2 (en) * 2012-05-06 2016-11-29 Sandisk Technologies Llc Parallel computation with multiple storage devices
CN103488580A (zh) 2012-06-14 2014-01-01 建兴电子科技股份有限公司 固态储存装置的地址对应表建立方法
CN102981963B (zh) * 2012-10-30 2015-12-02 华中科技大学 一种固态盘的闪存转换层的实现方法
US9098400B2 (en) * 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US20140143476A1 (en) * 2012-11-16 2014-05-22 Rotem Sela Usage of cache and write transaction information in a storage device
US9047172B2 (en) * 2012-11-29 2015-06-02 Intel Corporation Adaptive power control of memory map storage devices
CN103049397B (zh) * 2012-12-20 2015-09-16 中国科学院上海微系统与信息技术研究所 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
CN103970675A (zh) * 2013-01-29 2014-08-06 Lsi公司 用于使引导操作系统加速的快速引导列表
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法
CN103425605A (zh) 2013-07-26 2013-12-04 记忆科技(深圳)有限公司 一种固态硬盘掉电保护及快速启动方法、系统
US9626288B2 (en) * 2013-08-14 2017-04-18 Skyera, Llc Address translation for a non-volatile memory storage device
CN103425600B (zh) * 2013-08-23 2016-01-20 中国人民解放军国防科学技术大学 一种固态盘闪存转换层中的地址映射方法
WO2015106162A1 (en) * 2014-01-09 2015-07-16 SanDisk Technologies, Inc. Selective copyback for on die buffered non-volatile memory
CN103777905B (zh) 2014-02-14 2017-04-12 华中科技大学 一种软件定义的固态盘融合存储方法
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
US9632702B2 (en) * 2014-10-15 2017-04-25 International Business Machines Corporation Efficient initialization of a thinly provisioned storage array
KR102506135B1 (ko) * 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
CN104794070B (zh) * 2015-04-23 2017-10-31 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
KR102403266B1 (ko) * 2015-06-22 2022-05-27 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10503653B2 (en) * 2015-09-11 2019-12-10 Toshiba Memory Corporation Memory system
CN106547701B (zh) * 2015-09-17 2020-01-10 慧荣科技股份有限公司 记忆装置及数据读取方法
US10157012B2 (en) * 2015-09-29 2018-12-18 Sandisk Technologies Llc Zero read on trimmed blocks in a non-volatile memory system
KR20170056765A (ko) * 2015-11-13 2017-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN106776376B (zh) * 2015-11-24 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612666B2 (en) 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US20140281150A1 (en) 2013-03-12 2014-09-18 Macronix International Co., Ltd. Difference l2p method

Also Published As

Publication number Publication date
DE102017113439A1 (de) 2018-01-25
US10289544B2 (en) 2019-05-14
CN107632939B (zh) 2021-03-19
US20180024919A1 (en) 2018-01-25
KR102168838B1 (ko) 2020-10-22
CN107632939A (zh) 2018-01-26
KR20180009695A (ko) 2018-01-29

Similar Documents

Publication Publication Date Title
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE102017104158A1 (de) Gültigkeitsverfolgung für garbage collection
DE112011105984T5 (de) Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE102017124079A1 (de) Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102016001066A1 (de) Zuordnung der logischen Blockadresse für Festplattenlaufwerke
DE112016003998T5 (de) Technologien für das management eines reservierten hochleistungsspeicherbereichs eines solid-state-laufwerks
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE102021114458A1 (de) Befehlsentleerung unter verwendung des host-speicherpuffers
DE102021115893A1 (de) EFFIZIENTE DATENSPEICHERUNGSNUTZUNG IM ZUSAMMENHANG MIT EINEM NICHT ORDNUNGSGEMÄßEN HERUNTERFAHREN
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE112020005078T5 (de) Verschieben von änderungsprotokolltabellen zum abstimmen mit zonen
DE102020115969A1 (de) Speichervorrichtungen, speichersysteme und verfahren zum betreiben von speichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R020 Patent grant now final