DE102020107166A1 - Zweidimensional skalierbares vielseitiges speicherformat fürdatenspeichervorrichtungen - Google Patents

Zweidimensional skalierbares vielseitiges speicherformat fürdatenspeichervorrichtungen Download PDF

Info

Publication number
DE102020107166A1
DE102020107166A1 DE102020107166.3A DE102020107166A DE102020107166A1 DE 102020107166 A1 DE102020107166 A1 DE 102020107166A1 DE 102020107166 A DE102020107166 A DE 102020107166A DE 102020107166 A1 DE102020107166 A1 DE 102020107166A1
Authority
DE
Germany
Prior art keywords
storage
format
page
storage format
nvm
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
DE102020107166.3A
Other languages
English (en)
Inventor
Rodney Brittner
Mark Joseph DANCHO
Xiaoheng Chen
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 DE102020107166A1 publication Critical patent/DE102020107166A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • 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
    • 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
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1292Enhancement of the total storage capacity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die vorliegende Offenbarung beschreibt in verschiedenen Gesichtspunkten Technologien und Techniken zur Verwendung durch eine Datenspeichervorrichtung, das eine Steuerung eines nichtflüchtigen Speichers (NVM) einschließt. In einem Beispiel wendet die Steuerung ein Standardspeicherformat auf einen Speicherbereich des NVMs an, wobei das Standardspeicherformat den Speicherbereich als eine Zahl unterschiedlicher Speicherbereiche konfiguriert, die logisch entlang einer horizontalen und einer vertikalen Dimension angeordnet sind. Die Steuerung modifiziert das Standardspeicherformat unter Verwendung einer Kombination aus horizontaler Dimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs, um ein modifiziertes Speicherformat zu erhalten. Die Steuerung wendet das modifizierte Speicherformat auf den Speicherbereich an.

Description

  • GEBIET
  • Die vorliegende Offenbarung bezieht sich in verschiedenen Ausführungsformen auf Datenspeichervorrichtungen. Genauer gesagt, bezieht sich die vorliegende Offenbarung auf ein zweidimensional skalierbares vielseitiges Speicherformat für Datenspeichervorrichtungen.
  • EINLEITUNG
  • Datenspeichervorrichtungen wie Festkörpervorrichtungen (SSDs) oder Festplattenlaufwerke (HDDs) können nichtflüchtige Speicher (NVMs) einschließen. NVMs können ein oder mehrere Flash-Speichervorrichtungen, wie NAND-Flash-Speicher, einschließen. Aufgrund der hohen Fehlerraten, die beim Lesen oder Schreiben von Daten aus NAND-Flash-Speichern auftreten, können Fehlerkorrektur-Prozeduren (z. B. Fehlerkorrekturcodes (ECCs) und Algorithmen) verwendet werden, um die Zuverlässigkeit und Datenintegrität von SSDs zu verbessern. In einigen Situationen kann jedoch die Weise, in der die Fehlerkorrektur-Prozeduren auf die NAND-Flash-Speicher angewendet werden, die Leistung und Langlebigkeit von SSDs verringern.
  • KURZDARSTELLUNG
  • Ein Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät einen nichtflüchtigen Speicher (NVM) und einen mit dem NVM gekoppelten Prozessor auf. Der Prozessor ist konfiguriert, um ein Standardspeicherformat auf einen Speicherbereich des NVMs anzuwenden, wobei das Standardspeicherformat den Speicherbereich als eine Zahl von unterschiedlichen Speicherbereichen konfiguriert, die logisch entlang einer horizontalen und einer vertikalen Dimension angeordnet sind; das Standardspeicherformat mit einer Kombination von horizontaler Dimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs zu modifizieren, um ein modifiziertes Speicherformat zu erhalten; und das modifizierte Speicherformat auf den Speicherbereich anzuwenden.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät Folgendes auf: Mittel zum Anwenden eines Standardspeicherformats auf einen Speicherbereich eines NVMs, wobei das Standardspeicherformat den Speicherbereich als eine Zahl von unterschiedlichen Speicherbereichen konfiguriert, die logisch entlang einer horizontalen Dimension und einer vertikalen Dimension angeordnet sind; Mittel zum Modifizieren des Standardspeicherformats mit einer Kombination aus horizontaler Dimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs, um ein modifiziertes Speicherformat zu erhalten; und Mittel zum Anwenden des modifizierten Speicherformats auf den Speicherbereich.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Verfahren zum Betrieb eines Datenspeichergerätes bereit. In einem Beispiel schließt das Verfahren Folgendes ein: Anwenden eines Standardspeicherformats auf einen Speicherbereich eines NVMs, wobei das Standardspeicherformat den Speicherbereich als eine Zahl unterschiedlicher Speicherbereiche konfiguriert, die logisch entlang einer horizontalen und einer vertikalen Dimension angeordnet sind; Modifizieren des Standardspeicherformats mit einer Kombination aus horizontaler Dimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs, um ein modifiziertes Speicherformat zu erhalten; und Anwenden des modifizierten Speicherformats auf den Speicherbereich.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät einen NVM und einen mit dem NVM gekoppelten Prozessor auf. Der Prozessor ist konfiguriert, um ein erstes Speicherformat auf eine Seite eines Blocks in dem NVM anzuwenden, wobei das Speicherformat die Seite in eine erste Zahl von logischen Seiten konfiguriert; ein zweites Speicherformat für die Seite, wenn eine Bitfehlerrate für die Seite einen Schwellenwert überschreitet, zu bestimmen, wobei das zweite Speicherformat die Seite in eine zweite Zahl von logischen Seiten konfiguriert, wobei die zweite Zahl von logischen Seiten kleiner als die erste Zahl von logischen Seiten ist; und das zweite Speicherformat auf die Seite anzuwenden.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät Mittel zum Anwenden eines ersten Speicherformats auf eine Seite eines Blocks in einem NVM auf, wobei das Speicherformat die Seite in eine erste Zahl von logischen Seiten konfiguriert; Mittel zum Bestimmen eines zweiten Speicherformats für die Seite, wenn eine Bitfehlerrate für die Seite einen Schwellenwert überschreitet, wobei das zweite Speicherformat die Seite in eine zweite Zahl von logischen Seiten konfiguriert, wobei die zweite Zahl von logischen Seiten kleiner als die erste Zahl von logischen Seiten ist; und Mittel zum Anwenden des zweiten Speicherformats auf die Seite.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Verfahren zum Betrieb eines Datenspeichergerätes bereit. In einem Beispiel schließt das Verfahren Folgendes ein: Anwenden eines ersten Speicherformats auf einer Seite eines Blocks in einem NVM ein, wobei das Speicherformat die Seite in eine erste Zahl von logischen Seiten konfiguriert; Bestimmen eines zweiten Speicherformats für die Seite, wenn eine Bitfehlerrate für die Seite einen Schwellenwert überschreitet, wobei das zweite Speicherformat die Seite in eine zweite Zahl von logischen Seiten konfiguriert, wobei die zweite Zahl von logischen Seiten kleiner als die erste Zahl von logischen Seiten ist; und Anwenden des zweiten Speicherformats auf die Seite.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät einen NVM und einen mit dem NVM gekoppelten Prozessor auf. Der Prozessor ist konfiguriert, um eine Bitfehlerrate von einer Vielzahl von Speicherbereichen des NVMs zu überwachen, wobei jede der Vielzahl von Speicherbereichen ein Speicherformat besitzt; eine oder mehrere der Vielzahl von Speicherbereichen mit einer Bitfehlerrate, die einen Schwellenwert überschreitet, zu identifizieren; und das Speicherformat der einen oder mehreren der Vielzahl von Speicherbereichen dynamisch zu skalieren, um die Bitfehlerrate der einen oder mehreren der Vielzahl von Speicherbereichen zu verringern.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Datenspeichergerät bereit. In einem Beispiel weist das Datenspeichergerät einen NVM auf, der eine Vielzahl von Speicherbereichen aufweist; sowie Mittel zum Überwachen einer Bitfehlerrate einer Vielzahl von Speicherbereichen des NVMs, wobei jeder der Vielzahl von Speicherbereichen ein Speicherformat aufweist; Mittel zum Identifizieren einer oder mehrerer der Vielzahl von Speicherbereichen mit einer Bitfehlerrate, die einen Schwellenwert überschreitet; und Mittel zum dynamischen Skalieren des Speicherformats der einen oder mehreren der Vielzahl von Speicherbereichen, um die Bitfehlerrate der einen oder mehreren der Vielzahl von Speicherbereichen zu verringern.
  • Ein weiterer Gesichtspunkt der vorliegenden Offenbarung stellt ein Verfahren zum Betrieb eines Datenspeichergerätes bereit. In einem Beispiel schließt das Verfahren Folgendes ein: das Überwachen einer Bitfehlerrate einer Vielzahl von Speicherbereichen eines NVMs, wobei jede der Vielzahl von Speicherbereichen ein Speicherformat aufweist; Identifizieren einer oder mehrerer der Vielzahl von Speicherbereichen mit einer Bitfehlerrate, die einen Schwellenwert überschreitet; und dynamisches Skalieren des Speicherformats der einen oder mehreren der Vielzahl von Speicherbereichen, um die Bitfehlerrate der einen oder mehreren der Vielzahl von Speicherbereichen zu verringern.
  • Figurenliste
  • Eine speziellere Beschreibung wird nachstehend unter Bezugnahme auf spezifische, in den beigefügten Zeichnungen veranschaulichte Ausführungsformen eingeschlossen. Angesichts dessen, dass diese Zeichnungen nur bestimmte Ausführungsformen der Offenbarung darstellen und deshalb nicht als ihren Umfang einschränkend betrachtet werden sollen, wird die Offenbarung mit zusätzlicher Spezifität und Detail durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert, in denen:
    • 1 ist ein Blockdiagramm eines Systems einschließlich eines beispielhaften Datenspeichersystems gemäß den Gesichtspunkten der Offenbarung.
    • 2 veranschaulicht ein SSD in Kommunikation mit einer Hostvorrichtung gemäß verschiedenen Gesichtspunkten der Offenbarung.
    • 3 veranschaulicht ein erstes Beispiel einer Speicherplatzzuteilung, die gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines nichtflüchtigen Speichers (NVM) angewendet werden kann.
    • 4 veranschaulicht ein zweites Beispiel einer Speicherplatzzuteilung, die gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden kann.
    • 5 veranschaulicht ein beispielhaftes Speicherformat, das von einer Speicherformat-Steuervorrichtung auf einer Seite eines NVMs angewendet werden kann.
    • 6 veranschaulicht ein Beispiel eines horizontal skalierten Single-Level-Zellenspeicherformats (SLC), das gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden kann.
    • 7 veranschaulicht ein Beispiel eines horizontal skalierten SLC-Speicherformats, das gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden kann.
    • 8 (einschließlich 8A bis 8E) veranschaulicht Beispiele von Speicherformaten für einen NVM gemäß verschiedenen Gesichtspunkten der Offenbarung.
    • 9 veranschaulicht ein beispielhaftes Diagramm, das beispielhafte Speicherformate anzeigt, die gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden können.
    • 10 (einschließlich 10A und 10B) veranschaulicht ein beispielhaftes magnetisches Speichermedium gemäß einem oder mehreren Gesichtspunkten der Offenbarung.
    • 11 veranschaulicht eine Ausführungsform eines Geräts gemäß einem oder mehreren Gesichtspunkten der Offenbarung.
    • 12 fasst im weitesten Sinne beispielhafte Vorgänge für die Verwendung durch eine Steuerung einer SSD zusammen.
    • 13 fasst im weitesten Sinne beispielhafte Vorgänge für die Verwendung durch eine Steuerung eines SSD zusammen.
    • 14 fasst im weitesten Sinne beispielhafte Vorgänge für die Verwendung durch eine Steuerung einer SSD zusammen.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden. Zusätzlich zu den vorstehend beschriebenen veranschaulichenden Gesichtspunkten, Ausführungsformen und Merkmalen werden weitere Gesichtspunkte, Ausführungsformen und Merkmale unter Bezugnahme auf die Zeichnungen und die folgende ausführliche Beschreibung deutlich. Die Beschreibung von Elementen in jeder Figur kann sich auf Elemente von fortlaufenden Figuren beziehen. Gleiche Bezugszeichen können sich auf gleiche Elemente in den Figuren beziehen, einschließlich alternativer Ausführungsformen gleicher Elemente.
  • Überblick
  • Ein Datenspeichersystem, wie eine Festkörpervorrichtung (SSD), kann ein Datenspeicherverwaltungssystem einschließen, um die Leistung und Langlebigkeit der im Datenspeichersystem verwendeten nichtflüchtigen Speicher (NVMs) (z. B. NAND-Flash-Speicher) zu verbessern. Zum Beispiel kann ein Datenspeicherverwaltungssystem beim Speichern eines Satzes von Datenbits (auch als Benutzerbits bezeichnet) eine bestimmte Fehlerkorrekturcode-Rate (ECC) anwenden. Dies kann durch Hinzufügen einer Zahl von Paritätsbits (auch als ECC-Bits bezeichnet) zu dem Satz von Benutzerbits erreicht werden, um ein Codewort zu bilden. Zum Beispiel können n ECC-Bytes zu m Datenbytes hinzugefügt werden, um ein Codewort mit m+n Bytes zu erzeugen. Die Paritätsbits in dem Codewort können verwendet werden, um fehlerhafte Benutzerbits im Codewort zu korrigieren.
  • In einigen Datenspeicherverwaltungssystemen ist die ECC-Rate (auch als festgelegte ECC (FECC) bezeichnet) für die Lebensdauer des Datenspeichersystems festgelegt. Dieser FECC kann ausgelegt werden, um eine spezifizierte Sektorausfallrate (SFR) für die Bitfehlerrate (BER) der NVMs am Ende der Lebensdauer zu liefern. Zum Beispiel kann das Ende der Lebensdauer eines NVMs durch die BER eines Abschnitts des NVMs (z. B. eine Seite in einem NAND-Flash-Block) beschränkt werden. Ferner kann das Ende der Lebensdauer eines NVMs nur durch wenige Ausreißerregionen (z. B. NAND-Flash-Blöcke) des NVMs beschränkt werden. Zum Beispiel können solche Ausreißerregionen des NVMs einen oder mehrere NAND-Flash-Blöcke mit BERs einschließen, wobei die BERs die durchschnittliche BER der meisten (oder aller) NAND-Flash-Blöcke in dem NVM überschreiten. Diese Ausreißerregionen des NVMs sind mit dem von Datenspeicherverwaltungssystemen angewandten Standard-FECC aufgrund der hohen Zahl von fehlerhaften Bits (FBC) der Ausreißerregionen wahrscheinlich nicht wiederherstellbar. Die FBC zeigt eine Zahl von fehlerhaften Benutzerbits (auch als fehlgeschlagene Benutzerbits bezeichnet) an, wie Bits, die sich während des Speicherns oder während eines Schreib- oder Lesevorgangs fehlerhaft im Wert ändern.
  • In einigen Szenarien können fortgeschrittene Wear-Leveling-Algorithmen die Ausreißerregionen (z. B. NAND-Flash-Blöcke, die als schlechte Blöcke identifiziert wurden) des NVMs austauschen oder zurückziehen. Dies kann jedoch die Überbereitstellung im Datenspeichersystem verringern und die Gesamtleistung und Ausdauer des Datenspeichersystems gefährden.
  • Um diese Probleme zu lösen, legt die vorliegende Offenbarung ein zweidimensionales, skalierbares vielseitiges Speicherformat für ein Datenspeichersystem vor. In einem Gesichtspunkt kann das in einem Datenspeichergerät verkörpert werden, einschließlich eines nichtflüchtigen Speichers (NVM) und eines mit dem NVM gekoppelten Prozessors. Der Prozessor kann konfiguriert werden, um ein Standardspeicherformat auf einen Speicherbereich des NVMs anzuwenden, wobei das Standardspeicherformat den Speicherbereich als eine Zahl unterschiedlicher Speicherbereiche konfiguriert, die logisch entlang einer horizontalen Dimension und einer vertikalen Dimension angeordnet sind, um das Standardspeicherformat mit einer Kombination aus horizontaler Dimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs zu modifizieren, um ein modifiziertes Speicherformat zu erhalten, und um das modifizierte Speicherformat auf den Speicherbereich anzuwenden. In einem Gesichtspunkt kann sich die Leistungsfähigkeit auf die BER beziehen und das Datenspeichergerät kann das Skalieren auf einen Speicherbereich in dem NVM anwenden, um eine BER zu erreichen die verhindert, dass ein oder mehrere Speicherbereiche als unbrauchbar betrachtet werden, wodurch die Langlebigkeit des NVMs verbessert wird. Außerdem kann durch das Herunterskalieren des Speicherformats eines Speicherbereichs (z. B. einer Seite), um die Zuverlässigkeit der Seite zu verbessern, auch die Lese-/Schreibleistung (z. B. die Dekodiergeschwindigkeit) der Seite verbessert werden. Die hierin vorgelegten Ansätze können sowohl auf Festkörpervorrichtungen (SSDs) als auch auf Festplattenlaufwerke (HDDs) angewendet werden.
  • Beispielhaftes Datenspeichersystem
  • 1 veranschaulicht eine Ausführungsform eines Datenspeichersystems 100, das eine Host-Vorrichtung 102 und ein Datenspeichergerät 104 einschließt, das kommunikativ an die Host-Vorrichtung 102 gekoppelt ist. Während das Datenspeichergerät 104 eine SSD oder ein HDD sein kann, wird es für die Beschreibung von 1 als eine SSD bezeichnet. Die Host-Vorrichtung 102 (z. B. ein Host-Computer) stellt Befehle an die SSD 104 zum Übertragen von Daten zwischen der Host-Vorrichtung 102 und der SSD 104 bereit. Zum Beispiel kann die Host-Vorrichtung 102 einen Schreibbefehl an die SSD 104 zum Schreiben von Daten in die SSD 104 oder einen Lesebefehl an die SSD 104 zum Lesen von Daten aus der SSD 104 bereitstellen. Die Host-Vorrichtung 102 kann jedes System oder jede Vorrichtung sein, das Daten speichern oder abrufen muss, und eine kompatible Schnittstelle zum Kommunizieren mit dem SSD 104 aufweist. Zum Beispiel kann die Host-Vorrichtung 102 eine Computervorrichtung, ein Personal Computer, ein tragbarer Computer, eine Arbeitsstation, ein Server, ein persönlicher digitaler Assistent, eine Digitalkamera, ein Digitaltelefon oder ähnliches sein.
  • Die SSD 104 schließt eine Host-Schnittstelle 106, eine Steuerung 108, einen optionalen Speicher 110 und eine nichtflüchtige Datenspeichervorrichtung 112 (auch als NVM 112 bezeichnet) ein. Die Host-Schnittstelle 106 ist mit der Steuerung 108 verbunden und erleichtert die Kommunikation zwischen der Host-Vorrichtung 102 und der Steuerung 108. Zusätzlich ist die Steuerung 108 mit dem Speicher 110 und dem NVM 112 gekoppelt. Zum Beispiel kann der NVM 112 ein NAND-Flash-Speicher oder ein magnetisches Speichermedium sein.
  • Die Host-Schnittstelle 106 kann eine beliebige Art von Kommunikationsschnittstelle, wie z. B. eine IDE (Integrated Drive Electronics)-Schnittstelle, eine USB (Universal Serial Bus)-Schnittstelle, eine SP (Serial Peripheral)-Schnittstelle, eine ATA (Advanced Technology Attachment)-Schnittstelle, eine SCSI (Small Computer System Interface)-Schnittstelle, eine IEEE 1394 (Firewire)-Schnittstelle oder ähnliches sein. In einigen Gesichtspunkten schließt die Host-Vorrichtung 102 die SSD 104 ein (z. B. sind die Host-Vorrichtung 102 und die SSD 104 als eine einzige Komponente implementiert). In anderen Ausführungsformen ist die SSD 104 in Bezug auf die Host-Vorrichtung 102 entfernt oder ist in einem entfernten Computersystem enthalten, das in Kommunikation mit der Host-Vorrichtung 102 gekoppelt ist. Zum Beispiel kann die Host-Vorrichtung 102 über einen drahtlosen Kommunikationslink mit dem SSD 104 kommunizieren.
  • Die Steuerung 108 steuert den Betrieb der SSD 104. In verschiedenen Ausführungsformen empfängt die Steuerung 108 Befehle von der Host-Vorrichtung 102 über die Host-Schnittstelle 106 und führt die Befehle zur Übertragung von Daten zwischen der Host-Vorrichtung 102 und dem NVM 112 aus. Wie in 1 dargestellt, kann die Steuerung 108 eine Speicherformat-Steuervorrichtung 116 einschließen. Zum Beispiel kann die Speicherformat-Steuervorrichtung 116 konfiguriert werden, um ein oder mehrere Speicherformate auf den NVM 112 gemäß den hierin ausführlich beschriebenen Gesichtspunkten anzuwenden. Der Begriff Speicherformat, wie hierin verwendet, kann sich auf eine Konfiguration von unterschiedlichen Speicherbereichen beziehen, die logisch entlang einer horizontalen Dimension und einer vertikalen Dimension angeordnet sind. In einigen Beispielen kann jeder der verschiedenen Speicherbereiche zum Speichern eines Codeworts, das Datenbits und Paritätsbits (z. B. ECC-Bits) einschließt, verwendet werden. In einigen Beispielen kann das Speicherformat die ECC-Stärke, die Codewortstruktur und/oder einen Medienformattyp definieren, der bei dem Erzeugen und Speichern der Codewörter verwendet werden soll. Zum Beispiel kann die ECC-Stärke in Form eines Paritäts-Overheads quantifiziert werden. Zum Beispiel kann sich eine Codewortstruktur auf eine Kombination aus einer Datennutzlast und einer ECC-Stärke beziehen.
  • Die Steuerung 108 kann interne Vorgänge wie Speicherbereinigung, Datenintegritäts- und Wear-Leveling-Vorgänge durchführen. Die Steuerung 108 kann eine beliebige Art von Verarbeitungsvorrichtung, wie einen Mikroprozessor, einen Mikrocontroller, eine eingebettete Steuerung, eine Logikschaltung, eine Software, eine Firmware oder dergleichen zum Steuern des Betriebs der SSD 104 einschließen.
  • In einigen Ausführungsformen können einige oder alle Funktionen, die hierin als durch die Steuerung 108 ausgeführt beschrieben werden, stattdessen durch ein anderes Element der SSD 104 ausgeführt werden. Beispielsweise kann die SSD 104 einen Mikroprozessor, einen Mikrocontroller, eine eingebettete Steuerung, eine Logikschaltung, Software, Firmware oder irgendeine Art von Verarbeitungsvorrichtung zum Durchführen einer oder mehrerer der Funktionen, die hierin als von der Steuerung 108 ausgeführt beschrieben werden, einschließen. In einigen Ausführungsformen werden eine oder mehrere der Funktionen, die hierin durch die Steuerung 108 beschrieben werden, stattdessen durch die Hostvorrichtung 102 ausgeführt. In einigen Ausführungsformen können einige oder alle Funktionen, die hierin als von der Steuerung 108 ausgeführt beschrieben werden, stattdessen durch ein anderes Element wie etwa eine Steuerung in einem Hybrid-Laufwerk, die sowohl nichtflüchtige Speicherelemente als auch magnetische Speicherelemente einschließt, ausgeführt werden.
  • Der Speicher 110 kann ein beliebiger Speicher, eine Rechenvorrichtung oder ein System sein, das Daten speichern kann. Zum Beispiel kann der Speicher 110 ein Direktzugriffsspeicher (RAM), ein dynamischer Direktzugriffsspeicher (DRAM), ein statischer Direktzugriffsspeicher (SRAM), ein synchroner dynamischer Direktzugriffsspeicher (SDRAM), ein Flash-Speicher, ein löschbarer programmierbarer Festwertspeicher (EPROM) oder ein elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM), oder dergleichen sein. In verschiedenen Ausführungsformen verwendet die Steuerung 108 den Speicher 110 oder einen Abschnitt davon, um Daten während der Datenübertragung zwischen der Host-Vorrichtung 102 und dem NVM 112 zu speichern. Beispielsweise kann der Speicher 110 oder ein Abschnitt des Speichers 110 ein Cache-Speicher sein. In einem Gesichtspunkt ist das Datenspeichersystem 100 für die Verwendung mit dem nichtflüchtigen Speicher-Express-System (NVMe) konfiguriert, wobei eine NVM-Datenspeichersteuerung (z. B. Steuerung 108) konfiguriert ist, um den Zugriff auf eine NVM-Vorrichtung (z. B. 112), wie eine NAND-Speichervorrichtung (im Folgenden „NAND“), mit NVM-Protokollen zu steuern. Das NVMe-System ist eine skalierbare Host-Steuerungsschnittstelle zur Verwendung mit SSD-Systemen, die Peripheral Component Interconnect (PCI) Express (PCle) nutzen. Siehe z. B. NVM Express-Standard, Überarbeitung 1.3a, 24. Oktober 2017. Jedoch sind zumindest einige der hierin beschriebenen Merkmale auf andere Datenspeichervorrichtungen, Laufwerke, Systeme oder Protokolle anwendbar.
  • 2 veranschaulicht eine Festkörpervorrichtung (SSD) 200 in Kommunikation mit einer Hostvorrichtung 202 gemäß verschiedenen Gesichtspunkten der Offenbarung. Wie in 2 dargestellt, kann die SSD 200 eine Steuerung 206 und einen NVM 208 einschließen. Die Steuerung 206 kann eine Speicherformat-Steuervorrichtung 204 einschließen. Der NVM 208 kann einen oder mehrere NAND-Blöcke einschließen, wie den NAND-Block 0 210, den NAND-Block 1 212 und den NAND-Block n-1 214. Wie ferner in 2 dargestellt, jeder NAND-Block kann eine Zahl von Seiten einschließen. Zum Beispiel kann der NAND-Block 0 210 eine Seite 0 216, Seite 1 218 und eine Seite m-1 220, der NAND-Block 1 212 eine Seite 0 222, Seite 1 224 und eine Seite m-1 226 und der NAND-Block n-1 214 eine Seite 0 228, Seite 1 230 und eine Seite m-1 232 einschließen.
  • Jede Seite (z. B. Seite 0 216) in 2 kann einen Satz von Speicherzellen (auch als Wortleitung bezeichnet) darstellen. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 den Medienformattyp der Speicherzellen einer Seite in dem NVM 208 konfigurieren. Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 den Medienformattyp der Speicherzellen einer Seite in dem NVM 208 als ein Single-Level-Zelltyp (SLC) konfigurieren (z. B. können die Speicherzellen der Seite ein Bit pro Zelle (1 BPC) speichern), als Multi-Level-Zelltyp (MLC) (z. B. speichern die Speicherzellen der Seite zwei Bits pro Zelle (2 BPC)), als Triple-Level-Zelltyp (TLC) (z. B. speichern die Speicherzellen der Seite drei Bits pro Zelle (3 BPC)), ein Fraktionsebenen-Zellentyp (z. B. speichern die Speicherzellen der Seite 3,5 Bits pro Zelle (3,5 BPC)) oder ein Quad-Level-Zellentyp (QLC) (z. B. speichern die Speicherzellen der Seite vier Bits pro Zelle (4 BPC)).
  • In einigen Gesichtspunkten der Offenbarung kann die SSD 200 eine größere Zahl von NVMs 208 enthalten (z. B. in verschiedenen NAND-Flash-Chips) als in 2 dargestellt. Zum Beispiel kann der NVM 208 tausende von NAND-Blöcken (z.B. n ≥ 1000) und hunderte von Seiten (z. B. m > 100) pro Block einschließen. Jedes NVMs (z. B. NVM 208), jeder Block (z. B. Block 0 210) und jede Seite (z. B. Seite 0 216) kann seine eigenen einzigartigen Fehlerkorrekturcode-(ECC)-Anforderungen besitzen, um ihren Nutzen für die SSD 200 zu maximieren. Solche ECC-Anforderungen können auf der Grundlage der Leistungsfähigkeit des zugehörigen Datenspeicherbereichs (z. B. NVM-Array, Block, Seite usw.) in der SSD 200 bestimmt werden. Zum Beispiel kann die Leistungsfähigkeit (auch als Status oder Bedingung bezeichnet) einer Seite oder eines Blocks auf der Grundlage einer oder mehrerer Leistungsmetriken des Speicherbereichs bestimmt werden. Bei einigen Gesichtspunkten können die eine oder die mehreren Leistungsmetrik(en) mindestens eine Bitfehlerrate (BER), eine Bitfehleranzahl, eine Zahl von Programmier-Löschzyklen, eine Fehlerkorrekturcode-(ECC)-Dekodierlatenzzeit, eine Programmierdauer, eine Löschzyklusdauer oder eine Lesesuchdauer einschließen. Zum Beispiel kann die BER eine Funktion eines oder mehrerer physikalischer Parameter sein, einschließlich, aber nicht begrenzt auf, Prozessabweichungen von Halbleitern, Wafer-Position, Wortleitung, Medienformattyp (z. B. SLC, MLC, TLC, QLC), Programmier-Löschzyklen und Störungseffekte. Zum Beispiel kann sich die Lesesuchdauer auf einen Zeitraum beziehen, der für das Erkennen von Informationen (z. B. ein Spannungsniveau, das einem Bitwert oder einer Sequenz von Bitwerten entspricht) benötigt wird, die während eines Lesevorgangs in einer Speicherzelle gespeichert sind.
  • Die hierin beschriebenen Gesichtspunkte können es jedem Datenspeicherbereich (z. B. NVM-Array, einem Block und/oder einer Seite) des NVMs 208 ermöglichen, eine einzigartige ECC-Stärke, Codewortstruktur und/oder einen Medienformattyp zu besitzen. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 das am besten geeignete Speicherformat für einen Datenspeicherbereich (z. B. einen Block, eine Seite usw.) auswählen, um die Mindestanforderungen (z. B. im schlimmsten Fall) hinsichtlich Ausdauer und Zuverlässigkeit des Datenspeicherbereichs und einer Spanne innerhalb des Datenspeicherbereichs zu erfüllen.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 die Leistungsfähigkeit (z. B. BER) einer Datenspeicherregion in der SSD 200 bestimmen. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 ein zweidimensionales skalierbares Speicherformat auf den Datenspeicherbereich anwenden. Das zwei-dimensionale skalierbare Speicherformat kann die Anpassung des Speicherformats (z. B. einschließlich sowohl ECC als auch Medienformattyp) gemäß den Bedürfnissen jedes Datenspeicherbereichs (z. B. Block, Seite usw.) und der individuellen Bereiche und Bedürfnisse innerhalb jedes Datenspeicherbereichs ermöglichen. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 ein Speicherformat, das einen Datennutzlast-Speicherplatz des Datenspeicherbereichs maximiert, auf Kosten der Langlebigkeit des Datenspeicherbereichs wählen.
  • 3 veranschaulicht ein erstes Beispiel für eine Speicherplatzzuteilung 300, die gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden kann. Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die Speicherplatzzuteilung 300 auf einer Seite (z. B. Seite 0 216) eines Blocks (z. B. Block 0 210) in dem NVM 208 anwenden. Wie in 3 dargestellt, kann die Seitengröße 302 der Seite L-Bytes sein. Wie ferner in 3 dargestellt, können M-Bytes der verfügbaren L-Bytes für das Speichern einer Datennutzlast (z. B. in 3 als Nutzlastbereich 304 angezeigt) und die verbleibenden N-Bytes der L-Bytes für das Speichern von Paritätsinformationen (z. B. in 3 als Paritätsbereich 306 angezeigt) zugeteilt werden. In einem Beispiel kann die Seitengröße 302 36.672 Bytes sein (z. B. L = 36.672). In diesem Beispiel können 32.768 Bytes dem Nutzlastbereich 304 zugeteilt werden (z. B. M = 32.768), und die verbleibenden 3.904 Bytes können dem Paritätsbereich 306 zugeteilt werden (z. B. L - M = N = 3.904).
  • 4 veranschaulicht ein zweites Beispiel für eine Speicherplatzzuteilung 400, die gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs angewendet werden kann. Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die Speicherplatzzuteilung 400 auf einer Seite (z. B. Seite 1 224) eines Blocks (z. B. Block 1 212) in dem NVM 208 anwenden. In einem Beispiel kann die Seitengröße 402 der Seite 37.952 Bytes sein (z. B., L = 37.952). In diesem Beispiel können 32.768 Bytes dem Nutzlastbereich 404 zugeteilt werden (z. B. M = 32.768), und die verbleibenden 5.184 Bytes können dem Paritätsbereich 406 zugeteilt werden (z. B. L - M = N = 5.184). Es sollte beachtet werden, dass während die Seitengröße 402 im Beispiel von 4 größer als die Seitengröße 302 im Beispiel von 3 ist, können die Nutzlastbereiche 304 und 404 gleich groß sein. Deshalb kann die Speicherplatzzuteilung 400 für einen bestimmten Nutzlastbereich einen größeren Paritätsbereich (z. B. den Paritätsbereich 406) als den Paritätsbereich 306 in der Speicherplatzzuteilung 300 bereitstellen. Deshalb kann die Speicherplatzzuteilung 400 in einigen Gesichtspunkten der Offenbarung eine verbesserte Fehlerkorrekturfähigkeit relativ zur Speicherplatzzuteilung 300 bereitstellen.
  • 5 veranschaulicht ein beispielhaftes Speicherformat 500, das von der Speicherformat-Steuervorrichtung 204 auf einer Seite eines NVMs (z. B. NAND) angewendet werden kann. Zum Beispiel kann das Speicherformat 500 den Medienformattyp der Speicherzellen der Seite auf den SLC-Medienformattyp einstellen. In einem Beispiel kann das Speicherformat 500 auf einer Seite eines NVMs mit der hierin unter Bezugnahme auf 3 besprochenen Speicherplatzzuteilung 300 angewendet werden. Zum Beispiel kann die Seitengröße 502 der Seite L-Bytes sein. Wie in 5 dargestellt, kann die Speicherformat-Steuervorrichtung 204 die L-Bytes der Seite in acht gleich große Gruppen unterteilen. In den hierin beschriebenen Gesichtspunkten kann jede Gruppe als eine logische Seite (LP) bezeichnet werden. Im Beispiel von 5 werden die L-Bytes (z. B. die Speicherzellen der Seite, die für das Speichern der L-Bytes konfiguriert sind) unterteilt, um die logische Seite 0 508, die logische Seite 1 510, die logische Seite 2 512, die logische Seite 3 514, die logische Seite 4 516, die logische Seite 5 518, die logische Seite 6 520 und die logische Seite 7 522 zu bilden. Zum Beispiel kann jede logische Seite einen Datennutzlastbereich (z. B. Datennutzlastbereich 524, 526, 528, 530, 532, 534, 536, 538) mit einer Länge von 504 A-Bytes und einen entsprechenden Paritätsbereich (z. B. Paritätsbereich 540, 542, 544, 546, 548, 550, 552, 554) mit einer Länge von 506 B-Bytes einschließen. Deshalb kann in diesem Beispiel die Summe der acht Datennutzlastbereiche 540, 542, 544, 546, 548, 550, 552, 554 (z. B. (8) x (A-Bytes)) gleich dem Nutzlastbereich 304 in 3 sein. Demgemäß kann die Summe der acht Paritätsbereiche 540, 542, 544, 546, 548, 550, 552, 554 (z. B. (8) x (B-Bytes)) gleich dem Paritätsbereich 306 in 3 sein. Die Gesamtzahl der verfügbaren Bytes auf der Seite (hierin z. B. als L-Bytes angezeigt) kann wie folgt ausgedrückt werden: (8)(A-Bytes) + (8)(B-Bytes).
  • In einem Beispiel, unter Bezugnahme auf 5, wenn die Seitengröße 502 36.672 Bytes beträgt (z. B. L = 36.672), kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 524, 526, 528, 530, 532, 534, 536, 538) 4.096 Bytes aufweisen (z. B, A = 4096) und jeder entsprechende Paritätsbereich (z. B. Paritätsbereich 540, 542, 544, 546, 548, 550, 552, 554) kann 488 Bytes aufweisen (z. B. B = 488). Demgemäß kann, in diesem Beispiel, die Gesamtzahl der verfügbaren Bytes auf der Seite (hierin z. B. als L-Bytes angezeigt) wie folgt ausgedrückt werden: (8)(4096 Bytes) + (8)(488 Bytes) = 36.672 Bytes.
  • In einem anderen Beispiel, unter Bezugnahme auf 5, wenn die Seitengröße 502 37.952 Bytes ist (z. B., L = 37.952), kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 524, 526, 528, 530, 532, 534, 536, 538) 4.096 Bytes aufweisen (z. B., A = 4096) und jeder entsprechende Paritätsbereich (z. B. Paritätsbereich 540, 542, 544, 546, 548, 550, 552, 554) kann 648 Bytes aufweisen (z. B. B = 648). Demgemäß kann, in diesem Beispiel, die Gesamtzahl der verfügbaren Bytes auf der Seite (hierin z. B. als L-Bytes angezeigt) wie folgt ausgedrückt werden: (8)(4096 Bytes) + (8)(648 Bytes) = 37.952 Bytes.
  • 6 veranschaulicht ein Beispiel für ein horizontal skaliertes SLC-Speicherformat 600, das gemäß verschiedenen Gesichtspunkten der Offenbarung auf eine Seite eines NVMs (z. B. NAND) angewendet werden kann. Zum Beispiel kann das SLC-Speicherformat 600 auf einer Seite eines NVMs mit der hierin unter Bezugnahme auf 3 besprochenen Speicherplatzzuteilung 300 angewendet werden. Wie im Beispiel von 6 dargestellt, kann die Speicherformat-Steuervorrichtung 204 die L-Bytes der Seite in sieben gleich große Gruppen (auch als logische Seiten (LPs) bezeichnet) unterteilen. Im Beispiel von 6 werden die L-Bytes (z. B. die Speicherzellen der Seite, die für das Speichern der L-Bytes konfiguriert sind) unterteilt, um die logische Seite 0 608, die logische Seite 1 610, die logische Seite 2 612, die logische Seite 3 614, die logische Seite 4 616, die logische Seite 5 618 und die logische Seite 6 620 zu bilden. Zum Beispiel kann jede logische Seite einen Datennutzlastbereich (z. B. Datennutzlastbereich 622, 624, 626, 628, 630, 632, 634) mit einer Länge von 604 A-Bytes und einen entsprechenden Paritätsbereich (z. B. Paritätsbereich 636, 638, 640, 642, 644, 646, 648) mit einer Länge von 606 B-Bytes einschließen.
  • In einer beispielhaften Konfiguration kann die Seitengröße 602 die gleiche wie die Seitengröße 502 in 5 sein. Zum Beispiel kann die Seitengröße 602 36.672 Bytes sein (z. B. L = 36.672). In diesem Beispiel kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 622, 624, 626, 628, 630, 632, 634) in 6 konfiguriert werden, um die gleiche Größe wie die Datennutzlastbereiche (z. B. Datennutzlastbereich 524) in 5 zu sein. Zum Beispiel kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 622, 624, 626, 628, 630, 632, 634) in 6 4.096 Bytes aufweisen (z. B. A = 4096). Die verbleibenden 8.000 Bytes in der Seite (z. B. L - 7(A) = 36.672 Bytes - 7(4096) Bytes = 8.000 Bytes) können für das Speichern von Paritätsinformationen verwendet werden. Deshalb kann jeder entsprechende Paritätsbereich (z. B. Paritätsbereich 636, 638, 640, 642, 644, 646, 648), in diesem Beispiel, etwa 1.142 Bytes (z. B. B = (8.000 Bytes)/7 ≈ 1.142 Bytes) aufweisen.
  • Es ist zu beachten, dass die Datennutzlastbereiche (z. B. Datennutzlastbereich 622, 624, 626, 628, 630, 632, 634) im horizontal skalierten SLC-Speicherformat 600 und die Datennutzlastbereiche (z. B. Datennutzlastbereich 524, 526, 528, 530, 532, 534, 536, 538) im SLC-Speicherformat 500 gleich groß sind. Da jedoch das horizontal skalierte SLC-Speicherformat 600 eine logische Seite weniger als das SLC-Speicherformat 500 einschließt, stellt das horizontal skalierte SLC-Speicherformat 600 für jeden Datennutzlastbereich einen größeren Paritätsbereich (z. B. Paritätsbereich 636, 638, 640, 642, 644, 646, 648) im Vergleich zu den Paritätsbereichen (z. B. Paritätsbereich 540, 542, 544, 546, 548, 550, 552, 554) im SLC-Speicherformat 500 bereit.
  • 7 veranschaulicht ein Beispiel für ein horizontal skaliertes Single-Level-Zellenspeicherformat (SLC) 700, das gemäß verschiedenen Gesichtspunkten der Offenbarung auf einer Seite eines NVMs (z. B. einer NAND-Vorrichtung) angewendet werden kann. Zum Beispiel kann das SLC-Speicherformat 700 auf einer Seite eines NVMs mit der hierin unter Bezugnahme auf 4 erörterten Speicherplatzzuteilung 400 angewendet werden. Wie im Beispiel von 7 dargestellt, kann die Speicherformat-Steuervorrichtung 204 die L-Bytes der Seite in neun gleich große Gruppen (auch als logische Seiten (LPs) bezeichnet) unterteilen. Im Beispiel von 7 werden die L-Bytes (z. B. die Speicherzellen der Seite, die für das Speichern der L-Bytes konfiguriert sind) unterteilt, um die logische Seite 0 708, die logische Seite 1 710, die logische Seite 2 712, die logische Seite 3 714, die logische Seite 4 716, die logische Seite 5 718, die logische Seite 6 720, die logische Seite 7 722 und die logische Seite 8 724 zu bilden. Zum Beispiel kann jede logische Seite einen Datennutzlastbereich (z. B. Datennutzlastbereich 726, 728, 730, 732, 734, 736, 738, 740, 742) mit einer Länge von 704 A-Bytes und einen entsprechenden Paritätsbereich (z. B. Paritätsbereich 744, 746, 748, 750, 752, 754, 756, 758, 760) mit einer Länge von 706 B-Bytes einschließen.
  • In einer beispielhaften Konfiguration kann die Seitengröße 702 die gleiche wie die Seitengröße 502 in 5 sein. Zum Beispiel kann die Seitengröße 702 37.952 Bytes sein (z. B. L = 37.952). In diesem Beispiel kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 726, 728, 730, 732, 734, 736, 738, 740, 742) in 7 konfiguriert werden, um die gleiche Größe wie die Datennutzlastbereiche (z. B. Datennutzlastbereich 524) in 5 zu sein. Zum Beispiel kann jeder Datennutzlastbereich (z. B. Datennutzlastbereich 726, 728, 730, 732, 734, 736, 738, 740, 742) in 7 4.096 Bytes aufweisen (z. B. A = 4096). Die verbleibenden 1.088 Bytes in der Seite (z. B. L - 9(A) = 37.952 Bytes - 9(4096) Bytes = 1.088 Bytes) können für das Speichern von Paritätsinformationen verwendet werden. Deshalb kann jeder entsprechende Paritätsbereich (z. B. Paritätsbereich 744, 746, 748, 750, 752, 754, 756, 758, 760), in diesem Beispiel, etwa 120 Bytes aufweisen (z. B. B = (1.088 Bytes)/9 ≈ 120 Bytes).
  • Es ist zu beachten, dass die Datennutzlastbereiche (z. B. Datennutzlastbereich 726, 728, 730, 732, 734, 736, 738, 740, 742) im horizontal skalierten SLC-Speicherformat 700 und die Datennutzlastbereiche (z. B. Datennutzlastbereich 524, 526, 528, 530, 532, 534, 536, 538) im SLC-Speicherformat 500 gleich groß sind. Da jedoch das horizontal skalierte SLC-Speicherformat 700 eine logische Seite mehr als das SLC-Speicherformat 500 einschließt, stellt das horizontal skalierte SLC-Speicherformat 700 für jeden Datennutzlastbereich einen kleineren Paritätsbereich (z. B. Paritätsbereich 744, 746, 748, 750, 752, 754, 756, 758, 760) im Vergleich zu den Paritätsbereichen (z. B. Paritätsbereich 540, 542, 544, 546, 548, 550, 552, 554) im SLC-Speicherformat 500 bereit.
  • 8 (einschließlich 8A bis 8E) veranschaulicht Beispiele von Speicherformaten für einen NVM gemäß verschiedenen Gesichtspunkten der Offenbarung. In einigen Gesichtspunkten der Offenbarung kann 8A ein Beispiel eines Standardspeicherformats 800, das auf einer Seite in einem NVM angewendet wird, darstellen. Wie bereits beschrieben, kann die Seite in dem NVM einen Satz von Speicherzellen (auch als Wortleitung bezeichnet) darstellen und die Seitengröße 802 der Seite kann L-Bytes sein. Wie in der beispielhaften Konfiguration von 8A dargestellt, können die L-Bytes der Seite (z. B. die Speicherzellen der Seite) in acht gleich große Gruppen unterteilt werden, wie z. B. die erste Gruppe 806 (auch als Gruppe 0 bezeichnet) und die achte Gruppe 808 (auch als Gruppe 8 bezeichnet). Außerdem kann in dem Standardspeicherformat 800 jede Speicherzelle der Seite als Quad-Level-Zelle (QLC) konfiguriert werden. Demgemäß kann jede Speicherzelle vier Bits speichern. Wie in 8A dargestellt, kann jedes der vier in einer Speicherzelle einer Gruppe gespeicherten Bits einer anderen logischen Seite (LP) entsprechen. Zum Beispiel kann ein erstes Bit einer Speicherzelle in der ersten Gruppe 806 einer unteren logischen Seite 0 (LP0) entsprechen, ein zweites Bit der Speicherzelle in der ersten Gruppe 806 kann einer mittleren logischen Seite 0 (MP0) entsprechen, ein drittes Bit der Speicherzelle in der ersten Gruppe 806 kann einer oberen logischen Seite 0 (UP0) entsprechen, und ein viertes Bit der Speicherzelle in der ersten Gruppe 806 kann einer obersten logischen Seite 0 (TP0) entsprechen.
  • In dem Standardspeicherformat 800 kann ein Abschnitt des verfügbaren Speicherplatzes in jeder logischen Seite für die Speicherung von Datenbits (auch als Datennutzlastbereich bezeichnet) zugeteilt werden, während der verbleibende Abschnitt des verfügbaren Speicherplatzes in jeder logischen Seite zum Speichern von Paritätsinformationen (auch als Paritätsbereich bezeichnet) zugeteilt werden kann. In einigen Gesichtspunkten der Offenbarung können die Paritätsinformationen Paritätsbits (auch als Fehlerkorrekturcode-(ECC)-Bits bezeichnet) einschließen. In einigen Gesichtspunkten der Offenbarung kann jede logische Seite in dem Standardspeicherformat 800 die gleiche Länge wie die Länge 804 aufweisen. In einem Beispiel, ähnlich der Konfiguration in 5, wenn die Seitengröße 802 36.672 Bytes ist (z. B. L = 36.672), kann jede logische Seite einen Datennutzlastbereich von 4.096 Bytes (z. B. A = 4096) und einen entsprechenden Paritätsbereich von 488 Bytes (z. B. B = 488) einschließen. Demgemäß kann, in diesem Beispiel, die Gesamtzahl der verfügbaren Bytes in jeder Reihe von logischen Seiten (z. B. die Reihe 810) wie folgt ausgedrückt werden: (8)(4096 Bytes) + (8)(488 Bytes) = 36.672 Bytes.
  • Das Standardspeicherformat 800 in 8A kann als zweidimensional betrachtet werden. Zum Beispiel kann sich eine erste Dimension (auch als horizontale Dimension bezeichnet) des Standardspeicherformats 800 auf die Zahl der logischen Seiten in jeder Reihe (z. B. Reihe 807) des Standardspeicherformats 800 beziehen. Eine zweite Dimension (auch als vertikale Dimension bezeichnet) des Standardspeicherformats 800 kann sich auf die Zahl der logischen Seiten in jeder Spalte (z. B. die logischen Seiten LP0, MP0, UP0 und TP0 in der Spalte 809) des Standardspeicherformats 800 beziehen. Die Begriffe horizontale Dimension und vertikale Dimension, wie hierin verwendet, scheinen zwar eine physikalische Beziehung zu implizieren, wie in den 8A bis 8E dargestellt, beziehen sich jedoch nur auf die erste und zweite Dimension eines Speicherbereichs, die skalierbare Merkmale dieses Speicherbereichs sind. Die erste oder horizontale Dimension kann sich auf die Zahl der logischen Seiten einer Seite, die aus einer vorgewählten Zahl von mehrstufigen Speicherzellen besteht, beziehen. Die zweite oder vertikale Dimension kann sich auf die Zahl der Speicherebenen in einer der mehrstufigen Speicherzellen beziehen. So kann sich die horizontale Dimensionsskalierung, wie hierin verwendet, auf das Skalieren der Zahl der in einer bestimmten Seite verwendeten logischen Seiten beziehen. Andererseits kann sich die vertikale Dimensionsskalierung, wie hierin verwendet, auf das Skalieren der Zahl der Bits, die pro Speicherzelle in der gegebenen Seite verwendet werden, beziehen. Wie unter Bezugnahme auf 8B bis 8E hierin beschrieben, kann das Standardspeicherformat 800 in der horizontalen Dimension und/oder der vertikalen Dimension gemäß den Anforderungen an Speicherzuverlässigkeit und-langlebigkeit jeder Speicherkomponente in einem NVM skaliert werden.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 das Standard-Speicherformat 800 in der horizontalen Dimension durch Erhöhen oder Verringern der Zahl der logischen Seiten in jeder Reihe des Standardspeicherformats 800 skalieren. In einigen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 die Größe der Datennutzlast in jeder logischen Seite beibehalten, wenn das Standardspeicherformat 800 in der horizontalen Dimension skaliert wird (z. B. durch Vergrößern oder Verkleinern). In einigen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 das Standardspeicherformat 800 in der vertikalen Dimension skalieren, um die Zahl der in jeder Speicherzelle gespeicherten Bits zu erhöhen oder zu verringern. In einigen Gesichtspunkten, wie hierin beschrieben, kann die Speicherformat-Steuervorrichtung 204 sowohl das horizontale als auch das vertikale Skalieren kombinieren, um beim Ändern des Speicherformats einer Seite in einem NVM einen feineren Granularitätsspeicher zu erreichen. Unter solchen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 das Speicherformat einer Seite konfigurieren, um eine maximale Speichereffizienz der Seite zu erreichen, während die Langlebigkeit (auch als Ausdauer bezeichnet) des NVMs verlängert wird.
  • 8B veranschaulicht ein Beispiel für ein horizontal skaliertes Speicherformat 810 für eine Seite in einem NVM gemäß verschiedenen Gesichtspunkten der Offenbarung. Wie im Beispiel von 8B dargestellt, kann die Steuerung die Zahl der logischen Seiten in jeder Reihe des Standardspeicherformats 800 herunterskalieren (z. B. verringern). Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die horizontale Dimension des Standardspeicherformats 800 herunterskalieren, um sieben logische Seiten (z. B. LP0 bis LP6) in jeder Reihe einzuschließen, wie im horizontal skalierten Speicherformat 810 von 8B dargestellt. In einem Gesichtspunkt kann die Speicherformat-Steuervorrichtung 204 ein solches horizontales Skalieren auf ähnliche Weise wie in Bezug auf die beschriebene 6 durchführen. Da jede Reihe (z. B. Reihe 807) des horizontal skalierten Speicherformats 810 eine logische Seite weniger als die des Standardspeicherformats 800 einschließt, kann die Größe 812 jeder logischen Seite im horizontal skalierten Speicherformat 810 größer als die Größe 804 jeder logischen Seite im Standardspeicherformat 800 sein. Die größere Größe 812 jeder logischen Seite im horizontal skalierten Speicherformat 810 kann jeder logischen Seite ermöglichen, einen größeren Paritätsbereich für eine Datennutzlast im Vergleich zu jeder logischen Seite des Standardspeicherformats 800 einzuschließen. In einigen Gesichtspunkten der Offenbarung kann der Nutzlastbereich in jeder logischen Seite des Standardspeicherformats 800 gleich dem Nutzlastbereich in jeder logischen Seite des horizontal skalierten Speicherformats 810 sein.
  • Deshalb kann die Speicherformat-Steuervorrichtung 204 in einigen Gesichtspunkten der Offenbarung das Standardspeicherformat 800 in der horizontalen Dimension herunterskalieren, wie in 8B dargestellt, um die ECC-Code-Rate zu verringern. Zum Beispiel kann die ECC-Code-Rate für eine logische Seite durch Vergrößern des Paritätsbereichs (z. B. durch Erhöhen der Zahl der ECC-Paritätsbits) für eine bestimmte Datennutzlast in der logischen Seite verringert werden.
  • In dem horizontal skalierten Speicherformat 810 ist zu beachten, dass die Speicherformat-Steuervorrichtung 204 kein vertikales Skalieren in Bezug auf das Standardspeicherformat 800 angewendet hat. Deshalb ist, ähnlich wie bei dem Standardspeicherformat 800, jede Speicherzelle der Seite eine QLC. Demgemäß kann jede Speicherzelle der Seite vier Bits speichern. Wie in 8B dargestellt, kann jedes der vier Bits in einer Speicherzelle einer anderen logischen Seite entsprechen. Zum Beispiel kann ein erstes Bit einer Speicherzelle in der ersten Gruppe 814 einer unteren Seite 0 (LP0) entsprechen, ein zweites Bit der Speicherzelle in der ersten Gruppe 814 kann einer mittleren Seite 0 (MP0) entsprechen, ein drittes Bit der Speicherzelle in der ersten Gruppe 814 kann einer oberen Seite 0 (UP0) entsprechen, und ein viertes Bit der Speicherzelle in der ersten Gruppe 814 kann einer obersten Seite 0 (TP0) entsprechen.
  • 8C veranschaulicht ein Beispiel für ein vertikal skaliertes Speicherformat 820 für ein NVM gemäß verschiedenen Gesichtspunkten der Offenbarung. Wie zuvor beschrieben, kann eine Seite in dem NVM einen Satz von Speicherzellen (auch als Wortleitung bezeichnet) darstellen und die Seitengröße 802 der Seite kann L-Bytes sein. In einigen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 die vertikale Dimension des Standardspeicherformats 800 herunterskalieren (z. B. verringern), indem jede Speicherzelle als Triple-Level Zelle (TLC) konfiguriert wird. Demgemäß kann, wie in 8C dargestellt, jede Speicherzelle drei Bits speichern. Wie ferner in 8C dargestellt, kann jedes der drei in einer Speicherzelle gespeicherten Bits einer anderen logischen Seite (LP) entsprechen. Zum Beispiel kann ein erstes Bit einer Speicherzelle in der ersten Gruppe 824 einer unteren logischen Seite 0 (LP0) entsprechen, ein zweites Bit der Speicherzelle in der ersten Gruppe 824 kann einer mittleren logischen Seite 0 (MP0) entsprechen, und ein drittes Bit der Speicherzelle in der ersten Gruppe 824 kann einer oberen logischen Seite 0 (UP0) entsprechen.
  • In dem vertikal skalierten Speicherformat 820 ist zu beachten, dass die Speicherformat-Steuervorrichtung 204 kein horizontales Skalieren in Bezug auf das Standardspeicherformat 800 angewendet hat. Deshalb kann in einigen Gesichtspunkten der Offenbarung die Größe 822 jeder logischen Seite im vertikal skalierten Speicherformat 820 gleich der Größe 804 jeder logischen Seite im Standardspeicherformat 800 sein.
  • 8D veranschaulicht ein Beispiel für ein horizontal und vertikal skaliertes Speicherformat 830 für ein NVM gemäß verschiedenen Gesichtspunkten der Offenbarung. Wie im Beispiel von 8D dargestellt, kann die Speicherformat-Steuervorrichtung 204 die Zahl der logischen Seiten in jeder Reihe des Standardspeicherformats 800 herunterskalieren (z. B. verringern). Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die horizontale Dimension des Standardspeicherformats 800 herunterskalieren, um sieben logische Seiten (z. B. LP0 bis LP6) in jeder Reihe einzuschließen, wie im horizontal und vertikal skalierten Speicherformat 830 von 8D dargestellt. In einem Gesichtspunkt kann die Speicherformat-Steuervorrichtung 204 ein solches horizontales Skalieren auf ähnliche Weise wie in Bezug auf die beschriebene 6 durchführen. Da jede Reihe des horizontal und vertikal skalierten Speicherformats 830 eine logische Seite weniger als die des Standardspeicherformats 800 einschließt, kann die Größe 832 jeder logischen Seite im horizontal und vertikal skalierten Speicherformat 830 größer als die Größe 804 jeder logischen Seite im Standardspeicherformat 800 sein. Die größere Größe 832 jeder logischen Seite im horizontal und vertikal skalierten Speicherformat 830 kann jeder logischen Seite ermöglichen, einen größeren Paritätsbereich für eine Datennutzlast im Vergleich zu jeder logischen Seite des Standardspeicherformats 800 einzuschließen. In einigen Gesichtspunkten der Offenbarung kann der Nutzlastbereich in jeder logischen Seite des Standardspeicherformats 800 gleich dem Nutzlastbereich in jeder logischen Seite des horizontal skalierten Speicherformats 830 sein.
  • Wie ferner in 8D dargestellt, kann die Speicherformat-Steuervorrichtung 204 die vertikale Dimension des Standardspeicherformats 800 herunterskalieren (z. B. verringern), indem jede Speicherzelle als Triple-Level Zelle (TLC) konfiguriert wird. Demgemäß kann, wie in 8D dargestellt, jede Speicherzelle drei Bits speichern. Wie in 8D dargestellt, kann jedes der drei in einer Speicherzelle gespeicherten Bits einer anderen logischen Seite (LP) entsprechen. Zum Beispiel kann ein erstes Bit einer Speicherzelle in der ersten Gruppe 834 einer unteren logischen Seite 0 (LP0) entsprechen, ein zweites Bit der Speicherzelle in der ersten Gruppe 834 kann einer mittleren logischen Seite 0 (MP0) entsprechen und ein drittes Bit der Speicherzelle in der ersten Gruppe 834 kann einer oberen logischen Seite 0 (UP0) entsprechen. Es sollte verstanden werden, dass durch das Herunterskalieren der vertikalen Dimension des Speicherformats 800 z. B. die Zuverlässigkeit des zugehörigen Datenspeicherbereichs verbessert werden kann.
  • 8E veranschaulicht ein Beispiel für ein horizontal und vertikal skaliertes Speicherformat 840 für ein NVM gemäß verschiedenen Gesichtspunkten der Offenbarung. Wie im Beispiel von 8E dargestellt, kann die Speicherformat-Steuervorrichtung 204 die Zahl der logischen Seiten in jeder Reihe des Standardspeicherformats 800 hochskalieren (z. B. erhöhen). Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die horizontale Dimension des Standardspeicherformats 800 hochskalieren, um neun logische Seiten (z. B. LP0 bis LP8) in jeder Reihe einzuschließen, wie im horizontal und vertikal skalierten Speicherformat 840 von 8E dargestellt. In einem Gesichtspunkt kann die Speicherformat-Steuervorrichtung 204 ein solches horizontales Skalieren auf ähnliche Weise wie in Bezug auf die beschriebene 7 durchführen. Da jede Reihe des horizontal und vertikal skalierten Speicherformats 840 eine logische Seite mehr als die des Standardspeicherformats 800 einschließt, kann die Größe 842 jeder logischen Seite im horizontal und vertikal skalierten Speicherformat 840 kleiner als die Größe 804 jeder logischen Seite im Standardspeicherformat 800 sein. Die kleinere Größe 842 jeder logischen Seite im horizontal und vertikal skalierten Speicherformat 830 kann zu einem kleineren Paritätsbereich für eine Datennutzlast auf jeder logischen Seite im Vergleich zu jeder logischen Seite des Standardspeicherformats 800 führen. In einigen Gesichtspunkten der Offenbarung kann der Nutzlastbereich in jeder logischen Seite des Standardspeicherformats 800 gleich dem Nutzlastbereich in jeder logischen Seite des horizontal skalierten Speicherformats 840 sein.
  • Wie ferner in 8E dargestellt, kann die Speicherformat-Steuervorrichtung 204 die vertikale Dimension des Standardspeicherformats 800 herunterskalieren (z. B. verringern), indem jede Speicherzelle als der TLC-Medienformattyp konfiguriert wird. Demgemäß kann, wie in 8E dargestellt, jede Speicherzelle drei Bits speichern. Wie in 8E dargestellt, kann jedes der drei in einer Speicherzelle gespeicherten Bits einer anderen logischen Seite (LP) entsprechen. Zum Beispiel kann ein erstes Bit einer Speicherzelle in der ersten Gruppe 844 einer unteren logischen Seite 0 (LP0) entsprechen, ein zweites Bit der Speicherzelle in der ersten Gruppe 844 kann einer mittleren logischen Seite 0 (MP0) entsprechen und ein drittes Bit der Speicherzelle in der ersten Gruppe 844 kann einer oberen logischen Seite 0 (UP0) entsprechen.
  • Wie hierin beschrieben, kann die Speicherformat-Steuervorrichtung 204 ein horizontales Skalieren in Bezug auf ein Standardspeicherformat (z. B. das Standardspeicherformat 800) für eine Seite in einem NVM durchführen, um verschiedene Speicherformate zu erreichen. In einem Beispiel kann die Speicherformat-Steuervorrichtung 204 ein horizontales Skalieren durchführen, um ein Speicherformat (z. B. das Speicherformat 810) zu erreichen, das im Vergleich zum Standardspeicherformat weniger logische Seiten mit größeren Paritätsbereichen einschließt. In einem anderen Beispiel kann die Speicherformat-Steuervorrichtung 204 ein horizontales Skalieren durchführen, um ein Speicherformat (z. B. das Speicherformat 840) zu erreichen, das im Vergleich zum Standardspeicherformat mehr logische Seiten mit kleineren Paritätsbereichen einschließt. Da das horizontale Skalieren die Größe des Paritätsbereichs für eine Datennutzlast in jeder logischen Seite vergrößern oder verkleinern kann, kann die Speicherformat-Steuervorrichtung 204 ein horizontales Skalieren durchführen, um einen gewünschten ECC-Formattyp für eine Seite in einem NVM zu erreichen.
  • In einer beispielhaften Konfiguration kann ein Standardspeicherformat, das durch Unterteilen von L-Bytes einer Seite in acht logische Seiten erhalten wird (z. B. das Speicherformat 800), als ein 8/8 ECC-Formattyp identifiziert werden. Andere Speicherformate, die durch horizontales Skalieren eines solchen Standardspeicherformats erreicht werden, können als ein x/8 ECC-Formattyp identifiziert werden, wobei x die Zahl der logischen Seiten darstellt, die sich aus einem horizontalen Skalierungsvorgang ergibt. Zum Beispiel könnte das Speicherformat 840 in 8E einschließlich der neun logischen Seiten (z. B. x = 9) in jeder Reihe (z. B. Reihe 846) einen 9/8 ECC-Formattyp aufweisen. Als ein weiteres Beispiel könnte das Speicherformat 830 in 8D einschließlich der sieben logischen Seiten (z. B. x= 7) in jeder Reihe (z. B. Reihe 838) einen 7/8 ECC-Formattyp aufweisen.
  • Gemäß den hierin beschriebenen Gesichtspunkten kann ein x/8 ECC-Formattyp, bei dem x < 8, die Speicherzuverlässigkeit einer Seite in einem NVM auf Kosten der Speichereffizienz verbessern. Mit anderen Worten, die Zahl der Paritätsbits für eine Seite kann erhöht werden, während die Datenspeicherkapazität der Seite verringert wird (z. B. durch eine Verringerung der Zahl von logischen Seiten). Dieses Szenario kann am Beispiel des in 6 dargestellten horizontal skalierten SLC-Speicherformats 600 beobachtet werden. Außerdem kann ein x/8 ECC-Formattyp, bei dem x > 8, die Speichereffizienz einer Seite in einem NVM auf Kosten der Speicherzuverlässigkeit erhöhen. Mit anderen Worten, die Datenspeicherkapazität einer Seite kann erhöht werden (z. B. durch eine Erhöhung der Zahl der logischen Seiten), während die Zahl der Paritätsbits für die Seite verringert werden kann. Dieses Szenario kann am Beispiel des in 7 dargestellten horizontal skalierten SLC-Speicherformats 700 beobachtet werden.
  • 9 veranschaulicht ein beispielhaftes Diagramm 900, das beispielhafte Speicherformate anzeigt, die gemäß verschiedenen Gesichtspunkten der vorliegenden Offenbarung auf eine Seite eines NVMs (z. B. ein NVM, wie ein NAND) angewendet werden können. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 die hierin beschriebenen beispielhaften Speicherformate in Bezug auf 9 auswählen und/oder anwenden.
  • Wie in 9 dargestellt, kann die Speicherformat-Steuervorrichtung 204 ein Speicherformat für eine Seite in einem NVM auswählen, indem sie den Medienformattyp der Speicherzellen der Seite und/oder den auf die Seite angewendeten ECC-Formattyp konfiguriert. In einigen Gesichtspunkten kann z. B. die Speicherformat-Steuervorrichtung 204 den Medienformattyp der Speicherzellen der Seite als SLC-Typ 902 (z. B. können die Speicherzellen der Seite ein Bit pro Zelle (1 BPC) speichern), als MLC-Typ 904 (z. B. können die Speicherzellen der Seite zwei Bits pro Zelle (2 BPC) speichern), als TLC-Typ 906 (z. B können die Speicherzellen der Seite drei Bits pro Zelle (3 BPC) speichern), als ein Fraktionsebenen-Zellentyp 908 (z. B. können die Speicherzellen der Seite 3,5 Bits pro Zelle (3,5 BPC) speichern), oder der QLC-Typ 910 (z. B. können die Speicherzellen der Seite vier Bits pro Zelle (4 BPC) speichern). In einigen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 z. B. den 9/8-ECC-Formattyp 912, den 8/8-ECC-Formattyp 914, den 7/8-ECC-Formattyp 916 oder den 6/8-ECC-Formattyp 918 auswählen. Wie hierin beschrieben, kann der 8/8 ECC-Formattyp 914 einen Standardspeicherformattyp darstellen (z. B. das Standardspeicherformattyp 800).
  • Das beispielhafte Diagramm 900 zeigt die mögliche Zahl der logischen Seiten an, die in einer Seite eines NVM für einen gegebenen Medienformattyp und einen ECC-Formattyp konfiguriert werden können. In einigen Gesichtspunkten der Offenbarung kann sich die im Diagramm 900 angegebene Zahl der logischen Seiten auf logische Seiten beziehen, die die gleiche Datennutzlastgröße einschließen (z. B. eine Datennutzlastgröße von 4096 Bytes). In einigen Gesichtspunkten der Offenbarung kann sich die Zahl der logischen Seiten in verschiedenen Spalten des Diagramms 900 auf logische Seiten beziehen, die Paritätsbereiche unterschiedlicher Größe einschließen (z. B. als Ergebnis des hier beschriebenen horizontalen Skalierens). In einem ersten Beispiel mit Bezug auf das Diagramm 900 kann die Seite 32 logische Seiten einschließen, wenn die Speicherformat-Steuervorrichtung 204 den Medienformattyp der Speicherzellen einer Seite als QLC-Typ 910 konfiguriert und den 8/8 ECC-Formattyp 914 anwendet. Diese Konfiguration kann das Standardspeicherformat 800 darstellen, das zuvor unter Bezugnahme auf 8 erörtert wurde. Zum Beispiel ist zu erkennen, dass das Standardspeicherformat 800 vier Reihen, die jeweils acht logische Seiten enthalten, umfasst (z. B. 4 x 8 = 32 logische Seiten). In einem zweiten Beispiel mit Bezug auf das Diagramm 900 kann die Seite neun logische Seiten einschließen, wenn die Speicherformat-Steuervorrichtung 204 den Medienformattyp der Speicherzellen einer Seite als SLC-Typ 902 konfiguriert und den 9/8 ECC-Formattyp 912 anwendet. Gemäß den hierin beschriebenen Gesichtspunkten können die Paritätsbereiche, die in jeder der neun logischen Seiten des zweiten Beispiels eingeschlossen sind, kleiner sein als die Paritätsbereiche, die in jeder der 32 logischen Seiten des ersten Beispiels eingeschlossen sind.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 ein Speicherformat für eine oder mehrere Seiten eines NVMs auf der Grundlage eines oder mehrerer Kriterien auswählen. In einem Gesichtspunkt können die Kriterien eine oder mehrere Leistungsmetriken einer Seite einschließen. Zum Beispiel können das eine oder die mehrere Kriterien eine Bitfehlerrate (BER), eine Bitfehleranzahl, eine Zahl von Programmier-Löschzyklen, eine ECC-Decodierlatenzzeit, eine Programmierdauer, eine Löschzyklusdauer, eine Lesesuchdauer und/oder andere Daten, die die Zuverlässigkeit und/oder Langlebigkeit eines Speichermediums (z. B. eine Seite eines NVMs) anzeigen können, einschließen.
  • In einer beispielhaften Umsetzung können die Kriterien für die Auswahl des Speicherformats für eine Seite auf der BER der Seite basieren, und die Speicherformat-Steuervorrichtung 204 kann ein Speicherformat entsprechend der BER der Seite anwenden. Die Speicherformat-Steuervorrichtung 204 kann die BER der Seite erhalten, indem sie ein in der Seite gespeichertes Codewort dekodiert und die Zahl der fehlerhaften Bits (z. B. Fehlerbits) bestimmt, die im Codewort waren. Die Speicherformat-Steuervorrichtung 204 kann dann das Verhältnis der Zahl der fehlerhaften Bits zu der Zahl der Bits im Codewort bestimmen, um die BER zu erhalten. In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 die BER einer oder mehrerer Seiten im NVM 208 überwachen (z. B. verfolgen).
  • In einem Beispiel kann die Speicherformat-Steuervorrichtung 204 ein erstes Speicherformat anwenden, wenn die BER einen ersten Schwellenwert überschreitet, ein zweites Speicherformat, wenn die BER einen zweiten Schwellenwert überschreitet, und so weiter. Die Speicherformat-Steuervorrichtung 204 kann ein Speicherformat mit einer kleineren Speichereffizienz und/oder einem robusteren ECC-Format auswählen, während sich die BER für die Seite erhöht. Zum Beispiel kann die Speicherformat-Steuervorrichtung 204 die BER für eine Seite überwachen, die mit einem Standardspeicherformat konfiguriert ist. In einem Beispiel kann das Standardspeicherformat das Standardspeicherformat 800 in 8A sein. Demgemäß kann die Seite unter Bezugnahme auf 9 mit dem QLC-Medienformattyp 910 und dem 8/8 ECC-Formattyp 914 konfiguriert werden. Deshalb kann die Seite unter Bezugnahme auf 9 32 logische Seiten einschließen. In diesem Beispiel kann die Speicherformat-Steuervorrichtung 204, wenn die BER für die Seite einen ersten Schwellenwert überschreitet, das Standardspeicherformat auf den 7/8 ECC-Formattyp 914 horizontal herunterskalieren, um die Speicherzuverlässigkeit zu verbessern. Deshalb kann die Seite unter Bezugnahme auf 9 28 logische Seiten einschließen. In Fortsetzung dieses Beispiels kann die Speicherformat-Steuervorrichtung 204, wenn die BER für die Seite immer noch den ersten Schwellenwert überschreitet, das Speicherformat ferner auf den 6/8 ECC-Formattyp 914 horizontal herunterskalieren, um die Speicherzuverlässigkeit weiter zu verbessern. Deshalb kann die Seite unter Bezugnahme auf 9 24 logische Seiten einschließen. Wenn die BER für die Seite weiterhin den ersten Schwellenwert überschreitet, kann die Speicherformat-Steuervorrichtung 204 das Speicherformat vertikal herunterskalieren, indem die Speicherzellen der Seite als TLC-Typ 906 konfiguriert werden. Deshalb kann die Seite unter Bezugnahme auf 9 18 logische Seiten einschließen. Durch das Konvertieren der Speicherzellen der Seite von dem QLC-Typ 910 in den TLC-Typ 906 kann die Seite trotz Beibehalten des gleichen ECC-Formattyps (z. B. der 6/8 ECC-Formattyp 918) robuster und widerstandsfähiger gegen Fehler sein.
  • In einigen Gesichtspunkten der Offenbarung kann der zuvor beschriebene erste Schwellenwert auf eine BER eingestellt werden, die die maximale BER darstellt, so dass ein Speicherbereich als nutzbarer Speicherbereich betrachtet werden kann (z. B. ein guter Block in einer NAND). Mit anderen Worten, Speicherbereiche mit einer BER, die diese maximale BER überschreiten, können als unbrauchbar betrachtet werden (z. B. ein schlechter Block in einer NAND). Deshalb kann der zuvor beschriebene Ansatz einem Speicherbereich in einem NVM (z. B. NVM 208) ermöglichen, eine BER zu erreichen, die verhindert, dass ein oder mehrere Speicherbereiche als unbrauchbar betrachtet werden, wodurch die Langlebigkeit des NVMs verbessert wird. Außerdem kann durch das Herunterskalieren des Speicherformats einer Seite, wie zuvor beschrieben, um die Zuverlässigkeit der Seite zu verbessern, auch die Lese-/Schreibleistung (z. B. die Dekodiergeschwindigkeit) der Seite verbessert werden.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 die BER einer Seite in Echtzeit verfolgen. In diesen Gesichtspunkten kann die Speicherformat-Steuervorrichtung 204 dynamisch ein entsprechendes Speicherformat auswählen und auf die Seite anwenden, gemäß einem aktuellen Wert der BER auf der Grundlage der hier beschriebenen Gesichtspunkte.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 konfiguriert werden, um ein Speicherformat für eine Seite auszuwählen, das die größte Speichereffizienz bereitstellt. Wenn zum Beispiel in Bezug auf 9 ein erstes Speicherformat (z. B. ein Speicherformat, das den Fraktionsebenen-Zellmedientyp 908 und den 8/8 ECC-Formattyp 914 anwendet) 28 logische Seiten liefern kann und ein zweites Speicherformat (z. B. ein Speicherformat, das den TLC-Typ 906 und den 9/8 ECC-Formattyp 912 anwendet) 27 logische Seiten liefern kann, kann die Speicherformat-Steuervorrichtung 204 es vorziehen, das erste Speicherformat anzuwenden. Zum Beispiel kann der Fraktionsebenen-Zellmedienformattyp 908 durch die Verwendung von vollständigem Sequenzlesen und fortgeschrittenen Signalverarbeitungstechniken angewendet werden.
  • In einigen Gesichtspunkten der Offenbarung kann die Speicherformat-Steuervorrichtung 204 konfiguriert werden, um ein Speicherformat, das die meisten Programmier-Löschzyklen für die Seite bereitstellt, auszuwählen. Unter diesen Gesichtspunkten kann zum Beispiel die Speicherformat-Steuervorrichtung 204 das zweite Speicherformat auswählen, wenn das zweite Speicherformat im vorstehenden Beispiel mehr Programmier-Löschzyklen für die Seite als das erste Speicherformat bereitstellt. Deshalb kann die Speicherformat-Steuervorrichtung 204 durch Auswählen des zweiten Speicherformats, das eine größere Zahl von Programmier-Löschzyklen bereitstellt, die Langlebigkeit der Seite erhöhen.
  • Wie vorstehend beschrieben, können die hierin enthaltenen Gesichtspunkte die Leistung und Langlebigkeit eines NVMs verbessern. Die horizontale Dimension und/oder die vertikale Dimension der hierin beschriebenen Speicherformate kann jedem Speicherbereich (z. B. Seite, Block usw.) des NVMs 208 erlauben, eine einzigartige ECC-Stärke, Codewortstruktur und/oder einen Medienspeichertyp aufzuweisen. Die Speicherformat-Steuervorrichtung 204 kann das bestgeeignete Speicherformat für einen Datenspeicherbereich bestimmen, um die Belastbarkeits- und Zuverlässigkeitsanforderungen des Datenspeicherbereichs zu erfüllen. Die Speicherformat-Steuervorrichtung 204 kann ferner ein Speicherformat für jeden Speicherbereich bestimmen, um die Benutzerdaten über die Lebensdauer des NVMs 208 zu maximieren.
  • Wenn zum Beispiel eine oder mehrere Seiten eines Blocks in einer NAND beginnen, unterhalb eines akzeptablen Niveaus zu operieren, so dass eine Steuerung der NAND den Block als schlechten Block behandeln würde, kann die offenbarte Speicherformat-Steuervorrichtung 204 die hier beschriebenen Gesichtspunkte anwenden, um die Leistung (z. B. die Speicherzuverlässigkeit) der einen oder mehreren Seiten zu verbessern. Als Ergebnis der verbesserten Leistung kann der Block nicht mehr als schlechter Block betrachtet werden (z. B. kann die Steuerung 206 den Block weiterhin verwenden) und kann daher die Lebensdauer der Speichervorrichtung erhöhen.
  • In einigen Gesichtspunkten der Offenbarung können die hierin beschriebenen Techniken während der Herstellungsphase eines Datenspeichersystems (z. B. SSD) angewendet werden. Zum Beispiel kann eine Speicherformat-Steuervorrichtung (z. B. die Speicherformat-Steuervorrichtung 204) einen oder mehrere Bereiche eines NVMs identifizieren, die als unbrauchbar betrachtet werden (z. B. ein oder mehrere schlechte Blöcke in einer NAND), und ein skaliertes Speicherformat anwenden, um die Verwendung eines oder mehrerer solcher Bereiche eines NVMs zu ermöglichen.
  • 10 (einschließlich 10A und 10B) veranschaulicht ein beispielhaftes magnetisches Speichermedium 1002 gemäß einem oder mehreren Gesichtspunkten der Offenbarung. 10A veranschaulicht eine Draufsicht auf das Beispiel des magnetischen Speichermediums 1002 nach einem oder mehreren Gesichtspunkten der Offenbarung. Zum Beispiel kann das magnetische Speichermedium 1002 in einem Festplattenlaufwerk (HDD) umgesetzt werden und das magnetische Speichermedium 1002 kann sich drehen, wenn Daten auf das magnetische Speichermedium 1002 geschrieben (oder von ihm gelesen) werden. In einigen Beispielen und wie in 10 dargestellt, kann das magnetische Speichermedium 1002 konfiguriert werden, um Informationen auf einer oder mehreren konzentrischen kreisförmigen Spuren zu speichern (z. B. Spuren 1004, 1006). Die Informationsdichte (z. B. Bits), die entlang einer Spur gespeichert wird, kann als Bits pro Zoll (BPI) und die Spurendichte im magnetischen Speichermedium 1002 als Spuren pro Zoll (TPI) ausgedrückt werden.
  • 10B veranschaulicht eine konzeptionelle schematische Sicht der Spuren des beispielhaften magnetischen Speichermediums 1002 nach einem oder mehreren Gesichtspunkten der Offenbarung. In der konzeptionellen Sicht wurden die Spuren (z. B. 1004, 1006) als gerade Linien im Abstand des Spurabstandes neu gezeichnet. In dieser Ausführungsform kann die BPI die Zahl der Bits anzeigen, die entlang einer Spur mit einer Spurlänge (z. B. die erste Länge 1008) von einem Zoll gespeichert werden können, und die TPI kann die Zahl der Spuren innerhalb einer radialen Länge (z. B. die zweite Länge 1010) von einem Zoll anzeigen, die entlang des Radius des magnetischen Speichermediums 1002 gemessen wird.
  • In einigen Gesichtspunkten der Offenbarung kann ein Datenspeichersystem (z. B. eine HDD) die hierin beschriebenen Beispielspeicherformate und/oder die hier beschriebenen Skalierungsvorgänge auf ein magnetisches Speichermedium (z. B. das magnetische Speichermedium 1002) anwenden. Zum Beispiel kann in Bezug auf das Standardspeicherformat 800 in 8A die erste Dimension (auch als horizontale Dimension bezeichnet) des Standardspeicherformats 800 einer tangentialen Richtung des magnetischen Speichermediums 1002 entsprechen, wobei die tangentiale Richtung (z. B. entlang der ersten Länge 1008) eine Zahl von Bits einschließt, die entlang eines Abschnitts einer Spur (z. B. BPI) auf dem magnetischen Speichermedium 1002 gespeichert werden können. Die zweite Dimension (auch als vertikale Dimension bezeichnet) des Standardspeicherformats 800 kann einer radialen Richtung des magnetischen Speichermediums 1002 entsprechen, wobei die radiale Richtung (z. B. entlang der zweiten Länge 1010) eine Zahl von Spuren einschließt, die auf dem TPI-Wert basiert und entlang einer bestimmten Länge eines Teils des magnetischen Speichermediums 1002 gespeichert werden kann. Dementsprechend kann das Datenspeichersystem das hierin beschriebene horizontale Dimensionsskalieren durchführen, indem es die BPI des magnetischen Speichermediums 1002 erhöht oder verringert (z. B. Steuern) und/oder das hierin beschriebene vertikale Dimensionsskalieren durchführen, indem es die TPI des magnetischen Speichermediums 1002 erhöht oder verringert (z. B. Steuern). In einigen Beispielen kann das Datenspeichersystem auf dem Magnetspeichermedium 1002 eine Zahl von verschiedenen Speicherbereichen (z. B. auch als Sektoren bezeichnet) definieren, wobei jeder verschiedene Speicherbereich Abschnitte einer Zahl von Spuren einschließt. Das Datenspeichersystem kann die Speicherkapazität jedes verschiedenen Speicherbereichs durch Erhöhen der TPI des magnetischen Speichermediums 1002 erhöhen und die Speicherkapazität jedes verschiedenen Speicherbereichs durch Verringern der TPI des magnetischen Speichermediums 1002 verringern.
  • Ein Beispiel für eine HDD, die zum Skalieren von Speicherformaten konfiguriert ist, kann die schindelmagnetische Aufzeichnung (SMR) implementieren. Die schindelmagnetische Aufzeichnungstechnologie (SMR) kann eine Erhöhung der Flächendichte im Vergleich zu Laufwerken der gleichen Generation unter Verwendung der traditionellen magnetischen Aufzeichnungstechnologie (CMR) bereitstellen. Physikalisch kann dies durch sequenzielles Schreiben der Daten und anschließendes Überlappen (oder „Schindeln“) mit einer anderen Datenspur durchgeführt werden. Durch Wiederholen dieses Vorgangs können mehr Datenspuren auf jeder magnetischen Oberfläche angebracht werden. Traditionelle magnetische Aufzeichnung platziert Lücken zwischen den Aufzeichnungsspuren auf HDDs, um das Budget für die Spurfehlregistrierung (Track Mis-Registration, TMR) zu berücksichtigen. Diese Trennzeichen beeinflussen die Flächendichte, da Abschnitte der Platte nicht vollständig ausgenutzt werden. Schindelmagnetische Aufzeichnung entfernt die Lücken zwischen den Spuren, indem die Spuren sequenziell und überlappend geschrieben werden, wobei ein Muster ähnlich den Schindeln auf einem Dach gebildet wird.
  • Aufgrund des geschindelten Formats von SMR werden Datenströme allgemein organisiert und sequenziell auf die Medien geschrieben. Während sich die Verfahren der SMR-Umsetzung unterscheiden können, werden die Daten dennoch allgemein sequenziell auf die Medien geschrieben. Demzufolge wird, falls eine bestimmte Spur geändert oder neu geschrieben werden muss, das gesamte „Band“ der Spuren (Zone) neu geschrieben. Da die geänderten Daten möglicherweise unter einem anderen „Schindel“ von Daten liegen, ist eine direkte Modifizierung im Gegensatz zu traditionellen CMR-Laufwerken möglicherweise nicht erlaubt. Im Fall von SMR muss die gesamte Reihe der Schindeln über der modifizierten Spur in diesem Vorgang neu geschrieben werden. So weist die SMR-Technologie einige Parallelen zum Flash-Speicher auf und kann auch von den hierin beschriebenen Ansätzen zur Anpassung der Granularität der in den NVM umgesetzten Speicherformaten profitieren.
  • In einigen Beispielen kann das Datenspeichersystem (z. B. SSD 104 neu konfiguriert als Datenspeichersystem, das Festkörperspeicher und/oder magnetische Speicherkomponenten einschließen kann) eine schindelmagnetische Aufzeichnung (SMR) umsetzen, so dass die zuvor beschriebenen Spuren (z. B. Spuren 1004, 1006) auf dem magnetischen Speichermedium 1002 mindestens teilweise überlappt werden, was die Speicherdichte (z. B. die Flächendichte) des magnetischen Speichermediums 1002 ferner erhöhen kann. In diesen Beispielen kann das Datenspeichersystem das hierin beschriebene horizontale Dimensionsskalieren durch Erhöhen oder Verringern der Bitdichte entlang einer Spur durchführen und/oder kann das hierin beschriebene vertikale Dimensionsskalieren durch Erhöhen oder Verringern der Spurdichte in radialer Richtung über die Spuren durchführen. Wie bereits vorstehend für Ausführungsformen mit SSDs und Flash-Speicher erörtert, kann das Skalieren auf der Grundlage der Leistungsfähigkeit des Speicherbereichs erfolgen, um ein modifiziertes Speicherformat zu erhalten. Die Leistungsfähigkeit kann auf der Grundlage einer oder mehrerer Leistungsmetriken des Speicherbereichs wie der Bitfehlerrate (BER) in einem Speicherbereich (z. B. Sektor oder Zone) des magnetischen Mediums der HDD bestimmt werden. Einige Bänder (oder Zonen) können in einigen Fällen ein bestimmtes Verhaltenskennzeichen in Bezug auf die Flächendichte (TPI*BPI) einschließlich der Auswirkung auf die BER aufweisen. So wollen einige Kundenanmeldungen beispielsweise die BER-Fähigkeit gegen die Flächendichte abwägen. Diese Offenbarung sieht ein mögliches Verfahren vor, um diese Abwägung sowohl von Laufwerk zu Laufwerk im Herstellungsvorgang als auch von Zone zu Zone innerhalb eines bestimmten Laufwerks zu manifestieren.
  • Die vorliegende Offenbarung beschreibt systematische Ansätze zum Verbessern der maximalen Effizienz einer SSD/HDD und zum Verlängern der Lebensdauer der SSD/HDD. In einigen Gesichtspunkten der Offenbarung können solche systematischen Ansätze Anpassungen der Granularität der in den NVM umgesetzten Speicherformaten durch horizontales und vertikales Skalieren und/oder einige Kombinationen von horizontalem und vertikalem Skalieren einschließen. Gemäß den verschiedenen Gesichtspunkten der Offenbarung können die hierin beschriebenen Vorgänge und Geräte die Wiederverwendung von Bereichen von NVM (z. B. schlechte Blöcke in einem NAND-Flash-Speicher) ermöglichen, die ansonsten in Datenspeichersystemen als unbrauchbar betrachtet werden würden. In einigen Gesichtspunkten der Offenbarung kann die Wiederverwendung dieser Bereiche das Schreiben von Daten in diese Bereiche und/oder das Lesen von Daten aus diesen Bereichen einschließen. In einigen Szenarien kann die Wiederverwendung dieser Bereiche die Überbereitstellung von Speicherplatz in Datenspeichersystemen verbessern, was die Leistung der Datenspeichersysteme verbessern kann.
  • Beispielhaftes Gerät
  • 11 veranschaulicht eine Ausführungsform eines Geräts 1100 gemäß einem oder mehreren Gesichtspunkten der Offenbarung. Das Gerät 1100 könnte eine Steuerung, eine SSD, ein Festkörperlaufwerk, eine Host-Vorrichtung, eine NVM-Vorrichtung, einen NAND-Die oder eine andere Art von Vorrichtung, die die Datenspeicherung unterstützt, verkörpern oder darin umgesetzt werden. In verschiedenen Umsetzungen könnte das Gerät 1100 eine Computervorrichtung, einen Personalcomputer, eine tragbare Vorrichtung, oder eine Arbeitsstation, einen Server, einen persönlichen digitalen Assistenten, eine Digitalkamera, ein Digitaltelefon, eine Unterhaltungsvorrichtung, eine medizinische Vorrichtung oder jede andere elektronische Vorrichtung, die Daten speichert, verkörpern oder in diese umgesetzt werden.
  • Das Gerät 1100 schließt eine Kommunikationsschnittstelle 1102, ein Speichermedium 1104, ein NVM (z. B. eine NVM-Speicherschaltung) 1108 und eine Verarbeitungsschaltung 1110 (z. B. mindestens einen Prozessor und/oder eine andere geeignete Schaltung) ein. Diese Komponenten können über einen Signalisierungsbus oder eine andere geeignete Komponente miteinander gekoppelt und/oder in elektrische Kommunikation gebracht werden, was allgemein durch die Verbindungsleitungen in 11 dargestellt wird. Der Signalisierungsbus kann jede Zahl von Verbindungsbussen und-brücken einschließen, abhängig von der spezifischen Anwendung der Verarbeitungsschaltung 1110 und den gesamten Designbeschränkungen. Der Signalisierungsbus verbindet verschiedene Schaltungen miteinander, so dass die Kommunikationsschnittstelle 1102, das Speichermedium 1104 und das NVM 1108 jeweils an die Verarbeitungsschaltung 1110 gekoppelt sind und/oder mit dieser elektrisch kommunizieren. Der Signalisierungsbus kann auch verschiedene andere (nicht dargestellte) Schaltungen verbinden, wie z. B. Zeitquellen, Peripheriegeräte, Spannungsregler und Leistungssteuerungsschaltungen, die in der Fachwelt gut bekannt sind und daher nicht ferner beschrieben werden.
  • Die Kommunikationsschnittstelle 1102 stellt ein Mittel zum Kommunizieren mit anderen Geräten über ein Übertragungsmedium bereit. In einigen Umsetzungen schließt die Kommunikationsschnittstelle 1102 eine Schaltung und/oder Programmierung (z. B. ein Programm) ein, die angepasst sind, um die bidirektionale Kommunikation von Informationen in Bezug auf eine oder mehrere Vorrichtungen in einem System zu erleichtern. In einigen Umsetzungen kann die Kommunikationsschnittstelle 1102 für drahtgebundene Kommunikation konfiguriert werden. Die Kommunikationsschnittstelle 1102 könnte z. B. eine Busschnittstelle, eine Sende-/Empfangsschnittstelle oder eine andere Art von Signalschnittstelle einschließlich Treibern, Puffern oder anderen Schaltungen zum Ausgeben und/oder Erhalten von Signalen sein (z. B. Ausgabe von Signalen von und/oder Empfang von Signalen in eine integrierte Schaltung). Die Kommunikationsschnittstelle 1102 dient als ein Beispiel für ein Mittel zum Empfangen und/oder ein Mittel zum Senden.
  • Der NVM 1108 kann eine oder mehrere nichtflüchtige Speichervorrichtungen darstellen. In einigen Umsetzungen sind der NVM 1108 und das Speichermedium 1104 als gemeinsame Speicherkomponente umgesetzt. Der NVM 1108 kann auch zum Speichern von Daten, die von der Verarbeitungsschaltung 1110 oder einer anderen Komponente des Geräts 1100 manipuliert werden, verwendet werden.
  • Das Speichermedium 1104 kann eine oder mehrere computerlesbare, maschinenlesbare und/oder prozessorlesbare Vorrichtungen zum Speichern von Programmierungen darstellen, wie z. B. ausführbaren Code oder Anweisungen des Prozessors (z. B. Software, Firmware), elektronische Daten, Datenbanken oder andere digitale Informationen. Das Speichermedium 1104 kann auch zum Speichern von Daten, die von der Verarbeitungsschaltung 1110 bei der Programmausführung manipuliert werden, verwendet werden. Das Speichermedium 1104 kann jedes verfügbare Medium sein, auf das ein Allzweck- oder Spezialzweck-Prozessor zugreifen kann, einschließlich tragbarer oder fester Speichervorrichtungen, optischer Speichervorrichtungen und verschiedener anderer Medien, die zum Speichern, Enthalten oder Tragen von Programmen geeignet sind.
  • Beispielhaft und nicht einschränkend kann das Speichermedium 1104 eine magnetische Speichervorrichtung (z. B. Festplatte, Diskette, Magnetstreifen), eine optische Platte (z. B. eine CD (Compact Disc) oder eine DVD (Digital Versatile Disc)), eine Chipkarte, eine Flash-Speichervorrichtung (z. B, eine Karte, ein Stick oder ein Schlüssellaufwerk), ein Speicher mit direktem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein programmierbarer ROM (PROM), ein löschbarer PROM (EPROM), ein elektrisch löschbarer PROM (EEPROM), ein Register, eine entfernbare Platte und jedes andere geeignete Medium zum Speichern von Software und/oder Anweisungen, auf die ein Computer zugreifen und die von einem Computer gelesen werden können. Das Speichermedium 1104 kann in einem Herstellungsgegenstand (z. B. einem Computerprogrammprodukt) verkörpert sein. Beispielhaft kann ein Computerprogrammprodukt ein computerlesbares Medium in Verpackungsmaterialien einschließen. In Anbetracht des vorstehend Gesagten kann das Speichermedium 1104 in einigen Umsetzungen ein nichtflüchtiges (z.B. greifbares) Speichermedium sein. Zum Beispiel kann das Speichermedium 1104 ein nichtflüchtiges, computerlesbares Medium sein, das computerausführbaren Code speichert, einschließlich des Codes zum Durchführen von Vorgängen wie hierin beschrieben.
  • Das Speichermedium 1104 kann mit der Verarbeitungsschaltung 1110 gekoppelt werden, so dass die Verarbeitungsschaltung 1110 Informationen von dem Speichermedium 1104 lesen und auf dieses schreiben kann. Das bedeutet, dass das Speichermedium 1104 an die Verarbeitungsschaltung 1110 gekoppelt werden kann, so dass das Speichermedium 1104 mindestens für die Verarbeitungsschaltung 1110 zugreifbar ist, einschließlich der Beispiele, in denen mindestens ein Speichermedium in die Verarbeitungsschaltung 1110 integriert ist und/oder der Beispiele, in denen mindestens ein Speichermedium von der Verarbeitungsschaltung 1110 getrennt ist (z. B. im Gerät 1100 vorhanden, außerhalb des Geräts 1100, auf mehrere Einheiten verteilt).
  • Die auf dem Speichermedium 1104 gespeicherte Programmierung bewirkt, wenn sie von der Verarbeitungsschaltung 1110 ausgeführt wird, dass die Verarbeitungsschaltung 1110 eine oder mehrere der verschiedenen hierin beschriebenen Funktionen und/oder Prozessvorgänge ausführt. Zum Beispiel kann das Speichermedium 1104 Vorgänge einschließen, die für das Regulieren von Vorgängen an einem oder mehreren Hardware-Blöcken der Verarbeitungsschaltung 1110 sowie für die Nutzung der Kommunikationsschnittstelle 1102 für die drahtlose Kommunikation unter Nutzung ihrer jeweiligen Kommunikationsprotokolle konfiguriert sind.
  • Die Verarbeitungsschaltung 1110 ist allgemein für die Verarbeitung, einschließlich des Ausführens einer solchen auf der Speichermedium 1104 gespeicherten Programmierung, geeignet. Wie hierin verwendet, sollen die Begriffe „Code“ oder „Programmierung“ so weit ausgelegt werden, dass sie ohne Einschränkung Anweisungen, Befehlssätze, Daten, Code, Codesegmente, Programmcode, Programme, Programmierungen, Unterprogramme, Softwaremodule, Anwendungen, Softwareanwendungen, Softwarepakete, Routinen, Unterroutinen, Objekte, ausführbare Dateien, Ausführungsstränge, Prozeduren, Funktionen usw. einschließen, unabhängig davon, ob sie als Software, Firmware, Middleware, Mikrocode, Hardware-Beschreibungssprache oder anderweitig bezeichnet werden.
  • Die Verarbeitungsschaltung 1110 ist angeordnet, um Daten zu erhalten, zu verarbeiten und/oder zu senden, den Datenzugriff und die Datenspeicherung zu steuern, Befehle auszugeben und andere gewünschte Vorgänge zu steuern. Die Verarbeitungsschaltung 1110 kann Schaltungen enthalten, die konfiguriert sind, um die gewünschte, von geeigneten Medien bereitgestellte Programmierung in mindestens einem Beispiel umzusetzen. Die Verarbeitungsschaltung 1110 kann zum Beispiel als ein oder mehrere Prozessoren, eine oder mehrere Steuerungen und/oder eine andere Struktur umgesetzt werden, die für die Ausführung von ausführbaren Programmierungen konfiguriert ist. Beispiele für die Verarbeitungsschaltung 1110 können einen Allzweckprozessor, einen digitalen Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine andere programmierbare Logikkomponente, diskrete Gate- oder Transistorlogik, diskrete Hardware-Komponenten oder jede beliebige Kombination davon zum Ausführen der hierin beschriebenen Funktionen einschließen. Ein Universalprozessor kann einen Mikroprozessor sowie jeden beliebigen herkömmlichen Prozessor, eine Steuerung, einen Mikrocontroller oder eine Zustandsmaschine einschließen. Die Verarbeitungsschaltung 1110 kann auch als eine Kombination von Rechenkomponenten implementiert sein, wie eine Kombination aus einer Steuerung und einem Mikroprozessor, eine Zahl von Mikroprozessoren, einem oder mehreren Mikroprozessoren in Verbindung mit einem ASIC und einem Mikroprozessor oder eine beliebige andere Zahl von unterschiedlichen Konfigurationen. Diese Beispiele der Verarbeitungsschaltung 1110 dienen zur Veranschaulichung und es werden auch andere geeignete Konfigurationen innerhalb des Schutzumfangs der Offenbarung in Betracht gezogen.
  • Gemäß einem oder mehreren Gesichtspunkten der Offenbarung kann die Verarbeitungsschaltung 1110 so angepasst werden, dass sie irgendwelche oder alle Merkmale, Prozesse, Funktionen, Vorgänge und/oder Routinen für einige oder alle der hierin beschriebenen Geräte durchführt. Zum Beispiel kann die Verarbeitungsschaltung 1110 so konfiguriert werden, dass sie jeden der Schritte, Funktionen und/oder Prozesse in Bezug auf die beschriebenen 11-13 durchführt. Wie hierin verwendet, kann sich der Begriff „angepasst“ in Bezug auf die Verarbeitungsschaltung 1110 darauf beziehen, dass die Verarbeitungsschaltung 1110 so konfiguriert, verwendet, implementiert und/oder programmiert ist, dass sie einen bestimmten Prozess, Funktion, Vorgang und/oder Routine gemäß verschiedenen hierin beschriebenen Merkmalen ausführt.
  • Die Verarbeitungsschaltung 1110 kann ein spezialisierter Prozessor sein, wie eine anwendungsspezifische integrierte Schaltung (ASIC), die als Mittel für (z. B. als Struktur für) die Ausführung einer der Vorgänge in Bezug auf die beschriebenen 11-13 dient. Die Verarbeitungsschaltung 1110 dient als ein Beispiel für ein Mittel zum Senden und/oder ein Mittel zum Empfangen. In verschiedenen Umsetzungen kann die Verarbeitungsschaltung 1110 mindestens teilweise die vorstehend beschriebene Funktionalität für die Steuerung 108 oder das SSD 104 aus 1 bereitstellen und/oder aufnehmen.
  • Nach mindestens einem Beispiel des Geräts 1100 kann die Verarbeitungsschaltung 1110 eine oder mehrere Schaltungen/Module zum Anwenden eines Standardspeicherformats 1120, eine Schaltung/ein Modul zum Modifizieren des Standardspeicherformats 1122, eine Schaltung/ein Modul zum Anwenden eines modifizierten Speicherformats 1124, eine Schaltung/ein Modul zum Überwachen einer Bitfehlerrate von Speicherbereichen 1126, eine Schaltung/ein Modul zum Zuordnen von Speicherbereichen zu modifizierten Speicherformaten 1128, eine Schaltung/ein Modul zum Speichern von Daten in der Datenspeichervorrichtung 1130 einschließen. In verschiedenen Implementierungen kann die Schaltung/das Modul zum Anwenden eines Standardspeicherformats 1120, die Schaltung/das Modul zum Modifizieren des Standardspeicherformats 1122, die Schaltung/das Modul zum Anwenden eines modifizierten Speicherformats 1124, die Schaltung/das Modul zum Überwachen einer Bitfehlerrate von Speicherbereichen 1126, die Schaltung/das Modul zum Zuordnen von Speicherbereichen zu modifizierten Speicherformaten 1128 oder die Schaltung/das Modul zum Speichern von Daten in der Datenspeichervorrichtung in dem NVM 1130 mindestens teilweise die vorstehend für die Steuerung 108 von 1 beschriebene Funktionalität bereitstellen und/oder aufnehmen. Bei einigen Gesichtspunkten der Offenbarung kann die Schaltung/das Modul zum Modifizieren des Standardspeicherformats 1122 so konfiguriert werden, dass das Standardspeicherformat 1122, wie hierin beschrieben, skaliert wird (z. B. Durchführen von horizontaler Dimensionsskalierung und/oder vertikaler Dimensionsskalierung), um ein skaliertes Speicherformat bereitzustellen. Dementsprechend kann in diesen Gesichtspunkten der Begriff modifiziertes Speicherformat austauschbar mit dem Begriff skaliertes Speicherformat verwendet werden.
  • Wie vorstehend erwähnt, bewirkt ein auf dem Speichermedium 1104 gespeichertes Programm, wenn es von der Verarbeitungsschaltung 1110 ausgeführt wird, dass die Verarbeitungsschaltung 1110 eine oder mehrere der verschiedenen hierin beschriebenen Funktionen und/oder Prozessvorgänge ausführt. Beispielsweise kann das Programm die Verarbeitungsschaltung 1110 veranlassen, die verschiedenen Funktionen, Schritte und/oder Prozesse, die hierin in Bezug auf 11-13 beschrieben werden, in verschiedenen Implementierungen auszuführen. Wie in 11 dargestellt, kann das Speichermedium 1104 einen oder mehrere Codes zum Anwenden eines Standardspeicherformats 1140, einen Code zum Modifizieren des Standardspeicherformats 1142, einen Code zum Anwenden eines modifizierten Speicherformats 1144, einen Code zum Überwachen einer Bitfehlerrate von Speicherregionen 1146, einen Code zum Zuordnen von Speicherregionen zu modifizierten Speicherformaten 1148 oder einen Code zum Speichern von Daten in dem NVM 1150 einschließen. In verschiedenen Implementierungen können der Code zum Anwenden eines Standardspeicherformats 1140, der Code zum Modifizieren des Standardspeicherformats 1142, der Code zum Anwenden eines modifizierten Speicherformats 1144, der Code zum Überwachen einer Bitfehlerrate von Speicherregionen 1146, der Code zum Zuordnen von Speicherregionen zu modifizierten Speicherformaten 1148 und der Code zum Speichern von Daten in dem NVM 1150 ausgeführt oder anderweitig verwendet werden, um die hierin beschriebene Funktionalität für die Schaltung/das Modul zum Anwenden eines Standardspeicherformats 1120, die Schaltung/das Modul zum Modifizieren des Standardspeicherformats 1122, die Schaltung/das Modul zum Anwenden eines modifizierten Speicherformats 1124, die Schaltung/das Modul zum Überwachen einer Bitfehlerrate von Speicherbereichen 1126, die Schaltung/das Modul zum Zuordnen von Speicherbereichen zu modifizierten Speicherformaten 1128, die Schaltung/das Modul zum Speichern von Daten in dem NVM 1130 bereitzustellen.
  • Erster beispielhafter Prozess
  • 12 veranschaulicht einen Prozess 1200 gemäß einigen Gesichtspunkten der Offenbarung. Der Prozess 1200 kann innerhalb einer Verarbeitungsschaltung (z. B. der Verarbeitungsschaltung 1010 in 10) stattfinden, die sich in einer Steuerung, einer SSD, einem Festkörperlaufwerk, einer Host-Vorrichtung, einer NVM-Vorrichtung, einem NAND-Die oder einem anderen geeigneten Gerät befinden kann. Natürlich kann der Prozess 1200 unter verschiedenen Gesichtspunkten innerhalb des Schutzumfangs der Offenbarung durch jedes geeignete Gerät, das speicherbezogene Vorgänge unterstützen kann, umgesetzt werden. Es sollte verstanden werden, dass die mit gestrichelten Linien gekennzeichneten Blöcke in 12 optionale Blöcke darstellen.
  • In Block 1202 wendet das Gerät ein Standardspeicherformat auf einen Speicherbereich eines NVMs an. Das Standardspeicherformat kann den Speicherbereich als eine Zahl von unterschiedlichen Speicherbereichen konfigurieren, die logisch entlang einer horizontalen Dimension und einer vertikalen Dimension angeordnet sind. In einem Beispiel kann das NVM eine NAND-Vorrichtung sein und der Speicherbereich kann eine Seite oder ein Block in der NAND-Vorrichtung sein. In einem anderen Beispiel kann das NVM ein magnetisches Speichermedium einschließen, und der Speicherbereich kann mindestens einen Teil des magnetischen Speichermediums einschließen. In einigen Gesichtspunkten kann das Standardspeicherformat den Speicherbereich als eine Zahl verschiedener Speicherbereiche konfigurieren, indem der Speicherbereich (z. B. eine Seite in einem NAND) in eine Zahl verschiedener Speicherbereiche (z. B. logische Seiten) unterteilt wird.
  • In Block 1204 modifiziert (z. B. skaliert) das Gerät das Standardspeicherformat durch eine Kombination aus horizontaler und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs, um ein modifiziertes Speicherformat (auch als skaliertes Speicherformat bezeichnet) zu erhalten. In einigen Gesichtspunkten wird die Leistungsfähigkeit des Speicherbereichs auf der Grundlage einer oder mehrerer Leistungsmetriken des Speicherbereichs bestimmt. In einigen Gesichtspunkten weisen die eine oder mehrere Metriken mindestens eine einer Bitfehlerrate, einer Bitfehleranzahl, einer Zahl von Programm-Löschzyklen, einer Fehlerkorrekturcode-(ECC)-Dekodierlatenzzeit, einer Programmierdauer, einer Löschzyklusdauer oder einer Lesesuchdauer auf. In einigen Gesichtspunkten umfasst die horizontale Dimensionsskalierung die Steuerung einer Zahl von Paritätsbits, die für jeden der verschiedenen Speicherbereiche verfügbar sind, und die vertikale Dimensionsskalierung umfasst die Steuerung einer Zahl von Bits, die von jeder Speicherzelle des Speicherbereichs gespeichert werden können. In einigen Gesichtspunkten verringert die Kombination aus horizontaler und vertikaler Dimensionsskalierung die Speichereffizienz des Speicherbereichs und erhöht die Zuverlässigkeit und Lebensdauer des Speicherbereichs. In einigen Gesichtspunkten ist das modifizierte Speicherformat so konfiguriert, dass es zumindest entweder die Lebensdauer des Speicherbereichs des NVMs oder die Zuverlässigkeit des Speicherbereichs des NVMs relativ zum Standardspeicherformat erhöht.
  • In Block 1206 wendet das Gerät ein modifiziertes Speicherformat auf einen Speicherbereich an.
  • Im Block 1208 speichert das Gerät Daten im Speicherbereich auf der Grundlage des modifizierten Speicherformats.
  • In einigen Gesichtspunkten kann ein Prozess gemäß den Lehren hierin jede Kombination der vorstehend genannten Vorgänge einschließen.
  • Zweiter beispielhafter Prozess
  • 13 veranschaulicht einen Prozess 1300 gemäß einigen Gesichtspunkten der Offenbarung. Der Prozess 1300 kann innerhalb einer Verarbeitungsschaltung (z. B. der Verarbeitungsschaltung 1010 in 10) stattfinden, die sich in einer Steuerung, einer SSD, einem Festkörperlaufwerk, einer Host-Vorrichtung, einer NVM-Vorrichtung, einem NAND-Die oder einem anderen geeigneten Gerät befinden kann. Natürlich kann der Prozess 1300 unter verschiedenen Gesichtspunkten innerhalb des Schutzumfangs der Offenbarung durch jedes geeignete Gerät, das speicherbezogene Vorgänge unterstützen kann, umgesetzt werden. Es sollte verstanden werden, dass die mit gestrichelten Linien gekennzeichneten Blöcke in 13 optionale Blöcke darstellen.
  • In Block 1302 wendet das Gerät ein erstes Speicherformat auf eine Seite des Blocks eines NVMs an. Das Speicherformat kann die Seite in eine erste Anzahl von logischen Seiten konfigurieren.
  • Im Block 1304 bestimmt das Gerät ein zweites Speicherformat für die Seite, wenn eine Bitfehlerrate für die Seite einen Schwellenwert überschreitet. Das zweite Speicherformat kann die Seite in eine zweite Zahl von logischen Seiten konfigurieren, wobei die zweite Zahl von logischen Seiten kleiner als die erste Zahl von logischen Seiten ist. In einigen Gesichtspunkten hat die zweite Zahl von logischen Seiten eine höhere ECC-Rate als die erste Zahl von logischen Seiten. In einigen Gesichtspunkten verringert das zweite Speicherformat die Zahl der Bits, die in jeder Speicherzelle der Seite gespeichert werden können, relativ zum ersten Speicherformat. In einigen Gesichtspunkten ist jede der ersten Zahl logischer Seiten und jede der zweiten Zahl logischer Seiten so konfiguriert, dass sie ungefähr die gleiche Datenmenge speichern. In einigen Gesichtspunkten werden jeder der zweiten Zahl von logischen Seiten mehr ECC-Bits relativ zu jeder der ersten Zahl von logischen Seiten zugeteilt.
  • In Block 1306 wendet das Gerät ein zweites Speicherformat auf eine Seite an.
  • Im Block 1308 speichert das Gerät Daten auf der Seite auf der Grundlage des zweiten Speicherformats.
  • Im Block 1310 bestimmt das Gerät ein drittes Speicherformat für die Seite, wenn eine Bitfehlerrate für die Seite einen zweiten Schwellenwert überschreitet. Das dritte Speicherformat konfiguriert (z. B. teilt) die Seite in eine dritte Zahl von logischen Seiten, wobei die dritte Zahl von logischen Seiten kleiner als die zweite Zahl von logischen Seiten ist. In einigen Gesichtspunkten weist die dritte Zahl von logischen Seiten eine höhere ECC-Rate als die zweite Zahl von logischen Seiten auf.
  • Im Block 1312 speichert das Gerät Daten auf der Seite auf der Grundlage des dritten Speicherformats.
  • In einigen Gesichtspunkten kann ein Prozess gemäß den Lehren hierin jede Kombination der vorstehend genannten Vorgänge einschließen.
  • Dritter beispielhafter Prozess
  • 14 veranschaulicht einen Prozess 1400 gemäß einigen Gesichtspunkten der Offenbarung. Der Prozess 1400 kann innerhalb einer Verarbeitungsschaltung (z. B. der Verarbeitungsschaltung 1010 in 10) stattfinden, die sich in einer Steuerung, einer SSD, einem Festkörperlaufwerk, einer Host-Vorrichtung, einer NVM-Vorrichtung, einem NAND-Die oder einem anderen geeigneten Gerät befinden kann. Natürlich kann der Prozess 1400 unter verschiedenen Gesichtspunkten innerhalb des Schutzumfangs der Offenbarung durch jedes geeignete Gerät, das speicherbezogene Vorgänge unterstützen kann, umgesetzt werden. Es sollte verstanden werden, dass die mit gestrichelten Linien gekennzeichneten Blöcke in 14 optionale Blöcke darstellen.
  • Im Block 1402 überwacht das Gerät eine Bitfehlerrate einer Vielzahl von Speicherbereichen eines NVMs, wobei jeder der Vielzahl von Speicherbereichen ein Speicherformat aufweist. In einigen Gesichtspunkten ist jede der Vielzahl von Speicherregionen ungefähr gleich groß.
  • Im Block 1404 identifiziert das Gerät eine oder mehrere der Vielzahl von Speicherbereichen mit einer Bitfehlerrate, die einen Schwellenwert überschreitet.
  • Im Block 1406 skaliert das Gerät dynamisch das Speicherformat der einen oder mehreren der Vielzahl von Speicherbereichen, um die Bitfehlerrate der einen oder mehreren der Vielzahl von Speicherbereichen zu verringern. In einigen Gesichtspunkten verringert das skalierte Speicherformat die Speichereffizienz der einen oder mehreren der Vielzahl von Speicherbereichen, um die Zuverlässigkeit der einen oder mehreren der Vielzahl von Speicherbereichen zu erhöhen. In einigen Gesichtspunkten verringert das skalierte Speicherformat die Speichereffizienz der einen oder mehreren der Vielzahl von Speicherbereichen, um die Zahl von verfügbaren Paritätsbits für den einen oder mehrerer der Vielzahl von Speicherbereichen zu erhöhen. In einigen Gesichtspunkten weist ein erster Speicherbereich des einen oder mehrerer der Vielzahl von Speicherbereichen ein erstes skaliertes Speicherformat auf und ein zweiter Speicherbereich des einen oder mehrerer der Vielzahl von Speicherbereichen ein zweites skaliertes Speicherformat auf, wobei sich das erste skalierte Speicherformat von dem zweiten skalierten Speicherformat unterscheidet.
  • Im Block 1408 ordnet das Gerät den ersten Speicherbereich dem ersten skalierten Speicherformat zu und ordnet den zweiten Speicherbereich dem zweiten skalierten Speicherformat zu.
  • Im Block 1410 speichert das Gerät erste Daten in dem ersten Speicherbereich auf der Grundlage des ersten skalierten Speicherformats.
  • Im Block 1412 speichert das Gerät zweite Daten in dem zweiten Speicherbereich auf der Grundlage des zweiten skalierten Speicherformats.
  • In einigen Gesichtspunkten kann ein Prozess gemäß den Lehren hierin jede Kombination der vorstehend genannten Vorgänge einschließen.
  • Zusätzliche Gesichtspunkte
  • Die hierin aufgeführten Beispiele werden bereitgestellt, um bestimmte Konzepte der Offenbarung zu veranschaulichen. Die vorstehend veranschaulichten Geräte, Vorrichtungen oder Komponenten können so konfiguriert werden, dass sie eines oder mehrere der hierin beschriebenen Verfahren, Merkmale oder Schritte ausführen können. Fachleute werden verstehen, dass diese lediglich der Veranschaulichung dienen und dass andere Beispiele innerhalb des Schutzumfangs der Offenbarung und der beiliegenden Ansprüche fallen können. Auf der Grundlage der hierin enthaltenen Lehren sollten Fachleute es zu schätzen wissen, dass ein hier offenbarter Gesichtspunkt unabhängig von anderen Gesichtspunkten umgesetzt werden kann und dass zwei oder mehrere dieser Gesichtspunkte auf verschiedene Weise kombiniert werden können. Zum Beispiel kann ein Gerät eingesetzt oder ein Verfahren anhand einer beliebigen Zahl der hier dargelegten Gesichtspunkte ausgeübt werden. Zusätzlich kann ein solches Gerät eingesetzt oder ein solches Verfahren anhand einer anderen Struktur, Funktionalität oder Struktur und Funktionalität zusätzlich zu oder anders als einer oder mehrere der hier dargelegten Gesichtspunkte ausgeübt werden.
  • Aspekte der vorliegenden Offenlegung wurden vorstehend unter Bezugnahme auf schematische Flussdiagramme und/oder schematische Blockdiagramme von Verfahren, Geräten, Systemen und Computerprogrammprodukten gemäß Ausführungsformen der Offenlegung beschrieben. Es versteht sich, dass jeder Block der schematischen Flussdiagramme und/oder schematischen Blockdiagramme und Kombinationen von Blöcken in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Rechenvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor oder eine andere programmierbare Rechenvorrichtung ausgeführt werden, Mittel zum Implementieren der Funktionen und/oder Schritte erzeugen, die in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen oder Blöcken spezifiziert sind.
  • Der hierin beschriebene Gegenstand kann in Hardware, Software, Firmware oder einer Kombination davon umgesetzt werden. Als solche können sich die hier verwendeten Begriffe „Funktion“, „Modul“ und dergleichen auf Hardware beziehen, die auch Software- und/oder Firmwarekomponenten zur Umsetzung der beschriebenen Funktion einschließen kann. In einer beispielhaften Umsetzung kann der hier beschriebene Gegenstand anhand eines computerlesbaren Mediums umgesetzt werden, auf dem computerausführbare Anweisungen gespeichert sind, die bei der Ausführung durch einen Computer (z. B. einen Prozessor) den Computer so steuern, dass er die hierin beschriebene Funktionalität ausführt. Beispiele für computerlesbare Medien, die sich für die Umsetzung des hierin beschriebenen Gegenstandes eignen, sind nichtflüchtige computerlesbare Medien, wie Plattenspeichervorrichtungen, Chip-Speichervorrichtungen, programmierbare Logikvorrichtungen und anwendungsspezifische integrierte Schaltungen. Zusätzlich kann sich ein computerlesbares Medium, das den hierin beschriebenen Gegenstand umsetzt, auf einer einzigen Vorrichtung oder Rechnerplattform befinden oder über mehrere Vorrichtungen oder Rechnerplattformen verteilt sein.
  • Es sollte auch beachtet werden, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, abhängig von der involvierten Funktionalität. Andere Schritte und Verfahren können konzipiert werden, die in Funktion, Logik oder Wirkung äquivalent zu einem oder mehreren Blöcken oder Teilen davon der dargestellten Figuren sind. Obwohl verschiedene Pfeilarten und Linienarten in dem Flussdiagramm und/oder den Blockdiagrammen verwendet werden können, sind sie so zu verstehen, dass sie den Umfang der entsprechenden Ausführungsformen nicht einschränken. Zum Beispiel kann ein Pfeil eine Warte- oder Überwachungsperiode einer nicht spezifizierten Dauer zwischen aufgezählten Schritten der dargestellten Ausführungsform angeben.
  • Die verschiedenen Merkmale und Prozesse, die vorstehend beschrieben sind, können unabhängig voneinander verwendet oder auf verschiedene Weisen kombiniert werden. Alle möglichen Kombinationen und Unterkombinationen sollen in den Schutzumfang dieser Offenlegung fallen. Außerdem können bestimmte Verfahren, Ereignisse, Zustände oder Prozessblöcke in einigen Implementierungen weggelassen werden. Die hierin beschriebenen Verfahren und Prozesse sind auch nicht auf eine bestimmte Sequenz beschränkt, und die Blöcke oder Zustände, die sich darauf beziehen, können in anderen Sequenzen durchgeführt werden, die geeignet sind. Beispielsweise können beschriebene Aufgaben oder Ereignisse in einer anderen Reihenfolge als der speziell offenbarten ausgeführt werden, oder mehrere können in einem einzelnen Block oder Zustand kombiniert werden. Die beispielhaften Aufgaben oder Ereignisse können seriell, parallel oder auf irgendeine andere geeignete Weise ausgeführt werden. Aufgaben oder Ereignisse können zu den offenbarten beispielhaften Ausführungsformen hinzugefügt oder von diesen entfernt werden. Die hier beschriebenen beispielhaften Systeme und Komponenten können anders als beschrieben konfiguriert sein. Beispielsweise können im Vergleich zu den offenbarten beispielhaften Ausführungsformen Elemente hinzugefügt, entfernt oder umgeordnet werden.
  • Fachleute werden es zu schätzen wissen, dass Informationen und Signale mit einer Vielzahl verschiedener Technologien und Techniken dargestellt werden können. Beispielsweise können Daten, Anweisungen, Befehle, Informationen, Signale, Bits, Symbole und Chips, auf die in der vorstehenden Beschreibung Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder-teilchen, optische Felder oder Teilchen oder eine beliebige Kombination davon dargestellt werden.
  • Der hierin verwendete Begriff „etwa gleich“ oder „ungefähr gleich“ bedeutet entweder dasselbe, gleich, bis zu 1 Prozent unterschiedlich, bis zu 5 Prozent unterschiedlich oder bis zu 10 Prozent unterschiedlich. Das Wort „beispielhaft“ wird in diesem Dokument in der Bedeutung „als Beispiel, Fall oder zur Veranschaulichung dienend“ verwendet. Jeder Gesichtspunkt der hierin als „beispielhaft“ beschrieben wird, ist nicht zwangsläufig als bevorzugt oder vorteilhaft gegenüber anderen Gesichtspunkten zu verstehen. Gleichermaßen erfordert der Begriff „Gesichtspunkt“ nicht, dass alle Gesichtspunkte das erörterte Merkmal, den erörterten Vorteil oder den erörterten Betriebsmodus aufweisen.
  • Obwohl die vorstehenden Beschreibungen viele spezifische Ausführungsformen der Erfindung enthalten, sollten diese nicht als Einschränkungen des Umfangs der Erfindung ausgelegt werden, sondern als Beispiele spezifischer Ausführungsformen davon. Dementsprechend sollte der Schutzumfang der Erfindung nicht durch die dargestellten Ausführungsformen, sondern durch die beiliegenden Ansprüche und deren Äquivalente bestimmt werden. Außerdem bedeutet die Bezugnahme in dieser Beschreibung auf „eine Ausführungsform“ oder eine ähnlichen Ausdrucksweise, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Offenlegung eingeschlossen ist. Daher kann sich das Auftreten der Phrase „in einer Ausführungsform“ und ähnlicher Formulierungen in dieser Beschreibung, müssen sich aber nicht notwendigerweise alle, auf dieselbe Ausführungsform beziehen, sondern bedeutet „eine oder mehrere, aber nicht alle Ausführungsformen“, sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Die hier verwendeten Begriffe dienen nur der Beschreibung von bestimmten Gesichtspunkten und sollen nicht als Einschränkung der Gesichtspunkte verstanden werden. Wie hierin verwendet, sollen die Singularformen „ein“, „eine“, „eines“ und „der“, „die“, „das“ auch die Pluralformen (d. h. eine oder mehrere) einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Eine aufzählende Auflistung von Elementen impliziert nicht, dass sich irgendeines oder alle der Elemente gegenseitig ausschließen und/oder gegenseitig einschließen, sofern nicht ausdrücklich etwas anderes angegeben ist. Außerdem gilt, dass die Begriffe „aufweisen“, „aufweisend“, „einschließen“, „einschließlich“, „mit“ und Variationen davon, wenn sie hierin verwendet werden, „einschließlich, aber nicht begrenzt auf bedeuten, sofern nicht ausdrücklich etwas anderes angegeben ist. Das heißt, dass diese Begriffe das Vorhandensein von angegebenen Merkmalen, Einheiten, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen können, nicht aber das Vorhandensein oder die Hinzufügung von einer oder mehreren anderen Merkmalen, Einheiten, Schritten, Vorgängen, Elementen, Komponenten oder Gruppen von diesen ausschließen. Außerdem gilt, dass das Wort „oder“ dasselbe bedeutet wie der boolesche Operator „ODER“, d. h. es umfasst die Möglichkeiten von „entweder“ und „beide“ und ist nicht auf „ausschließlich oder“ („XOR“) beschränkt, sofern nicht ausdrücklich etwas anderes angegeben ist. Es gilt auch, dass das Symbol „/“ zwischen zwei benachbarten Wörtern das gleiche bedeutet wie „oder“, sofern nicht ausdrücklich etwas anderes angegeben ist. Außerdem sind Ausdrucksweisen wie „verbunden mit“, „gekoppelt mit“ oder „in Kommunikation mit“ nicht auf direkte Verbindungen beschränkt, sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Jede Bezugnahme hierin auf ein Element anhand einer Bezeichnung wie „erstes“, „zweites“ und so weiter beschränkt im Allgemeinen nicht die Menge oder Reihenfolge dieser Elemente. Vielmehr können diese Bezeichnungen hierin als ein bequemes Verfahren zur Unterscheidung zwischen zwei oder mehr Elementen oder Fällen eines Elements verwendet werden. Daher bedeutet eine Bezugnahme auf das erste und das zweite Element nicht, dass dort nur zwei Elemente verwendet werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Weise vorausgehen muss. Sofern nicht anders angegeben, kann ein Satz von Elementen auch ein oder mehrere Elemente einschließen. Außerdem bedeutet die Terminologie der Form „mindestens eines von a, b oder c“ oder „a, b, c oder eine Kombination davon“, die in der Beschreibung oder den Ansprüchen verwendet wird, „a oder b oder c oder eine Kombination dieser Elemente“. Zum Beispiel kann diese Terminologie a oder b oder c oder a und b oder a und c oder a und b und c oder 2a oder 2b oder 2c oder 2a und b und so weiter einschließen.
  • Wie hierin verwendet, umfasst der Begriff „bestimmen“ eine Vielzahl von Handlungen. Zum Beispiel kann „bestimmen“ das Berechnen, Rechnen, Verarbeiten, Ableiten, Untersuchen, Nachschlagen (z. B. Nachschlagen in einer Tabelle, einer Datenbank oder einer anderen Datenstruktur), Ermitteln und ähnliches einschließen. „Bestimmen“ kann auch das Empfangen (z. B. das Empfangen von Informationen), den Zugriff (z. B. den Zugriff auf Daten in einem Speicher) und ähnliches einschließen. „Bestimmen“ kann auch das Lösen, Wählen, Auswählen, Festlegen und ähnliches einschließen.

Claims (22)

  1. Datenspeichergerät, umfassend: einen nichtflüchtigen Speicher (NVM); einen Prozessor, der mit dem NVM gekoppelt ist und konfiguriert ist, um: ein Standardspeicherformat auf einen Speicherbereich des NVMs anzuwenden, wobei das Standardspeicherformat den Speicherbereich als eine Zahl von unterschiedlichen Speicherbereichen konfiguriert, die logisch entlang einer horizontalen und einer vertikalen Dimension angeordnet sind; das Standardspeicherformat zu modifizieren mit einer Kombination aus horizontalerDimensionsskalierung und vertikaler Dimensionsskalierung auf der Grundlage der Leistungsfähigkeit des Speicherbereichs, um ein modifiziertes Speicherformat zu erhalten; und das modifizierte Speicherformat auf den Speicherbereich anzuwenden.
  2. Datenspeichergerät gemäß Anspruch 1, wobei die Leistungsfähigkeit des Speicherbereichs auf der Grundlage einer oder mehrerer Leistungsmetriken des Speicherbereichs bestimmt wird.
  3. Datenspeichergerät gemäß Anspruch 2, wobei die eine oder mehreren Metriken mindestens eine von einer Bitfehlerrate, einer Bitfehleranzahl, einer Zahl von Programm-Löschzyklen, einer Fehlerkorrekturcode-(ECC)-Dekodierlatenzzeit, einer Programmierdauer, einer Löschzyklusdauer oder einer Lesesuchdauer aufweisen.
  4. Datenspeichergerät gemäß Anspruch 1, wobei die horizontale Dimensionsskalierung die Steuerung einer Zahl von Paritätsbits aufweist, die für jeden der verschiedenen Speicherbereiche verfügbar sind, und wobei die vertikale Dimensionsskalierung die Steuerung einer Zahl von Bits aufweist, die von jeder Speicherzelle des Speicherbereichs gespeichert werden können.
  5. Datenspeichergerät gemäß Anspruch 1, wobei die Kombination aus horizontaler und vertikaler Dimensionsskalierung die Speichereffizienz des Speicherbereichs verringert und die Zuverlässigkeit und Lebensdauer des Speicherbereichs erhöht.
  6. Datenspeichergerät gemäß Anspruch 1, wobei das modifizierte Speicherformat so konfiguriert ist, dass es zumindest entweder die Lebensdauer des Speicherbereichs des NVMs oder die Zuverlässigkeit des Speicherbereichs des NVMs relativ zum Standardspeicherformat erhöht.
  7. Datenspeichergerät gemäß Anspruch 1, wobei das NVM eine NAN D-Vorrichtung umfasst und der Speicherbereich eine Seite oder ein Block in der NAND-Vorrichtung ist.
  8. Datenspeichergerät gemäß Anspruch 1, wobei das NVM ein magnetisches Speichermedium umfasst und der Speicherbereich mindestens einen Teil des magnetischen Speichermediums umfasst.
  9. Datenspeichergerät nach Anspruch 8, wobei die horizontale Dimensionsskalierung die Steuerung einer Zahl von Bits pro Zoll (BPI) umfasst, die in einer oder mehreren Spuren des mindestens einen Teils des magnetischen Speichermediums gespeichert sind, und wobei die vertikale Dimensionsskalierung die Steuerung einer Zahl von Spuren pro Zoll (TPI) umfasst, die für den mindestens einen Teil des magnetischen Speichermediums verwendet wird.
  10. Datenspeichergerät nach Anspruch 9, wobei das Gerät so konfiguriert ist, dass es Informationen auf dem magnetischen Speichermedium anhand von schindelmagnetischen Aufzeichnungen speichert.
  11. Verfahren zum Betreiben eines Datenspeichergeräts, umfassend: Anwenden eines ersten Speicherformats auf eine Seite eines Blocks in einem nichtflüchtigen Speicher (NVM),wobei das erste Speicherformat die Seite in eine erste Zahl von logischen Seiten konfiguriert; Bestimmen eines zweiten Speicherformats für die Seite, wenn eine Bitfehlerrate für dieSeite einen Schwellenwert überschreitet, wobei das zweite Speicherformat die Seite in eine zweite Zahl von logischen Seiten konfiguriert, wobei die zweite Zahl von logischen Seiten kleiner als die erste Zahl von logischen Seiten ist; und Anwenden des zweiten Speicherformats auf die Seite.
  12. Verfahren gemäß Anspruch 11, wobei die zweite Zahl von logischen Seiten eine höhere Fehlerkorrekturcode-(ECC)-Rate als die erste Zahl von logischen Seiten aufweist.
  13. Verfahren gemäß Anspruch 12, wobei das zweite Speicherformat die Zahl der Bits, die in jeder Speicherzelle der Seite gespeichert werden können, relativ zum ersten Speicherformat verringert.
  14. Verfahren gemäß Anspruch 11, wobei jede der ersten Zahl logischer Seiten und jede der zweiten Zahl logischer Seiten so konfiguriert ist, dass sie ungefähr die gleiche Datenmenge speichern.
  15. Verfahren gemäß Anspruch 11, wobei jeder der zweiten Zahl von logischen Seiten mehr Fehlerkorrekturcode-(ECC)-Bits relativ zu jeder der ersten Zahl von logischen Seiten zugeteilt werden.
  16. Verfahren gemäß Anspruch 15, ferner umfassend: Bestimmen eines dritten Speicherformats für die Seite, wenn eine Bitfehlerrate für die Seite einen zweiten Schwellenwert überschreitet, wobei das dritte Speicherformat die Seite in eine dritte Zahl von logischen Seiten konfiguriert, wobei die dritte Zahl von logischen Seiten kleiner als die zweite Zahl von logischen Seiten ist.
  17. Verfahren gemäß Anspruch 16, wobei die dritte Zahl von logischen Seiten eine höhere Fehlerkorrekturcode-(ECC)-Rate als die zweite Zahl von logischen Seiten umfasst.
  18. Datenspeichergerät, umfassend: einen nichtflüchtigen Speicher (NVM), der eine Vielzahl von Speicherbereichen umfasst; Mittel zum Überwachen einer Bitfehlerrate der Vielzahl von Speicherbereichen des NVMs, wobei jede der Vielzahl von Speicherbereichen ein Speicherformat aufweist; Mittel zum Identifizieren einer oder mehrerer der Vielzahl von Speicherbereichen miteiner Bitfehlerrate, die einen Schwellenwert überschreitet; und Mittel zum dynamischen Skalieren des Speicherformats der einen oder mehreren der Vielzahl von Speicherbereichen, um die Bitfehlerrate der einen oder mehreren der Vielzahl von Speicherbereichen zu verringern.
  19. Datenspeichergerät gemäß Anspruch 18, wobei das skalierte Speicherformat die Speichereffizienz der einen oder mehreren der Vielzahl von Speicherbereichen verringert, um die Zuverlässigkeit der einen oder mehreren der Vielzahl von Speicherbereichen zu erhöhen.
  20. Datenspeichergerät gemäß Anspruch 18, wobei das skalierte Speicherformat die Speichereffizienz der einen oder mehreren der Vielzahl von Speicherbereichen verringert, um die Zahl von verfügbaren Paritätsbits für die einen oder mehrere der Vielzahl von Speicherbereichen zu erhöhen.
  21. Datenspeichergerät gemäß Anspruch 18, wobei ein erster Speicherbereich des einen oder der mehreren der Vielzahl von Speicherbereichen ein erstes skaliertes Speicherformat aufweist und ein zweiter Speicherbereich des einen oder der mehreren der Vielzahl von Speicherbereichen ein zweites skaliertes Speicherformat aufweist, wobei sich das erste skalierte Speicherformat von dem zweiten skalierten Speicherformat unterscheidet.
  22. Datenspeichergerät gemäß Anspruch 21, wobei das Datenspeichergerät ferner Mittel zum Zuordnen des ersten Speicherbereichs zu dem ersten skalierten Speicherformat und zum Zuordnen des zweiten Speicherbereichs zu dem zweiten skalierten Speicherformat umfasst.
DE102020107166.3A 2019-06-27 2020-03-16 Zweidimensional skalierbares vielseitiges speicherformat fürdatenspeichervorrichtungen Pending DE102020107166A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/455,181 2019-06-27
US16/455,181 US10990304B2 (en) 2019-06-27 2019-06-27 Two-dimensional scalable versatile storage format for data storage devices

Publications (1)

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

Family

ID=73747107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020107166.3A Pending DE102020107166A1 (de) 2019-06-27 2020-03-16 Zweidimensional skalierbares vielseitiges speicherformat fürdatenspeichervorrichtungen

Country Status (4)

Country Link
US (1) US10990304B2 (de)
KR (1) KR102351489B1 (de)
CN (1) CN112148520A (de)
DE (1) DE102020107166A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11150812B2 (en) 2019-08-20 2021-10-19 Micron Technology, Inc. Predictive memory management
US11907570B2 (en) * 2020-02-25 2024-02-20 Micron Technology, Inc. Predictive media management for read disturb
CN113628087B (zh) * 2021-08-20 2022-06-03 轩昂环保科技股份有限公司 城市智慧管家管理系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956710B2 (en) * 2003-06-09 2005-10-18 Samsung Electronics Co., Ltd. Flexible BPI and TPI selection in disk drives
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US9189385B2 (en) * 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
US20120038997A1 (en) * 2010-08-16 2012-02-16 Hitachi Asia Ltd. System for write fault protection in a hard disk drive
KR20130060791A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
US20130343131A1 (en) * 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
KR101526110B1 (ko) * 2013-02-07 2015-06-10 서울대학교산학협력단 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크
US9785501B2 (en) * 2014-02-18 2017-10-10 Sandisk Technologies Llc Error detection and handling for a data storage device
US9111578B1 (en) * 2014-07-23 2015-08-18 Seagate Technology Llc Recording density variation of data tracks
US20160299844A1 (en) 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
US20160299812A1 (en) 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Device-Specific Variable Error Correction
US9768808B2 (en) 2015-04-08 2017-09-19 Sandisk Technologies Llc Method for modifying device-specific variable error correction settings

Also Published As

Publication number Publication date
US20200409578A1 (en) 2020-12-31
KR102351489B1 (ko) 2022-01-17
US10990304B2 (en) 2021-04-27
CN112148520A (zh) 2020-12-29
KR20210001897A (ko) 2021-01-06

Similar Documents

Publication Publication Date Title
DE102017120840B4 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE102019124438B4 (de) Multi-state-programmierung für speichervorrichtungen
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE102016003366B4 (de) Lesepegelgruppierung für erhöhte flash-leistung
DE102020107166A1 (de) Zweidimensional skalierbares vielseitiges speicherformat fürdatenspeichervorrichtungen
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112014001305B4 (de) Auswahl einer redundanten Datenspeicherkonfiguration auf der Grundlage verfügbaren Speicherplatzes
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102013108456B4 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE112011102160T5 (de) Wear-levelling bei Zellen/Seiten/Teilseiten/Blöcken eines Speichers
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102019133129A1 (de) Mehrphasenprogrammierung mit symmetrischer gray-codierung
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE102019125059A1 (de) Abbildung für multi-state-programmierung von speichervorrichtungen
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102018115199A1 (de) Verfahren zur maximierung der frequenz während einer datenintegritätsprüfung auf einem physischen schnittstellenbus
DE112016002631T5 (de) Speicherfunktionszustandsüberwachung
DE102008033518A1 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE102018105277A1 (de) Auf Hamming-Abstand basierende Binärdarstellungen von Zahlen

Legal Events

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

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE