DE102016001066A1 - Zuordnung der logischen Blockadresse für Festplattenlaufwerke - Google Patents

Zuordnung der logischen Blockadresse für Festplattenlaufwerke Download PDF

Info

Publication number
DE102016001066A1
DE102016001066A1 DE102016001066.5A DE102016001066A DE102016001066A1 DE 102016001066 A1 DE102016001066 A1 DE 102016001066A1 DE 102016001066 A DE102016001066 A DE 102016001066A DE 102016001066 A1 DE102016001066 A1 DE 102016001066A1
Authority
DE
Germany
Prior art keywords
lba
host
drive
data
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016001066.5A
Other languages
English (en)
Inventor
Zvonimir Z. Bandic
Cyril Guyot
Adam C. Manzanares
Noah Watkins
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
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of DE102016001066A1 publication Critical patent/DE102016001066A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1238Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc track, i.e. the entire a spirally or concentrically arranged path on which the recording marks are located

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Digital Magnetic Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Ein Verfahren kann Schreiben von Daten zu einem Festplattenlaufwerk umfassen. In einigen Beispielen kann das Verfahren Empfangen durch ein Bereichszuordnermodul eines Befehls zum Schreiben von Daten umfassen. Der Befehl kann Daten und eine durch den Host angegebene logische Blockadresse (LBA) umfassen. Auch kann das Verfahren Zuordnen durch das Bereichszuordnermodul der durch den Host angegebenen LBA zu einer Laufwerk-LBA umfassen. Das Verfahren kann weiterhin Senden von dem Bereichszuordnermodul eines Befehls zum Schreiben der Daten an der Laufwerk-LBA umfassen.

Description

  • Die Anmeldung beansprucht die Vergünstigung von US-Hilfsanmeldung Nr. 62/110,892, eingereicht am 2. Februar 2015, deren gesamter Inhalt durch hiesige Bezugnahme aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die Offenbarung betrifft Festplattenlaufwerke mit schuppiger Magnetaufzeichnung.
  • HINTERGRUND
  • Durch schuppige Magnetaufzeichnungs(SMR – Shingled Magnetic Recording)-Gebiete eines Festplattenlaufwerks (HDD – Hard Disk Drive) wird die Fähigkeit zum Einschreiben von Daten in ihren aktuellen Ort beschränkt. Diese Beschränkung beruht auf der Größe der SMR-Gebiete und eines Magnetkopfes, der die Daten liest und in die Spuren eines SMR-Gebiets einschreibt. Der Magnetkopf ist breiter als die Zielspurbreite, die er beschreibt, und verursacht Probleme mit der Wiederbeschreibungsleistung einer SMR-Zone in einem HDD. Wiederbeschreiben einer Spur in einer Zone veranlasst den Magnetkopf, Nebenspuren zu überlaufen, wodurch Daten in den Nebenspuren überschrieben werden können. Wiederbeschreiben einer vorigen Spur kann den HDD veranlassen, große Teile einer Zone wiederzubeschreiben, um einen einzelnen Abschnitt oder eine einzelne Spur wiederzubeschreiben. Im Ergebnis können SMR-HDD im Vergleich zu anderen Arten von HDD eine verringerte Schreibleistung aufweisen.
  • KURZE BESCHREIBUNG
  • In einem Beispiel richtet sich die Offenbarung auf ein Verfahren, das Empfangen durch ein auf einer Host-Vorrichtung ablaufendes Bereichszuordnermodul eines Befehls zum Schreiben von Daten umfassen kann. Der Befehl kann Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfassen. Auch kann das Verfahren Zuordnen durch das Bereichszuordnermodul der durch den Host angegebenen LBA zu einer Laufwerk-LBA umfassen. Das Verfahren kann weiterhin Senden von dem Bereichszuordnermodul und zu einem Festplattenlaufwerk eines Befehls zum Schreiben der Daten zu der Laufwerk-LBA umfassen.
  • In einem weiteren Beispiel richtet sich die Offenbarung auf ein Verfahren, das Empfangen durch ein auf einem Festplattenlaufwerk ablaufendes Bereichszuordnermodul eines Befehls zum Schreiben von Daten umfassen kann. Der Befehl kann Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfassen. Auch kann das Verfahren Zuordnen durch das Bereichszuordnermodul der durch den Host angegebenen LBA zu einer physikalischen Blockadresse des Laufwerks (Laufwerk-PBA) umfassen. Die Laufwerk-PBA kann einer gegenwärtig mit einem Schreibzeiger verbundenen Adresse entsprechen. Das Verfahren kann weiterhin Senden von dem Bereichszuordnermodul und zu einer Hardware-Maschine des Festplattenlaufwerks eines Befehls zum Schreiben der Daten an der Laufwerk-PBA umfassen.
  • In einem Beispiel richtet sich die Offenbarung auf eine Vorrichtung, die wenigstens einen Prozessor und ein durch den wenigstens einen Prozessor betreibbares Bereichszuordnermodul umfassen kann. Das Bereichszuordnermodul kann einen Befehl zum Schreiben von Daten empfangen. Der Befehl kann Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfassen. Das Bereichszuordnermodul kann die durch den Host angegebene LBA einer Laufwerk-LBA zuordnen. Auch kann das Bereichszuordnermodul einen Befehl zum Schreiben der Daten an der Laufwerk-LBA zu einem Festplattenlaufwerk senden.
  • In einem weiteren Beispiel richtet sich die Offenbarung auf eine Vorrichtung, die eine Schnittstelle, eine Hardware-Maschine und eine Steuerung umfassen kann. Die Steuerung kann wenigstens einen Prozessor und ein durch den wenigstens einen Prozessor betreibbares Bereichszuordnermodul umfassen. Das Bereichszuordnermodul kann über die Schnittstelle einen Befehl zum Schreiben von Daten empfangen. Der Befehl kann Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfassen. Das Bereichszuordnermodul kann die durch den Host angegebene LBA einer physikalischen Blockadresse des Laufwerks (Laufwerk-PBA) zuordnen. Die Laufwerk-PBA entspricht einer gegenwärtig mit einem Schreibzeiger verbundenen Adresse. Auch kann das Bereichszuordnermodul einen Befehl zum Schreiben der Daten an der Laufwerk-PBA zu der Hardware-Maschine senden.
  • Die Einzelheiten eines oder mehrerer Bespiele der Offenbarung sind in den beiliegenden Zeichnungen und der untenstehenden Beschreibung aufgeführt. Andere Merkmale, Gegenstände und Vorteile der Offenbarung werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen offenbar sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein konzeptmäßiges und schematisches Blockschaltbild einer beispielhaften Speicherumgebung, in der ein Festplattenlaufwerk als eine Speichervorrichtung für eine Host-Vorrichtung gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung fungieren kann.
  • 2 ist ein konzeptmäßiges und schematisches Blockschaltbild eines beispielhaften Bereichszuordnersystems gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung.
  • 3 ist ein konzeptmäßiges und schematisches Blockschaltbild einer beispielhaften Zone eines SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Speichern von Daten zu einem SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung.
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Lesen von Daten aus einem SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Offenbarung beschreibt Verfahren zum Verwalten von Zuschreibungen in schuppigen Magnetaufzeichnungs(SMR – Shingled Magnetic Recording)-Festplattenlaufwerken (HDD – Hard Disk Drives). Zum Beispiel kann ein SMR-HDD eingerichtet sein, Daten sequentiell in verschiedene Zonen des SMR-HDD einzuschreiben, so dass das SMR-HDD die Zonen behandelt, als wenn die Zonen „nur zum Anhängen (Append-Only)” bestimmt sind und typischerweise keine bestehenden Datenspuren beim Wiedereinschreiben von Daten in eine bestimmte logische Blockadresse (LBA) überschreibt. Das SMR-HDD kann einen mit jeder Zone verbundenen Schreibzeiger unterhalten, der einer Stelle in der Zone für die nächste Zuschreibung entspricht, ungeachtet dessen, ob die nächste Zuschreibung zu einer vorher benutzten LBA (d. h. vorher beschriebenen) oder einer neuen LBA (d. h. nicht vorher beschriebenen) bestimmt ist. Zusätzlich können der Host, das SMR-HDD oder beide eine Zuordnung zwischen den durch den Host benutzten LBA beim Einschreiben von Daten zu dem SMR-HDD und den physikalischen Blockadressen (PBA), zu denen die Daten eigentlich geschrieben werden, unterhalten. Wenn Daten zu einer vorher benutzten LBA geschrieben werden, kann die LBA zum Zuordnen zu der nächsten, durch den Schreibzeiger angezeigten PBA anstatt der PBA, die für die vorhergehende Schreiboperation benutzt wurde, aktualisiert werden. Auf diese Weise können Verfahren dieser Offenbarung die Schreibleistung von SMR-HDD erhöhen, während sie die „Nur-Anhängungs”-Schreibeigenschaften des SMR-HDD von dem Betriebssystem (OS – Operating System) verbergen, die die erhöhte Schreibleistung bereitstellen.
  • 1 ist ein konzeptionelles und schematisches Blockschaltbild einer beispielhaften Speicherumgebung, in der ein Festplattenlaufwerk als eine Speichervorrichtung für eine Host-Vorrichtung gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung fungieren kann. Zum Beispiel kann Host-Vorrichtung 4 in Festplattenlaufwerk 6 enthaltene nichtflüchtige Speichervorrichtungen zum Speichern und Abrufen von Daten nutzen. In einigen Beispielen kann Speicherumgebung 2 eine Vielzahl von Speichervorrichtungen wie beispielsweise Festplattenlaufwerk 6 umfassen, das als eine Speichergruppe fungieren kann. Zum Beispiel kann Speicherumgebung 2 eine Vielzahl von Festplattenlaufwerken 6 eingerichtet als eine redundante Gruppe von kostengünstigen/unabhängigen Platten (RAID – Redundant Array of Inexpensive/Independent Disks) umfassen, die zusammen als eine Massenspeichervorrichtung für Host-Vorrichtung 4 fungieren. Während Verfahren der vorliegenden Offenbarung allgemein auf Speicherumgebung 2 und Festplattenlaufwerk 6 bezogen sind, können die hier beschriebenen Verfahren in jeder Speicherumgebung durchgeführt werden, die Spuren von Daten nutzt.
  • Speicherumgebung 2 kann Host-Vorrichtung 4 umfassen, die Daten in und/oder aus einer oder mehreren Speichervorrichtungen wie beispielsweise Festplattenlaufwerk 6 speichern und/oder abrufen kann. Wie in 1 dargestellt, kann Host-Vorrichtung 4 mit Festplattenlaufwerk 6 über Schnittstelle 14 kommunizieren. Host-Vorrichtung 4 kann jedes einer großen Reihe von Vorrichtungen umfassen einschließlich von Computerservern, an das Netz angeschalteten Speicher(NAS – Network Attached Storage)-Einheiten, Tischrechnern, Notizbuch(d. h. Laptop-)-Computern, Tablet-Computern, Tischgeräten, Handys wie sogenannte „Smart”-Telefone, sogenannte „Smart”-Pads, Fernsehern, Kameras, Anzeigevorrichtungen, digitalen Medienspielern, Video-Spielkonsolen, Video-Streaminggerät und dergleichen. Typischerweise umfasst Host-Vorrichtung 4 jede Vorrichtung mit einer Verarbeitungseinheit, die sich auf jede Form von Hardware beziehen kann, die zur Verarbeitung von Daten fähig ist, und eine Universalverarbeitungseinheit (wie beispielsweise eine Zentraleinheit (ZE), fest zugeordnete Hardware (wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC – Application Specific Integrated Circuit)), konfigurierbare Hardware wie beispielsweise eine feldprogrammierbare Gatteranordnung (FPGA – Field Programmable Gate Array) oder jede sonstige Form von Verarbeitungseinheit eingerichtet mittels Softwareanweisungen, Mikrocode, Firmware oder dergleichen umfassen kann. Zwecks Ausführung von Verfahren der vorliegenden Offenbarung kann Host-Vorrichtung 4 Lese- und Schreibbefehle über ein Bereichszuordnungsmodul 16 und Schnittstelle 14 zu Steuerung 8 zwecks Lesens und Wiederbeschreibens von in einen SMR-Gebiet gespeicherten Daten senden. Nur zur Erläuterung ist Bereichszuordnermodul 16 unten als an Host 4 enthalten beschrieben. Festplattenlaufwerk 6 kann jedoch das Bereichszuordnermodul 17 umfassen. In einigen Beispielen kann Host 4 und Festplattenlaufwerk 6 jeweils Bereichszuordnermodule 16, 17 umfassen.
  • Wie in 1 dargestellt, kann Festplattenlaufwerk 6 eine Steuerung 8, einen Cache 9, eine Hardeware-Maschine 10, Datenspeichervorrichtung 12 und eine Schnittstelle 14 umfassen. In einigen Beispielen kann das Festplattenlaufwerk 6 zur Erleichterung von Darstellungszwecken in 1 nicht gezeigte zusätzliche Komponenten umfassen. Zum Beispiel kann das Festplattenlaufwerk 6 Stromabgabekomponenten einschließlich beispielsweise eines Kondensators, Superkondensators oder einer Batterie; eine Druckschaltplatte (PCB – Printed Circuit Board), an der Komponenten des Festplattenlaufwerk 6 mechanisch angebracht sind und die elektrisch leitfähige Spuren umfasst, Komponenten des Festplattenlaufwerks 6 und dergleichen elektrisch zusammenschalten. In einigen Beispielen können die physikalischen Abmessungen und Verbinderanordnungen des Festplattenlaufwerks 6 einem oder mehreren Standard-Formfaktoren entsprechen. Einige beispielhafte Standardformfaktoren umfassen, sind aber nicht begrenzt 3,5-Zoll HDD, 2,5-Zoll HDD oder 1,8-Zoll HDD.
  • In einigen Beispielen kann Cache 9 Informationen zur Verarbeitung während des Betriebs des Festplattenlaufwerks 6 speichern. In einigen Beispielen ist Cache 9 ein zeitweiliger Speicher, was bedeutet, dass ein Hauptzweck von Cache 9 nicht langfristige Speicherung ist. Cache 9 an Festplattenlaufwerk 6 kann für kurzzeitige Speicherung von Informationen als flüchtiger Speicher eingerichtet sein und daher gespeicherten Inhalt nicht behalten, wenn er ausgeschaltet ist. Beispiele von flüchtigen Speichern umfassen Direktzugriffsspeicher (RAM – Random Access Memories), dynamische Direktzugriffsspeicher (DRAM – Dynamic Random Access Memories), statische Direktzugriffsspeicher (SRAM – Static Random Access Memories) und andere, in der Technik bekannte Formen flüchtiger Speicher.
  • Datenspeicher 12 kann zum Speichern größerer Mengen von Informationen als Cache 9 eingerichtet sein. Datenspeicher 12 kann weiterhin zur langfristigen Speicherung von Informationen als nichtflüchtiger Speicher eingerichtet sein und Informationen nach Ein-Ausschaltezyklen bewahren. Beispiele von nichtflüchtigen Speichern umfassen magnetische Festplatten, optische Platten, Disketten, Flash-Speicher oder Formen elektrisch programmierbarer Speicher (EPROM – Electrically Programmable Memories) oder elektrisch löschbare und programmierbare Speicher (EEPROM – Electrically Erasable and Programmable Memories). Datenspeicher 12 kann eine oder mehrere Magnetplatten in Festplattenlaufwerk 6 sein, wobei jede Platte ein oder mehrere Gebiete von einer oder mehreren Spuren von Daten enthält.
  • Festplattenlaufwerk 6 umfasst Steuerung 8, die eine oder mehrere Operationen von Festplattenlaufwerk 6 verwalten kann. Steuerung 8 kann an Host-Vorrichtung 4 über Schnittstelle 14 und Bereichszuordnungmodul 16 angeschlossen sein. Steuerung 8 kann die Speicherung von Daten in und den Abruf von Daten aus über Hardware-Maschine 14 zugänglichem Datenspeicher 12 verwalten. Steuerung 8 kann als ein Beispiel Zuschreibungen zu und Auslesungen aus den Speichervorrichtungen verwalten, z. B. eine Festplattenlaufwerkplatte. In einigen Beispielen kann Steuerung 8 eine Hardware-Steuerung sein. In anderen Beispielen kann Steuerung 8 als eine Software-Steuerung in Festplattenlaufwerk 6 ausgeführt sein.
  • In dieser Hinsicht kann Host 4 an verschiedene Hardware-Maschinen wie beispielsweise Hardware-Maschine 10 angeschlossen sein, um mit verschiedenen Sensoren zusammenzuwirken. Host 4 kann Software ausführen wie beispielsweise das oben angeführte Betriebssystem, um Wechselwirkungen zwischen Host 4 und Hardware-Maschine 10 zu verwalten. Das Betriebssystem kann Arbitrierung im Zusammenhang von Mehrkern-ZE durchführen, wobei jeder Kern effektiv eine andere ZE darstellt, zum Bestimmen, welche der ZE auf Hardware-Maschine 10 zugreifen kann. Auch kann das Betriebssysteme Warteschlangenverwaltung im Zusammenhang einer einzigen ZE durchführen, um sich damit zu befassen, wie verschiedene Ereignisse wie beispielsweise Lese- und Schreibbefehle im Beispiel von Festplattenlaufwerk 6, ausgegeben durch Host 4, durch Hardware-Maschine 10 von Festplattenlaufwerk 6 verarbeitet werden sollten.
  • Im Beispiel der 1 umfasst Festplattenlaufwerk 6 Hardware-Maschine 10, die die zum Anschließen an das Speichermedium verantwortliche Hardware darstellen kann. Hardware-Maschine 10 kann im Zusammenhang mit einem plattenbasiertem Festplattenlaufwerk den magnetischen Schreib-/Lesekopf und die begleitende Hardware zum Einrichten, Ansteuern und Verarbeiten der durch den magnetischen Schreib-/Lesekopf erfassten Signale darstellen.
  • Festplattenlaufwerk 6 kann Schnittstelle 14 zum Anschließen an Host-Vorrichtung 4 umfassen. Schnittstelle 14 kann einen oder beide eines Datenbusses zum Austauschen von Daten mit Host-Vorrichtung 4 und eines Steuerbuses zum Austauschen von Befehlen mit Host-Vorrichtung 4 umfassen. Schnittstelle 14 kann nach jedem geeigneten Protokoll betrieben werden. Zum Beispiel kann Schnittstelle 14 nach einem oder mehreren der folgenden Protokolle betrieben werden: Anschluss fortgeschrittener Technik (ATA – Advanced Technology Attachment) (z. B. serieller ATA (SATA) und paralleler ATA (PATA)), Faserkanal, Kleinrechner-Systemschnittstelle (SCSI – Small Computer System Interface), seriell angeschlossene SCSI (SAS), Peripheriekomponentenverbindung (PCI – Peripheral Component Interconnect) und PCI-express (PCIe). Die elektrische Verbindung von Schnittstelle 14 (z. B. der Datenbus, der Steuerbus oder beide) ist elektrisch mit Steuerung 8 verbunden und bietet eine elektrische Verbindung zwischen Host-Vorrichtung 4 und Steuerung 8 und erlaubt den Austausch von Daten zwischen Host-Vorrichtung 4 und Steuerung 8. In einigen Beispielen kann die elektrische Verbindung von Schnittstelle 14 auch Festplattenlaufwerk 6 erlauben, Strom von Host-Vorrichtung 4 zu empfangen.
  • In einigen Beispielen kann Festplattenlaufwerk 6 ein SMR-HDD sein. Bei SMR können HDD-Datenspuren die vorher geschriebenen Datenspuren teilweise überlappen, wodurch die Speicherkapazität von Festplattenlaufwerk 6 durch engeres Zusammenpacken der Spuren gesteigert wird. In einigen Beispielen kann Festplattenlaufwerk 6 in Zonen eingeteilt sein. Jede Zone kann mehrere Datenspuren umfassen und jede Spur kann mehrere Sektoren umfassen. In einigen Beispielen kann Festplattenlaufwerk 6 versuchen, Daten zu einer Datenspur zu schreiben, die bereits beschrieben worden ist. Da der Schreibkopf breiter als die Spur sein kann, kann der Schreibkopf auch Nebenspuren überschreiben, was Festplattenlaufwerk 6 veranlassen kann, große Teile der Zone neu zu schreiben. Im Ergebnis kann die Schreibleistung von Festplattenlaufwerk 6 beeinträchtigt sein.
  • Zum Verbessern der Schreibleistung kann Festplattenlaufwerk 6 eingerichtet sein zum Anhängen jeglicher zu Festplatte 6 geschriebener Daten an das Ende der zuletzt geschriebenen Daten, wodurch Festplattenlaufwerk 6 erscheinen kann, nur zum Anhängen („Append-Only”) ausgerüstet zu sein. Durch Anhängen der Daten an das Ende der vorher geschriebenen Daten, ungeachtet dessen, ob die Daten neu zum Laufwerk geschrieben werden oder zum ersten Mal zum Laufwerk geschrieben werden, können Verfahren der vorliegenden Offenbarung eine verbesserte Schreibleistung ermöglichen, da Festplattenlaufwerk 6 weniger Zeit zum Neuschreiben großer Mengen von Daten aufwenden könnte. Dadurch, dass jede Zone als „Nur-Anhänge”-Zone zum Schreiben von Daten betrieben wird, könnte Festplattenlaufwerk 6 und/oder Host 4 nicht in der Lage sein, neu zur gleichen LBA zu schreiben, da Beschreiben der gleichen LBA typischerweise verursacht, dass die Daten an der gleichen physikalischen Blockadresse geschrieben werden, was bei SMR-HDD oft das Überschreiben anderer vorher beschriebener Spuren ergibt. Host 4 kann einen Schreibbefehl zu Steuerung 8 über Schnittstelle 14 senden. In einigen Beispielen kann Host 4 einen Block von Daten und eine LBA zu Steuerung 8 senden. Steuerung 8 kann die LBA deuten und die LBA unter Verwendung einer Zurodnungsfunktion in eine PBA umwandeln. Steuerung 8 kann bewirken, dass die Daten auf Festplattenlaufwerk 6 an der mit der durch Host 4 gesendeten LBA verbundenen PBA geschrieben werden. In einigen Beispielen kann Host 4 einen Befehl zu Steuerung 8 senden, so dass Steuerung 8 den Kopf veranlasst, Daten zu einer LBA zu senden, zu der Daten bereits geschrieben worden sind (z. B. zum Überschreiben der Daten an der LBA). In einigen Beispielen kann Steuerung 8 Festplattenlaufwerk 6 veranlassen, die mit der durch Host 4 benutzten LBA verbundenen Daten neu zu schreiben. Da bei SMR der Schreibkopf typischerweise breiter als die Spur ist, kann Steuerung 8 dem Schreibkopf befehlen, Nachbarspuren zu überschreiben, wodurch die in den Nachbarspuren gespeicherten Daten überschrieben werden und Datenverlust entstehen kann. Zum Lindern des Datenverlustes können die in den Nachbarspuren gespeicherten Daten zuerst gelesen und dann zu einem anderen Bereich der Platte geschrieben werden, so dass, nachdem die neuen Daten geschrieben sind, die Daten, die verlegt wurden, gelesen und dann zu den Spuren zurückgeschrieben werden, die vorher die Daten speicherten.
  • Um die zusätzlichen Lese- und Schreiboperationen zu verringern, die typischerweise in SMR-Festplattenlaufwerken erforderlich sind, können Verfahren der vorliegenden Offenbarung Host 4 und/oder Festplattenlaufwerk 6 ermöglichen, Schreibbefehle auf Spuren von Daten in Datenspeicherung 12 zu verwalten. Zum Beispiel kann Festplattenlaufwerk 6 eingerichtet sein, Daten fortlaufend zu den Spuren zu schreiben, so dass Festplattenlaufwerk 6 eingerichtet sein kann, zu einer neuen PBA zu schreiben, anstatt die vorhergehende, mit der durch Host 4 benutzten LBA verbundene PBA wiederzuverwenden. Schreiben zur nächsten verfügbaren PBA kann jedoch eine Fehlanpassung in dem Zuordnungsschema zwischen der durch Host 4 benutzten LBA und der durch Festplattenlaufwerk 6 geschriebenen PBA verursachen.
  • Bereichszuordnermodule 16, 17 können eingerichtet sein zum Verwalten der durch Host 4 benutzten LBA und der durch Steuerung 8 benutzten LBA. Bereichszuordnermodul 16 kann eine Zuordnungstabelle zum Zuordnen der durch Host 4 benutzten LBA („Host-LBA”) zu der durch Steuerung 8 benutzten LBA („Laufwerk-LBA”) oder umgekehrt umfassen. Zum Beispiel kann Bereichszuordnermodul 16 einen Schreibbefehl von Host 4 empfangen und die Zuordnungstabelle überprüfen, um zu bestimmen, ob die Host-LBA 4 für eine vorige Zuschreibung beschrieben worden ist. Bereichszuordnermodul 16 kann die mit dem Schreibzeiger verbundene Laufwerk-LBA bestimmen und die Host-LBA der Laufwerk-LBA zuordnen. Bereichszuordnermodul 16 kann einen Schreibbefehl zum Schreiben der Daten an der Laufwerk-LBA ausgeben.
  • Bereichszuordnermodul 17 kann eine Zuordnungstabelle zum Zuordnen der durch Host 4 benutzten LBA („Host-LBA”) zu der durch Festplattenlaufwerk 6 beschriebenen PBA („Laufwerk-PBA”) umfassen. Zum Beispiel kann Bereichszuordnermodul 17 einen Schreibbefehl von Host 4 empfangen und die Zuordnungstabelle überprüfen, um zu bestimmen, ob Festplattenlaufwerk 6 vorher zur Host-LBA schrieb. Bereichszuordnermodul 17 kann die mit dem Schreibzeiger verbundene Laufwerk-PBA bestimmen und die Host-LBA der Laufwerk-PBA zuordnen. Bereichszuordnermodul 17 kann einen Schreibbefehl ausgeben, der den Schreibkopf veranlasst, Daten zu der mit der Host-LBA verbundenen Laufwerk-PBA zu schreiben.
  • Verfahren der vorliegenden Offenbarung können die Leistung von Festplattenlaufwerk 6 im Vergleich zu anderen SMR-HDD durch fortlaufendes Schreiben von Daten und Behandeln von Festplattenlaufwerk 6 als „Nur-Anhängen” verbessern. Durch Behandeln von Festplattenlaufwerk 6 als „Nur-Anhängen” überschreibt Festplattenlaufwerk 6 keine auf Festplattenlaufwerk 6 gespeicherten gültigen Daten. Festplattenlaufwerk 6 kann vermeiden, Daten wiederzuschreiben, die ansonsten überschrieben werden würden, wenn Festplattenlaufwerk 6 Daten an der ursprünglichen PBA anstatt der durch Bereichszuordnermodule 16, 17 zugeordneten PBA schriebe. Im Ergebnis kann Festplattenlaufwerk 6 schnellere Zuschreibungen als herkömmliche SMR-HDD durchführen. Weiterhin können Bereichszuordnermodule 16, 17 die „Nur-Anhängen”-Beschaffenheit von Festplattenlaufwerk 6 vor dem OS durch Verwalten der Zuordnung zwischen der durch Host 4 benutzten LBA und der Laufwerk-LBA oder der Laufwerk-PBA verbergen. Da Bereichszuordnermodul 16 die zum Schreiben von Daten zu und Lesen von Daten aus Festplattenlaufwerk 6 notwendigen Informationen verwalten kann, können die Verfahren der vorliegenden Offenbarung Host 4 ermöglichen, aus verbesserten SMR-HDD-Schreibgeschwindigkeiten Nutzen zu ziehen, während er herkömmliche SMR-HDD benutzt.
  • 2 ist ein konzeptmäßiges und schematisches Blockschaltbild eines beispielhaften Bereichszuordnersystems gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung. Bereichszuordnersystem 24 kann Bereichszuordnerverwaltungsmodul 25 und Bereichszuordnermodule 20A20N (insgesamt „Bereichszuordnermodule 20”) umfassen. Bereichszuordnerverwaltungsmodul 25 kann an Host 4 und/oder Festplattenlaufwerk 6 enthalten sein. Gleicherweise können Bereichszuordnermodule 20 an Host 4 und/oder Festplattenlaufwerk 6 enthalten sein. In einigen Beispielen umfasst Bereichszuordnersystem 24 ein Bereichszuordnermodul 20. In einigen Beispielen umfasst jedoch Bereichszuordnersystem 24 mehr als ein Bereichszuordnermodul 20. Zum Beispiel kann Host 4 und/oder Festplattenlaufwerk 6 ein Bereichszuordnermodul 20 für jede Zone des Festplattenlaufwerks 6 umfassen.
  • Bereichszuordnerverwaltungsmodul 25 kann ein oder mehrere Bereichszuordnermodule 20 verwalten, von denen jedes mit wenigstens einer jeweiligen Zone von Festplattenlaufwerk 6 verbunden ist. Wenn zum Beispiel Host 4 einen Befehl zum Schreiben von Daten an einer bestimmten Host-LBA sendet, kann Bereichszuordnerverwaltungsmodul 25 eine Nachschlagetabelle abfragen, die bezeichnet, welche Host-LBA welcher Zone entspricht, um zu bestimmen, zu welcher Zone die Daten zu schreiben sind. Nach Bestimmen, welcher Zone von Festplattenlaufwerk 6 die bestimmte Host-LBA entspricht, kann Bereichszuordnerverwaltungsmodul 25 den Schreibbefehl von Host 4 zu dem jeweiligen Bereichszuordnermodul 20 für die jeweilige Zone weiterleiten.
  • In einigen Beispielen kann Bereichszuordnerverwaltungsmodul 25 Zonen über mehrere Festplattenlaufwerke 6 verwalten. Zum Beispiel kann Bereichszuordnerverwaltungsmodul 25 eine Nachschlagetabelle mit jedem Festplattenlaufwerk 6 und jeder Zone für jedes jeweilige Festplattenlaufwerk 6 umfassen. Wenn Host 4 einen Befehl zum Schreiben von Daten zu einer bestimmten Host-LBA sendet, kann Bereichszuordnerverwaltungsmodul 25 eine Nachschlagetabelle zum Identifizieren des Festplattenlaufwerks 6 und der Zone, die der bestimmten Host-LBA entspricht, abfragen. Nach Identifizieren des Festplattenlaufwerks 6 und der Zone, die der bestimmten Host-LBA entspricht, kann Bereichszuordnerverwaltungsmodul 25 den Schreibbefehl von Host 4 zu dem jeweiligen Bereichszuordnermodul 20 eingerichtet zum Verwalten der Daten für das gekennzeichnete Festplattenlaufwerk 6 und Zone weiterleiten.
  • Bereichszuordnermodule 20 von 2 können dem Bereichszuordnermodul 16 oder Bereichszuordnermodul 17 von 1 entsprechen. Jedes Bereichszuordnermodul 20A20N kann eine jeweilige Zuordnungstabelle 22A22N (insgesamt „Zuordnungstabellen 22”) umfassen. Während Zuordnungstabellen 22 in 2 als mehrere Zeilen für verschiedene Host-LBA umfassend gezeigt sind, umfassen Zuordnungstabellen 22 in der Ausführung typischerweise eine einzelne Zeile für jede Host-LBA und aktualisieren die Laufwerk-LBA nach Bedarf, anstatt eine neue Zeile in Zuordnungstabelle 22 hinzuzufügen. Zuordnungstabellen 22 umfassen mehrere Zeilen für verschiedene Host-LBA und Laufwerk-LBA für Erläuterungszwecke und zum Vereinfachen der Beschreibung der Verfahren der vorliegenden Offenbarung. Bereichszuordnermodule 20 können Schreiben und Lesen von Daten zwischen Host 4 und Festplattenlaufwerk 6 durch Empfangen von Lese- und Schreibbefehlen von Host 4 und Ausgeben von Lese- und Schreibbefehlen zu Festplattenlaufwerk 6 erleichtern. Wie unter Bezugnahme auf 3 beschrieben werden wird, können Bereichszuordnermodule 20 auch das Schreiben von Metadaten zu Festplattenlaufwerk 6 veranlassen.
  • Zum Erleichtern der Darstellung werden Bereichszuordnermodule 20 unter Bezugnahme auf Bereichszuordnermodul 20A beschrieben. In einigen Beispielen kann Bereichszuordnermodul 20A an Host 4 enthalten sein (z. B. in Beispielen, wo Bereichszuordnermodul 20A Bereichszuordnermodul 16 von 1 entspricht). Host 4 kann einen Schreibbefehl zum Schreiben von Daten an einer durch den Host benutzten bestimmten LBA (z. B. Block 1), auch eine Host-LBA genannt, ausgeben. Host 4 kann den Schreibbefehl durch Rufen einer „PUT”-Funktion senden, deren Parameter die zu Festplattenlaufwerk 6 zu schreibenden Daten und eine Host-LBA umfassen können. Bereichszuordnermodul 20A kann den Schreibbefehl von Host 4 empfangen. Bereichszuordnermodul 20A kann basierend auf in Zuordnungstabelle 22A gespeicherten Daten bestimmen, ob Daten vorher zur Host-LBA geschrieben worden sind.
  • Zuordnungstabelle 22A kann eine Vielzahl von Zeilen und Spalten umfassen. In einigen Beispielen kann Zuordnungstabelle 22A Spalten „Host-LBA” und „Laufwerk-LBA” umfassen. Die Host-LBA kann die durch Host 4 benutzte LBA darstellen, während die Laufwerk-LBA die durch Steuerung 8 auf Festplattenlaufwerk 6 benutzte LBA darstellen kann. Basierend auf Zuordnungstabelle 22A kann Zuordnermodul 20A eine Host-LBA zu einer Laufwerk-LBA umsetzen. Als Ergebnis kann Host 4 einen Schreibbefehl senden, Bereichszuordnermodul 20A kann die Host-LBA einer Laufwerk-LBA zuordnen und Bereichszuordnermodul 20A kann einen Schreibbefehl ausgeben, so dass Festplattenlaufwerk 6 die Daten fortlaufend schreiben kann. Der durch Bereichszuordnermodul 20A ausgegebene Schreibbefehl kann die zu schreibenden Daten umfassen, wobei die Laufwerk-LBA angibt, wo die Daten auf Festplattenlaufwerk 6 zu schreiben sind, und die Länge der zu schreibenden Daten.
  • Steuerung 8 kann den Schreibbefehl von Bereichszuordnermodul 20A empfangen, den Schreibkopf veranlassen, die Daten zur nächsten PBA in der Zone zu schreiben und die mit der PBA verbundene Laufwerk-LBA zurücksenden. Zum Beispiel kann das erste Mal, dass Host 4 einen Schreibbefehl zum Schreiben von Daten zu Host-LBA 1 sendet, Bereichszuordnermodul 20A den Schreibbefehl von Host 4 zum Schreiben von Daten an Host-LBA 1 empfangen und eine entsprechende Laufwerk-LBA bestimmen. Bereichszuordnermodul 20A kann die nächste verfügbare Laufwerk-LBA durch Bestimmen der gegenwärtig mit einem Schreibzeiger für die Zone verbundenen Adresse bestimmen. Die gegenwärtig mit dem Schreibzeiger für eine gegebene Zone verbundene Adresse wird auch als die nächste Schreibadresse bezeichnet.
  • In dem dargestellten Beispiel zeigt der Schreibzeiger für die Zone zu Laufwerk-LBA 1. Bereichszuordnermodul 20A kann Zuordnungstabelle 22A zum Aufzeichnen der entsprechenden Host-LBA und Laufwerk-LBA aktualisieren und kann einen Befehl zu Steuerung 8 zum Schreiben der Daten zu Laufwerk-LBA 1 senden. In einigen Beispielen kann Bereichszuordnermodul 20A bestimmen, dass Zuordnungstabelle 22A keinen Eintrag entsprechend der Host-LBA enthält und kann einen neuen Eintrag in Zuordnungstabelle 22A zum Aufzeichnen der entsprechenden Host-LBA und Laufwerk-LBA erstellen. Zum Beispiel kann Bereichszuordnermodul 20A Zuordnungstabelle 22A abfragen, um zu bestimmen, ob Zuordnungstabelle 22A einen Eintrag für Host-LBA 1 enthält. Wenn Zuordnungstabelle 22A keinen Eintrag entsprechend Host-LBA 1 enthält, kann Bereichszuordnermodul 20A einen neuen Eintrag in Zuordnungstabelle 22A für Host-LBA 1 und die entsprechende Laufwerk-LBA erstellen. In einigen Beispielen kann Bereichszuordnermodul 20A den Schreibbefehl zu Steuerung 8 vor Aktualisieren von Zuordnungstabelle 22A senden und als Reaktion auf Empfangen einer Anzeige der Laufwerk-LBA, an der Steuerung 8 eigentlich die Daten schrieb, Zuordnungstabelle 22A zum Zuordnen der Host-LBA zu der durch Steuerung 8 angezeigten Laufwerk-LBA aktualisieren. Steuerung 8 kann Laufwerk-LBA 1 zu einer Laufwerk-PBA umwandeln und dem Schreibkopf befehlen, die Daten an der entsprechenden PBA zu schreiben.
  • Host 4 kann einen Befehl zum Schreiben von Daten an Host-LBA 2 zum ersten Mal senden. Basierend auf der gegenwärtig mit dem Zonenschreibzeiger verbundenen Adresse kann Bereichszuordnermodul 20A Host-LBA 2 zu Laufwerk-LBA 2 zuordnen. Bereichszuordnermodul 20A kann einen Schreibbefehl ausgeben, der veranlasst, dass die Daten an Laufwerk-LBA 2 geschrieben werden. Nachdem die Daten geschrieben sind, kann der Zonenschreibzeiger aktualisiert werden, auf die nächste verfügbare Laufwerk-LBA auf Festplattenlaufwerk 6 zu zeigen (z. B. Laufwerk-LBA 3). Gleicherweise kann Bereichszuordnermodul 20A einen Befehl von Host 4 zum Schreiben von Daten an LBA 3 empfangen. Bereichszuordnermodul 20A kann Zuordnungstabelle 22A überprüfen, bestimmen, dass Host-LBA 3 nicht beschrieben worden ist und Host-LBA 3 der mit dem Zonenschreibzeiger verbundenen Laufwerk-LBA zuordnen (z. B. Laufwerk-LBA 3). Bereichszuordnermodul 20A kann einen Befehl zu Steuerung 8 senden, so dass Steuerung 8 den Schreibkopf zum Schreiben der Daten an der zugehörigen Laufwerk-LBA veranlasst. Für jeden Schreibbefehl, den sie empfängt, kann Steuerung 8 die Laufwerk-LBA in eine PBA umsetzen und Festplattenlaufwerk 6 veranlassen, die Daten an der bestimmten PBA zu schreiben. Zum Beispiel kann Steuerung 8 einen Befehl zur Hardware-Maschine senden, die den Schreibkopf zum Schreiben der Daten veranlasst.
  • Host 4 kann einen Befehl, Daten ein zweites Mal zu Host-LBA 1 zu schreiben, senden. Da jedoch Festplattenlaufwerk 6 eingerichtet ist, Daten an das Ende der am jüngsten geschriebenen Daten anzuhängen, kann Bereichszuordnermodul 20A eingerichtet sein, die Host-LBA neu einer neuen Laufwerk-LBA zuzuordnen, die der gegenwärtig mit dem Schreibzeiger verbundenen Adresse entspricht. In dem dargestellten Beispiel kann das zweite Mal, dass Host 4 einen Schreibbefehl zum Schreiben von Daten an Host-LBA 1 sendet, Bereichszuordnermodul 20A bestimmen, dass der Schreibzeiger der Laufwerk-LBA 4 entspricht. So kann Bereichszuordnermodul 20A Host-LBA 1 neu Laufwerk-LBA 4 zuordnen. In einigen Beispielen kann Bereichszuordnermodul 20A bestimmen, dass Zuordnungstabelle 22A bereits einen Eintrag entsprechend der Host-LBA enthält und kann den bestehenden Eintrag in Zuordnungstabelle 22A aktualisieren, die Host-LBA einer neuen Laufwerk-LBA zuzuordnen. Zum Beispiel kann Bereichszuordnermodul 20A Zuordnungstabelle 22A abfragen, um zu bestimmen, ob Zuordnungstabelle 22A einen Eintrag für Host-LBA 1 enthält. Wenn Zuordnungstabelle 22A einen Eintrag für Host-LBA 1 enthält, kann Bereichszuordnermodul 20A die bestehende Zuordnung von Host-LBA 1 von Laufwerk-LBA 1 zu Laufwerk-LBA 4 aktualisieren. In einigen Beispielen kann Bereichszuordnermodul 20A einen neuen Eintrag in Zuordnungstabelle 22A für die aktualisierte Zuordnung zwischen der Host-LBA und der Laufwerk-LBA erstellen. Zum Beispiel kann Bereichszuordnermodul 20A eine neue Zeile in Zuordnungstabelle 22A erstellen, die Host-LBA 1 Laufwerk-LBA 4 zuordnet, und die vorige Zuordnung löschen oder die vorige Zuordnung als ungültig markieren.
  • Bereichszuordnermodul 20A kann einen Befehl zu Steuerung 8 senden, die Daten an aktualisierte Laufwerk-LBA 4 zu schreiben. Steuerung 8 kann einen Befehl zur Hardware-Maschine senden, der Festplattenlaufwerk 6 veranlasst, die Daten an der mit Laufwerk-LBA 4 verbundenen PBA zu schreiben. Durch Anhängen der Daten an der gegenwärtig mit dem Schreibzeiger verbundenen Adresse kann sich die Leistung von Festplattenlaufwerk 6 gegenüber anderen SMR-HDD verbessern, da Schreiben der Daten an der gegenwärtig mit dem Schreibzeiger verbundenen Adresse andere, auf Festplattenlaufwerk 6 gespeicherte gültige Daten nicht überschreibt, da die Nachbarspuren keine gültigen Daten enthalten, was Festplattenlaufwerk 6 ermöglicht, Neuschreiben der Daten zu vermeiden, die überschrieben worden wären, hätte Festplattenlaufwerk 6 die Daten an der anfänglichen PBA anstatt der aktualisierten PBA geschrieben. Weiterhin kann Bereichszuordnermodul 20A die Zuschreibungen „nur anhängen” von Festplattenlaufwerk 6 vor dem OS verbergen, indem es die Zuordnung zwischen Host-LBA und Laufwerk-LBA verwaltet.
  • Nachdem er versucht, zum zweiten Mal zu Host-LBA Block 1 zu schreiben, kann Host 4 einen Schreibbefehl zum Schreiben von Daten an Host-LBA 4 senden. Bereichszuordnermodul 20A kann Zuordnungstabelle 22A überprüfen und bestimmen, dass Host-LBA 4 vorher nicht beschrieben wurde, da es keinen bestehenden Eintrag in Zuordnungstabelle 22A für Host-LBA 4 gibt. Bereichszuordnermodul 20A kann eine Nachschlagung zum Bestimmen einer mit dem Schreibzeiger verbundenen aktuellen Laufwerk-LBA durchführen, basierend auf der Nachschlagung bestimmen, dass der Schreibzeiger für die Zone Laufwerk-LBA 5 entspricht und die Host-LBA 4 der Laufwerk-LBA 5 zuordnen. Bereichszuordnermodul 20A kann einen Schreibbefehl ausgeben, der Steuerung 8 veranlasst, die Daten an Laufwerk-LBA 5 zu schreiben. Nach Schreiben der Daten kann Bereichszuordnermodul 20A den Wert des Schreibzeigers als den Wert der nächsten verfügbaren Laufwerk-LBA (z. B. Laufwerk-LBA 6) aktualisieren.
  • Host 4 kann zusätzliche Befehle, Daten zu schreiben, zu Host-LBA senden, zu denen Daten vorher geschrieben worden sind. Zum Beispiel kann nach Versuchen, Host-LBA 16 zu beschreiben, Host 4 einen Befehl zum Wiederschreiben von Daten an Host-LBA 2 senden. Bereichszuordnermodul 20A kann Zuordnungstabelle 22A überprüfen und bestimmen, dass Host-LBA 2 in der Vergangenheit beschrieben worden ist (d. h. da ein Eintrag für Host-LBA 2 in Zuordnungstabelle 22A besteht und der Eintrag nicht als ungültig markiert ist). Anstatt die Daten zu Laufwerk-LBA 2 zu schreiben, kann Bereichszuordnermodul 20A die gegenwärtig mit dem Schreibzeiger verbundene Adresse bestimmen (d. h. die durch den Schreibzeiger gespeicherte LBA) und Host-LBA 2 der gegenwärtig mit dem Schreibzeiger verbundenen Adresse zuordnen (z. B. Laufwerk-LBA 8 wie in Zuordnungstabelle 22A gezeigt). In diesem Beispiel kann Bereichszuordnermodul 20A bestimmen, dass die nächste verfügbare Laufwerk-LBA Laufwerk-LBA 8 ist und kann die Zuordnungstabelle 22A aktualisieren, um zu zeigen, dass Host-LBA 2 zum Festplattenlaufwerk 6 ab Laufwerk-LBA 8 geschrieben ist.
  • Bereichszuordnermodul 20A kann weiterhin Schreibbefehle von Host 4 empfangen und bestimmen, ob die Host-LBA für jeden Befehl zum ersten Mal beschrieben wird oder ob die Host-LBA in der Vergangenheit benutzt worden ist. Bereichszuordnermodul 20A kann die mit dem Schreibzeiger verbundene Laufwerk-LBA bestimmen und die Host-LBA der mit dem Schreibzeiger verbundenen Laufwerk-LBA zuordnen. Bereichszuordnermodul 20A kann einen Schreibbefehl ausgeben und die Daten und aktualisierte Laufwerk-LBA zu Steuerung 8 weitergeben, so dass die Daten an der bestimmten Laufwerk-LBA zu Festplattenlaufwerk 6 geschrieben werden können.
  • In einigen Beispielen verwaltet Bereichszuordnermodul 20A den Schreibzeiger für die jeweilige Zone 30. In einigen Beispielen kann Bereichszuordnermodul 20A den Wert des Schreibzeigers durch Abfragen von Zuordnungstabelle 22A zum Bestimmen der größten, in der Zuordnungstabelle 22A aufgezeichneten Host-LBA bestimmen und den Schreibzeiger auf die als Nächstes verfügbare (d. h. die nächste unbenutzte) Laufwerk-LBA setzen. Zum Beispiel kann Bereichszuordnermodul 20A Zuordnungstabelle 22A abfragen, bestimmen, dass die letzte in Zuordnungstabelle 22A aufgezeichnete Laufwerk-LBA Laufwerk-LBA 13 ist, und den Schreibzeiger auf die nächste unbenutzte Laufwerk-LBA setzen (d. h. Laufwerk-LBA 14). In einigen Beispielen umfasst der Schreibzeiger eine im Speicher gespeicherte Ganzzahl, die durch Host 4 oder Festplattenlaufwerk 6 verwaltet wird. Zum Beispiel kann, nachdem Bereichszuordnermodul 20A eine Host-LBA einer bestimmten Laufwerk-LBA zuordnet und Festplattenlaufwerk 6 die Daten zu der bestimmten Laufwerk-LBA schreibt, Bereichszuordnermodul 20A die im Speicher gespeicherte Ganzzahl als eine Zahl aktualisieren, die der nächsten unbenutzten Laufwerk-LBA auf Festplattenlaufwerk 6 entspricht.
  • Host 4 kann einen Lesebefehl zum Lesen von an einer gegebenen Host-LBA gespeicherten Daten senden. Bereichszuordnermodul 20A kann den Befehl empfangen und kann die mit der Host-LBA verbundene aktuelle Laufwerk-LBA basierend auf Zuordnungstabelle 22A bestimmen. Bereichszuordnermodul 20A kann einen Lesebefehl mit der jüngsten Laufwerk-LBA zu Steuerung 8 senden. Steuerung 8 kann den Lesebefehl von Bereichszuordnermodul 20A empfangen und veranlassen, dass die mit der Laufwerk-LBA verbundenen Daten gelesen werden.
  • In einigen Beispielen kann Bereichszuordnermodul 20A in Festplattenlaufwerk 6 anstatt Host 4 enthalten sein, wie beispielsweise im Beispiel von Steuerung 8, die Bereichszuordnermodul 17 umfasst wie in 1 gezeigt. In diesem Beispiel kann Bereichszuordnermodul 20A eine Host-LBA von Host 4 empfangen und die Host-LBA einer Laufwerk-PBA zuordnen. In diesem Beispiel würde Zuordnungstabelle 22 die Spalten „Host-LBA” und „Laufwerk-PBA” umfassen. Zum Beispiel könnte Bereichszuordnermodul 20A Zuordnungstabelle 22A abfragen, um zu bestimmen, ob Zuordnungstabelle 22A einen Eintrag zu einer bestimmten Host-LBA enthält. Wenn Host 4 einen Befehl zum Schreiben von Daten zu einer bestimmten Host-LBA sendet, die bereits beschrieben worden ist, kann Bereichszuordnermodul 20A die Host-LBA wieder einer neuen PBA entsprechend der gegenwärtig mit dem Zonenschreibzeiger verbundenen Adresse für die bestimmte Zone zuordnen, zu der die Daten geschrieben werden. Bereichszuordnermodul 20A kann die Host-LBA wieder einer neuen PBA durch Aktualisieren eines bestehenden Eintrags in Zuordnungstabelle 22A zuordnen oder durch Erstellen eines neuen Eintrags in Zuordnungstabelle 22A und Markieren der bestehenden Zuordnung als abgelaufen oder ungültig. Bereichszuordnermodul 20A kann einen Schreibbefehl senden, der die neue PBA enthält, so dass Steuerung 8 veranlasst, dass die Daten an der neuen PBA zu Festplattenlaufwerk 6 geschrieben werden. Gleicherweise kann Host 4 einen Lesebefehl einschließlich einer Host-LBA zu Bereichszuordnermodul 20A senden. Bereichszuordnermodul 20A kann die mit der durch Host 4 angegebenen bestimmten LBA verbundene PBA bestimmen und einen Lesebefehl ausgeben, der veranlasst, dass die Daten aus der PBA gelesen werden. Von Bereichszuordnermodul 20A auf Festplattenlaufwerk 6 kann auch der Schreibzeiger für die jeweilige Zone auf Festplattenlaufwerk 6 unterhalten werden. Zum Beispiel kann Bereichszuordnermodul 20A den Schreibzeiger durch Abfragen von Zuordnungstabelle 22A, Bestimmen der in Zuordnungstabelle 22A aufgezeichneten größten Laufwerk-PBA und Setzen des Schreibzeigers auf die nächste beschriebene PBA bestimmen. In einigen Beispielen kann Bereichszuordnermodul 20A den Schreibzeiger durch Speichern einer Ganzzahl im Speicher unterhalten, die der nächsten unbenutzten PBA auf Festplattenlaufwerk 6 entspricht.
  • 3 ist ein konzeptmäßiges und schematisches Blockschaltbild einer beispielhaften Zone eines SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung. Während nur eine einzige Zone in 3 gezeigt ist, kann Festplatte 6 jede beliebige Anzahl von Zonen 30 umfassen. In einigen Beispielen kann es ein Bereichszuordnermodul 20 pro Zone 30 von Festplattenlaufwerk 6 geben. Jede Zone 30 ist mit einem jeweiligen Schreibzeiger entsprechend einer Stelle in Zone 30 für die nächste Zuschreibung verbunden. In einigen Beispielen kann Host 4 oder Festplattenlaufwerk 6 ein Bereichszuordnerverwaltungsmodul 25 umfassen, das bestimmt, welches Bereichszuordnermodul 20 den Schreibbefehl von Host 4 empfangen wird. Das Bereichszuordnerverwaltungsmodul 25 kann eine Nachschlagetabelle enthalten, die jedes Festplattenlaufwerk 6, Bereichszuordnermodul 20 und eine Reihe von mit jedem Festplattenlaufwerk 6 und Bereichszuordnermodul 20 verbundenen Host-LBA umfasst. Bereichszuordnerverwaltungsmodul 25 kann einen Schreibbefehl von Host 4 empfangen, bestimmen, welches Bereichszuordnermodul 20 den Schreibbefehl empfangen sollte und den Schreibbefehl zu dem jeweiligen Bereichszuordnermodul 20 weiterleiten. Wenn ein bestimmtes Bereichszuordnermodul 20 einen Befehl von Host 4 zum Schreiben von Daten an einer Host-LBA in seiner jeweiligen Zone 30 empfängt, kann Bereichszuordnermodul 20 die von Host 4 empfangene Host-LBA unter Verwendung von Zuordnungstabelle 22 wie unter Bezugnahme auf 2 beschrieben in eine Laufwerk-LBA umsetzen.
  • In einigen Beispielen umfasst Zone 30 eine Vielzahl von Bereichen 32, eine Vielzahl von Metadaten 34 und Summen-Metadaten 35. Jeder Bereich 32 umfasst Daten von Host 4 entsprechend einem jeweiligen Schreibbefehl. Jeder Abschnitt von Metadaten 34 stellt Informationen über den jeweiligen Bereich 32 bereit. In einigen Beispielen umfassen Metadaten 34 die Laufwerk-LBA 36 des zugehörigen Bereichs 32 (z. B. die durch Bereichszuordnermodul 20 zugeordnete LBA), die Länge oder Größe des Bereichs 37 (z. B. die Anzahl von Bit) und einen oder mehrere Rückzeiger 38. Der eine oder die mehreren Rückzeiger 38 können eine Stelle einer Menge von mit unterschiedlichen Daten verbundenen Metadaten 34 angeben. In einigen Beispielen können Metadaten 34 eine Prüfsumme der im Bereich 32 enthaltenen Daten umfassen. Metadaten 34 können mehr oder weniger Kategorien von Informationen umfassen. Metadaten 34 können eine feste Größe aufweisen. Jedoch können Metadaten 34 in Größe veränderlich sein.
  • Summen-Metadaten 35 können eine Menge von in einem bestimmten Teil von Festplattenlaufwerk 6 bezeichneten Metadaten zum Speichern von mehreren Sätzen von Metadaten 34 gespeicherten Metadaten umfassen. Summen-Metadaten 35 können Informationen für jeden Bereich 32 in Zone 30 umfassen wie beispielsweise jeweilige Laufwerk-LBA 36, PBA 39 und Datenlänge 37. Datenlänge 37 gibt die Größe der Daten an (z. B. die Anzahl von Byte der Daten, die Anzahl von zum Speichern der Daten benutzten Blöcken usw.).
  • In Betrieb kann Bereichszuordnermodul 20 einen Schreibbefehl einschließlich von Daten und einer Laufwerk-LBA zu Steuerung 8 ausgeben, so dass Steuerung 8 veranlasst, dass die Daten zu einem Bereich 32 in Zone 30 geschrieben werden. Bereichszuordnermodul 20 kann auch Steuerung 8 befehlen, Metadaten 34 zu der jeweiligen Zone zu schreiben. Steuerung 8 kann den Schreibkopf veranlassen, Metadaten 34 nach jedem Bereich 32 zu schreiben, so dass jeder Bereich 32 einen entsprechenden Abschnitt von Metadaten 34 aufweist. In einigen Beispielen verursacht Bereichszuordnermodul 20 das Anhängen von Metadaten 34 an Zone 30, so dass Metadaten 34 unmittelbar nach ihrem jeweiligen Bereich 32 angeordnet sein können.
  • Metadaten 34 können Festplattenlaufwerk 6 und/oder Host 4 erlauben, zu bestimmen, wo Bereiche 32 auf Festplattenlaufwerk 6 geschrieben werden. Wie in 3 dargestellt, hat jedes Metadatum 34 eine feste Größe und die Metadaten umfassen die Laufwerk-LBA 36 und Größe 37 von Bereich 32. Im Ergebnis können Host 4 und/oder Festplattenlaufwerk 6 die Startstelle des Bereichs 32 und den Ort der vorigen Metadaten 34 berechnen. In einigen Beispielen kann der eine oder können die mehreren Rückzeiger 38 die Entdeckung früherer Metadaten 34 beschleunigen. Der eine oder die mehreren Rückzeiger 38 können auf vorher geschriebene Metadaten 34 oder Bereiche 32 zeigen, was Host 4 oder Steuerung 8 erlauben kann, zu bestimmen, wo sich ein vorhergehender Abschnitt (oder Abschnitte) von Metadaten 34 befindet, ohne die Stellen zu berechnen. Im Ergebnis kann Host 4 oder Steuerung 8 wirkungsvoller bestimmen, wo sich vorige Bereiche 32 befinden.
  • Steuerung 8 kann Summen-Metadaten 35 nach einer vorbestimmten Anzahl von Bereichen 32 schreiben. In einigen Beispielen kann Steuerung 8 Summen-Metadaten 35 in einem Teil von Festplattenlaufwerk 6 bezeichnet zum Speichern von mehreren Sätzen von Metadaten 35 wie beispielsweise am Ende der jeweiligen Zone 30 einschreiben. Summen-Metadaten 35 können Host 4 oder Festplattenlaufwerk 6 ermöglichen, die Laufwerk-LBA, PBA und Größe für jeden Bereich 32 auf der Zone 30 zu bestimmen, ohne die gesamte Zone 30 zu lesen.
  • In einigen Beispielen könnte Zuordnungstabelle 22 erfordern, wieder aufgebaut zu werden, und Bereichszuordnermodul 20 kann basierend auf den Metadaten bestimmen, welche Laufwerk-LBA einer gegebenen Host-LBA entspricht. Da die Metadaten typischerweise fortlaufend geschrieben werden, können die Metadaten, die gegenwärtig einer bestimmten Host-LBA entsprechen, die am jüngsten geschriebenen Metadaten für die an der bestimmten Host-LBA gespeicherten Daten sein. Bereichszuordnermodul 20 kann bestimmen, welche Laufwerk-LBA der bestimmten Host-LBA entspricht, indem es wenigstens bestimmt, welche Laufwerk-LBA in den am jüngsten geschriebenen Metadaten für die an der bestimmten Host-LBA geschriebenen Daten enthalten ist. Wenn zum Beispiel Bereichszuordnermodul 20 Host-LBA 1 Laufwerk-LBA 1 zuordnete und später Host-LBA 1 Laufwerk-LBA 4 neu zuordnete, kann Bereichszuordnermodul 20 bestimmen, welche Menge von mit Host-LBA 1 verbundenen Metadaten die mit Host-LBA 1 verbundenen aktuellen Metadaten sind durch Bestimmen, welche Menge von Metadaten am jüngsten geschrieben wurden, Abfragen der aktuellen Metadaten entsprechend Host-LBA 1 und Bestimmen, dass die Metadaten Laufwerk-LBA 4 enthalten.
  • Bereichszuordnermodul 20 kann bei der Müllsammlung von Festplattenlaufwerk 6 beistehen. Zum Beispiel kann Neuschreiben von Daten für eine bestimmte Host-LBA verursachen, dass Daten auf Festplattenlaufwerk 6 ablaufen oder ungültig werden. Weiterhin kann Zuordnungstabelle 22 Einträge enthalten, die abgelaufen oder ungültig sind. Wenn zum Beispiel eine bestimmte Host-LBA mehr als einmal geschrieben wird, ist nur die jüngste Zuordnung zwischen der Host-LBA und der Laufwerk-LBA (oder Laufwerk-PBA) gültig. Host 4 und/oder Steuerung 8 können Müllsammlung durch Wiederzuordnen wenigstens eines Teils der Host-LBA in Zuordnungstabelle 22 zu einem zusammenhängenden Teil von Laufwerk-LBA (oder Laufwerk-PBA) ausführen und Verursachen, dass der Schreibkopf von Festplattenlaufwerk 6 die jeweiligen Daten wieder in einen zusammenhängenden Block in Zone 30 einschreibt.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Speichern von Daten zu einem SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung. Für Darstellungszwecke wird das in 4 dargestellte beispielhafte Verfahren hinsichtlich Festplattenlaufwerk 6 von 1, Bereichszuordnermoduls 20 von 2 und Zone 30 von 3 beschrieben, aber die Verfahren können mit jeder Kombination von Hardware oder Software benutzt werden.
  • In einigen Beispielen kann Bereichszuordnermodul 20 einen Schreibbefehl von Host 4 empfangen (42). Der Schreibbefehl kann einen Block Daten und eine Host-LBA enthalten. In einigen Beispielen kann Host 4 einen Schreibbefehl für eine Host-LBA senden, die bereits beschrieben worden ist. Bereichszuordnermodul 20 kann Zuordnungstabelle 22 überprüfen, um zu bestimmen, ob die Host-LBA bereits beschrieben worden ist.
  • Bereichszuordnermodul 20 kann die von Host 4 empfangene Host-LBA einer Laufwerk-LBA zuordnen (44). Zum Beispiel kann Bereichszuordnermodul 20 Zuordnungstabelle 22 abfragen und bestimmen, ob Zuordnungstabelle 22 einen Eintrag zu der durch Host 4 angegebenen bestimmten Host-LBA enthält. Wenn Zuordnungstabelle 22 einen Eintrag für die durch Host 4 angegebene bestimmte Host-LBA enthält, kann Bereichszuordnermodul 20 die Zuordnung zwischen der Host-LBA und Laufwerk-LBA auf die gegenwärtig mit dem Schreibzeiger verbundene Adresse aktualisieren. Wenn Zuordnungstabelle 22 keinen Eintrag für die durch Host 4 angegebene bestimmte Host-LBA enthält, kann Bereichszuordnermodul 20 einen Eintrag in Zuordnungstabelle 22 erstellen, der die durch Host 4 angegebene Host-LBA der gegenwärtig mit dem Schreibzeiger verbundenen Adresse zuordnet. In einigen Beispielen kann Bereichszuordnermodul 20 bestimmen, welche Laufwerk-LBA der Host-LBA zugeordnet wird basierend auf dem Schreibzeiger für die jeweilige Zone des Festplattenlaufwerks 6.
  • Bereichszuordnermodul 20 kann die gegenwärtig mit dem Schreibzeiger verbundene Adresse durch Abfragen von Zuordnungstabelle 22 bestimmen, um die nächste unbenutzte Laufwerk-LBA zu bestimmen (d. h. die kleinste Laufwerk-LBA, die nicht bereits beschrieben worden ist). In einigen Beispielen kann der Schreibzeiger eine im Speicher gespeicherte Ganzzahl enthalten und Bereichszuordnermodul 20 kann die Ganzzahl nach jeder Zuschreibung erhöhen, so dass die Ganzzahl der nächsten unbenutzten Laufwerk-LBA entspricht. In einigen Beispielen entspricht der Schreibzeiger der nächsten unbenutzten Laufwerk-PBA (d. h. der kleinsten Laufwerk-PBA, die nicht bereits beschrieben worden ist).
  • In einigen Beispielen kann Bereichszuordnermodul 20 die von Host 4 empfangene Host-LBA einer Laufwerk-PBA zuordnen. Zum Beispiel kann Bereichszuordnermodul 20 Zuordnungstabelle 22 abfragen und bestimmen, ob Zuordnungstabelle 22 einen Eintrag für die durch Host 4 angegebene bestimmte Host-LBA enthält. Wenn Zuordnungstabelle 22 einen Eintrag für die durch Host 4 angegebene bestimmte Host-LBA enthält, kann Bereichszuordnermodul 20 die bestimmte Host-LBA neu der gegenwärtig mit dem Schreibzeiger verbundenen Adresse zuordnen. Wenn Zuordnungstabelle 22 keinen Eintrag für die durch Host 4 angegebene bestimmte Host-LBA enthält, kann Bereichszuordnermodul 20 einen die durch Host 4 angegebene bestimmte Host-LBA der durch den Schreibzeiger angezeigten PBA zuordnenden Eintrag erstellen.
  • Bereichszuordnermodul 20 kann Festplattenlaufwerk 6 einen Schreibbefehl senden, der die durch Host 4 angegebenen Daten und die der durch Host 4 angegebenen Host-LBA zugeordnete Laufwerk-LBA umfasst (46). Der Schreibbefehl kann Festplattenlaufwerk 6 veranlassen, die Daten zu der durch Bereichszuordnermodul 20 bestimmten Laufwerk-LBA zu schreiben. In Fällen wo Festplattenlaufwerk 6 Bereichszuordnermodul 20 umfasst, kann Steuerung 8 einen Schreibbefehl von Host 4 empfangen. Bereichszuordnermodul 20 kann eine Host-LBA einer entsprechenden Laufwerk-LBA oder Laufwerk-PBA zuordnen, kann einen die nächste unbenutzte Blockadresse anzeigenden Schreibzeiger unterhalten und kann die Host-LBA der gegenwärtig mit dem Schreibzeiger verbundenen Adresse zuordnen. Da der Schreibzeiger zum nächsten unbenutzten Block zeigt, wird die Host-LBA von Bereichszuordnermodul 20 fortlaufend einer entsprechenden Laufwerk-LBA oder Laufwerk-PBA zugeordnet. So kann Festplattenlaufwerk 6 die Daten fortlaufend schreiben, was den Betrag an Daten, die wiedergeschrieben werden müssen, verringern und die Schreibleistung von Festplattenlaufwerk 6 verbessern kann.
  • Bereichszuordnermodul 20 kann einen Befehl, Metadaten 34 zum Festplattenlaufwerk 6 zu schreiben, zu Steuerung 8 senden (48). In einigen Beispielen kann Steuerung 8 den Schreibkopf veranlassen, Metadaten 34 zu Festplattenlaufwerk 6 nach jedem Bereich 32 an einer Stelle, die den Daten unmittelbar folgt, zu schreiben. Metadaten 34 können die Laufwerk-LBA entsprechend den Daten, die Datenlänge und einen oder mehrere Rückzeiger zu wenigstens einem vorigen Abschnitt von Metadaten 34 wie auch eine Prüfsumme der zu Bereich 32 geschriebenen Daten umfassen. Metadaten 34 können Festplattenlaufwerk 6 und/oder Host 4 ermöglichen, zu bestimmen, wo Bereiche 32 auf Festplattenlaufwerk 6 geschrieben sind. In einigen Beispielen können Host 4 und/oder Festplattenlaufwerk 6 die Startstelle von Bereich 32 und den Ort voriger Metadaten 34 basierend auf der Größe von Metadaten 34, Laufwerk-LBA 36 und der Größe 37 von Bereich 32 bestimmen.
  • Bereichszuordnermodul 20 kann einen Befehl zu Steuerung 8 zum Schreiben von Summen-Metadaten zu Festplattenlaufwerk 6 senden (50). In einigen Beispielen können die Summen-Metadaten die Laufwerk-LBA, PBA und Datenlänge für jeden Bereich von Daten umfassen. In einigen Beispielen kann Bereichszuordnermodul 20 bewirken, dass Summen-Metadaten am Ende von Zone 30 geschrieben werden. Summen-Metadaten können Host 4 und/oder Festplattenlaufwerk 6 ermöglichen, die Laufwerk-LBA, PBA und Größe für jeden Bereich 32 auf Zone 30, ohne die gesamte Zone 30 zu lesen, zu bestimmen.
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Lesen von Daten aus einem SMR-HDD gemäß einem oder mehreren Verfahren der vorliegenden Offenbarung. Für Erläuterungszwecke wird das in 5 dargestellte beispielhafte Verfahren hinsichtlich Festplattenlaufwerk 6 von 1, Bereichszuordnermodul 20 von 2 und Zone 30 von 3 beschrieben, aber die Verfahren können mit jeder Kombination von Hardware oder Software benutzt werden.
  • In einigen Beispielen kann Host 4 einen Lesebefehl zum Lesen von Daten aus einer bestimmten Host-LBA senden. Bereichszuordnermodul 20 kann den Lesebefehl von Host 4 empfangen (62). Der Lesebefehl kann die Host-LBA umfassen, die angibt, welchen Datenblock dieser Host 4 empfangen möchte.
  • Bereichszuordnermodul 20 kann die mit der durch Host 4 angegebene LBA verbundene Laufwerk-LBA bestimmen (64). Zum Beispiel kann Bereichszuordnermodul 20 Zuordnungstabelle 22 abfragen, um zu bestimmen, welche Laufwerk-LBA vorher der Host-LBA zugeordnet war. In einigen Beispielen kann Zuordnungstabelle 22 mehrere Einträge für die durch Host 4 angegebene LBA umfassen. Bereichszuordnermodul 20 kann bestimmen, welcher Eintrag die aktuelle Zuordnung umfasst durch Bestimmen, ob ein Eintrag als ungültig oder abgelaufen markiert worden ist, oder durch Bestimmen, welcher Eintrag die Host-LBA der größten Laufwerk-LBA zuordnet. In einigen Beispielen kann Bereichszuordnermodul 20 die mit der durch Host 4 angegebenen LBA verbundene Laufwerk-PBA bestimmen. Zum Beispiel kann Bereichszuordnermodul 20 Zuordnungstabelle 22 abfragen, um zu bestimmen, welche Laufwerk-PBA vorher der Host-LBA zugeordnet war. Wenn Zuordnungstabelle 22 mehrere Einträge für die Host-LBA enthält, kann Bereichszuordnermodul 20 bestimmen, welcher Eintrag die aktuelle Zuordnung umfasst durch Bestimmen, ob ein Eintrag als abgelaufen oder ungültig markiert worden ist, oder durch Bestimmen, welcher Eintrag die Host-LBA der größten Laufwerk-PBA zuordnet.
  • Bereichszuordnermodul 20 kann einen Lesebefehl zu Festplattenlaufwerk 6 zum Lesen von Daten an der mit der Host-LBA verbundenen Laufwerk-LBA senden (66). In einigen Beispielen kann der Lesebefehl die Laufwerk-LBA umfassen. In einigen Beispielen kann der Lesebefehl die Laufwerk-PBA umfassen. Festplattenlaufwerk 6 kann den Befehl zum Lesen von Daten aus der bestimmten Laufwerk-LBA oder Laufwerk-PBA empfangen und diese Daten zu Host 4 zurücksenden.
  • Die in der vorliegenden Offenbarung beschriebenen Verfahren können wenigstens teilweise in Hardware, Software, Firmware oder jeder Kombination derselben ausgeführt werden. Zum Beispiel können verschiedene Aspekte der beschriebenen Verfahren in einer oder mehreren Verarbeitungseinheiten einschließlich einer oder mehreren Mikroverarbeitungseinheiten, Digitalsignalverarbeitungseinheiten (DSP – Digital Signal Processing Units), anwendungsspezifischen integrierten Schaltungen (ASIC – Application Specific Integrated Circuits), feldprogrammierbaren Gatteranordnungen (FPGA – Field Programmable Gate Arrays) oder jeder sonstigen gleichwertigen integrierten oder diskreten Logikschaltung wie auch jeder Kombination solcher Komponenten ausgeführt werden. Der Begriff „Verarbeitungseinheit” oder „Verarbeitungsschaltung” kann sich allgemein auf beliebige der vorangehenden Logikschaltungen beziehen, allein oder in Kombination mit anderen Logikschaltungen oder beliebige sonstige gleichwertige Schaltungen. Eine Steuereinheit mit Hardware kann ebenfalls ein oder mehrere der Verfahren der vorliegenden Offenbarung durchführen.
  • Solche Hardware, Software und Firmware kann in der gleichen Vorrichtung oder in getrennten Vorrichtungen zum Unterstützen der verschiedenen in der vorliegenden Offenbarung beschriebenen Verfahren implementiert sein. Zusätzlich können beliebige der beschriebenen Einheiten, Module oder Komponenten zusammen oder getrennt als diskrete, aber gemeinsam betreibbare Logikvorrichtungen implementiert sein. Darstellung verschiedener Merkmale als Module oder Einheiten soll verschiedene Funktionsaspekte hervorheben und bedeutet nicht unbedingt, dass solche Module oder Einheiten durch getrennte Hardware-, Firmware- oder Softwarekomponenten realisiert sein müssen. Stattdessen kann mit einem oder mehreren Modulen oder Einheiten verbundene Funktionalität durch getrennte Hardware-, Firmware- oder Softwarekomponenten durchgeführt werden oder in gemeinsamen oder getrennten Hardware-, Firmware- oder Softwarekomponenten integriert sein.
  • Die in der vorliegenden Offenbarung beschriebenen Verfahren können auch in einem Herstellungserzeugnis ausgeführt oder codiert sein einschließlich eines computerlesbaren, mit Anweisungen codierten Speichermediums. In einem Herstellungserzeugnis codierte einschließlich einem computerlesbaren Speichermedium codierte Anweisungen können eine oder mehrere programmierbare Verarbeitungseinheiten oder sonstige Verarbeitungseinheiten veranlassen, eines oder mehrere der hier beschriebenen Verfahren auszuführen, wie beispielsweise wenn in dem computerlesbaren Speichermedium enthaltende oder codierte Anweisungen durch die eine oder mehreren Verarbeitungseinheiten ausgeführt werden. Computerlesbare Speichermedien können Direktzugriffsspeicher (RAM – Random Access Memory), Nurlesespeicher (ROM – Read Only Memory), programmierbare Nurlesespeicher (PROM – Programmable Read Only Memory), löschbare programmierbare Nurlesespeicher (EPROM – Erasable Programmable Read Only Memory), elektronisch löschbare programmierbare Nurlesespeicher (EEPROM – Electronically Erasable Programmable Read Only Memory), Flash-Memory, eine Festplatte, einen Disketten-ROM (CD-ROM), eine Diskette, eine Kassette, Magnetmedien, optische Medien oder sonstige computerlesbare Medien umfassen. In einigen Beispielen kann ein Herstellungserzeugnis ein oder mehrere computerlesbare Speichermedien umfassen.
  • In einigen Beispielen kann ein computerlesbares Speichermedium ein nichtflüchtiges Medium umfassen. Der Begriff „nichtflüchtig” kann anzeigen, dass das Speichermedium nicht in einer Trägerwelle oder einem ausgebreiteten Signal ausgeführt ist. In gewissen Beispielen kann ein nichtflüchtiges Speichermedium Daten speichern, die sich über Zeit verändern können (z. B. in RAM oder Cache).
  • Es sind verschiedene Beispiele der Offenbarung beschrieben worden. Es wird jede beliebige Kombination der beschriebenen Systeme, Operationen oder Funktionen in Betracht gezogen. Diese und weitere Beispiele liegen innerhalb des Schutzumfangs der nachfolgenden Ansprüche.

Claims (20)

  1. Verfahren, umfassend: Empfangen durch ein an einer Host-Vorrichtung ablaufendes Bereichszuordnermodul eines Befehls zum Schreiben von Daten, wobei der Befehl Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfasst; Zuordnen durch das Bereichszuordnermodul der durch den Host angegebenen LBA zu einer Laufwerk-LBA; und Senden von dem Bereichszuordnermodul und zu einem Festplattenlaufwerk eines Befehls zum Schreiben der Daten an der Laufwerk-LBA.
  2. Verfahren nach Anspruch 1, weiterhin umfassend: Bestimmen durch das Bereichszuordnermodul, ob die durch den Host angegebene LBA vorher beschrieben worden ist; und als Reaktion auf Bestimmen, dass die durch den Host angegebene LBA vorher beschrieben worden ist, Aktualisieren durch das Bereichszuordnermodul einer bestehenden Zuordnung, so dass die durch den Host angegebene LBA einer aktualisierten Laufwerk-LBA entspricht.
  3. Verfahren nach Anspruch 1, weiterhin umfassend: Bestimmen durch das Bereichszuordnermodul, ob die durch den Host angegebene LBA vorher beschrieben worden ist; und als Reaktion auf Bestimmen, dass die durch den Host angegebene LBA nicht vorher beschrieben worden ist, Erstellen durch das Bereichszuordnermodul einer neuen Zuordnung, so dass die durch den Host angegebene LBA der Laufwerk-LBA entspricht.
  4. Verfahren nach Anspruch 1, wobei Zuordnen der durch den Host angegebenen LBA zu einer Laufwerk-LBA umfasst: Bestimmen, basierend auf einem Schreibzeiger, einer nächsten Schreibadresse; Bestimmen durch das Bereichszuordnermodul, ob eine Zuordnungstabelle die durch den Host angegebene LBA und eine mit der durch den Host angegebenen LBA verbundene Laufwerk-LBA umfasst; und Aktualisieren durch das Bereichszuordnermodul der Zuordnungstabelle, so dass die Zuordnungstabelle die durch den Host angegebenen LBA und eine entsprechende Laufwerk-LBA umfasst, wobei die entsprechende Laufwerk-LBA mit der nächsten Schreibadresse verbunden ist.
  5. Verfahren nach Anspruch 1, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Schreiben einer Menge von mit den Daten verbundenen Metadaten, wobei die Menge von Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-LBA, eine Länge der Daten und wenigstens einen Rückzeiger umfasst, wobei jeder Rückzeiger der wenigstens einen Rückzeiger einen jeweiligen Ort einer Menge von mit unterschiedlichen Daten verbundenen Metadaten angibt.
  6. Verfahren nach Anspruch 1, weiterhin umfassend: Empfangen durch ein Bereichszuordnerverwaltungsmodul des Befehls zum Schreiben von Daten; Kennzeichnen durch das Bereichszuordnerverwaltungsmodul basierend auf der durch den Host angegebenen LBA eines Bereichszuordnermoduls aus einer Vielzahl von Bereichszuordnermodulen, wobei jedes Bereichszuordnermodul aus der Vielzahl von Bereichszuordnermodulen an einer jeweiligen Zone einer Vielzahl von Zonen des Festplattenlaufwerks gespeicherte Daten verwaltet; und Senden von dem Bereichszuordnerverwaltungsmodul und zu dem einen Bereichszuordnermodul des Befehls, Daten zu schreiben.
  7. Verfahren nach Anspruch 1, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Schreiben einer Menge von mit den Daten verbundenen Metadaten, wobei die Menge von Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-LBA und eine Länge der Daten umfasst, wobei die Menge von Metadaten in einem bestimmten, zum Speichern mehrerer Mengen von Metadaten bezeichneten Teil des Festplattenlaufwerks gespeichert ist und wobei die mehreren Mengen von Metadaten fortlaufend in dem bestimmten Teil des Laufwerks gespeichert sind.
  8. Verfahren nach Anspruch 1, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Lesen einer Menge von mit den Daten verbundenen Metadaten, wobei die Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-LBA enthält; Bestimmen durch das Bereichszuordnermodul, welche Menge von mit den Daten verbundenen Metadaten die aktuelle Menge von Metadaten für die jeweiligen Daten ist; und Aktualisieren durch das Bereichszuordnermodul der Zuordnung der durch den Host angegebenen LBA und der Laufwerk-LBA basierend auf Bestimmen, welche Menge von Metadaten die aktuelle Menge von Metadaten für die jeweiligen Daten ist.
  9. Verfahren, umfassend: Empfangen durch ein an einem Festplattenlaufwerk ablaufendes Bereichszuordnermodul eines Befehls zum Schreiben von Daten, wobei der Befehl Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfasst; Zuordnen durch das Bereichszuordnermodul der durch den Host angegebenen LBA zu einer physikalischen Blockadresse des Laufwerks (Laufwerk-PBA), wobei die Laufwerk-PBA einer gegenwärtig mit einem Schreibzeiger verbundenen Adresse entspricht; und Senden von dem Bereichszuordnermodul und zu einer Hardware-Maschine des Festplattenlaufwerks eines Befehls zum Schreiben der Daten an der Laufwerk-PBA.
  10. Verfahren nach Anspruch 9, weiterhin umfassend: Bestimmen durch das Bereichszuordnermodul, ob die durch den Host angegebene LBA vorher beschrieben worden ist; und als Reaktion auf Bestimmen, dass die durch den Host angegebene LBA vorher beschrieben worden ist, Aktualisieren durch das Bereichszuordnermodul einer bestehenden Zuordnung, so dass die durch den Host angegebene LBA einer aktualisierten Laufwerk-PBA entspricht.
  11. Verfahren nach Anspruch 9, weiterhin umfassend: Bestimmen durch das Bereichszuordnermodul, ob die durch den Host angegebene LBA vorher beschrieben worden ist; und als Reaktion auf Bestimmen, dass die durch den Host angegebene LBA nicht vorher beschrieben worden ist, Erstellen durch das Bereichszuordnermodul einer neuen Zuordnung, so dass die durch den Host angegebene LBA der Laufwerk-PBA entspricht.
  12. Verfahren nach Anspruch 9, wobei Zuordnen der durch den Host angegebenen LBA zu einer Laufwerk-PBA umfasst: Bestimmen basierend auf dem Schreibzeiger einer nächsten Schreibadresse; Bestimmen durch das Bereichszuordnermodul, ob eine Zuordnungstabelle die durch den Host angegebene LBA umfasst und eine mit der durch den Host angegebenen LBA verbundene Laufwerk-PBA; und Aktualisieren durch das Bereichszuordnermodul der Zuordnungstabelle, so dass die Zuordnungstabelle die durch den Host angegebene LBA umfasst und eine entsprechende Laufwerk-PBA, wobei die entsprechende Laufwerk-PBA mit der nächsten Schreibadresse verbunden ist.
  13. Verfahren nach Anspruch 9, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Schreiben einer Menge von mit den Daten verbundenen Metadaten, wobei die Menge von Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-PBA umfasst, eine Länge der Daten und wenigstens einen Rückzeiger, wobei jeder Rückzeiger der wenigstens einen Rückzeiger einen jeweiligen Ort einer Menge von mit unterschiedlichen Daten verbundenen Metadaten angibt.
  14. Verfahren nach Anspruch 9, weiterhin umfassend: Empfangen durch ein Bereichszuordnerverwaltungsmodul des Befehls zum Schreiben von Daten; Kennzeichnen durch das Bereichszuordnerverwaltungsmodul basierend auf der durch den Host angegebenen LBA eines Bereichszuordnermoduls aus einer Vielzahl von Bereichszuordnermodulen, wobei jedes Bereichszuordnermodul aus der Vielzahl von Bereichszuordnermodulen an einer jeweiligen Zone einer Vielzahl von Zonen des Festplattenlaufwerks gespeicherte Daten verwaltet; und Senden von denn Bereichszuordnerverwaltungsmodul und zu dem einen jeweiligen Bereichszuordnermodul des Befehls zum Schreiben von Daten.
  15. Verfahren nach Anspruch 9, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Schreiben einer Menge von mit den Daten verbundenen Metadaten, wobei die Menge von Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-PBA umfasst und eine Länge der Daten, wobei die Menge von Metadaten in einem zum Speichern mehrerer Mengen von Metadaten bezeichneten Teil des Laufwerks gespeichert wird und wobei die mehreren Mengen von Metadaten fortlaufend in dem bestimmten Teil des Laufwerks gespeichert werden.
  16. Verfahren nach Anspruch 9, weiterhin umfassend: Senden durch das Bereichszuordnermodul und zu einer Steuerung eines Befehls zum Lesen einer Menge von mit den Daten verbundenen Metadaten, wobei die Metadaten die mit der durch den Host angegebenen LBA verbundene Laufwerk-PBA umfasst; Bestimmen durch das Bereichszuordnermodul, welche Menge von mit den Daten verbundenen Metadaten die aktuelle Menge von Metadaten für die jeweiligen Daten ist; und Aktualisieren durch das Bereichszuordnermodul der Zuordnung der durch den Host angegebenen LBA und der Laufwerk-PBA basierend auf Bestimmen, welche Menge von Metadaten die aktuelle Menge von Metadaten für die jeweiligen Daten ist.
  17. Vorrichtung, umfassend: wenigstens einen Prozessor; und ein durch den wenigstens einen Prozessor betreibbares Bereichszuordnermodul eingerichtet zum: Empfangen eines Befehls zum Schreiben von Daten, wobei der Befehl Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfasst; Zuordnen der durch den Host angegebenen LBA zu einer Laufwerk-LBA; und Senden zu einem Festplattenlaufwerk eines Befehls zum Schreiben der Daten an der Laufwerk-LBA.
  18. Vorrichtung nach Anspruch 17, wobei das Bereichszuordnermodul weiterhin eingerichtet ist zum: Bestimmen basierend auf einem Schreibzeiger einer nächsten Schreibadresse; Bestimmen, ob eine Zuordnungstabelle die durch den Host angegebene LBA umfasst und eine mit der durch den Host angegebenen LBA verbundene Laufwerk-LBA; und Aktualisieren der Zuordnungstabelle zum Umfassen der durch den Host angegebenen LBA und einer entsprechenden Laufwerk-LBA, wobei die entsprechende Laufwerk-LBA mit der nächsten Schreibadresse verbunden ist.
  19. Vorrichtung, umfassend: eine Schnittstelle; eine Hardware-Maschine; und eine Steuerung, umfassend: wenigstens einen Prozessor; und ein durch den wenigstens einen Prozessor betreibbares Bereichszuordnermodul eingerichtet zum: Empfangen über die Schnittstelle eines Befehls zum Schreiben von Daten, wobei der Befehl Daten und eine durch einen Host angegebene logische Blockadresse (LBA) umfasst; Zuordnen der durch den Host angegebenen LBA zu einer physikalischen Blockadresse des Laufwerks (Laufwerk-PBA), wobei die Laufwerk-PBA einer gegenwärtig mit einem Schreibzeiger verbundenen Adresse entspricht; und Senden zu der Hardware-Maschine eines Befehls zum Schreiben der Daten an der Laufwerk-PBA.
  20. Vorrichtung nach Anspruch 19, wobei das Bereichszuordnermodul weiterhin eingerichtet ist zum Zuordnen der durch den Host angegebenen LBA zu einer Laufwerk-PBA, indem es wenigstens eingerichtet ist zum: Bestimmen, basierend auf dem Schreibzeiger einer nächsten Schreibadresse; Bestimmen, ob eine Zuordnungstabelle die durch den Host angegebene LBA umfasst und eine mit der durch den Host angegebenen LBA verbundene Laufwerk-PBA; und Aktualisieren der Zuordnungstabelle zum Umfassen der durch den Host angegebenen LBA und einer entsprechenden Laufwerk-PBA, wobei die entsprechende Laufwerk-PBA mit der nächsten Schreibadresse verbunden ist.
DE102016001066.5A 2015-02-02 2016-02-01 Zuordnung der logischen Blockadresse für Festplattenlaufwerke Pending DE102016001066A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562110892P 2015-02-02 2015-02-02
US62/110,892 2015-02-02
US14/876,151 US10423339B2 (en) 2015-02-02 2015-10-06 Logical block address mapping for hard disk drives
US14/876,151 2015-10-06

Publications (1)

Publication Number Publication Date
DE102016001066A1 true DE102016001066A1 (de) 2016-08-04

Family

ID=55590323

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016001066.5A Pending DE102016001066A1 (de) 2015-02-02 2016-02-01 Zuordnung der logischen Blockadresse für Festplattenlaufwerke

Country Status (5)

Country Link
US (1) US10423339B2 (de)
CN (1) CN105843753B (de)
DE (1) DE102016001066A1 (de)
GB (1) GB2536122B (de)
IE (1) IE20160037A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246712A1 (en) * 2015-02-25 2016-08-25 HGST Netherlands B.V. Indirection data structures implemented as reconfigurable hardware
US9841906B2 (en) * 2016-02-01 2017-12-12 Seagate Technology Llc Zone forward drive management
CN111666044B (zh) 2016-02-29 2021-11-30 华为技术有限公司 一种访问叠瓦式磁记录smr硬盘的方法及服务器
CN110018897B (zh) * 2018-01-09 2023-05-26 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
US10684947B2 (en) 2018-04-20 2020-06-16 International Business Machines Corporation Increasing high performance data storage utilization by reducing write operations
US10649909B2 (en) * 2018-06-14 2020-05-12 Western Digital Technologies, Inc. Logical block addressing range collision crawler
CN109344109B (zh) * 2018-10-23 2022-07-26 江苏华存电子科技有限公司 基于固态硬盘的大数据中加速人工智能计算的系统及方法
TWI687921B (zh) * 2019-02-01 2020-03-11 宏碁股份有限公司 主機、疊瓦式磁記錄硬碟及其運作方法
US11061595B2 (en) * 2019-05-10 2021-07-13 Seagate Technology Llc Logical address remapping for direct write
CN112783804A (zh) * 2019-11-08 2021-05-11 华为技术有限公司 数据访问方法、装置及存储介质
KR102267477B1 (ko) * 2020-02-20 2021-06-22 삼성전자주식회사 스토리지 장치 및 이의 동작 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05217298A (ja) 1992-02-04 1993-08-27 Matsushita Graphic Commun Syst Inc 記憶媒体欠陥管理方法
US20040020509A1 (en) * 2002-07-31 2004-02-05 Joyce Waisman Illuminated makeup mirror case
US7159073B2 (en) * 2003-03-27 2007-01-02 Stmicroelectronics, Inc. Data storage and caching architecture
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9511264B2 (en) * 2007-07-03 2016-12-06 Acushnet Company Multilayer core golf ball having hardness gradient within and between each core layer
US20090172246A1 (en) 2007-12-26 2009-07-02 Sandisk Il Ltd. Device and method for managing initialization thereof
CN101625627B (zh) * 2009-08-05 2012-03-21 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
TW201109921A (en) 2009-09-09 2011-03-16 Asolid Technology Co Ltd Flash memory control apparatus and accessing method thereof
US8432633B2 (en) * 2010-10-26 2013-04-30 HGST Netherlands B.V. System, method and apparatus for storage architecture for bit patterned media using both erase band and shingled magnetic recording
US8913335B2 (en) * 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions
CN103858116B (zh) * 2011-08-09 2015-09-02 Lsi公司 I/o设备及计算主机互操作
US8786969B2 (en) 2011-09-30 2014-07-22 HGST Netherlands B.V. Shingled recording systems using multiple pass write, single pass read architecture
US8654472B2 (en) * 2011-11-29 2014-02-18 HGST Netherlands B.V. Implementing enhanced fragmented stream handling in a shingled disk drive
US8699159B1 (en) 2012-06-18 2014-04-15 Western Digital Technologies, Inc. Reducing effects of wide area track erasure in a disk drive
US9368130B2 (en) 2012-07-16 2016-06-14 Marvell International Ltd. Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk
US8902534B2 (en) 2012-08-03 2014-12-02 HGST Netherlands B.V. Implementing track following using data characteristics for positional information
US9070378B2 (en) 2012-10-10 2015-06-30 Seagate Technology Llc Partial write system
US8699162B1 (en) 2012-11-18 2014-04-15 HGST Netherlands B.V. Shingled magnetic recording disk drive with multiple data zones containing different numbers of error-correction-code sectors
JP5951472B2 (ja) 2012-12-26 2016-07-13 株式会社東芝 ディスク記憶装置及び方法
US9720627B2 (en) 2013-01-17 2017-08-01 Western Digital Technologies, Inc. Data management for a data storage device
US20140254042A1 (en) 2013-03-07 2014-09-11 Seagate Technology Llc Dynamic allocation of lba to un-shingled media partition

Also Published As

Publication number Publication date
CN105843753B (zh) 2019-11-05
GB2536122A (en) 2016-09-07
US10423339B2 (en) 2019-09-24
US20160224260A1 (en) 2016-08-04
CN105843753A (zh) 2016-08-10
GB201601561D0 (en) 2016-03-16
GB2536122B (en) 2018-08-01
IE20160037A1 (en) 2016-08-24

Similar Documents

Publication Publication Date Title
DE102016001066A1 (de) Zuordnung der logischen Blockadresse für Festplattenlaufwerke
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE102017104158A1 (de) Gültigkeitsverfolgung für garbage collection
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102016001591A1 (de) System und Verfahren für Copy-On-Write auf einer SSD
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112014005521T5 (de) Speichermodul und Verfahren zum Verwalten des Abbildens logischer Adressen auf physikalische Adressen
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R081 Change of applicant/patentee

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US

Free format text: FORMER OWNER: HGST NETHERLANDS B.V., AMSTERDAM, NL

R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE