DE102020115975A1 - Entropiegetriebene lebensdauer für normierte dienstqualität - Google Patents

Entropiegetriebene lebensdauer für normierte dienstqualität Download PDF

Info

Publication number
DE102020115975A1
DE102020115975A1 DE102020115975.7A DE102020115975A DE102020115975A1 DE 102020115975 A1 DE102020115975 A1 DE 102020115975A1 DE 102020115975 A DE102020115975 A DE 102020115975A DE 102020115975 A1 DE102020115975 A1 DE 102020115975A1
Authority
DE
Germany
Prior art keywords
data
entropy
controller
block
storage device
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.)
Granted
Application number
DE102020115975.7A
Other languages
English (en)
Inventor
Ramanathan Muthiah
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 DE102020115975A1 publication Critical patent/DE102020115975A1/de
Granted legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/926Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
    • H04N5/9261Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • H04L1/0026Transmission of channel quality indication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • H04L1/1678Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1838Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/917Television signal processing therefor for bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/0409Online test
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Es werden Gesichtspunkte einer Speichervorrichtung mit einem Speicher und einer Steuerung bereitgestellt, die es ermöglichen, dass Daten, die einem Medienstrom zugeordnet sind und hohe Entropie haben, an intakteren Speicherorten, mit verbessertem Datenschutz und mit optimaleren NAND-Parametern als niederentrope Daten gespeichert werden. Nach dem Empfangen von Daten, die einem Medienstrom zugeordnet sind, identifiziert die Steuerung einen Entropiepegel der Daten. Wenn der Entropiepegel einen Entropieschwellenwert erreicht, speichert die Steuerung die Daten in einem ersten Block des Speichers, der einer niedrigeren BER zugeordnet ist, und/oder mit einer höheren Schreiblatenz oder einer ersten, diskreteren Spannung. Alternativ, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht, speichert die Steuerung die Daten in einem zweiten Block des Speichers, der einer höheren BER zugeordnet ist, und/oder mit einer niedrigeren Schreiblatenz oder einer zweiten, weniger diskreten Spannung.

Description

  • HINTERGRUND
  • Gebiet
  • Diese Offenbarung bezieht sich im Allgemeinen auf elektronische Vorrichtungen und insbesondere auf Speichervorrichtungen.
  • Hintergrund
  • Speichervorrichtungen ermöglichen es Benutzern, Daten zu speichern und abzurufen. Beispiele von Speichervorrichtungen schließen nicht-flüchtige Speichervorrichtungen ein. Ein nichtflüchtiger Speicher behält Daten im Allgemeinen nach einem Leistungszyklus bei. Ein Beispiel eines nicht-flüchtigen Speichers ist ein Flash-Speicher, der (eine) Anordnung(en) von NAND-Zellen auf einem oder mehreren Dies einschließen kann. Flash-Speicher kann in Festkörpervorrichtungen (Solid-State Devices, SSDs), Secure Digital-Karten (SD-Karten) und dergleichen zu finden sein.
  • Eine Flash-Speichervorrichtung kann Steuerinformationen speichern, die Daten zugeordnet sind. Zum Beispiel kann eine Flash-Speichervorrichtung Steuertabellen unterhalten, die eine Abbildung von logischen Adressen auf physische Adressen einschließen. Diese Steuertabellen werden verwendet, um den physischen Ort von logischen Sektoren oder Blöcken in dem Flash-Speicher zu verfolgen. Die Steuertabellen sind in dem nicht-flüchtigen Speicher gespeichert, um einen Zugriff auf die gespeicherten Daten nach einem Leistungszyklus zu ermöglichen.
  • Ein Überwachungssystem kann Daten (z. B. Moving Picture Experts Group-Transportströme (MPEG-Transportströme) in der Flash-Speichervorrichtung speichern. Solche Transportströme können eine konstante Bitrate (CBR) oder eine variable Bitrate (VBR) aufweisen. Während VBR Überwachungssystemen das dynamische Ändern von Ausgangsbitraten in Abhängigkeit von der beobachteten Aktivitätsmenge ermöglicht, erzeugen und speichern kostengünstige und hochvolumige Überwachungsysteme mit mehreren Kameras typischerweise Inhalt unter Verwendung von CBR aufgrund ihres leichteren Bandbreitenmanagements und geringerer Codierungskosten und -Latenz. Da jedoch die Ausgangsbitrate in CBR-Systemen selbst bei wenig Aktivität oder Informationen (z. B. eine Standbildszene) dieselbe bleiben kann, können Daten den Raum der Flash-Speichervorrichtung ohne Rücksicht auf die Nützlichkeit oder Bedeutung solcher Daten unterschiedslos ausfüllen. Eine derartige Ineffizienz beim Speichern kann die Lebensdauer der Flash-Speichervorrichtung negativ beeinflussen, da weniger wichtige Daten leere Blöcke ausfüllen können, ohne die Speicherung von wichtigeren Daten (z. B. über hohe Aktivitäten) zu berücksichtigen.
  • KU RZDARSTELLU NG
  • Ein Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Die Steuerung ist dazu eingerichtet, Daten, die einem Medienstrom zugeordnet sind, von einer Host-Vorrichtung zu empfangen. Die Steuerung ist ferner eingerichtet zum Identifizieren eines Entropiepegels der Daten, zum Speichern der Daten in einem ersten Block des Speichers, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und zum Speichern der Daten in einem zweiten Block des Speichers, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht. Der zweite Block ist einer höheren Bitfehlerrate (BER) als der erste Block zugeordnet.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Die Steuerung ist dazu eingerichtet, Daten, die einem Medienstrom zugeordnet sind, von einer Host-Vorrichtung zu empfangen und einen Entropiepegel der Daten zu identifizieren. Die Steuerung ist ferner eingerichtet zum Speichern der Daten in einem ersten Block des Speichers mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und Speichern der Daten in einem zweiten Block des Speichers mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Die Steuerung ist dazu eingerichtet, Daten, die einem Medienstrom zugeordnet sind, von einer Host-Vorrichtung zu empfangen und einen Entropiepegel der Daten zu identifizieren. Die Steuerung ist ferner eingerichtet zum Speichern der Daten in einem ersten Block des Speichers mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und Speichern der Daten in einem zweiten Block des Speichers mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht. Der zweite Block ist einer höheren BER als der erste Block zugeordnet.
  • Es versteht sich, dass andere Gesichtspunkte der Speichervorrichtung für den Fachmann aus der folgenden detaillierten Beschreibung leicht ersichtlich werden, wobei verschiedene Gesichtspunkte von Einrichtungen und Verfahren zur Veranschaulichung gezeigt und beschrieben werden. Wie zu erkennen ist, können diese Gesichtspunkte in anderen und unterschiedlichen Formen implementiert werden und sind ihre verschiedenen Details in verschiedenen anderen Hinsichten zu einer Modifikation fähig. Dementsprechend sind die Zeichnungen und die detaillierte Beschreibung als veranschaulichend und nicht als einschränkend zu betrachten.
  • Figurenliste
  • Verschiedene Gesichtspunkte der vorliegenden Erfindung werden nun in der detaillierten Beschreibung als Beispiel und nicht als Einschränkung unter Bezugnahme auf die beigefügten Zeichnungen dargestellt, wobei:
    • 1 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung veranschaulicht.
    • 2 ist ein Konzeptdiagramm, das ein Beispiel einer logisch-zu-physisch-Abbildungstabelle in einem nicht-flüchtigen Speicher der Speichervorrichtung von 1 veranschaulicht.
    • 3 ist ein Konzeptdiagramm, das ein Beispiel von Video-Frametypen in einem Medienstrom darstellt, der von einer Host-Vorrichtung empfangen wird.
    • 4 ist ein Konzeptdiagramm, das ein Beispiel eines Medienstroms darstellt, von dem Entropiepegel durch die Speichervorrichtung von 1 identifiziert werden können.
    • 5 ist ein Blockdiagramm, das ein Beispiel von Daten in einem Medienstrom darstellt, der basierend auf Entropiepegeln in verschiedene Blöcke der Speichervorrichtung von 1 gespeichert ist.
    • 6 ist ein Flussdiagramm, das ein Verfahren zum Speichern von Daten auf der Basis von Entropiepegeln durch die Speichervorrichtung von 1 veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehend dargelegte detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen ist als eine Beschreibung verschiedener beispielhafter Ausführungsformen der vorliegenden Offenbarung gedacht und soll nicht die einzigen Ausführungsformen darstellen, in denen die vorliegende Erfindung praktisch umgesetzt werden kann. Die detaillierte Beschreibung schließt spezifische Details ein, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch ist es für einen Fachmann ersichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details praktisch umgesetzt werden kann. In einigen Fällen sind hinlänglich bekannte Strukturen und Komponenten in Blockdiagrammform gezeigt, um zu vermeiden, dass die Konzepte der vorliegenden Erfindung unklar werden. Akronyme und andere beschreibende Terminologie können lediglich der Einfachheit und Klarheit halber verwendet werden und sollen den Schutzumfang der Erfindung nicht einschränken.
  • Die Wörter „beispielhaft“ und „Beispiel“ werden hierin in der Bedeutung von „als ein Beispiel oder Fall oder zur Veranschaulichung dienend“ verwendet. Jede hierin als „beispielhaft“ beschriebene beispielhafte Ausführungsform ist nicht zwangsläufig als bevorzugt oder vorteilhaft gegenüber anderen beispielhaften Ausführungsformen auszulegen. Gleichermaßen erfordert der Begriff „beispielhafte Ausführungsform“ einer Vorrichtung, eines Verfahrens oder eines Herstellungsartikels nicht, dass alle beispielhaften Ausführungsformen der Erfindung die beschriebene(n) Komponenten, Struktur, Merkmale, Funktionalität, Prozesse, Vorteile, Nutzen oder Betriebsmodi einschließen.
  • In der folgenden detaillierten Beschreibung werden verschiedene Gesichtspunkte einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung dargestellt. Diese Gesichtspunkte sind für Flash-Speichervorrichtungen, wie SSDs und SD-Karten, gut geeignet. Jedoch wird der Fachmann erkennen, dass diese Gesichtspunkte auf alle Typen von Speichervorrichtungen, die zum Speichern von Daten in der Lage sind, ausgedehnt werden können. Entsprechend soll jede Bezugnahme auf eine bestimmte Einrichtung oder ein bestimmtes Verfahren nur die verschiedenen Gesichtspunkte der vorliegenden Erfindung veranschaulichen, wobei davon ausgegangen wird, dass diese Gesichtspunkte einen weiten Bereich von Anwendungen aufweisen können, ohne vom Schutzumfang und Geist der vorliegenden Offenbarung abzuweichen.
  • Überwachungssysteme können beim Erfassen und Streamen von Daten in eine Speichervorrichtung mit CBR oder VBR arbeiten. Bei CBR werden die durch eine Kamera des Überwachungssystems erfassten Daten unabhängig von der beobachteten Aktivität oder Information als eine konstante Bitrate codiert und gestreamt. Dagegen kann das Überwachungssystem bei VBR die Ausgangsbitrate basierend auf einer Menge der erfassten Informationen dynamisch ändern; zum Beispiel kann die Bitrate zunehmen, wenn mehr Aktivität beobachtet wird (z. B. eine Stunt-Szene), und die Bitrate kann abnehmen, wenn weniger Aktivität beobachtet wird (z. B. eine Standbildszene). Während VBR somit codierte und gestreamte Datenraten zum Anpassen an unterschiedliche Aktivitätsmengen ermöglichen kann, kann CBR aufgrund von kostengünstigen Überwachungsanwendungen aufgrund der verringerten Codierer-Komplexität noch Vorteile gegenüber VBR aufweisen.
  • Speichervorrichtungen können Mediendaten, die von einem Überwachungssystem empfangen werden, in verschiedene Blöcke schreiben und die Mediendaten während der Wiedergabe von diesen Blöcken auslesen. Da jedoch unter Verwendung von CBR in eine Speichervorrichtung gestreamte Daten ungeachtet der durch die Daten dargestellten Informationsmengen dieselben Mengen an Speicherplatz einnehmen können, können diese Daten ungeachtet der Bedeutung der gespeicherten Daten den Raum der Speichervorrichtung ineffizient ausfüllen. Zum Beispiel können Daten, die eine Standbildszene ohne Bewegung darstellen, schnell zahlreiche Blöcke der Speichervorrichtung belegen, was häufige Programmierungs-/Lösch-Zyklen (P/E-Zyklen) zum Speichern neuer Daten erfordert. Folglich können Blöcke aufgrund zahlreicher P/E-Zyklen schnell altern, wodurch sich die BER von diesen Blöcken erhöht und die Lebensdauer der Speichervorrichtung beeinträchtigt. Darüber hinaus können, wenn nachfolgende Daten, die eine Bewegung darstellen, in diese gealterten Blöcke mit höherer BER geschrieben werden, solche Daten ein höheres Risiko von Fehlern oder Datenverlust während der Lesewiedergabe aufweisen. Beispielsweise können Lücken, Sprünge oder andere Diskontinuitäten während der Medienwiedergabe wahrnehmbar sein.
  • Daher ermöglicht die vorliegende Offenbarung, um die Leistung der Speichervorrichtung zu verbessern, einer Steuerung der Speichervorrichtung, einen Entropiepegel von Daten in einem Medienstrom vor dem NAND-Programmieren zu identifizieren. Zum Beispiel kann der Medienstrom einen MPEG-Transportstrom (MPEG-TS) einschließen. Wie hierin verwendet, gibt ein Entropiepegel eine Informationsmenge (z. B. eine Informationsdichte) an, die durch Daten in einem Medienstrom dargestellt wird. Zum Beispiel enthält ein Video-Frame mit einem hohen Entropiepegel mehr Informationen in einer vorgegebenen Anzahl von Bits als ein Video-Frame mit niedrigem Entropiepegel. Als Beispiel kann eine Stunt-Szene, die eine wesentliche Aktivität über Frames (z. B. Bewegung) aufweist, Video-Frames mit hohem Entropiepegel einschließen, während eine Standbildszene, die eine geringe Aktivität über Frames (z. B. keine Bewegung) aufweist, Video-Frames mit niedrigem Entropipegel einschließen kann.
  • Die Steuerung kann bestimmen, ob Daten einen hohen oder niedrigen Entropiepegel aufweisen, indem sie sie mit einem Entropieschwellenwert vergleicht, und die Steuerung kann die Daten in Abhängigkeit von dem Entropiepegel unterschiedlich vorspannen oder leiten. Zum Beispiel kann die Steuerung Daten mit hohen Entropiepegeln zu intakteren Blöcken mit einer niedrigeren BER leiten, und die Steuerung kann Daten mit niedrigen Entropiepegeln zu weniger intakten Blöcken mit einer höheren BER leiten. Intaktere Blöcke können zum Beispiel neuere Blöcke, Blöcke mit weniger P/E-Zyklen, mit längeren Programmierzeiten programmierte Blöcke, ausreichende Spannung, usw. einschließen, während weniger intakte Blöcke zum Beispiel gealterte Blöcke, Blöcke mit mehr P/E-Zyklen, mit kürzeren Programmierzeiten programmierte Blöcke, unzureichende Spannung, Blöcke mit Fabrikationsfehlern, usw. einschließen können. Die Steuerung kann für Daten mit höherer Entropie auch höhere Datenwiederherstellbarkeit bieten und/oder Schreib- oder Löschbefehle mit verbesserten NAND-Parametern ausführen, wie längeren Schreiblatenzen und mehr diskreten Spannungen, als für Daten mit niedrigerer Entropie. Folglich kann es die Speichervorrichtung Daten mit höherer Entropie ermöglichen, weniger BER, höheren Schutz und verbesserte NAND-Parameter aufzuweisen als Daten mit niedrigerer Entropie, deren Verlust weniger Einfluss auf die Leistung der Speichervorrichtung hätte. Zum Beispiel kann der Verlust von Daten mit niedrigerer Entropie aufgrund von deren geringerer Informationsmenge einen weniger wahrnehmbaren Effekt auf die Medienwiedergabe haben.
  • 1 zeigt ein beispielhaftes Blockdiagramm 100 einer Speichervorrichtung 102, die mit einer Host-Vorrichtung 104 (auch „Host“) gemäß einer beispielhaften Ausführungsform kommuniziert. Der Host 104 und die Speichervorrichtung 102 können ein System, wie ein Computersystem (z. B. Server, Desktop, Mobiltelefon/Laptop, Tablet, Smartphone usw.), bilden. Die Komponenten von 1 können physisch zusammen angeordnet sein oder nicht. In dieser Hinsicht kann der Host 104 entfernt von der Speichervorrichtung 102 angeordnet sein. Wenngleich 1 veranschaulicht, dass der Host 104 getrennt von der Speichervorrichtung 102 gezeigt ist, kann der Host 104 in anderen Ausführungsformen ganz oder teilweise in die Speichervorrichtung 102 integriert sein. Alternativ dazu kann der Host 104 in seiner Gesamtheit oder alternativ mit einiger Funktionalität in der Speichervorrichtung 102 über mehrere entfernte Einheiten verteilt sein.
  • Der Fachmann wird erkennen, dass andere beispielhafte Ausführungsformen mehr oder weniger als die in 1 gezeigten Elemente einschließen können und dass die offenbarten Prozesse in anderen Umgebungen implementiert werden können. Zum Beispiel können andere beispielhafte Ausführungsformen eine unterschiedliche Anzahl von Hosts, die mit der Speichervorrichtung 102 kommunizieren, oder mehrere Speichervorrichtungen 102, die mit dem/den Host(s) kommunizieren, einschließen.
  • Die Host-Vorrichtung 104 kann Daten in der Speichervorrichtung 102 speichern und/oder Daten von dieser abrufen. Die Host-Vorrichtung 104 kann eine beliebige Rechenvorrichtung einschließen, einschließlich zum Beispiel eines Computerservers, einer Network Attached Storage-Einheit (NAS-Einheit), eines Desktop-Computers, eines Notebook-Computers (z. B. eines Laptop-Computers), eines Tablet-Computers, einer mobilen Rechenvorrichtung, wie eines Smartphones, eines Fernsehers, einer Kamera, einer Anzeigevorrichtung, eines digitalen Medienwiedergabegeräts, einer Videospielkonsole, einer Videostreaming-Vorrichtung oder dergleichen. Die Host-Vorrichtung 104 kann mindestens einen Prozessor 101 und einen Host-Speicher 103 einschließen. Der mindestens eine Prozessor 101 kann eine beliebige Form von Hardware einschließen, die zum Verarbeiten von Daten in der Lage ist, und kann eine Universalverarbeitungseinheit (wie eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU)), eine dedizierte Hardware (wie eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC)), einen Digitalsignalprozessor (DSP), konfigurierbare Hardware (wie eine feldprogrammierbare Gatteranordnung (Field Programmable Gate Array, FPGA)) oder eine beliebige andere Form von Verarbeitungseinheit, die durch Softwareanweisungen, Firmware oder dergleichen eingerichtet ist, einschließen. Der Host-Speicher 103 kann durch die Host-Vorrichtung 104 verwendet werden, um durch den Host verarbeitete Daten oder Anweisungen oder von der Speichervorrichtung 102 empfangene Daten zu speichern. In einigen Beispielen kann der Host-Speicher 103 nicht-flüchtigen Speicher, wie magnetische Speichervorrichtungen, optische Speichervorrichtungen, holografische Speichervorrichtungen, Flash-Speichervorrichtungen (z. B. NAND oder NOR), Phasenwechselspeichervorrichtungen (PCM-Vorrichtungen), resistive Direktzugriffsspeicher-Vorrichtungen (ReRAM-Vorrichtungen), magnetoresistive Direktzugriffsspeicher-Vorrichtungen (MRAM-Vorrichtungen), ferroelektrische Direktzugriffsspeicher-Vorrichtungen (F-RAM-Vorrichtungen) und einen beliebigen anderen Typ von nicht-flüchtigen Speichervorrichtungen, einschließen. In anderen Beispielen kann der Host-Speicher 103 flüchtigen Speicher, wie Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4 und dergleichen) einschließen. Der Host-Speicher 103 kann auch sowohl nicht-flüchtigen Speicher als auch flüchtigen Speicher, egal ob miteinander integriert oder als diskrete Einheiten, einschließen.
  • Die Host-Schnittstelle 106 ist eingerichtet, um die Speichervorrichtung 102 mit dem Host 104 über einen Bus/ein Netzwerk 108 zu verbinden, und kann die Verbindung unter Verwendung von zum Beispiel Ethernet oder WiFi oder einem Bus-Standard, wie Serial Advanced Technology Attachment (SATA), PCI express (PCle), Small Computer System Interface (SCSI) oder Serial Attached SCSI (SAS) neben anderen möglichen Kandidaten, herstellen. Alternativ dazu kann die Host-Schnittstelle 106 drahtlos sein und kann die Speichervorrichtung 102 unter Verwendung von zum Beispiel einer Mobilfunkkommunikation (z. B. 5G NR, 4G LTE, 3G, 2G, GSM/UMTS, CDMA One/CDMA2000 usw.), drahtlosen Verteilungsverfahren durch Zugangspunkte (z. B. IEEE 802.11, WiFi, HiperLAN usw.), Infrarot (IR), Bluetooth, Zigbee oder einer anderen Technologie für ein drahtloses Weitverkehrsnetzwerk (Wireless Wide Area Network, WWAN), ein drahtloses lokales Netzwerk (Wireless Local Area Network, WLAN), ein drahtloses persönliches Netzwerk (Wireless Personal Area Network, WPAN) oder vergleichbaren Technologien für ein Weitverkehrsnetzwerk, ein lokales Netzwerk und ein persönliches Netzwerk mit dem Host 104 verbinden.
  • Wie in der beispielhaften Ausführungsform von 1 gezeigt, schließt die Speichervorrichtung 102 einen nicht-flüchtigen Speicher (Non-Volatile Memory, NVM) 110 zum nicht-flüchtigen Speichern von Daten, die von dem Host 104 empfangen werden, ein. Der NVM 110 kann zum Beispiel integrierte Flash-Schaltungen, NAND-Speicher (z. B. Single-Level-Zellen-Speicher (SLC-Speicher), Multi-Level-Zellen-Speicher (MLC-Speicher), Triple-Level-Zellen-Speicher (TLC-Speicher), Quad-Level-Zellen-Speicher (QLC-Speicher), Penta-Level-Zellen-Speicher (PLC-Speicher) oder eine beliebige Kombination davon) oder NOR-Speicher einschließen. Der NVM 110 kann eine Vielzahl von Speicherorten 112 einschließen, die Systemdaten zum Betreiben der Speichervorrichtung 102 oder Benutzerdaten, die von dem Host zur Speicherung in der Speichervorrichtung 102 empfangen werden, speichern können. Zum Beispiel kann der NVM eine Cross-Point-Architektur, einschließlich einer 2-D-NAND-Anordnung von Speicherorten 112 mit n Zeilen und m Spalten, einschließen, wobei m und n gemäß der Größe des NVM vordefiniert sind. In der veranschaulichten beispielhaften Ausführungsform von 1 kann jeder Speicherort 112 ein Block 114 sein, der mehrere Zellen 116 einschließt. Die Zellen 116 können zum Beispiel Single-Level-Zellen, Multi-Level-Zellen, Triple-Level-Zellen, Quad-Level-Zellen und/oder Penta-Level-Zellen sein. Andere Beispiele von Speicherorten 112 sind möglich; zum Beispiel kann jeder Speicherort ein Die sein, das mehrere Blöcke enthält. Darüber hinaus kann jeder Speicherort einen oder mehrere Blöcke in einer 3-D-NAND-Anordnung einschließen. Darüber hinaus können die veranschaulichten Speicherorte 112 logische Blöcke sein, die auf einem oder mehreren physischen Blöcken abgebildet sind.
  • Die Speichervorrichtung 102 schließt außerdem einen flüchtigen Speicher 118 ein, der zum Beispiel einen dynamischen Direktzugriffsspeicher (DRAM) oder einen statischen Direktzugriffsspeicher (SRAM) einschließen kann. Daten, die in einem flüchtigen Speicher 118 gespeichert sind, können Daten, die aus dem NVM 110 gelesen werden, oder Daten, die in den NVM 110 geschrieben werden sollen, einschließen. In dieser Hinsicht kann der flüchtige Speicher 118 einen Schreibpuffer oder einen Lesepuffer zum temporären Speichern von Daten einschließen. Während 1 den flüchtigen Speicher 118 als von einer Steuerung 123 der Speichervorrichtung 102 entfernt veranschaulicht, kann der flüchtige Speicher 118 in die Steuerung 123 integriert sein.
  • Der Speicher (z. B. der NVM 110) ist eingerichtet, um Daten 119, die von der Host-Vorrichtung 104 empfangen werden, zu speichern. Die Daten 119 können in den Zellen 116 eines beliebigen der Speicherorte 112 gespeichert sein. Als ein Beispiel veranschaulicht 1 die Daten 119, die an verschiedenen Speicherorten 112 gespeichert sind, obwohl die Daten an dem gleichen Speicherort gespeichert sein können. In einem anderen Beispiel können die Speicherorte 112 verschiedene Dies sein und können die Daten in einem oder mehreren der verschiedenen Dies gespeichert sein.
  • Alle der Daten 119 können einer logischen Adresse zugeordnet sein. Zum Beispiel kann das NVM 110 eine logisch-zu-physische (LP2) Abbildungstabelle 120 für die Speichervorrichtung 102 speichern, die allen Daten 119 eine logische Adresse zuordnet. Die L2P-Abbildungstabelle 120 speichert die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die von dem Host 104 geschrieben werden, auf physische Adressen in dem NVM 110, wobei der/die Ort(e) angegeben werden, in denen alle der Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 der Speichervorrichtung durchgeführt werden. Die L2P-Abbildungstabelle kann eine Tabelle oder eine andere Datenstruktur sein, die eine Kennung einschließt, wie eine logische Blockadresse (LBA), die jedem Speicherort 112 in dem NVM, in dem Daten gespeichert sind, zugeordnet ist. Während 1 eine einzelne L2P-Abbildungstabelle 120 veranschaulicht, die an einem der Speicherorte 112 von NVM gespeichert ist, um eine unangemessene Verunklarung der Konzepte von 1 zu vermeiden, kann die L2P-Abbildungstabelle 120 tatsächlich mehrere Tabellen einschließen, die an einem oder mehreren Speicherorten von NVM gespeichert sind.
  • 2 ist ein Konzeptdiagramm 200 eines Beispiels einer L2P-Abbildungstabelle 205, die die Abbildung von Daten 202, die von einer Host-Vorrichtung empfangen werden, auf logische Adressen und physische Adressen in dem NVM 110 von 1 veranschaulicht. Die Daten 202 können den Daten 119 in 1 entsprechen, während die L2P-Abbildungstabelle 205 der L2P-Abbildungstabelle 120 in 1 entsprechen kann. In einer beispielhaften Ausführungsform können die Daten 202 in einer oder mehreren Seiten 204 gespeichert sein, z. B. Seiten 1 bis x, wobei x die Gesamtanzahl von Seiten von Daten ist, die in den NVM 110 geschrieben werden. Jede Seite 204 kann einem oder mehreren Einträgen 206 der L2P-Abbildungstabelle 205 zugeordnet sein, die eine logische Blockadresse (LBA) 208, eine physische Adresse 210, die den in den NVM geschriebenen Daten zugeordnet ist, und eine Länge 212 der Daten identifizieren. Die LBA 208 kann eine logische Adresse sein, die in einem Schreibbefehl für die von der Host-Vorrichtung empfangenen Daten spezifiziert ist. Die physische Adresse 210 kann den Block und die Verschiebung angeben, bei denen die Daten, die der LBA 208 zugeordnet sind, physisch geschrieben werden. Die Länge 212 kann eine Größe der geschriebenen Daten angeben (z. B. 4 KB oder eine andere Größe).
  • Unter erneuter Bezugnahme auf 1 speichert der flüchtige Speicher 118 außerdem einen Cache 122 für die Speichervorrichtung 102. Der Cache 122 schließt Einträge ein, die die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die durch den Host 104 angefordert werden, auf physische Adressen in dem NVM 110 zeigen, wobei der/die Ort(e) angegeben werden, in denen die Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 durchgeführt werden. Wenn die Steuerung 123 einen Lesebefehl oder einen Schreibbefehl für die Daten 119 empfängt, prüft die Steuerung den Cache 122 auf die logisch-zu-physisch-Abbildung aller Daten. Wenn eine Abbildung nicht vorhanden ist (es z. B. die erste Anforderung für die Daten ist), greift die Steuerung auf die L2P-Abbildungstabelle 120 zu und speichert die Abbildung in dem Cache 122. Wenn die Steuerung 123 den Lesebefehl oder Schreibbefehl ausführt, greift die Steuerung auf die Abbildung aus dem Cache zu und liest die Daten aus dem NVM 110 an der spezifizierten physischen Adresse oder schreibt sie in diesen. Der Cache kann in Form einer Tabelle oder einer anderen Datenstruktur gespeichert sein, die eine logische Adresse einschließt, die jedem Speicherort 112 in NVM zugeordnet ist, wo Daten gelesen werden.
  • Der NVM 110 schließt Leseverstärker 124 und Daten-Latches 126 ein, die mit jedem Speicherort 112 verbunden sind. Zum Beispiel kann der Speicherort 112 ein Block sein, der Zellen 116 auf mehreren Bitleitungen einschließt und kann der NVM 110 einen Leseverstärker 124 auf jeder Bitleitung einschließen. Darüber hinaus können ein oder mehrere Daten-Latches 126 mit den Bitleitungen und/oder Leseverstärkern verbunden sein. Bei den Daten-Latches kann es sich zum Beispiel um Schieberegister handeln. Wenn Daten aus den Zellen 116 des Speicherorts 112 gelesen werden, erfassen die Leseverstärker 124 die Daten durch Verstärken der Spannungen auf den Bitleitungen auf einen logischen Pegel (z. B. lesbar als eine „0“ oder eine „1“) und werden die erfassten Daten in den Daten-Latches 126 gespeichert. Die Daten werden dann von den Daten-Latches 126 an die Steuerung 123 übertragen, wonach die Daten in dem flüchtigen Speicher 118 gespeichert werden, bis sie an die Host-Vorrichtung 104 übertragen werden. Wenn Daten in die Zellen 116 des Speicherorts 112 geschrieben werden, speichert die Steuerung 123 die programmierten Daten in den Daten-Latches 126 und werden die Daten anschließend von den Daten-Latches 126 an die Zellen 116 übertragen.
  • Die Speichervorrichtung 102 schließt eine Steuerung 123 ein, die Schaltlogik, wie einen oder mehrere Prozessoren zum Ausführen von Anweisungen einschließt, und kann einen Mikrocontroller, einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (Application-Specific Integrated Circuit, ASIC), eine feldprogrammierbare Gatteranordnung (Field Programmable Gate Array, FPGA), festverdrahtete Logik, analoge Schaltlogik und/oder eine Kombination davon einschließen.
  • Die Steuerung 123 ist eingerichtet, um Daten zu empfangen, die von einer oder mehreren der Zellen 116 der verschiedenen Speicherorte 112 als Reaktion auf einen Lesebefehl übertragen werden. Zum Beispiel kann die Steuerung 123 die Daten 119 lesen, indem sie die Leseverstärker 124 aktiviert, um die Daten aus den Zellen 116 in Daten-Latches 126 zu erfassen, und die Steuerung 123 kann die Daten von den Daten-Latches 126 empfangen. Die Steuerung 123 ist außerdem eingerichtet, um als Reaktion auf einen Schreibbefehl Daten in eine oder mehrere der Zellen 116 zu programmieren. Zum Beispiel kann die Steuerung 123 die Daten 119 schreiben, indem sie Daten an die Daten-Latches 126 sendet, um in die Zellen 116 programmiert zu werden. Die Steuerung 123 ist weiterhin eingerichtet, um beim Lesen oder Schreiben von Daten in die Zellen 116 auf die L2P-Abbildungstabelle 120 in dem NVM 110 zuzugreifen. Zum Beispiel kann die Steuerung 123 logisch-zu-physisch-Adressabbildungen von dem NVM 110 als Reaktion auf Lese- oder Schreibbefehle von der Host-Vorrichtung 104 empfangen, die physischen Adressen identifizieren, die auf die logischen Adressen abgebildet sind, die in den Befehlen identifiziert sind, (z. B. die logischen Adressen in physische Adressen übersetzen) und auf Daten in den Zellen 116, die sich an den abgebildeten physischen Adressen befinden, zugreifen oder diese speichern.
  • Die Steuerung 123 und ihre Komponenten können mit eingebetteter Software implementiert sein, die die verschiedenen Funktionen der in dieser Offenbarung beschriebenen Steuerung durchführt. Alternativ dazu kann Software zum Implementieren jeder der zuvor erwähnten Funktionen und Komponenten in dem NVM 110 oder in einem Speicher außerhalb der Speichervorrichtung 102 oder der Host-Vorrichtung 104 gespeichert sein, und es kann durch die Steuerung 123 zur Ausführung durch den einen oder die mehreren Prozessoren der Steuerung 123 auf sie zugegriffen werden. Alternativ dazu können die Funktionen und Komponenten der Steuerung mit Hardware in der Steuerung 123 implementiert sein, oder sie können unter Verwendung einer Kombination der zuvor erwähnten Hardware und Software implementiert sein.
  • Im Betrieb speichert die Host-Vorrichtung 104 Daten in der Speichervorrichtung 102 durch Senden eines Schreibbefehls an die Speichervorrichtung 102, der eine oder mehrere logische Adressen (z. B. LBAs) sowie eine Länge der zu schreibenden Daten spezifiziert. Das Schnittstellenelement 106 empfängt den Schreibbefehl, und die Steuerung ordnet einen Speicherort 112 in dem NVM 110 der Speichervorrichtung 102 zum Speichern der Daten zu. Die Steuerung 123 speichert die L2P-Abbildung in dem NVM (und dem Cache 122), um eine logische Adresse, die den Daten zugeordnet ist, auf die physische Adresse des Speicherorts 112 abzubilden, der für die Daten zugeordnet ist. Die Steuerung speichert außerdem die Länge der L2P-abgebildeten Daten. Die Steuerung 123 speichert dann die Daten an dem Speicherort 112, indem sie sie an einen oder mehrere Daten-Latches 126 sendet, die mit dem zugeordneten Speicherort verbunden sind, von dem die Daten in die Zellen 116 programmiert werden.
  • Der Host 104 kann Daten von der Speichervorrichtung 102 abrufen, indem er einen Lesebefehl sendet, der eine oder mehrere logische Adressen, die den Daten zugeordnet sind, welche von der Speichervorrichtung 102 abgerufen werden sollen, sowie eine Länge der zu lesenden Daten spezifiziert. Die Schnittstelle 106 empfängt den Lesebefehl, und die Steuerung 123 greift auf die L2P-Abbildung in dem Cache 122 oder ansonsten in dem NVM zu, um die logischen Adressen, die in dem Lesebefehl spezifiziert sind, in die physischen Adressen zu übersetzen, die den Ort der Daten angeben. Die Steuerung 123 liest dann die angeforderten Daten aus dem durch die physischen Adressen spezifizierten Speicherort 112, indem sie die Daten unter Verwendung der Leseverstärker 124 erfasst und in Daten-Latches 126 speichert, bis die gelesenen Daten über die Host-Schnittstelle 106 an den Host 104 zurückgegeben werden.
  • Die Host-Vorrichtung 104 kann mit einem Überwachungssystem verbunden sein oder ein Überwachungssystem einschließen, das eine oder mehrere Kameras einschließt. In einem solchen Fall kann die Host-Vorrichtung unter Verwendung der einen oder mehreren Kameras Daten 119 einschließlich Medien (z. B. Video und/oder Audio) erfassen und die Daten an die Speichervorrichtung 102 übertragen, um sie im NVM 110 zu speichern. Die Steuerung 123 kann dann die Daten 119 an einem oder mehreren der Speicherorte 112 des NVM 110 speichern. Anschließend, wenn die Steuerung 123 einen Lesebefehl für die Daten empfängt, kann die Steuerung die Daten 119 (z. B. unter Verwendung von Leseverstärkern 124) von dem/den Speicherort(en) 112 abtasten und die Daten einschließlich des Mediums zur Video-/Audio-Wiedergabe 104 zurück an die Host-Vorrichtung senden.
  • Jedoch kann eine solche Speicherung der Daten 119 in der Speichervorrichtung 102 ineffizient sein, wenn die Daten unter Verwendung von CBR gestreamt werden. Zum Beispiel können in CBR die Daten 119 von der Host-Vorrichtung 102 mit einer konstanten Rate (z. B. 1 Mbps) an die Speichervorrichtung 104 übertragen werden. Allerdings schließen die Daten 119 unter Umständen nicht dieselbe Menge von Informationen oder Entropie für jede gegebene Anzahl von Bits im Verlauf der Zeit ein. Wenn zum Beispiel unter Annahme einer gegebenen Anzahl von Bits im Verlauf der Zeit, wie 1 Mbps, das Überwachungssystem Informationen einer Standbildszene ohne Bewegung erfasst, stellt eventuell nur ein Anteil dieser Bits die eigentlichen Daten dar, während die übrigen Bits bis zum Erreichen der konstanten Bitrate aufgefüllt werden können. Somit können solche Daten in diesem Beispiel wenig Informationen oder eine niedrige Entropie aufweisen. Im Gegensatz dazu können in einem anderen Beispiel, wenn das Überwachungssystem Informationen einer Stuntszene mit einer signifikanten Bewegung erfasst, die meisten, wenn nicht alle der Bits eigentliche Daten mit weniger Auffüllung darstellen. Somit können solche Daten in diesem Beispiel viel Informationen oder eine hohe Entropie aufweisen. Folglich, wenn die Daten 119 an verschiedenen Speicherorten 112 der Speichervorrichtung 102 gespeichert sind, ungeachtet dessen, ob es sich um hochentrope oder niederentrope Daten handelt, kann die Leistung der Speichervorrichtung 102 beeinflusst werden. Wenn beispielsweise Daten mit höherer Entropie in Blöcken mit einer höheren BER als Daten mit niedrigerer Entropie gespeichert werden, kann dies bei der Medienwiedergabe zu wahrnehmbaren Verzerrungen aufgrund von Fehlern beim Lesen der Daten 119 führen.
  • Entsprechend verbessert die vorliegende Offenbarung die Leistung der Speichervorrichtung 102, indem sie es der Steuerung 123 ermöglicht, einen Entropiepegel (oder Entropie) der Daten 119 zu identifizieren, wenn die Daten von der Host-Vorrichtung 104 empfangen werden. Die Steuerung 123 kann den Entropiepegel der Daten 119, z. B. einen oder mehrere Video-Frame(s), durch Vergleichen einer Informationsmenge in dem/den Video-Frame(s) mit einer Informationsmenge in einem oder mehreren vorhergehenden Video-Frame(s) identifizieren. Wenn die Steuerung 123 bestimmt, dass der Entropiepegel der Daten 119 einen vorgegebenen Entropieschwellenwert erreicht (z. B. durch Identifizieren, dass eine Differenz in der Menge von Informationen zwischen dem(den) aktuellen Frame(s) und dem/den vorhergehenden Frame(s) einen Schwellenwert überschreitet), kann die Steuerung die Daten 119 als mit einem hohen Entropiepegel identifizieren; andernfalls kann die Steuerung die Daten als mit einem niedrigen Entropiepegel identifizieren. Zum Beispiel kann die Steuerung 123 bestimmen, dass ein Video-Frame einen hohen Entropiepegel aufweist, wenn er eine Bewegung in Bezug auf einen vorhergehenden Video-Frame zeigt, oder die Steuerung 123 kann bestimmen, dass ein Video-Frame einen niedrigen Entropiepegel aufweist, wenn er keine Bewegung in Bezug auf einen vorhergehenden Video-Frame zeigt. Die Steuerung 123 kann dann die Daten 119 an verschiedenen Speicherorten 112 (z. B. Blöcken) und/oder mit unterschiedlichen Schutzgraden oder Schreibparametern in NAND in Abhängigkeit von dem Entropiepegel der Daten speichern. Zum Beispiel kann die Steuerung 123 die Daten 119 mit hohen Entropiepegeln in Blöcke mit weniger BER im Vergleich zu Daten 119 mit niedrigeren Entropiepegeln speichern. Folglich können eine geringere Wahrscheinlichkeit des Verlusts von hochentropen Daten und entsprechend weniger Fehler in der Medienwiedergabe beobachtet werden.
  • 3 zeigt ein Beispieldiagramm 300 eines Medienstroms 302 (z. B. MPEG-TS Daten wie die Daten 119), der Video-Frames enthält, die von einem Überwachungssystem empfangen wurden, das mit einer Host-Vorrichtung verbunden ist. Der Video-Frame kann Frames von verschiedenen Video-Frametypen, einschließlich Intra-Frames (I-Frames 304), bidirektionale Frames (B-Frames 306) und die prognostizierten Frames (P-Frames 308) einschließen. I-Frames 304 können Video-Frames einschließen, die nicht von anderen Video-Frames zum Rendern abhängig sind und unabhängig ein festes Bild zeigen. Die B-Frames 306 können Video-Frames einschließen, die von einem vorhergehenden und einem nachfolgenden Video-Frame zur Rekonstruktion abhängig sind. Die P-Frames 308 können Video-Frames einschließen, die Informationen über Unterschiede zu vorhergehenden Frames einschließen. Ein I-Frame und eine Reihe von B-Frames und P-Frames können in einer Gruppe von Bildern (GOP 310) angeordnet sein, und es kann mehrere GOP 310 geben, die jeweils ihren eigenen I-Frame und B/P-Frames in dem Medienstrom 302 einschließen. Zum Beispiel kann jede GOP 310 30 oder eine andere Anzahl von Frames einschließen.
  • Der Entropiepegel eines Video-Frames kann vom Video-Frametyp unabhängig sein. Zum Beispiel kann in Fällen, wie etwa Stuntszenen mit signifikanter Aktivität oder Bewegung über Frames, jeder I-Frame 304 einen hohen Entropiepegel einschließen. Ähnlich können in solchen Fällen B-Frames 306 und P-Frames 308 aufgrund der signifikanten Datenänderungen zwischen den Frames hohe Entropiepegel einschließen. In anderen Fällen, wie bei Standbildszenen ohne Aktivität oder Bewegung zwischen den Frames, kann jedoch der erste I-Frame 304 in einer Reihe von GOP 310 einen hohen Entropiepegel einschließen (z. B. weil seine Daten das erste Bild darstellen), während nachfolgende I-Frames 304 in den GOPs 310 aufgrund von unwesentlichen Datenänderungen zwischen Frames einen niedrigen Entropiepegel einschließen. Die B-Frames 306 und P-Frames 308 können aus ähnlichen Gründen ebenfalls niedrige Entropiepegel haben. Wenn daher die Steuerung 123 den Entropiepegel eines Video-Frames identifiziert, kann die Steuerung die Identifizierung ungeachtet eines Video-Frametyps (z. B. I-Frame, B-Frame, P-Frame) durchführen. Auf diese Weise können Frames einschließlich I-Frames korrekt als hochentrope Frames identifiziert werden, wenn sie signifikante Informationen einschließen, oder als niederentrope Frames, wenn sie nicht viele Informationen einschließen, und die Steuerung 123 kann die Frames an verschiedenen Speicherorten 112 basierend auf dem Entropiepegel und nicht dem Frametyp entsprechend speichern.
  • Während sich die vorstehenden Beispiele auf die Identifizierung von Entropiepegeln und Speicherung von Video beziehen, kann die vorliegende Offenbarung auch auf Audio oder andere Formen von Medien in einem Medienstrom angewendet werden. Zum Beispiel können Daten 119, die von der Host-Vorrichtung 104 zum Speichern in der Speichervorrichtung 102 empfangen werden, Audio allein (z. B. eine Musikdatei) oder Video begleitendes Audio (z. B. einen Film) einschließen. In einem Beispiel kann das Audio in Form von Audio-Frames empfangen werden, die jeweils jeden Video-Frame begleiten, und die Steuerung 123 kann bestimmen, dass sich Informationen in jedem Audio-Frame zwischen den Frames (z. B. einer Szene mit Musik oder Kommunikation) signifikant verändern. In einem solchen Fall kann die Steuerung 123 bestimmen, dass die Audio-Frames einen hohen Entropiepegel haben. In einem anderen Beispiel kann das Audio durch eine ganze Szene oder Teile einer Szene hindurch stumm geschaltet werden, und die Steuerung 123 kann bestimmen, dass sich Informationen in verschiedenen Audio-Frames unter Umständen nicht signifikant zwischen den Frames verändern (z. B. eine stille Szene oder mit Audiolücken oder Pausen). In einem solchen Fall kann die Steuerung 123 bestimmen, dass die Audio-Frames einen niedrigen Entropiepegel haben. Entsprechend kann die Steuerung 123 Audio-Frames an unterschiedlichen Speicherorten 112 basierend auf dem Entropiepegel speichern. Darüber hinaus kann die Steuerung Entropiepegel unabhängig für Audio und Video identifizieren. Zum Beispiel kann die Steuerung im Fall einer Stunt-Szene mit stummgeschaltetem Audio die Video-Frames als hochentrope Frames und die Audio-Frames, die die Video-Frames begleiten, als niederentrope Frames identifizieren, und die Steuerung kann die Video-Frames und Audio-Frames basierend auf ihren jeweiligen Entropiepegeln separat in dem NVM 110 speichern.
  • Folglich kann die Steuerung 123 einen Entropiepegel von Daten innerhalb eines sich dynamisch verändernden Medienstroms identifizieren und die Daten entsprechend in dem NVM 110 speichern. Dieser Ansatz kann vorteilhaft sein im Vergleich zu anderen Ansätzen, wie dem Identifizieren eines einzigen Entropiepegels des gesamten Medienstroms und Speichern des gesamten Medienstroms entsprechend an dem(den) gleichen Speicherort(en) 112 basierend auf dem identifizierten Entropiepegel, da ein solcher anderer Ansatz unter Umständen nicht den Entropiepegel eines sich möglicherweise im Laufe der Zeit verändernden Medienstroms berücksichtigt. Die vorliegende Offenbarung sorgt somit für eine verbesserte Leistung der Speichervorrichtung 102, indem sie es der Steuerung 123 ermöglicht, Daten in Medienströmen in der Speichervorrichtung basierend auf Änderungen im Entropiepegel im Verlauf der Zeit dynamisch zu verarbeiten und zu speichern.
  • 4 veranschaulicht ein Beispieldiagramm 400, das einen Medienstrom 402 darstellt, der von einem Host-Vorrichtung 104 empfangen wird, einschließlich eines Video-Teilstroms 404, der Video-Frames 406 (z. B. Daten 119) enthält, aus denen die Steuerung 123 entsprechende Entropiepegel identifizieren kann. Der Medienstrom 402 kann dem Medienstrom 302 von 3 entsprechen, und die Video-Frames 406 können individuell beispielsweise I-Frames 304, B-Frames 306 oder P-Frames 308 von 3 entsprechen. Der Medienstrom 402 kann auch einen Audio-Teilstrom 408 einschließen, einschließlich Audio, der jeden Video-Frame 406 begleitet. Obwohl 4 einen einzelnen Medienstrom mit einem einzelnen Audio- und Video-Teilstrom darstellt, der von einer einzigen Kamera der Host-Vorrichtung empfangen wird, können mehrere Medienströme mit entsprechenden Audio- und Video-Teilströmen von mehreren Kameras der Host-Vorrichtung empfangen werden. Somit können MPEG-TS-Daten in mehrere Programme oder Medienströme unterteilt werden, die jeweils eine separate Paketkennung (PID) einschließen, und jeder Medienstrom kann seinen eigenen jeweiligen Audio- und Video-Teilstrom mit entsprechenden Kennungen einschließen. Die Steuerung kann jeden Medienstrom oder Teilstrom einzeln auswerten, um jeweilige Mengen an Informationen oder Entropiepegeln für Daten in jedem Strom zu bestimmen, und die Steuerung kann die Daten jedes einzelnen Stroms oder Teilstroms basierend auf Entropiepegeln in der Speichervorrichtung entsprechend speichern.
  • Die Steuerung kann einen Entropiepegel 410 von Daten in jedem Video-Frame 406 (oder Audio-Frame oder anderem Medium) basierend auf einem Entropie Schwellenwert 412 identifizieren. Die Entropiepegel 410 kann nach verschiedenen Beispielen identifiziert werden. In einem Beispiel kann die Steuerung Daten, die jedem Pixel eines aktuellen Video-Frames zugeordnet sind, mit Daten vergleichen, die jedem Pixel eines oder mehrerer früherer Video-Frames im Zeitbereich auf einer Pixel-für-Pixel-Basis zugeordnet sind, und bestimmen, ob die Anzahl von Pixeln, die sich verändern, einen Entropieschwellenwert überschreiten. Beispielsweise kann der Entropieschwellenwert 412 eine zuvor eingerichtete Anzahl von Pixeln sein. In einem anderen Beispiel kann die Steuerung die jedem Video-Frame zugeordneten Daten in den Frequenzbereich konvertieren, einen einem aktuellen Video-Frame zugeordneten Mittel- oder Gleichstrom-(DC)-Wert identifizieren und mit einem DC-Wert vergleichen, der einem oder mehreren früheren Video-Frames zugeordnet ist, und bestimmen, ob die Differenz der DC-Werte einen Entropieschwellenwert überschreitet. Beispielsweise kann der Entropieschwellenwert 412 ein zuvor eingerichteter DC-Wert sein. Alternativ kann die Steuerung eine Informationsmenge in einem aktuellen Video-Frame im Vergleich zu früheren Video-Frames gemäß anderen Beispielen, z. B. basierend auf einem bestimmten Wert, der von einer Anzahl von Pixeln oder einer Differenz im DC-Gehalt verschieden ist, identifizieren.
  • Sobald die Steuerung den Entropiepegel identifiziert, prüft sie, ob der Entropiepegel den Entropieschwellenwert 412 erreicht. Zum Beispiel kann die Steuerung bestimmen, ob der bestimmte Wert (z. B. Anzahl der Pixel, Differenz im DC-Wert usw.) einen zuvor eingerichteten Wert erreicht, der eine Schwellen-Informationsmenge anzeigt (z. B. 100 Pixel haben sich verändert usw.). Wenn der ermittelte Wert den Entropieschwellenwert erreicht, identifiziert die Steuerung 123 den aktuellen Video-Frame als Frame mit einem hohen Entropiepegel, während, wenn der ermittelte Wert den Entropieschwellenwert nicht erreicht, die Steuerung den aktuellen Video-Frame als Frame mit einem niedrigen Entropiepegel identifiziert. Die Steuerung kann in ähnlicher Weise Entropiepegel 410 für jeden Video-Frame 406 (und Audio-Frame) in dem/den Medienstrom (Medienströmen) 402 identifizieren. Somit wird in dem Beispiel von 4 der Video-Frame 1. als Frame mit hohem Entropiepegel identifiziert, während die Video-Frames 2 und 3 als Frames mit niedrigen Entropiepegeln identifiziert werden. Beispielsweise ist in dem Beispiel einer Standbildszene ohne Bewegung der Video-Frame 1 unter Umständen ein erster I-Frame in einer GOP, während die Video-Frames 2 und 3 nachfolgende I-Frames (oder B-/P-Frames) in einer GOP sind.
  • In den vorstehenden Beispielen wird jeder Video-Frame einzeln mit einem oder mehreren früheren Video-Frames verglichen, um einen Entropiepegel zu identifizieren. Zum Beispiel kann der Videoframe M mit zehn oder fünfzehn vorhergehenden Video-Frames verglichen werden, um den in 4 für den Video-Frame M dargestellten niedrigen Entropiepegel zu identifizieren. In anderen Beispielen werden jedoch mehrere Video-Frames innerhalb eines aktuellen Zeitraums 414 mit mehreren Video-Frames in einem oder mehreren früheren Zeiträumen 416 verglichen, um einen Entropiepegel zu identifizieren. Die Zeiträume können durch Programmtaktreferenzen (PCR) 418 abgegrenzt werden, wobei jedes Paar von PCR 418 den Medienstrom 402 in feste Zeitschlitze (z. B. ms) trennen kann, die einer Zeitsteuerung 100 eines begleitenden Taktsignals entsprechen. Die Steuerung 123 kann auf der Basis eines Präsentations-Zeitstempels (PTS), der das auszuwertende Video oder Audio begleitet, identifizieren, ob eine Gruppe von Video-Frames (z. B. mehrere GOP 310) in jeden Zeitraum 414, 416 zwischen einem Paar oder Bereich von PCR passt. Die Steuerung 123 kann dann den Entropiepegel 410 der Video-Frames in jedem aktuellen Zeitraum 414 gemäß den oben beschriebenen Beispielen identifizieren Zum Beispiel kann die Steuerung einen DC-Wert bestimmen, der einen Mittelwert aller Video-Frames in dem aktuellen Zeitraum 414 angibt, und einen weiteren DC-Wert, der einen Mittelwert aller Video-Frames in der/den vorhergehenden Zeitraum (Zeiträumen) 416 angibt, und die Steuerung kann bestimmen, dass die Video-Frames in dem aktuellen Zeitraum 414 hochentrop sind, wenn die Differenz der beiden DC-Werte den Entropieschwellenwert 412 überschreitet (oder andernfalls niederentrop sind).
  • 5 zeigt ein Beispieldiagramm 500, das eine Speichervorrichtung 502 zeigt, die Daten (z. B. Daten 119 von 1) von einem Überwachungssystem 504 in einem Medienstrom 506 empfängt und die Daten in einem NVM 508 auf der Basis identifizierter Entropiepegel speichert. Die Speichervorrichtung 502 kann der Speichervorrichtung 102 entsprechen, das Überwachungssystem kann mit der Host-Vorrichtung 104 verbunden oder darin einschließen sein, und das NVM 508 kann dem NVM 110 in 1 entsprechen. Die Speichervorrichtung 502 schließt auch einen Cache 510 ein, der dem Cache 122 in 1 entsprechen kann. Die Speichervorrichtung 502 schließt ferner ein Entropiemessgerät 512 ein, das ein Modul der Steuerung (z. B. Steuerung 123 in 1) ist und das so eingerichtet ist, dass es Entropiepegel (z. B. Entropiepegel 410) der Daten (z. B. ein oder mehrere Video-Frames 406), wie in den vorstehenden Beispielen beschrieben, identifiziert.
  • Die Speichervorrichtung 502 kann einen oder mehrere Blöcke zum Speichern von hochentropen Daten (z. B. die hochentropen Datenblöcke 514) und ein oder mehrere Blöcke zum Speichern von niederentropen Daten (z. B. die niederentropen Datenblöcke 516) einschließen. Die hochentropen Datenblöcke 514 und niederentropen Datenblöcke 516 können einem oder mehreren Speicherorten 112 im NVM 110 von 1 entsprechen. Die hochentropen Datenblöcke 514 können intakter sein (z. B. eine niedrigere BER aufweisen) als die niederentropen Datenblöcke 516. Zum Beispiel können die hochentropen Datenblöcke 514 neuer/weniger gealtert sein, können weniger P/E-Zyklen oder weniger anspruchsvoller Verwendung unterliegen, keine Fabrikationsfehler aufweisen oder ansonsten betriebssicherer oder weniger anfällig für Fehler als die niederentropen Datenblöcke 516 sein. Die Steuerung 123 kann Daten in dem Medienstrom 506 entweder in den hochentropen Datenblöcken oder den niederentropen Datenblöcken in Abhängigkeit von dem durch das Entropiemessgerät 512 identifizierten Entropiepegel speichern. Das heißt, wenn die Steuerung Daten als hochentrop identifiziert, kann die Steuerung diese Daten in einem oder mehreren der hochentropen Datenblöcke 514 speichern, und wenn die Steuerung die Daten niederentrop identifiziert, kann die Steuerung diese Daten in einem oder mehreren der niederentropen Datenblöcke 516 speichern. Folglich können hochentrope Daten in der Speichervorrichtung 502 besser vor Fehlern oder Datenverlust geschützt werden als niederentrope Daten.
  • Darüber hinaus kann die Speichervorrichtung 102, 502 Exclusive-OR-Gatter (XOR-Gatter) 518 einschließen, die zum Bereitstellen von Fehlerkorrekturcodes (ECC) verwendet werden können, wie Paritätsdaten zur Verwendung bei der Datenwiederherstellung. Wenn Daten in Speicherorte 112 geschrieben werden, werden die Daten in das XOR-Gatter 518 eingegeben, um einen Bin zu bilden, der die Paritätsdaten darstellt, und dieser Bin wird im Cache 510 gespeichert. Zum Beispiel kann ein 4 KB-Bin (Paritätsdaten) erzeugt und im Cache gespeichert werden, wenn 32 KB Daten in einen Block geschrieben werden. Anschließend, wenn die Daten vom Speicherort ausgelesen werden, kann eine Fehlererkennung durch XOR-Verknüpfen der Daten (z. B. mehrere Wortleitungslängen) unter Verwendung der XOR-Gatter 518 mit den Bin-/Paritätsdaten aus dem Cache 510 durchgeführt werden. Wenn das Ergebnis der XOR-Operation nicht 0 ist, kann ein Fehler in den Daten erkannt werden. Wenn der Fehler korrigierbar ist, können die anderen Daten wieder zusammen mit den Paritätsdaten XOR-verknüpft werden, um die ursprünglichen Daten für diesen Speicherort wiederherzustellen.
  • Der Schutzgrad der XOR-Gatter 518 kann auf der XOR-Streifenlänge und der Bin/Parity-Datengröße basieren. Die Anzahl von Wortlängen, die zusammen mit den Paritätsdaten XOR-verknüpft werden, um einen Fehler zu erkennen, kann als eine XOR-Streifenlänge bezeichnet werden. Geht man zum Beispiel von einer Beispiel-Wortleitungslänge von 4 KB und einer Bin-/Paritätsdatengröße von 4 KB aus, kann eine XOR-Streifenlänge von 2 angeben, dass zwei Wortleitungen (8 KB) von Daten zusammen mit den Paritätsdaten bei der Fehlererkennung/-korrektur XOR-verknüpft werden, während eine XOR-Streifenlänge von 8 angeben kann, dass acht Wortleitungen (32 KB) zusammen mit den Paritätsdaten bei der Fehlererkennung/-korrektur XOR-verknüpft werden. Größere XOR-Streifenlängen in Bezug auf eine bestimmte Bin-/Paritätsdatengröße können zu einer geringeren Wahrscheinlichkeit der Fehlererkennungsfähigkeit und Datenwiederherstellung führen, da bei der Datenwiederherstellung weniger Paritätsdaten mit den anderen Daten XOR-verknüpft würden. Somit hätte im vorstehenden Beispiel eine XOR-Streifenlänge von 8 für eine gegebene Paritätsdatengröße einen schwächeren Schutzgrad als eine XOR-Streifenlänge von 2 für dieselbe Paritätsdatengröße.
  • In ähnlicher Weise können größere Bin/Parity-Datengrößen in Bezug auf eine gegebene XOR-Streifenlänge zu einer höheren Wahrscheinlichkeit der Fehlererkennungsfähigkeit und Datenwiederherstellung führen, da bei der Datenwiederherstellung mehr Paritätsdaten mit den anderen Daten XOR-verknüpft werden. Beispielsweise hätte eine Paritätsdatengröße von 8 KB für eine gegebene XOR-Streifenlänge einen höheren Schutzgrad als eine Paritätsdatengröße von 4 KB für dieselbe XOR-Streifenlänge. Größere Paritätsdatengrößen können jedoch mehr Speicher verbrauchen, was zu einer verringerten Lebensdauer der Speichervorrichtung 502 führt (z. B. aufgrund von mehr P/E-Löschzyklen im Verlauf der Zeit). Daher kann es vorteilhaft sein, das Interesse an einem stärkeren Schutzgrad ungeachtet der geringeren Lebensdauer auf der Basis des Entropiepegels der zu schützenden Daten gegeneinader abzuwägen.
  • Dementsprechend kann die Steuerung 123 die XOR-Gatter 518 so konfigurieren, dass sie eine kleinere XOR-Streifenlänge oder eine größere Paritätsdatengröße für einen stärkeren ECC-Schutz von Daten der hochentropen Datenblöcke 514 aufweisen, und die Steuerung kann die XOR-Gatter 518 für einen schwächeren ECC-Schutz von Daten von niederentropen Datenblöcken 516 konfigurieren. Zum Beispiel kann die Steuerung verhindern, dass Daten der hochentropen Datenblöcke 514 in die XOR-Gatter 518 eingegeben werden, um die XOR-Streifenlänge zu reduzieren, oder die Steuerung kann ermöglichen, dass zusätzliche Daten der niederentropen Datenblöcke 516 in die XOR-Gatter 518 eingegeben werden, um die XOR-Streifenlänge zu erhöhen. Somit zeigt 5, dass XOR-Gatter 518 eine XOR-Streifenlänge 520 für die niederentropen Datenblöcke 516 einschließen, die größer ist als eine XOR-Streifenlänge 522 für die hochentropen Datenblöcke 514. Folglich können hochentrope Daten einen höheren Schutzgrad als niederentrope Daten in der Speichervorrichtung 502 haben, während sie auch die Speicherlebensdauer erhöhen, indem sie die Bin/Parity-Datengröße für Daten mit niedrigerer Entropie reduzieren. Außerdem kann die Steuerung den Speicher infolge der verringerten Speichernutzung für Parität von Daten mit niedrigerer Entropie für andere Zwecke nutzen. Zum Beispiel kann die Steuerung, statt zusätzliche Paritätsdaten in dem Cache 510 für die Datenblöcke 516 mit niedrigerer Entropie zu speichern, den Raum in dem Cache 510 zum Durchführen einer Speicherbereinigung (GC) oder einer anderen Funktion nutzen.
  • Darüber hinaus können Daten auf der Basis verschiedener Parameter, einschließlich Schreiblatenz und Spannung, in das NVM 508 geschrieben werden. Die Schreiblatenz kann eine Zeitdauer einschließen, die zum Programmieren von Daten in einer Zelle des NAND verwendet wird, und Spannungen können im Bereich zwischen z. B. 0 V und Vcc für logisch 0 bzw. 1 liegen. Wenn Daten in einen Block mit einer längeren Schreiblatenz geschrieben werden, können die Daten aus dem Block erfolgreich auslesbar sein; wenn Daten jedoch in einen Block mit kürzerer Schreiblatenz geschrieben werden, sind die Daten eventuell nicht so ausreichend programmiert und können anfälliger für Lesefehler sein (z. B. höhere BER). Analog, wenn die Daten in einen Block mit einer Spannung geschrieben werden, die diskret ist (z. B. nahe 0 V oder Vcc), können die Daten erfolgreich, basierend auf der Spannung, als logisch 0 oder 1 geschrieben werden; wenn die Daten jedoch in den Block mit einer Spannung geschrieben werden, die weniger diskret oder mehrdeutiger ist (z. B. gleich weit von 0 V und Vcc entfernt), werden die Daten möglicherweise nicht korrekt gespeichert und können auch anfälliger für Lesefehler sein (z. B. höhere BER).
  • Während längere Schreiblatenzen und geeignete Spannungen zu weniger Lesefehlern führen können, kann es in bestimmten Fällen vorteilhaft sein, Daten mit kürzeren Latenzen oder weniger diskreten Spannungen zu schreiben (z. B. um P/E-Zyklen zu reduzieren und das Altern von Blöcken zu verkürzen, den Energieverbrauch der Speichervorrichtung zu verringern usw.). Dementsprechend wägt die Steuerung 123 diese Interessen gegeneinander ab, indem sie andere NAND-Schreib- oder Trimm-Parameter (z. B. Programmier- und Löschparameter) für Daten abstimmt, die in den hochentropen Datenblöcken 514 gespeichert sind, als für die Daten, die in den niederentropen Speicherblöcken 516 gespeichert sind. Wenn beispielsweise das Entropiemessgerät 512 der Steuerung Daten als einen hohen Entropiepegel einschließend identifiziert, kann die Steuerung die Daten in den hochentropen Datenblöcken 514 mit einer höheren Schreiblatenz oder einer diskreteren Spannung speichern, während die Steuerung, wenn das Entropiemessgerät 512 der Steuerung Daten als einen niedrigen Entropiepegel einschließend identifiziert, die Steuerung die Daten in den niederentropen Datenblöcken 516 mit einer niedrigeren Schreiblatenz oder einer weniger diskreten Spannung speichern kann. Entsprechend kann die Steuerung die Schreib- oder Trimm-Befehle (z. B. Programme und Löschungen) der hochentropen Datenblöcke 514 mit höherer Schreiblatenz oder diskreteren Spannungen als bei niederentropen Datenblöcken 516 ausführen. Folglich können hochentrope Datenblöcke eine längere Lebensdauer (z. B. weniger BER) als niederentrope Datenblöcke haben.
  • Die vorstehend genannten Beispiele von 3-5 beziehen sich auf die Identifizierung eines Entropiepegels 410 für Daten eines Medienstroms 302, 402 und die Speicherung der Daten in intakteren, besser geschützten oder langlebigeren Blöcken (z. B. den hochentropen Datenblöcken 514 gegenüber den niederentropen Datenblöcken 516) auf der Basis eines einzigen Entropieschwellenwerts 412. Es sind jedoch mehrere Pegel von Entropieschwellenwerten 412 konfigurierbar, auf die die vorstehenden Beispiele angewandt werden können. Somit können Daten von einem Medienstrom als mit unterschiedlichen Graden von Entropiepegeln behaftet (z. B. niedrig, mittel, hoch usw.) identifiziert werden, und die Steuerung kann die Speicher-, Schutz- und NAND-Schreibparameter basierend auf den variierenden Graden von Entropiepegeln modifizieren. Zum Beispiel können Daten mit einem mittleren Entropiepegel in einem weniger intakten Block (z. B. mehr BER) gespeichert werden, können weniger Schutz (z. B. eine längere XOR-Streifenlänge oder eine kürzere Bin-/Paritätsdatengröße) einschließen oder können mit kürzerer Schreiblatenz oder weniger diskreten Spannungen geschrieben werden als Daten mit einem hohen Entropiepegel. In ähnlicher Weise können Daten mit einem mittleren Entropiepegel in einem intakteren Block (z. B. weniger BER) gespeichert werden, mehr Schutz (z. B. eine kürzere XOR-Streifenlänge oder eine längere Bin-/Paritätsdatengröße) beinhalten oder mit einer längeren Schreiblatenz oder mehr diskreten Spannungen geschrieben werden als Daten mit einem niedrigen Entropiepegel. Es können verschiedene Entropiepegel identifiziert und Daten entsprechend gespeichert werden.
  • Darüber hinaus, während sich die vorstehenden Beispiele auf die Identifizierung von Entropiepegeln und Speicherung basierend auf Daten in einem Medienstrom beziehen, der von einem Überwachungssystem einer Host-Vorrichtung in CBR empfangen wird, ist die vorliegende Offenbarung nicht darauf beschränkt. Beispielsweise kann die Steuerung in ähnlicher Weise Entropiepegel für Daten identifizieren, die vom Überwachungssystem in VBR empfangen wurden, und die Steuerung kann die Daten in ähnlicher Weise in hoch- oder niederentropen Datenblöcken speichern. Darüber hinaus wird der Medienstrom nicht zwangsläufig von einem Überwachungssystem empfangen; zum Beispiel steht der Medienstrom unter Umständen nicht mit der Überwachung in Zusammenhang oder wird unter Umständen innerhalb einer beliebigen Anwendung von der Host-Vorrichtung 104 empfangen.
  • 6 veranschaulicht ein beispielhaftes Flussdiagramm 600 eines Verfahrens zum Speichern von Daten basierend auf Entropiepegeln. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, 502, wie der in 1 und 5 veranschaulichten, ausgeführt werden. Jeder der Schritte in dem Flussdiagramm kann unter Verwendung der Steuerung wie unten beschrieben (z. B. der Steuerung 123) oder durch ein beliebiges anderes geeignetes Mittel gesteuert werden. Optionale Gesichtspunkte sind in gestrichelten Linien veranschaulicht.
  • Wie durch den Block 602 dargestellt, empfängt die Steuerung von einer Host-Vorrichtung Daten, die einem Medienstrom zugeordnet sind. Der Medienstrom kann eine CBR umfassen. Beispielsweise kann die Steuerung 123 in Bezug auf die 1 und 3-5 Daten (z. B. Daten 119) von einer Host-Vorrichtung 104 empfangen, die einem Medienstrom zugeordnet sind (z. B. Medienstrom 302, 402, 506). Der Medienstrom kann von der Host-Vorrichtung unter Verwendung von CBR gestreamt werden. Zum Beispiel, können Daten 119 von der Host-Vorrichtung 104 mit einer konstanten Rate (z. B. 1 Mbps) empfangen werden.
  • Wie durch den Block 604 dargestellt, kann die Steuerung einen Entropiepegel der von der Host-Vorrichtung empfangenen Daten identifizieren. Die Steuerung kann die Daten basierend auf ihrem Entropiepegel trennen, z. B. in hochentrope Video-Frames oder niederentrope Video-Frames. Zum Beispiel, in Bezug auf die 1 und 4, kann die Steuerung 123 einen Entropiepegel 410 der Daten 119 (z. B. Video-Frames 406), die von der Host-Vorrichtung 104 empfangen wurden, identifizieren, und die Steuerung kann die Daten als hochentrope oder niederentrope Daten trennen, wie in 4 veranschaulicht. Zum Beispiel kann die Steuerung den Video-Frame 1 als mit einem hohen Entropiepegel behaftet, und die Video-Frames 2 und 3 als mit einem niedrigen Entropiepegel behaftet identifizieren.
  • In einem Beispiel kann die Steuerung den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) von einem aktuellen Video-Frame und einem vorhergehenden DC-Koeffizienten von einem oder mehreren vorhergehenden Video-Frames identifizieren. Zum Beispiel in Bezug auf 4 kann die Steuerung einen Entropiepegel 410 von Daten in jedem Video-Frame 406 (oder Audio-Frame oder anderen Medien) basierend auf einem Entropieschwellenwert 412 durch Umwandeln der den einzelnen Video-Frames zugeordneten Daten in den Frequenzbereich identifizieren, um einen durchschnittlichen (DC-) Wert, der einem aktuellen Video-Frame zugeordnet ist, mit einem DC-Wert zu vergleichen, der einem oder mehreren früheren Video-Frames zugeordnet ist, und bestimmen, ob die Differenz in DC-Werten einen Entropieschwellenwert überschreitet. Wenn der ermittelte DC-Wert den Entropieschwellenwert erreicht, identifiziert die Steuerung 123 den aktuellen Video-Frame als Frame mit einem hohen Entropiepegel, während, wenn der ermittelte DC-Wert den Entropieschwellenwert nicht erreicht, die Steuerung den aktuellen Video-Frame als Frame mit einem niedrigen Entropiepegel identifiziert.
  • In einem anderen Beispiel kann die Steuerung den Entropiepegel auf der Basis einer Differenz zwischen einem DC-Koeffizienten aktueller Video-Frames in einem ersten Zeitraum und einem vorhergehenden DC-Koeffizienten vorhergehender Video-Frames in einem zweiten Zeitraum identifizieren, wobei der erste Zeitraum und der zweite Zeitraum jeweils zwischen einem entsprechenden Satz von PCR liegen. Unter Bezugnahme auf 4 kann die Steuerung 123 beispielsweise den Entropiepegel 410 der Video-Frames 406 in einem aktuellen Zeitraum 414 innerhalb eines Satzes von PCR 418 auf der Basis eines Vergleichs mit den Video-Frames 406 in einem oder mehreren früheren Zeiträumen 416 innerhalb eines anderen Satzes von PCRs 418 identifizieren. Die Steuerung 123 kann basierend auf einem Video-PTS oder Audio-PTS, die die Video-Frames bzw. Audio begleiten, identifizieren, ob eine Gruppe von Video-Frames (z. B. mehrere GOP 310) in jeden Zeitraum 414, 416 passen. Die Steuerung kann einen DC-Wert bestimmen, der einen Mittelwert aller Video-Frames in dem aktuellen Zeitraum 414 angibt, und einen weiteren DC-Wert, der einen Mittelwert aller Video-Frames in dem/den vorhergehenden Zeitraum (Zeiträumen) 416 angibt, und die Steuerung kann bestimmen, ob die Differenz in den beiden DC-Werten den Entropieschwellenwert 412 überschreitet. Wenn die Differenz den Schwellenwert überschreitet, kann die Steuerung die Video-Frames in dem aktuellen Zeitraum 414 als hochentrop bestimmen; andernfalls kann die Steuerung die Video-Frames in dem aktuellen Zeitraum als niederentrop bestimmen.
  • Wie durch den Block 606 dargestellt, kann die Steuerung Daten-Frames (z. B. Video-Frames, Audio-Frames oder andere Medien) auswählen, deren Entropiepegel dazu identifiziert werden, dass sie bei 604 den Entropieschwellenwert erreichen. Zum Beispiel kann die Steuerung, wie vorstehend in Bezug auf 4 beschrieben, verschiedene Video-Frames 406, die den Entropieschwellenwert 412 erreichen, als hochentrop identifizieren. Der Entropiepegel kann unabhängig von einem aktuellen Video-Frametyp des aktuellen Video-Frames identifiziert werden. Beispielsweise kann in Bezug auf 3 der Entropiepegel eines Video-Frames vom Video-Frametyp unabhängig sein. Zum Beispiel kann in Fällen, wie bei Standbildszenen ohne Aktivität oder Bewegung zwischen den Frames, der erste I-Frame 304 in einer Reihe von GOP 310 einen hohen Entropiepegel einschließen (z. B. weil seine Daten das erste Bild darstellen), während nachfolgende I-Frames 304 in den GOP 310 aufgrund von unwesentlichen Datenänderungen zwischen Frames einen niedrigen Entropiepegel einschließen. Die B-Frames 306 und P-Frames 308 können aus ähnlichen Gründen ebenfalls niedrige Entropiepegel haben. Wenn daher die Steuerung 123 den Entropiepegel eines Video-Frames identifiziert, kann die Steuerung die Identifizierung ungeachtet eines Video-Frametyps (z. B. I-Frame, B-Frame, P-Frame) durchführen.
  • Wie durch Block 608 dargestellt, kann die Steuerung die Daten in einem ersten Block des Speichers speichern, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und die Steuerung kann die Daten in einem zweiten Block des Speichers speichern, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht. Der zweite Block kann einer höheren BER als der erste Block zugeordnet sein. Zum Beispiel kann in Bezug auf 5, wenn die Steuerung 123 Daten im Medienstrom 506 als hochentrop identifiziert (z. B. Entropiepegel 410), die Steuerung diese Daten in einem oder mehreren der hochentropen Datenblöcke 514 speichern, und wenn die Steuerung die Daten als niederentrop identifiziert, kann die Steuerung diese Daten in einem oder mehreren der niederentropen Datenblöcke 516 speichern.
  • Wie durch Block 610 veranschaulicht, kann die Steuerung NAND-Parameter für hochentrope Daten identifizieren. Beispielsweise können in Bezug auf 5 Daten auf der Basis verschiedener Parameter, einschließlich Schreiblatenz und Spannung, in das NVM 508 geschrieben werden. Die Steuerung kann die Daten in dem ersten Block mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung speichern, wenn der Entropiepegel den Entropieschwellenwert erreicht, und die Steuerung kann die Daten in einem zweiten Block mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung speichern, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht. Wenn zum Beispiel, wieder in Bezug auf 5, das Entropiemessgerät 512 der Steuerung Daten als hochentrop identifiziert, kann die Steuerung die Daten in den hochentropen Datenblöcken 514 mit einer höheren Schreiblatenz oder einer diskreteren Spannung speichern, während die Steuerung, wenn das Entropiemessgerät 512 der Steuerung Daten als niederentrop identifiziert, die Daten in den niederentropen Datenblöcken 516 mit einer niedrigeren Schreiblatenz oder einer weniger diskreten Spannung speichern kann.
  • Schließlich kann die Steuerung, wie durch den Block 612 dargestellt, einen Schutzgrad für niederentrope Daten identifizieren. Zum Beispiel kann, in Bezug auf 5, der Schutzgrad der XOR-Gatter 518 auf der XOR-Streifenlänge und Bin/Paritätsdatengröße basieren. Die Steuerung kann eine XOR-Streifenlänge für die in dem ersten Block gespeicherten Daten verringern, wenn der Entropiepegel den Entropieschwellenwert erreicht, und die Steuerung kann eine XOR-Streifenlänge für die in dem zweiten Block gespeicherten Daten erhöhen, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht. Beispielsweise kann, wieder in Bezug auf 5, die Steuerung 123 die XOR-Gatter 518 so konfigurieren, dass sie eine kleinere XOR-Streifenlänge oder eine größere Paritätsdatengröße für einen stärkeren ECC-Schutz von Daten aus hochentropen Datenblöcken 514 aufweisen, und die Steuerung kann die XOR-Gatter 518 so konfigurieren, dass sie einen erhöhten ECC-Schutz von Daten aus niederentropen Datenblöcken 516 aufweisen. Somit zeigt 5, dass XOR-Gatter 518 eine XOR-Streifenlänge 520 für die niederentropen Datenblöcke 516 einschließen, die größer ist als eine XOR-Streifenlänge 522 für die hochentropen Datenblöcke 514.
  • Der Medienstrom kann einen ersten Teilstrom einschließlich Video und einen zweiten Teilstrom einschließlich Audio einschließen. Beispielsweise kann unter Bezugnahme auf 4 der von der Host-Vorrichtung empfangene Medienstrom 402 einen Video-Teilstrom 404 und einen Audio-Teilstrom 408 einschließen. Die Steuerung kann einen ersten Entropiepegel der Daten in dem ersten Teilstrom identifizieren, die den Entropieschwellenwert erreichen, und die Steuerung kann einen zweiten Entropiepegel der Daten in dem zweiten Teilstrom identifizieren, die den Entropieschwellenwert nicht erreichen. Zum Beispiel, in Bezug auf 3, kann die Steuerung Entropiepegel unabhängig für Audio und Video identifizieren. Zum Beispiel kann die Steuerung im Fall einer Stunt-Szene mit stummgeschaltetem Audio die Video-Frames als hochentrope Frames und die Audio-Frames, die die Video-Frames begleiten, als niederentrope Frames identifizieren, und die Steuerung kann die Video-Frames und Audio-Frames basierend auf ihren jeweiligen Entropiepegeln separat in dem NVM 110 speichern. Die Steuerung kann die Daten in dem ersten Teilstrom in dem ersten Block speichern, und die Steuerung kann die Daten in dem zweiten Teilstrom in dem zweiten Block speichern. Beispielsweise kann die Steuerung in Bezug auf 5 die hochentropen Video-Frames in einem oder mehreren der hochentropen Datenblöcke 514 speichern, und die Steuerung kann die niederentropen Audio-Frames in einem oder mehreren der niederentropen Datenblöcke 516 speichern.
  • Dementsprechend optimiert die vorliegende Offenbarung die Speicherung von Daten in der Speichervorrichtung durch getrenntes Speichern von Daten in dem Speicher, die unterschiedliche Mengen an Informationen oder Entropie einschließen. Daten mit hochentropen Pegeln können in intakteren oder langlebigeren Blöcken mit einer geringeren BER gespeichert werden, während Daten mit niederentropen Pegeln in weniger intakten oder kurzlebigeren Blöcken mit einer höheren BER gespeichert werden können. Die Steuerung kann auch höhere Schutzgrade (z. B. XOR-Streifenlängen und Paritätsdatengrößen) und feine abgestimmte NAND-Parameter (z. B. längere Schreiblatenzen und höhere oder niedrigere Spannungen) für Daten mit höherer Entropie bereitstellen als für Daten niedrigerer Entropie. Folglich können Daten mit höherer Entropie besser geschützt und wiederherstellbar sein als Daten mit niedrigerer Entropie, die bei Verlust weniger wichtig sein können, da sie weniger wahrnehmbare Wirkung auf die Medienwiedergabe haben. Somit kann die QoS für eine optimale Medienwiedergabe und Leistung der Speichervorrichtung normiert werden.
  • Die verschiedenen Gesichtspunkte dieser Offenbarung werden bereitgestellt, um es einem Fachmann zu ermöglichen, die vorliegende Erfindung praktisch umzusetzen. Verschiedene Modifikationen an beispielhaften Ausführungsformen, die in dieser Offenbarung dargestellt werden, werden für den Fachmann leicht ersichtlich sein, und die hierin offenbarten Konzepte können auf andere magnetische Speichervorrichtungen ausgedehnt werden. Daher sollen die Ansprüche nicht auf die verschiedenen Gesichtspunkte dieser Offenbarung beschränkt sein, sondern es soll ihnen der volle Schutzumfang in Übereinstimmung mit der Formulierung der Ansprüche gewährt werden. Alle strukturellen und funktionalen Äquivalente zu den verschiedenen Komponenten der beispielhaften Ausführungsformen, die in dieser Offenbarung beschrieben sind und die einem Fachmann bekannt sind oder später bekannt werden, werden hiermit ausdrücklich durch Bezugnahme aufgenommen und sollen durch die Ansprüche eingeschlossen sein. Darüber hinaus soll nichts hierin Offenbartes der Öffentlichkeit gewidmet sein, ungeachtet dessen, ob eine solche Offenbarung in den Ansprüchen ausdrücklich erwähnt wird. Kein Anspruchselement ist gemäß den Bestimmungen von 35 U.S.C. § 112(f) in den Vereinigten Staaten oder eines analogen Gesetzes oder Rechtsgrundsatzes in einer anderen Region zu verstehen, sofern das Element nicht explizit unter Verwendung des Ausdrucks „Mittel für“ oder im Falle eines Verfahrensanspruchs unter Verwendung des Ausdrucks „Schritt für“ erwähnt wird.

Claims (20)

  1. Speichervorrichtung, aufweisend: einen Speicher; und eine Steuerung zum Empfangen, von einer Host-Vorrichtung, von Daten, die einem Medienstrom zugeordnet sind, wobei die Steuerung ferner eingerichtet ist zum Identifizieren eines Entropiepegels von Daten, um die Daten in einem ersten Block des Speichers zu speichern, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und die Daten in einem zweiten Block des Speichers zu speichern, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht, wobei der zweite Block einer höheren Bitfehlerrate (BER) zugeordnet ist als der erste Block.
  2. Speichervorrichtung gemäß Anspruch 1, wobei der Medienstrom eine konstante Bitrate (CBR) aufweist.
  3. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) eines aktuellen Video-Frames und einem vorhergehenden DC-Koeffizienten eines oder mehrerer früherer Video-Frames zu identifizieren.
  4. Speichervorrichtung gemäß Anspruch 3, wobei der Entropiepegel unabhängig von einem aktuellen Video-Frametyp des aktuellen Video-Frames identifiziert wird.
  5. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) aktueller Video-Frames in einem ersten Zeitraum und einem vorhergehenden DC-Koeffizienten früherer Video-Frames in einem zweiten Zeitraum zu identifizieren, wobei der erste Zeitraum und der zweite Zeitraum jeweils zwischen einem jeweiligen Satz von Programmtaktreferenzen (PCR) liegen.
  6. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner dazu eingerichtet ist, die Daten in dem ersten Block mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung zu speichern, wenn der Entropiepegel den Entropieschwellenwert erreicht, und die Daten in einem zweiten Block mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung speichern, wenn der Entropiepegel nicht den Entropieschwellenwert erreicht.
  7. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner dazu eingerichtet ist, eine XOR-Streifenlänge für die in dem ersten Block gespeicherten Daten zu reduzieren, wenn der Entropiepegel den Entropieschwellenwert erreicht, und eine XOR-Streifenlänge für die in dem zweiten Block gespeicherten Daten zu erhöhen, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht.
  8. Speichervorrichtung gemäß Anspruch 1, wobei der Medienstrom einen ersten Teilstrom einschließlich Video und einen zweiten Teilstrom einschließlich Audio einschließt; und wobei die Steuerung ferner eingerichtet ist zum Identifizieren eines ersten Entropiepegels der Daten in dem ersten Teilstrom, der den Entropieschwellenwert erreicht, und zum Identifizieren eines zweiten Entropiepegels der Daten in dem zweiten Teilstrom, der den Entropieschwellenwert nicht erreicht; und wobei die Steuerung ferner dazu eingerichtet ist, die Daten in dem ersten Teilstrom in dem ersten Block zu speichern, und die Daten in dem zweiten Teilstrom in dem zweiten Block zu speichern.
  9. Speichervorrichtung, aufweisend: einen Speicher; und eine Steuerung, die eingerichtet ist zum Empfangen von Daten, die einem Medienstrom zugeordnet sind, von einer Host-Vorrichtung, wobei die Steuerung ferner eingerichtet ist zum Identifizieren eines Entropiepegels von Daten, zum Speichern der Daten in einem ersten Block des Speichers mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und zum Speichern der Daten in einem zweiten Block des Speichers mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht.
  10. Speichervorrichtung gemäß Anspruch 9, wobei der Medienstrom eine konstante Bitrate (CBR) aufweist.
  11. Speichervorrichtung gemäß Anspruch 9, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) eines aktuellen Video-Frames und einem vorhergehenden DC-Koeffizienten eines oder mehrerer früherer Video-Frames zu identifizieren.
  12. Speichervorrichtung gemäß Anspruch 11, wobei der Entropiepegel unabhängig von einem aktuellen Video-Frametyp des aktuellen Video-Frames identifiziert wird.
  13. Speichervorrichtung gemäß Anspruch 9, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) aktueller Video-Frames in einem ersten Zeitraum und einem vorhergehenden DC-Koeffizienten früherer Video-Frames in einem zweiten Zeitraum zu identifizieren, wobei der erste Zeitraum und der zweite Zeitraum jeweils zwischen einem jeweiligen Satz von Programmtaktreferenzen (PCR) liegen.
  14. Speichervorrichtung gemäß Anspruch 9, wobei der zweite Block einer höheren Bitfehlerrate (BER) zugeordnet ist als der erste Block.
  15. Speichervorrichtung gemäß Anspruch 9, wobei die Steuerung ferner dazu eingerichtet ist, eine XOR-Streifenlänge für die in dem ersten Block gespeicherten Daten zu reduzieren, wenn der Entropiepegel den Entropieschwellenwert erreicht, und eine XOR-Streifenlänge für die in dem zweiten Block gespeicherten Daten zu erhöhen, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht.
  16. Speichervorrichtung gemäß Anspruch 9, wobei der Medienstrom einen ersten Teilstrom einschließlich Video und einen zweiten Teilstrom einschließlich Audio einschließt; und wobei die Steuerung ferner eingerichtet ist zum Identifizieren eines ersten Entropiepegels der Daten in dem ersten Teilstrom, der den Entropieschwellenwert erreicht, und zum Identifizieren eines zweiten Entropiepegels der Daten in dem zweiten Teilstrom, der den Entropieschwellenwert nicht erreicht; und wobei die Steuerung ferner dazu eingerichtet ist, die Daten in dem ersten Teilstrom in dem ersten Block zu speichern, und die Daten in dem zweiten Teilstrom in dem zweiten Block zu speichern.
  17. Speichervorrichtung, aufweisend: einen Speicher; und eine Steuerung, die eingerichtet ist zum Empfangen von Daten, die einem Medienstrom zugeordnet sind, von einer Host-Vorrichtung, wobei die Steuerung ferner eingerichtet ist zum Identifizieren eines Entropiepegels von Daten, zum Speichern der Daten in einem ersten Block des Speichers mit mindestens einem von einer höheren Schreiblatenz oder einer ersten Spannung, wenn der Entropiepegel einen Entropieschwellenwert erreicht, und zum Speichern der Daten in einem zweiten Block des Speichers mit mindestens einem von einer niedrigeren Schreiblatenz oder einer zweiten Spannung, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht, wobei der zweite Block einer höheren Bitfehlerrate (BER) zugeordnet ist als der erste Block.
  18. Speichervorrichtung gemäß Anspruch 17, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) eines aktuellen Video-Frames und einem vorhergehenden DC-Koeffizienten eines oder mehrerer früherer Video-Frames zu identifizieren.
  19. Speichervorrichtung gemäß Anspruch 17, wobei die Steuerung ferner dazu eingerichtet ist, den Entropiepegel basierend auf einer Differenz zwischen einem Gleichstrom-Koeffizienten (DC-Koeffizienten) aktueller Video-Frames in einem ersten Zeitraum und einem vorhergehenden DC-Koeffizienten früherer Video-Frames in einem zweiten Zeitraum zu identifizieren, wobei der erste Zeitraum und der zweite Zeitraum jeweils zwischen einem jeweiligen Satz von Programmtaktreferenzen (PCR) liegen.
  20. Speichervorrichtung gemäß Anspruch 17, wobei die Steuerung ferner dazu eingerichtet ist, eine XOR-Streifenlänge für die in dem ersten Block gespeicherten Daten zu reduzieren, wenn der Entropiepegel den Entropieschwellenwert erreicht, und eine XOR-Streifenlänge für die in dem zweiten Block gespeicherten Daten zu erhöhen, wenn der Entropiepegel den Entropieschwellenwert nicht erreicht.
DE102020115975.7A 2020-03-19 2020-06-17 Entropiegetriebene lebensdauer für normierte dienstqualität Granted DE102020115975A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/823,714 US11082168B1 (en) 2020-03-19 2020-03-19 Entropy driven endurance for normalized quality of service
US16/823,714 2020-03-19

Publications (1)

Publication Number Publication Date
DE102020115975A1 true DE102020115975A1 (de) 2021-09-23

Family

ID=77063547

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020115975.7A Granted DE102020115975A1 (de) 2020-03-19 2020-06-17 Entropiegetriebene lebensdauer für normierte dienstqualität

Country Status (4)

Country Link
US (1) US11082168B1 (de)
KR (1) KR102380101B1 (de)
CN (1) CN113495683A (de)
DE (1) DE102020115975A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839743A (en) 1984-08-01 1989-06-13 Worlds Of Wonder, Inc. Interactive video and audio controller
EP3243328B1 (de) 2015-01-08 2019-07-31 Microsoft Technology Licensing, LLC Variationen der ratensteuerung von rho-domäne

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1003827A4 (fr) * 1990-02-26 1992-06-23 Alcatel Bell Sdt Sa Procede universel de codage de signaux d'image.
KR100262500B1 (ko) 1997-10-16 2000-08-01 이형도 적응적 블록 현상 제거기능을 갖는 복호화기
AUPR192700A0 (en) * 2000-12-06 2001-01-04 Canon Kabushiki Kaisha Storing coding image data in storage of fixed memory size
JP4802524B2 (ja) 2005-03-14 2011-10-26 ソニー株式会社 画像処理装置、カメラシステム、ビデオシステム、ネットワークデータシステム、並びに、画像処理方法
US8036263B2 (en) 2005-12-23 2011-10-11 Qualcomm Incorporated Selecting key frames from video frames
DE112008004040T5 (de) * 2008-10-24 2013-01-31 Hewlett-Packard Development Company, L.P. Verfahren und System zum Erhöhen einer Rahmenanzeigerate
NO330107B1 (no) * 2009-07-09 2011-02-21 Tandberg Telecom As Datamaskinimplementert tidlig dropping
US8531321B1 (en) * 2011-07-21 2013-09-10 Luca Rossato Signal processing and inheritance in a tiered signal quality hierarchy
US9037921B1 (en) 2012-03-29 2015-05-19 Amazon Technologies, Inc. Variable drive health determination and data placement
US20140089561A1 (en) 2012-09-26 2014-03-27 Kiran Pangal Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory
US9462306B2 (en) * 2013-07-16 2016-10-04 The Hong Kong University Of Science And Technology Stream-switching in a content distribution system
TWI541662B (zh) * 2014-12-31 2016-07-11 中原大學 估計熵值之方法與系統
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
KR102475798B1 (ko) 2016-07-14 2022-12-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11010158B2 (en) * 2017-11-15 2021-05-18 Facebook, Inc. Determining the availability of memory optimizations by analyzing a running binary
US10873765B2 (en) * 2018-03-29 2020-12-22 Apple Inc. Techniques for high efficiency entropy coding of video data
US10602147B2 (en) * 2018-07-10 2020-03-24 Samsung Display Co., Ltd. Efficient entropy coding group grouping methodology for transform mode
US10452616B1 (en) * 2018-10-29 2019-10-22 EMC IP Holding Company LLC Techniques for improving storage space efficiency with variable compression size unit
US11221991B2 (en) * 2018-10-30 2022-01-11 EMC IP Holding Company LLC Techniques for selectively activating and deactivating entropy computation
US11157188B2 (en) * 2019-04-24 2021-10-26 EMC IP Holding Company LLC Detecting data deduplication opportunities using entropy-based distance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839743A (en) 1984-08-01 1989-06-13 Worlds Of Wonder, Inc. Interactive video and audio controller
EP3243328B1 (de) 2015-01-08 2019-07-31 Microsoft Technology Licensing, LLC Variationen der ratensteuerung von rho-domäne

Also Published As

Publication number Publication date
KR20210117895A (ko) 2021-09-29
CN113495683A (zh) 2021-10-12
KR102380101B1 (ko) 2022-03-28
US11082168B1 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
DE102014204716B4 (de) Nichtflüchtiges Speicherbauelement und Programmierverfahren für ein Betriebssystem(OS)-Image
US20150113357A1 (en) Data streaming for solid-state bulk storage devices
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE112013003255T5 (de) Managementmechanismus für fehlerhafte Blöcke
DE112011103295T5 (de) Decodieren in Solid-State-Speichereinheiten
DE102017117066A1 (de) Nichtbinäre codierung für einen nichtflüchtigen speicher
US20170271030A1 (en) Method and system for using downgraded flash die for cache applications
CN107710142B (zh) 用于数据存储装置的数据保留管理
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend
DE102015106656A1 (de) Kombinierte auswahl-schreibtechnik für kreuzpunktspeicher
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
KR101809044B1 (ko) 프리-이벤트 순환 저장 방식 영상녹화장치
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112020000140T5 (de) Verschieben von daten im speicher bei unterschiedlichen übertragungsraten auf basis der temperatur
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
US20210064280A1 (en) Search Time Optimization in Solid-State Devices
DE112017004916T5 (de) Verwendung von Kompression zur Kapazitätserhöhung eines speicherseitigen Caches mit grosser Blockgrösse
DE102012201534A1 (de) Vorrichtung zur zwischenspeicherung einer skalierbaren original-datei
DE102020116366A1 (de) System und verfahren für reduzierte latenz von lese-, änderungs- und schreibvorgängen
DE102011100936B4 (de) Techniken zum Speichern und Abrufen von Pixeldaten
DE102020115975A1 (de) Entropiegetriebene lebensdauer für normierte dienstqualität

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R018 Grant decision by examination section/examining division