DE102022207672A1 - Kodiervorrichtung, speichergerät und betriebsverfahren des speichergeräts - Google Patents

Kodiervorrichtung, speichergerät und betriebsverfahren des speichergeräts Download PDF

Info

Publication number
DE102022207672A1
DE102022207672A1 DE102022207672.9A DE102022207672A DE102022207672A1 DE 102022207672 A1 DE102022207672 A1 DE 102022207672A1 DE 102022207672 A DE102022207672 A DE 102022207672A DE 102022207672 A1 DE102022207672 A1 DE 102022207672A1
Authority
DE
Germany
Prior art keywords
data
data blocks
bits
compressed data
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.)
Pending
Application number
DE102022207672.9A
Other languages
English (en)
Inventor
Hyeok Chan Sohn
Kang Wook JO
Hyeon Cheon Seol
Byung Ryul Kim
Jae Young Lee
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.)
SK Hynix Inc
Original Assignee
SK Hynix 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
Priority claimed from KR1020220065679A external-priority patent/KR20230017717A/ko
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of DE102022207672A1 publication Critical patent/DE102022207672A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Ein Speichergerät kann umfassen: eine Speichervorrichtung zum Extrahieren von Bits mit einem ersten logischen Wert aus Bits, die in von außerhalb der Speichervorrichtung empfangenen Daten umfasst sind, zum Erzeugen einer Vielzahl von komprimierten Datenblöcken, die die Bits mit dem ersten logischen Wert und Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in den Daten darstellen, und zum Ausgeben der Vielzahl von komprimierten Datenblöcken als Antwort auf einen Datenausgabebefehl; und eine Speichersteuerung zum Empfangen der Vielzahl von komprimierten Datenblöcken von der Speichervorrichtung und zum Wiederherstellen der Daten auf der Grundlage der Bits mit dem ersten logischen Wert, die in der Vielzahl von komprimierten Daten umfasst sind, und der Positionsinformationen.

Description

  • HINTERGRUND
  • 1. Technischer Bereich
  • Die vorliegende Offenbarung betrifft im Allgemeinen eine elektronische Vorrichtung und insbesondere ein Speichergerät und ein Betriebsverfahren des Speichergeräts.
  • 2. Stand der Technik
  • Ein Speichersystem ist eine Vorrichtung, die Daten unter der Steuerung einer Hostvorrichtung wie eines Computers oder eines Smartphones speichert. Ein Speichergerät kann eine Speichervorrichtung zum Speichern von Daten und eine Speichersteuerung zum Steuern der Speichervorrichtung umfassen. Die Speichervorrichtung wird in eine flüchtige und eine nichtflüchtige Speichervorrichtung unterteilt.
  • Die flüchtige Speichervorrichtung ist eine Speichervorrichtung, in der Daten nur dann gespeichert werden, wenn sie mit Strom versorgt wird, und die gespeicherten Daten verschwinden, wenn die Stromversorgung unterbrochen wird. Die flüchtige Speichervorrichtung kann einen statischen Direktzugriffsspeicher (Static Random Access Memory - SRAM), einen dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory - DRAM) und dergleichen umfassen.
  • Die nichtflüchtige Speichervorrichtung ist eine Speichervorrichtung, in der die Daten nicht verschwinden, selbst wenn die Stromversorgung unterbrochen wird. Die nichtflüchtige Speichervorrichtung kann einen Nur-Lese-Speicher (Read Only Memory - ROM), einen programmierbaren ROM (Programmable ROM - PROM), einen elektrisch programmierbaren ROM (Electrically Programmable ROM - EPROM), einen elektrisch löschbaren ROM (Electrically Erasable ROM - EEROM), einen Flash-Speicher und dergleichen umfassen.
  • Aus der Speichervorrichtung gelesene Daten können über einen Eingangs-/Ausgangskanal übertragen werden. Wenn die Menge der gelesenen Daten größer ist als die Menge der durch den Ein-/Ausgabekanal bewegten Daten, kann es zu einem Engpassphänomen kommen. Um das Engpassphänomen zu lösen, ist es notwendig, die Anzahl der Ein-/Ausgabekanäle zu erhöhen oder die Datenmenge durch Komprimieren der gelesenen Daten zu verringern.
  • ZUSAMMENFASSUNG
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Speichergerät bereitgestellt, umfassend: eine Speichervorrichtung, die derart eingerichtet ist, dass sie Bits mit einem ersten logischen Wert aus Bits extrahiert, die in von außerhalb der Speichervorrichtung empfangenen Daten umfasst sind, eine Vielzahl von komprimierten Datenblöcken erzeugt, die die Bits, die den ersten logischen Wert aufweisen, und Positionsinformationen, die Positionen der Bits mit dem ersten logischen Wert in den Daten darstellen, umfassen, und die Vielzahl von komprimierten Datenblöcken als Antwort auf einen Datenausgabebefehl ausgibt; und eine Speichersteuerung, die derart eingerichtet ist, dass sie die Vielzahl von komprimierten Datenblöcken von der Speichervorrichtung empfängt und die Daten auf der Grundlage der Bits mit dem ersten logischen Wert, die in der Vielzahl von komprimierten Daten umfasst sind, und der Positionsinformationen wiederherstellt.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung wird ein Verfahren zum Betreiben eines Speichergeräts bereitgestellt, das Verfahren umfassend: Empfangen einer Vielzahl von Datenblöcken von einer Vielzahl von Speicherbereichen, die Daten über einen Kanal senden/empfangen; Unterteilen jeder der Vielzahl von Datenblöcken in eine Vielzahl von Teildatenblöcken; Extrahieren von Bits mit einem ersten logischen Wert aus Bits, die in jeder der Vielzahl von Teildatenblöcken umfasst sind, und Erzeugen einer Vielzahl von komprimierten Datenblöcken, die die Bits mit dem ersten logischen Wert und Positionsinformationen, die Positionen der Bits mit dem ersten logischen Wert in den Teildatenblöcken darstellen, umfassen; Ausgeben der Vielzahl von komprimierten Datenblöcken als Antwort auf den Datenausgabebefehl; und Wiederherstellen der Vielzahl von Datenblöcken auf der Grundlage einer Reihenfolge, in der die Vielzahl von komprimierten Datenblöcken ausgegeben werden, der Bits mit dem ersten logischen Wert, die in der Vielzahl von komprimierten Datenblöcken umfasst sind, und der Positionsinformationen.
  • Figurenliste
  • Beispiele von Ausführungsformen werden nun im Folgenden unter Bezugnahme auf die beigefügten Zeichnungen ausführlicher beschrieben; sie können jedoch in verschiedenen Formen ausgeführt werden und sollten nicht derart verstanden werden, dass sie auf die hier dargelegten Ausführungsformen beschränkt sind.
  • In den Zeichnungen können die Abmessungen zur besseren Veranschaulichung übertrieben dargestellt sein. Wenn ein Element als „zwischen“ zwei Elementen bezeichnet wird, kann es das einzige Element zwischen den beiden Elementen sein, oder es können auch ein oder mehrere dazwischenliegende Elemente vorhanden sein. Gleiche Bezugszeichen beziehen sich durchgehend auf gleiche Elemente.
    • 1 zeigt ein Diagramm, das ein Speichergerät mit einer Speichervorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 2 zeigt ein Diagramm, das ein Verfahren zum Erzeugen komprimierter Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 3 zeigt ein Diagramm, das ein Betriebsverfahren des Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 4 zeigt ein Diagramm, das ein Verfahren zum Übertragen komprimierter Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 5 zeigt ein Diagramm, das ein Verfahren zum Komprimieren und Übertragen einer Vielzahl von Lesedaten, die aus einer Vielzahl von Speicherbereichen gelesen wurden, gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 6 zeigt ein Diagramm, das ein Verfahren zum Mischen und Übertragen kodierter Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 7 zeigt ein Flussdiagramm, das ein Betriebsverfahren des Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 8 zeigt ein Diagramm, das die in 1 gezeigte Speichervorrichtung darstellt.
    • 9 zeigt ein Diagramm, das ein Datenverarbeitungssystem mit einem Festkörperlaufwerk (Solid-State-Drive) gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 10 zeigt ein Diagramm, das ein Datenverarbeitungssystem mit einem Datenspeichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die hier offenbarte spezifische strukturelle oder funktionelle Beschreibung dient lediglich der Veranschaulichung von Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung. Die Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung können in verschiedenen Formen realisiert werden und können nicht derart ausgelegt werden, dass sie auf die hier dargelegten Ausführungsformen beschränkt sind.
  • Ausführungsformen stellen ein Speichergerät und ein Betriebsverfahren des Speichergeräts bereit, die eine Menge an Eingabe/Ausgabedaten verringern können, indem sie komprimierte Daten erzeugen, die einen Wert und eine Position spezifischer Bits unter in Lesedaten umfassten Bits darstellen.
  • Gemäß einer anderen Ausführungsform der vorliegenden Offenbarung wird eine Speichervorrichtung bereitgestellt, umfassend: einen Datenempfänger, der derart eingerichtet ist, dass er eine Vielzahl von Lesedaten aus einer Vielzahl von Speicherbereichen liest, die Daten über einen Kanal senden/empfangen; einen Datenkomprimierer, der derart eingerichtet ist, dass er eine Vielzahl von komprimierten Daten aus jeder der Vielzahl von Lesedaten erzeugt, und eine Datenausgabeeinheit, die derart eingerichtet ist, dass sie gleichzeitig die Vielzahl von komprimierten Daten über den Kanal als Antwort auf einen Datenausgabebefehl ausgibt.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung wird eine Kodiervorrichtung bereitgestellt, die derart eingerichtet ist, dass sie Bits mit einem ersten logischen Wert aus Bits extrahiert, die in von außen empfangenen Daten umfasst sind, und eine Vielzahl von komprimierten Daten erzeugt, die die Bits mit dem ersten logischen Wert und erste Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in den Daten darstellen.
  • 1 zeigt ein Diagramm, das ein Speichergerät mit einer Speichervorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 1 kann das Speichergerät 50 eine Speichervorrichtung 100 und eine Speichersteuerung 200 zum Steuern eines Betriebs der Speichervorrichtung 100 umfassen. Das Speichergerät 50 kann ein Gerät zum Speichern von Daten unter der Steuerung eines Hosts sein, wie z.B. ein Mobiltelefon, ein Smartphone, ein MP3-Player, ein Laptop-Computer, ein Desktop-Computer, eine Spielkonsole, ein Fernseher, ein Tablet-PC oder ein Infotainment-System im Fahrzeug.
  • Die Speichervorrichtung 100 kann Daten speichern. Die Speichervorrichtung 100 kann unter der Steuerung der Speichersteuerung 200 arbeiten. Die Speichervorrichtung 100 kann ein Speicherzellenfeld (nicht gezeigt) mit einer Vielzahl von Speicherzellen zum Speichern von Daten umfassen.
  • Das Speicherzellenfeld (nicht gezeigt) kann eine Vielzahl von Speicherblöcken umfassen. Jeder Speicherblock kann eine Vielzahl von Speicherzellen umfassen. Ein Speicherblock kann eine Vielzahl von Seiten umfassen. In einer Ausführungsform kann die Seite eine Einheit zum Speichern von Daten in der Speichervorrichtung 100 oder zum Lesen von in der Speichervorrichtung 100 gespeicherten Daten sein. Der Speicherblock kann eine Einheit zum Löschen von Daten sein.
  • Die Speichervorrichtung 100 kann einen Befehl und eine Adresse von der Speichersteuerung 200 empfangen und auf einen durch die Adresse ausgewählten Bereich in dem Speicherzellenfeld zugreifen. Die Speichervorrichtung 100 kann einen durch den Befehl angegebenen Vorgang in dem durch die Adresse ausgewählten Bereich durchführen. Zum Beispiel kann die Speichervorrichtung 100 einen Schreibvorgang (Programmiervorgang), einen Lesevorgang und einen Löschvorgang durchführen. Bei dem Programmiervorgang kann die Speichervorrichtung 100 Daten in dem durch die Adresse ausgewählten Bereich programmieren. Bei dem Lesevorgang kann die Speichervorrichtung 100 Daten aus dem durch die Adresse ausgewählten Bereich lesen. Bei dem Löschvorgang kann die Speichervorrichtung 100 die in dem durch die Adresse ausgewählten Bereich gespeicherten Daten löschen.
  • Die Speichersteuerung 200 kann den Gesamtbetrieb des Speichergeräts 50 steuern. Die Speichersteuerung 200 kann Schreibdaten und eine logische Blockadresse (Logical Block Address - LBA) von dem Host empfangen und die LBA in eine physikalische Blockadresse (Physical Block Address - PBA) übersetzen, die Adressen von in der Speichervorrichtung 100 umfassten Speicherzellen darstellt, in denen Daten gespeichert werden sollen. In dieser Beschreibung können die LBA und eine „Logikadresse“ oder „logische Adresse“ mit der gleichen Bedeutung verwendet werden. In dieser Beschreibung können die Begriffe PBA und „physikalische Adresse“ mit der gleichen Bedeutung verwendet werden.
  • Die Speichersteuerung 200 kann die Speichervorrichtung 100 derart steuern, dass sie als Antwort auf eine Anforderung des Hosts einen Programmiervorgang, einen Lesevorgang, einen Löschvorgang oder ähnliches durchführt. Bei dem Programmiervorgang kann die Speichersteuerung 200 einen Programmbefehl, eine PBA und Daten an die Speichervorrichtung 100 bereitstellen. Bei dem Lesevorgang kann die Speichersteuerung 200 einen Lesebefehl und eine PBA an die Speichervorrichtung 100 bereitstellen. Bei dem Löschvorgang kann die Speichersteuerung 200 einen Löschbefehl und eine PBA an die Speichervorrichtung 100 bereitstellen.
  • In einer Ausführungsform kann die Speichersteuerung 200 zumindest zwei Speichervorrichtungen 100 steuern. Die Speichersteuerung 200 kann die Speichervorrichtungen gemäß einem Verschachtelungsschema steuern, um die Betriebsleistung zu verbessern. Das Verschachtelungsschema kann ein Schema zum Steuern von Vorgängen bzw. Operationen an zumindest zwei Speichervorrichtungen 100 sein, um sich gegenseitig zu überlappen. Alternativ dazu kann das Verschachtelungsschema ein Schema sein, bei dem zumindest zwei Speichervorrichtungen 100 parallel zueinander arbeiten.
  • In einer Ausführungsform der vorliegenden Offenbarung kann das Speichergerät 50 eine Speichervorrichtung 100 zum Ausgeben einer Vielzahl von komprimierten Daten, die durch Komprimieren von Lesedaten erhalten werden, und eine Speichersteuerung 200 zum Wiederherstellen der Lesedaten auf der Grundlage der Vielzahl von komprimierten Daten umfassen.
  • Die Speichervorrichtung 100 kann Bits mit einem ersten logischen Wert aus Bits extrahieren, die in Lesedaten umfasst sind, die aus ausgewählten Speicherzellen gelesen wurden. Die Speichervorrichtung 100 kann eine Vielzahl von komprimierten Daten erzeugen, die Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in den gelesenen Daten darstellen. Die Speichervorrichtung 100 kann die Vielzahl von komprimierten Daten als Antwort auf einen Datenausgabebefehl ausgeben.
  • Die Speichersteuerung 200 kann die Vielzahl von komprimierten Daten von der Speichervorrichtung 100 empfangen. Die Speichersteuerung 200 kann die gelesenen Daten auf der Grundlage von Bits mit dem ersten logischen Wert und der Positionsinformation, die in der Vielzahl von komprimierten Daten umfasst sind, wiederherstellen.
  • Die Speichervorrichtung 100 kann die gelesenen Daten in eine Vielzahl von Teildaten unterteilen. Die Speichervorrichtung 100 kann eine Vielzahl von komprimierten Daten in jeder der Vielzahl von Teildaten erzeugen. Die Speichervorrichtung 100 kann die Vielzahl von komprimierten Daten, die in jeder der Vielzahl von Teildaten erzeugt wurden, gemäß einer Reihenfolge ausgeben, in der die Vielzahl von Teildaten in den gelesenen Daten angeordnet sind.
  • Die Speichervorrichtung 100 kann eine Größe von jeder der Vielzahl von Teildaten auf der Grundlage einer Größe der Vielzahl von komprimierten Daten bestimmen. Jede der Vielzahl von komprimierten Daten kann Bits, die die Positionsinformation darstellen, und Bits, die den ersten logischen Wert darstellen, umfassen.
  • Die Speichervorrichtung 100 kann eine Anzahl einer Vielzahl von komprimierten Daten, die jeder einer Vielzahl von Teildaten zugeordnet sind, auf der Grundlage eines vorgegebenen Komprimierungsverhältnisses bestimmen und komprimierte Daten erzeugen, die der Anzahl entsprechen. Wenn beispielsweise das Komprimierungsverhältnis 1:4 ist, kann die Speichervorrichtung 100 vier komprimierte Daten in Bezug auf einen Teil der Daten erzeugen. Selbst wenn eine Position zusätzlicher Bits mit dem ersten logischen Wert in Teildaten vorhanden ist, kann die Speichervorrichtung 100 nur komprimierte Daten erzeugen, die der bestimmten Zahl entsprechen. Das Wort „vorgegeben“, wie es hier in Bezug auf einen Parameter verwendet wird, wie z.B. ein vorgegebenes Komprimierungsverhältnis, eine vorgegebene Position und eine vorgegebene Zuordnungsreihenfolge usw., bedeutet, dass ein Wert für den Parameter bestimmt wird, bevor der Parameter in einem Prozess oder Algorithmus verwendet wird. Bei einigen Ausführungsformen wird der Wert für den Parameter vor Beginn des Prozesses oder Algorithmus bestimmt. In anderen Ausführungsformen wird der Wert für den Parameter während des Prozesses oder Algorithmus bestimmt, aber bevor der Parameter in dem Prozess oder Algorithmus verwendet wird.
  • Die Speichersteuerung 200 kann eine Reihenfolge einer Vielzahl von Teildaten, die durch die Vielzahl von komprimierten Daten wiederhergestellt werden, auf der Grundlage einer Reihenfolge, in der die Vielzahl von komprimierten Daten ausgegeben wird, bestimmen. Die Speichersteuerung 200 kann die gelesenen Daten gemäß der bestimmten Reihenfolge wiederherstellen. Das heißt, die Reihenfolge, in der die komprimierten Daten ausgegeben werden, kann zu einer Information werden, die eine Position der Teildaten darstellt.
  • Die Speichersteuerung 200 kann die Vielzahl von Teildaten einschließlich der Bits mit dem ersten logischen Wert als eine wiederherstellen, die auf der Grundlage der in den komprimierten Daten umfassten Positionsinformationen bestimmt wird, wiederherstellen. Die Speichersteuerung 200 kann eine Reihenfolge der Vielzahl von Teildaten aus der Reihenfolge bestimmen, in der die Vielzahl von komprimierten Daten empfangen wird, und die gelesenen Daten wiederherstellen, bevor sie komprimiert werden, indem die wiederhergestellten Teildaten auf der Grundlage der bestimmten Reihenfolge verbunden werden.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Speichervorrichtung 100 eine Vielzahl von Speicherbereichen umfassen. Der Speicherbereich kann eine Einheit sein, die in der Lage ist, unabhängig eine Operation bzw. einen Vorgang durchzuführen. Zum Beispiel kann die Speichervorrichtung 100 2, 4 oder 8 Speicherbereiche umfassen. Die Vielzahl von Speicherbereichen kann gleichzeitig und unabhängig voneinander einen Programmiervorgang, einen Lesevorgang oder einen Löschvorgang durchführen. In einer Ausführungsform der vorliegenden Offenbarung kann der Speicherbereich als eine Ebene bezeichnet werden.
  • Die Speichervorrichtung 100 kann einen Datenempfänger 181 zum Empfangen einer Vielzahl von Daten von einer Vielzahl von Speicherbereichen, die Daten über einen Kanal senden/empfangen, einen Datenkomprimierer 182 zum Erzeugen einer Vielzahl von komprimierten Daten aus jeder der Vielzahl von Lesedaten und eine Datenausgabeeinheit 183 zum gleichzeitigen Ausgeben der Vielzahl von komprimierten Daten über den Kanal als Antwort auf einen Datenausgabebefehl umfassen. Der Datenempfänger 181 kann eine Vielzahl von Daten von außen empfangen. In einer Ausführungsform können die von außen empfangenen Daten von außerhalb der Speichersteuerung 200, der Kodiervorrichtung 170, des Datenkomprimierers 182, der Speichervorrichtung 100 oder des Speichergeräts 50 empfangen werden. Der Datenempfänger 181 kann einen Lesevorgang zum Lesen einer Vielzahl von Lesedaten aus der Vielzahl von Speicherbereichen durchführen.
  • Die Datenausgabeeinheit 183 kann gleichzeitig eine Vielzahl von komprimierten Daten über Datenleitungen empfangen. Die Datenausgabeeinheit 183 kann die Vielzahl von komprimierten Daten gemäß einer Zuordnungsreihenfolge, die mit der Vielzahl von Speicherbereichen verbunden ist, in einem Ausgabezyklus ausgeben.
  • Der Datenkomprimierer 182 kann eine Abtastoperation zum Extrahieren von Bits mit dem ersten logischen Wert aus Bits durchführen, die in jeder der Vielzahl von Lesedaten umfasst sind. Der Datenkomprimierer 182 kann eine Vielzahl von komprimierten Daten erzeugen, die die Bits mit dem ersten logischen Wert und Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in jeder der Vielzahl von Lesedaten darstellen.
  • Der Datenkomprimierer 182 kann die Vielzahl von Lesedaten in eine Vielzahl von Teildaten aufteilen. Der Datenkomprimierer 182 kann eine Vielzahl von komprimierten Daten in jeder der Vielzahl von Teildaten erzeugen. Der Datenkomprimierer 182 kann die Vielzahl von Teildaten gemäß einer Reihenfolge, in der sich die Vielzahl von Teildaten in jeder der Vielzahl von Lesedaten befindet, an die Datenausgabeeinheit 183 übertragen.
  • Der Datenkomprimierer 182 kann eine Größe von jeder der Vielzahl von Teildaten als eine Anzahl von Bits bestimmen, wobei die Anzahl von Bits durch die Formel M*(2^N) berechnet wird, um die Vielzahl von Teildaten als M*(2^N) Bits bereitzustellen. Jede der Vielzahl von komprimierten Daten kann N Bits, die die Positionsinformation darstellen, und M Bits, die den ersten logischen Wert darstellen, umfassen. In einer Ausführungsform kann N eine natürliche Zahl sein. In einer Ausführungsform kann M eine natürliche Zahl sein.
  • Der Datenkomprimierer 182 kann eine Anzahl einer Vielzahl von komprimierten Daten, die aus der Vielzahl von Teildaten erzeugt werden, auf der Grundlage eines vorgegebenen Komprimierungsverhältnisses bestimmen. Der Datenkomprimierer 182 kann komprimierte Daten erzeugen, die der bestimmten Anzahl entsprechen.
  • In einer Ausführungsform der vorliegenden Offenbarung kann der Datenempfänger 181 eine Anzahl einer Vielzahl von Speicherbereichen bestimmen, die auf der Grundlage des vorgegebenen Komprimierungsverhältnisses gelesen werden. Eine Gesamtmenge an komprimierten Daten, die über den Kanal ausgegeben werden, kann gleich einer Gesamtmenge an Daten sein, die über den Kanal ausgegeben werden können.
  • In einer anderen Ausführungsform der vorliegenden Offenbarung kann der Datenkomprimierer 182 das Datenkomprimierungsverhältnis auf der Grundlage der Anzahl der Vielzahl von Speicherbereichen, aus denen der Datenempfänger 181 die gelesenen Daten empfängt, bestimmen. Wenn die Anzahl der Speicherbereiche beispielsweise 4 beträgt, kann der Datenkomprimierer 182 das Komprimierungsverhältnis als 1:4 bestimmen. Der Datenkomprimierer 182 kann eine Größe von gelesenen Daten auf 1:4 auf der Grundlage des Komprimierungsverhältnisses von 1:4 komprimieren und vier komprimierte Daten erzeugen. Die Datenausgabeeinheit 183 kann die erzeugten vier komprimierten Daten während eines Ausgabezyklus gemäß einer vorgegebenen Zuordnungsreihenfolge ausgeben.
  • In einer Ausführungsform der vorliegenden Offenbarung kann der Datenkomprimierer 182 eine Kodiervorrichtung 170 zum Komprimieren von Lesedaten umfassen. Die Kodiervorrichtung 170 kann Bits mit dem ersten logischen Wert aus Bits extrahieren, die in von außen empfangenen Lesedaten umfasst sind. Die Kodiervorrichtung 170 kann eine Vielzahl von komprimierten Daten erzeugen, die die Bits mit dem ersten logischen Wert und erste Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in den Lesedaten darstellen. In einer Ausführungsform können die von außen empfangenen Lesedaten gelesene Daten sein, die von außerhalb der Speichersteuerung 200, der Kodiervorrichtung 170, des Datenkomprimierers 182, der Speichervorrichtung 100 oder der Speichervorrichtung 50 empfangen werden.
  • Die Kodiervorrichtung 170 kann die gelesenen Daten in eine Vielzahl von Teildaten unterteilen. Die Kodiervorrichtung 170 kann eine Abtastung unter Verwendung von zwei oder mehr Bits in jeder der Vielzahl von Teildaten als eine Einheit durchführen. Die Kodiervorrichtung 170 kann Bitgruppen erfassen, die die Bits umfassen, die den ersten logischen Wert aufweisen. Die Kodiervorrichtung 170 kann eine Biteinheit zum Abtasten von Teildaten gemäß einer Anzahl von Bits bestimmen, die den ersten logischen Wert aufweisen. Wenn beispielsweise die Anzahl der Bits mit dem ersten logischen Wert größer ist als die Anzahl der komprimierten Daten, die die Kodiervorrichtung 170 erzeugen kann, kann die Biteinheit zum Abtasten erhöht werden. Eine Anzahl der Bits, die in den Bitgruppen umfasst sind, kann entsprechend der Erhöhung der Biteinheit erhöht werden. Eine Anzahl von Bits, die in den komprimierten Daten umfasste Positionsinformationen darstellen, kann entsprechend der Erhöhung der Bitanzahl verringert werden.
  • Die Kodiervorrichtung 170 kann zweite Positionsinformationen erzeugen, die eine Position von Bitgruppen in jeder der Vielzahl von Teildaten und einer Vielzahl von komprimierten Daten, die Abtastdaten der Bitgruppen umfassen, darstellen. Die Kodiervorrichtung 170 kann eine Größe von jeder der Vielzahl von Teildaten als M*(2^N) Bits bestimmen. Die zweite Positionsinformation kann mit N Bits ausgedrückt werden, und die Abtastdaten können mit M Bits ausgedrückt werden. In einer Ausführungsform kann N eine natürliche Zahl sein. In einer Ausführungsform kann M eine natürliche Zahl sein.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Kodiervorrichtung 170 eine Vielzahl von Lesedaten von einer Vielzahl von Speicherbereichen empfangen. Die Kodiervorrichtung 170 kann ein Komprimierungsverhältnis auf der Grundlage einer Anzahl der Vielzahl von Speicherbereichen bestimmen. Die Kodiervorrichtung 170 kann eine Vielzahl von komprimierten Daten aus jeder der Vielzahl von Lesedaten auf der Grundlage eines vorgegebenen Komprimierungsverhältnisses erzeugen.
  • 2 zeigt ein Diagramm, das ein Verfahren zum Erzeugen komprimierter Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 2 können die Originaldaten kodiert werden, so dass komprimierte Daten erzeugt werden. Zur Vereinfachung der Beschreibung können die Originaldaten 128 Bits aufweisen, und komprimierte Daten weisen eine Größe auf, die einer Anzahl von Bits entspricht, beispielsweise eine Größe von 8 Bits.
  • Die Originaldaten können in einer Einheit von zwei Bits abgetastet werden. Höhere 6 Bits unter den 8 Bits der komprimierten Daten können Positionsinformationen sein, die Positionen von Bits darstellen, die einen ersten logischen Wert aufweisen. Die unteren 2 Bits der komprimierten Daten können Informationen sein, die Abtastdaten der Bits darstellen, die den ersten logischen Wert aufweisen.
  • In einer Ausführungsform der vorliegenden Offenbarung kann der erste logische Wert 1 sein. In 2 weisen ein neuntes Bit, ein elftes Bit, ein achtundzwanzigstes Bit, ein einhundertvierzehntes Bit und ein einhundertfünfzehntes Bit den ersten logischen Wert auf. Da die Originaldaten in der Einheit von zwei Bits abgetastet werden, können eine vierte Bitgruppe L4, eine fünfte Bitgruppe L5, eine vierzehnte Bitgruppe L14 und eine siebenundfünfzigste Bitgruppe L57 extrahiert werden. Die Kodiervorrichtung 170 kann komprimierte Daten auf der Grundlage der vierten Bitgruppe L4, der fünften Bitgruppe L5, der vierzehnten Bitgruppe L14 und der siebenundfünfzigsten Bitgruppe L57 erzeugen.
  • Zum Beispiel kann eine Position der vierten Bitgruppe L4 in den Originaldaten als 000100 dargestellt werden, und Abtastdaten der vierten Bitgruppe L4 können als 10 dargestellt werden. Das heißt, die komprimierten Daten, die die vierte Bitgruppe L4 darstellen, können eine Binärzahl von 00010010 sein. In ähnlicher Weise können auch die fünfte Bitgruppe L5, die vierzehnte Bitgruppe L14 und die siebenundfünfzigste Bitgruppe L57 kodiert werden, um als Binärzahlen ausgedrückt zu werden.
  • Bei den in 2 gezeigten Originaldaten kann es sich um Teildaten handeln, die durch Teilung von gelesenen Daten gewonnen werden. Eine Größe der Teildaten kann M*(2^N) Bits betragen. Positionsinformationen können mit N Bits ausgedrückt werden, und Abtastdaten können mit M Bits ausgedrückt werden. In 2 ist ein Fall als eine Ausführungsform dargestellt, in dem die Bitanzahl N der Adressinformationen 6, die Bitanzahl M der Abtastdaten 2 und die Bitanzahl K der komprimierten Daten 8 beträgt. Dies ist jedoch nur eine Ausführungsform, und die Größe der Teildaten, die Größe der Positionsinformationen und die Größe der Abtastdaten können variieren.
  • 3 zeigt ein Diagramm, das ein Betriebsverfahren zum Betreiben des Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 3 können Originaldaten kodiert werden, so dass eine Vielzahl von komprimierten Daten erzeugt werden kann. Die komprimierten Daten 310 können über einen Eingabe-/Ausgabekanal IO ausgegeben werden. Die Speichersteuerung kann die Vielzahl von komprimierten Daten 310 empfangen und die Originaldaten auf der Grundlage der Vielzahl von komprimierten Daten 310 wiederherstellen.
  • Die Originaldaten können gelesene Daten sein, die aus Speicherbereichen gelesen werden. In einer Ausführungsform der vorliegenden Offenbarung kann die Speichervorrichtung eine Vielzahl von Lesedaten aus einer Vielzahl von Speicherbereichen lesen. Bei den Originaldaten kann es sich um eine Vielzahl von Teildaten handeln, die durch Aufteilen der gelesenen Daten erhalten werden. In 3 können die Originaldaten zu den Teildaten gehören, die durch Aufteilen der aus einem nullten Speicherbereich gelesenen Daten erhalten werden.
  • Bits mit einem ersten logischen Wert unter den Bits, die in den Teildaten umfasst sind, können erfasst werden, und eine Vielzahl von komprimierten Daten kann erzeugt werden. In einer Ausführungsform der vorliegenden Offenbarung können die komprimierten Daten durch eine Binärzahl oder durch eine Hexadezimalzahl ausgedrückt werden. In dieser Beschreibung werden Daten gemäß den Ausdrucksweisen der Daten nicht geändert, und die Ausdrucksweisen der Daten können zur Vereinfachung des Ausdrucks kombiniert werden. Wenn komprimierten Daten beispielsweise durch eine Binärzahl ausgedrückt werden, können die komprimierten Daten 00010010 sein. Wenn komprimierten Daten durch eine Hexadezimalzahl ausgedrückt werden, können die komprimierten Daten 12 sein. Dabei kann h nach einer Zahl ein Symbol sein, das die Hexadezimalzahl darstellt.
  • Die erzeugten komprimierten Daten 310 können als Antwort auf einen Ausgabebefehl (Data out CMD) über den Eingabe-/Ausgabekanal IO ausgegeben werden. Eine Reihenfolge der Ausgabedaten ist im Ein-/Ausgabekanal IO vorgegeben. Beispielsweise können die erzeugten komprimierten Daten 310 in Ebene 0 umfasst sein. Der Ein-/Ausgabekanal IO kann Daten ausgeben, die in Ebene 0 umfasst sind, und dann Daten ausgeben, die in Ebene 1 umfasst sind. Daten, die Ebene 2 und Ebene 3 umfasst sind, können auch nacheinander ausgegeben werden. Komprimierte Daten, die aus demselben Speicherbereich erzeugt werden, können kontinuierlich ausgegeben werden. In einer anderen Ausführungsform der vorliegenden Offenbarung können komprimierte Daten, die aus verschiedenen Speicherbereichen erzeugt werden, während eines Ausgabezyklus ausgegeben werden.
  • Die Speichersteuerung kann eine Reihenfolge einer Vielzahl von Teildaten, die durch die Vielzahl von komprimierten Daten wiederhergestellt werden, auf der Grundlage der Reihenfolge bestimmen, in der die Vielzahl von komprimierten Daten ausgegeben wird. Die Speichersteuerung kann die gelesenen Daten gemäß der bestimmten Reihenfolge wiederherstellen. Die Reihenfolge, in der die Vielzahl von komprimierten Daten ausgegeben wird, kann Speicherbereiche, in denen die komprimierten Daten erzeugt werden, und eine ungefähre Position in den Originaldaten darstellen.
  • Die Speichersteuerung kann Positionen von Bits mit dem ersten logischen Wert in den Teildaten auf der Grundlage der in den komprimierten Daten umfassten Positionsinformationen bestimmen und einen Datenwert einer Bitgruppe auf der Grundlage der in den komprimierten Daten umfassten Abtastdaten bestimmen. Zum Beispiel können die komprimierten Daten von 00010010 darstellen, dass ein Datenwert der vierten Bitgruppe 01 ist. Die höheren 6 Bits der komprimierten Daten können Positionsinformationen darstellen, und die niedrigeren 2 Bits der komprimierten Daten können Abtastdaten darstellen.
  • 4 zeigt ein Diagramm, das ein Verfahren zum Übertragen von komprimierten Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 4 ist ein Fall 410 dargestellt, bei dem unkomprimierte Daten über den Eingangs-/Ausgangskanal übertragen werden, und ein Fall 420, bei dem komprimierte Daten über den Eingangs-/Ausgangskanal übertragen werden. Die Kodiervorrichtung kann eine Vielzahl von Kodierern umfassen. Die Vielzahl von Kodierern kann jeweils einer Vielzahl von Speicherbereichen entsprechen.
  • In dem Fall 410, in dem unkomprimierte Daten übertragen werden, können beispielsweise erste bis vierte Daten an den Eingangs-/Ausgangskanal IO übertragen werden. Die ersten bis vierten Daten können die gleiche Größe aufweisen. Der in der Speichervorrichtung umfasste Eingabe-/Ausgabekanal IO kann einen Verarbeitungsvorgang der empfangenen ersten bis vierten Daten durchführen. Der Eingangs-/Ausgangskanal IO kann insgesamt vier Datenblöcke verarbeiten.
  • Um die Leistung des Eingangs-/Ausgangskanals IO durch Komprimieren von gelesenen Daten zu verbessern, werden Originaldaten komprimiert, und eine Datenausgabe erfolgt nur unter Verwendung der komprimierten Daten. Wenn komprimierte Daten und Dummy-Daten zusammen ausgegeben werden, wird die Eingabe-/Ausgabeleistung möglicherweise nicht verbessert.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Kodiervorrichtung 170 einen ersten Kodierer, einen zweiten Kodierer, einen dritten Kodierer und einen vierten Kodierer umfassen. Jeder Kodierer kann vier Datenblöcke empfangen und die vier Datenblöcke als einen komprimierten Datenblock komprimieren. Beispielsweise kann der erste Kodierer erste komprimierte Daten erzeugen, indem er die ersten bis vierten Daten komprimiert. Der zweite Kodierer kann zweite komprimierte Daten erzeugen, indem er fünfte bis achte Daten komprimiert. Der dritte Kodierer kann dritte komprimierte Daten erzeugen, indem er neunte bis zwölfte Daten komprimiert. Der vierte Kodierer kann vierte komprimierte Daten erzeugen, indem er dreizehnte bis sechzehnte Daten komprimiert.
  • Die Kodiervorrichtung 170 kann erste bis vierte komprimierte Daten erzeugen und die ersten bis vierten komprimierten Daten an den Eingangs-/Ausgangskanal IO übertragen. Der Eingangs-/Ausgangskanal IO kann einen Verarbeitungsvorgang an den empfangenen ersten bis vierten komprimierten Daten durchführen. Der Eingangs-/Ausgangskanal IO kann die empfangenen ersten bis vierten komprimierten Daten gemäß einer vorgegebenen Zuordnungsreihenfolge ausgeben.
  • Die Größe der komprimierten Daten kann gleich der Größe der an den Kodierer übertragenen Daten sein. Was die von dem Eingangs-/Ausgangskanal IO verarbeitete Datenmenge betrifft, so können ein Fall, in dem unkomprimierte Daten verarbeitet werden, und ein Fall, in dem komprimierte Daten verarbeitet werden, gleich sein. Wenn Daten komprimiert und übertragen werden, kann die Menge der übertragenen Daten erhöht werden, während die Datenverarbeitungsmenge des Eingangs-/Ausgangskanals IO nicht verändert wird.
  • In 4 wird die Menge der komprimierten Daten, die in der Vielzahl von Kodierern erzeugt werden, erhöht, so dass der Eingangs-/Ausgangskanal IO komprimierte Daten anstelle von Dummy-Daten ausgeben kann. Zum Beispiel kann die Kodiervorrichtung 170 vier Kodierer umfassen, und jeder der vier Kodierer kann komprimierte Daten erzeugen, die im Verhältnis 1:4 komprimiert sind. Daher kann eine Datenmenge ausgegeben werden, die viermal größer ist als eine Datenmenge, wenn gelesene Daten ausgegeben werden, ohne komprimiert zu werden. Insbesondere können im Vergleich dazu, dass erste bis vierte Daten an den Eingangs-/Ausgangskanal IO übertragen werden, und zwar in dem Fall 410, in dem unkomprimierte Daten übertragen werden, erste bis sechzehnte Daten an den Eingangs-/Ausgangskanal in dem Fall 420 übertragen werden, in dem komprimierte Daten übertragen werden.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Kodiervorrichtung 170 Kodierer umfassen, die jeweils einer Vielzahl von Speicherbereichen entsprechen, aus denen Lesedaten ausgelesen werden. Ein maximales Komprimierungsverhältnis kann gemäß einer Anzahl von einer Vielzahl von Speicherbereichen, die die Speichervorrichtung umfasst, bestimmt werden. Wenn die Speichervorrichtung beispielsweise 8 Speicherbereiche umfasst, kann die Kodiervorrichtung 170 8 Kodierer umfassen, und ein Komprimierungsverhältnis der von der Kodiervorrichtung 170 erzeugten komprimierten Daten kann 1:8 betragen.
  • 5 zeigt ein Diagramm, das ein Verfahren zum Komprimieren und Übertragen einer Vielzahl von aus einer Vielzahl von Speicherbereichen gelesenen Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 5 können aus vier Speicherbereichen gelesene Originaldaten als komprimierte Daten durch vier Kodierer erzeugt werden, und die komprimierten Daten können an einen Pipe-Latch übertragen werden. In 5 kann die Dicke eines Pfeils eine Datenmenge darstellen. Je dicker der Pfeil in 5 ist, desto größer ist beispielsweise die Datenmenge, die von einem Element zu einem anderen Element übertragen wird. Eine Datenmenge, die von den jeweiligen Speicherbereichen ausgegeben wird, ist eine Gesamtdatenmenge, die über einen Kanal ausgegeben werden kann, und kann als 100% ausgedrückt werden.
  • Wenn davon ausgegangen wird, dass ein Komprimierungsverhältnis des Kodierers 1:4 beträgt, kann eine Menge an komprimierten Daten, die vom Kodierer ausgegeben wird, mit 25% angegeben werden. Da eine Menge von 25 % von jedem der Kodierer ausgegeben wird, kann die Gesamtmenge der komprimierten Daten, die an den Pipe-Latch übertragen werden, 100 % betragen.
  • Gemäß der Ausführungsform der vorliegenden Offenbarung kann die Gesamtmenge von ausgegebenen Originaldaten erhöht werden, ohne die Gesamtmenge der Daten zu ändern, die an den Eingangs-/Ausgangskanal ausgegeben werden können. In einer Ausführungsform kann ein Auftreten eines Engpassphänomens in dem Eingangs-/Ausgangskanal verhindert oder abgeschwächt werden, da die Gesamtmenge der ausgegebenen Originaldaten erhöht wird.
  • In 5 können Lesedaten jeweils aus einem ersten Speicherbereich, einem zweiten Speicherbereich, einem dritten Speicherbereich und einem vierten Speicherbereich ausgegeben werden, die in einem Speicherzellenfeld 110 umfasst sind. Eine Seitenpuffergruppe 130 kann einen ersten Seitenpuffer, einen zweiten Seitenpuffer, einen dritten Seitenpuffer und einen vierten Seitenpuffer umfassen. Der erste Seitenpuffer kann Daten, die aus dem ersten Speicherbereich ausgegeben werden, an einen ersten Kodierer übertragen. Die Kodiervorrichtung 170 kann den ersten Kodierer, einen zweiten Kodierer, einen dritten Kodierer und einen vierten Kodierer umfassen. Der erste Kodierer kann empfangene Lesedaten in Teildaten aufteilen und Bits mit dem ersten logischen Wert aus den Teildaten extrahieren, wodurch eine Vielzahl von komprimierten Daten erzeugt wird.
  • In ähnlicher Weise können Lesedaten, die von den anderen Speicherbereichen ausgegeben werden, über die jeweiligen Seitenpuffer an den Kodierer übertragen werden, und jeder der Kodierer kann eine Vielzahl von komprimierten Daten erzeugen.
  • Die Vielzahl von erzeugten komprimierten Daten kann im Pipe-Latch gespeichert werden und über die Datenausgabeeinheit ausgegeben werden.
  • In einer Ausführungsform der vorliegenden Offenbarung können komprimierte Daten, die von der Kodiervorrichtung 170 ausgegeben werden, gemäß einer vorgegebenen Zuordnungsreihenfolge ausgegeben werden. Zum Beispiel können die komprimierten Daten in einer Reihenfolge von dem ersten Kodierer zu dem vierten Kodierer ausgegeben werden. Der Pipe-Latch kann die komprimierten Daten in der empfangenen Reihenfolge speichern. Die im Pipe-Latch gespeicherten komprimierten Daten selbst können Informationen über die Position der Originaldaten darstellen.
  • In einer anderen Ausführungsform der vorliegenden Offenbarung kann ein Abschnitt von komprimierten Daten, die in dem ersten Kodierer erzeugt werden, und ein Abschnitt von komprimierten Daten, die in dem zweiten bis vierten Kodierer erzeugt werden, übertragen werden, und die anderen komprimierten Daten können an den Pipe-Latch übertragen werden. Bevor Daten übertragen/empfangen werden, können Informationen über eine Zuordnungsreihenfolge, in der komprimierte Daten ausgegeben werden, im Voraus übertragen werden.
  • Die Reihenfolge der von den Kodierern ausgegebenen komprimierten Daten kann gemäß der Position eines Speicherbereiches variieren. Die Position der komprimierten Daten, die im Pipe-Latch gespeichert sind, kann Informationen über eine physikalische Adresse von Originaldaten darstellen. Jede der in den Kodierern erzeugten komprimierten Daten kann Informationen über einen Kodierer, der Daten komprimiert, oder Informationen über einen Speicherbereich, in dem Originaldaten gespeichert sind, umfassen.
  • 6 zeigt ein Diagramm, das ein Verfahren zum Mischen und Übertragen kodierter Daten gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 6 können komprimierte Daten, die durch Kodieren von Originaldaten erhalten werden, übertragen werden, während sie mit anderen komprimierten Daten (Random Dout) gemischt werden. Ein Verfahren zum Erzeugen der komprimierten Daten kann identisch sein mit dem unter Bezugnahme auf die 2 und 3 beschriebenen Verfahren.
  • In einer Ausführungsform der vorliegenden Offenbarung können die komprimierten Daten aufgeteilt werden, um über den Eingabe-/Ausgabekanal IO übertragen zu werden. Zum Beispiel können die ersten komprimierten Daten 610, die als Binärzahl 00010010 ausgedrückt sind, als Hexadezimalzahl 12 ausgedrückt werden. Die ersten komprimierten Daten 610 können in höhere und niedrigere zu übertragende Bits 620 unterteilt werden. Positionen, an denen die höheren und niedrigeren Bits 620 der ersten komprimierten Daten übertragen werden, können vorgegeben werden. Beispielsweise kann das niedrigere Bit der ersten komprimierten Daten 610 an einer nullten Position P01 einer ersten Ausgabegruppe 1st 630 ausgegeben werden. Auf diese Weise kann das höhere Bit der ersten komprimierten Daten 610 an einer nullten Position P01 einer zweiten Ausgabegruppe 2nd ausgegeben werden. In ähnlicher Weise können die höheren und niedrigeren Bits der komprimierten Daten in verschiedenen Ausgabegruppen umfasst sein. Die Tilde „-“ steht hier für einen Bereich von Komponenten. Zum Beispiel bezeichnet „4-8th“ die vierte, fünfte, sechste, siebte und achte Ausgabegruppe, die in 6 dargestellt ist.
  • Obwohl in 6 nur die ersten komprimierten Daten 610 dargestellt sind, können die zweiten komprimierten Daten 640, die dritten komprimierten Daten 650 und die vierten komprimierten Daten 660 ebenso wie die ersten komprimierten Daten 610 in Ausgabegruppen umfasst sein. Beispielsweise kann ein niedrigeres Bit der zweiten komprimierten Daten 640 an einer ersten Position P23 der ersten Ausgabegruppe 1st 630 ausgegeben werden, und ein höheres Bit der zweiten komprimierten Daten 640 kann an einer ersten Position P23 der zweiten Ausgabegruppe 2nd ausgegeben werden. Die dritten komprimierten Daten 650 und die vierten komprimierten Daten 660 können ebenfalls in höhere und niedrigere Bits unterteilt werden, um in Ausgabegruppen umfasst zu sein. Insbesondere können ein niedrigeres Bit der dritten komprimierten Daten 650 und ein niedrigeres Bit der vierten komprimierten Daten 660 an der nullten und ersten Position P01 P23 einer dritten Ausgabegruppe 3 ausgegeben werden, und ein höheres Bit der dritten komprimierten Daten 650 und ein höheres Bit der vierten komprimierten Daten 660 können an der nullten und ersten Position P01 P23 einer vierten Ausgabegruppe 4 ausgegeben werden.
  • Eine Ausgabegruppe des Eingangs-/Ausgangskanals IO kann einen Abschnitt von komprimierten Daten umfassen, die einer Vielzahl von Speicherbereichen gemäß einer vorbestimmten Zuordnungsreihenfolge entsprechen. Zum Beispiel kann die erste Ausgabegruppe 1st 630 einen Abschnitt komprimierter Daten umfassen, der einem nullten Speicherbereich an der nullten und ersten Position P01 P23 entspricht, und einen Abschnitt der komprimierten Daten umfassen, der einem ersten Speicherbereich an der zweiten und dritten Position entspricht. Die erste Ausgabegruppe 630 kann einen Abschnitt der komprimierten Daten umfassen, der einem zweiten Speicherbereich an der vierten und fünften Position entspricht, und einen Abschnitt der komprimierten Daten umfassen, der einem dritten Speicherbereich an der sechsten und siebten Position entspricht. In ähnlicher Weise können die anderen Ausgabegruppen Abschnitte von komprimierten Daten umfassen, die dem nullten, ersten, zweiten und dritten Speicherbereich an vorgegebenen Positionen entsprechen.
  • Das in 6 gezeigte Verfahren zum Mischen kodierter Daten ist lediglich eine Ausführungsform, und die kodierten Daten können unter Verwendung verschiedener Verfahren gemischt werden. Das Verfahren zum Mischen von kodierten Daten kann gemäß einer Anzahl von Speicherbereichen, einem Datenkomprimierungsverhältnis und einer Anzahl von komprimierten Daten variieren.
  • 7 zeigt ein Flussdiagramm, das ein Betriebsverfahren des Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 7 kann das Speichergerät eine Vielzahl von komprimierten Daten erzeugen, die jeweils den aus einer Vielzahl von Speicherbereichen gelesenen Daten entsprechen, und eine Vielzahl von komprimierten Daten empfangen, die als Antwort auf einen Datenausgabebefehl ausgegeben werden, wodurch die Vielzahl von komprimierten Daten als Originaldaten wiederhergestellt wird. In einer Ausführungsform kann, da die komprimierten Daten über den Eingangs-/Ausgangskanal übertragen werden, die Übertragungseffizienz verbessert werden, und ein Auftreten eines Engpassphänomens des Eingangs-/Ausgangskanals kann verhindert oder abgeschwächt werden.
  • In Schritt S710 kann der Datenempfänger eine Vielzahl von Lesedaten aus einer Vielzahl von Speicherbereichen lesen, die Daten über einen Kanal senden/empfangen. Ein maximales Komprimierungsverhältnis kann auf der Grundlage einer Anzahl einer Vielzahl von Speicherbereichen, die in der Speichervorrichtung umfasst sind, bestimmt werden.
  • In Schritt S720 kann der Datenkomprimierer jede der Vielzahl von Lesedaten in eine Vielzahl von Teildaten aufteilen. Der Datenkomprimierer kann eine Größe der Teildaten auf der Grundlage einer Größe der zu erzeugenden komprimierten Daten bestimmen. In einer anderen Ausführungsform der vorliegenden Offenbarung kann der Datenkomprimierer unterschiedliche Größen der Teildaten gemäß der Vielzahl von Speicherbereichen bereitstellen.
  • In Schritt S730 kann der Datenkomprimierer eine Vielzahl von komprimierten Daten auf der Grundlage der Teildaten erzeugen. Der Datenkomprimierer kann Bits extrahieren, die einen ersten logischen Wert unter den Bits aufweisen, die in jeder der Vielzahl von Teildaten umfasst sind. Der Datenkomprimierer kann eine Vielzahl von komprimierten Daten erzeugen, die die Bits, die den ersten logischen Wert aufweisen, und Positionsinformationen, die Positionen der Bits mit dem ersten logischen Wert darstellen, umfassen.
  • In Schritt S740 kann die Datenausgabeeinheit eine Vielzahl von komprimierten Daten als Antwort auf einen Datenausgabebefehl ausgeben. Der Datenausgabebefehl kann von einem externen Host empfangen werden. Die Datenausgabeeinheit kann gleichzeitig die Vielzahl von komprimierten Daten über einen Kanal ausgeben. In einer Ausführungsform der vorliegenden Offenbarung kann die Datenausgabeeinheit die Vielzahl von komprimierten Daten gemäß einer der Vielzahl von Speicherbereichen zugeordneten Zuordnungsreihenfolge in einem Ausgabezyklus ausgeben. Das Wort „gleichzeitig“, wie es hier in Bezug auf Prozesse verwendet wird, bedeutet, dass die Prozesse in sich überschneidenden bzw. überlappenden Zeitintervallen ablaufen. Wenn beispielsweise ein erster Prozess in einem ersten Zeitintervall abläuft und ein zweiter Prozess gleichzeitig in einem zweiten Zeitintervall abläuft, dann überlappen sich das erste und das zweite Zeitintervall zumindest teilweise, so dass es einen Zeitpunkt gibt, zu dem sowohl der erste als auch der zweite Prozess abläuft.
  • Im Schritt S750 kann die Speichersteuerung die Vielzahl von Lesedaten auf der Grundlage der Vielzahl von empfangenen komprimierten Daten wiederherstellen. Die Speichersteuerung kann die Originaldaten auf der Grundlage der Reihenfolge, in der die Vielzahl von komprimierten Daten ausgegeben werden, den Bits mit dem ersten logischen Wert, die in der Vielzahl von komprimierten Daten umfasst sind, und den Positionsinformationen wiederherstellen.
  • Die Speichersteuerung kann komprimierte Daten auf der Grundlage einer vorgegebenen Zuordnungsreihenfolge sortieren. Die Speichersteuerung kann eine Reihenfolge einer Vielzahl von Teildaten, die durch eine Vielzahl von komprimierten Daten wiederhergestellt werden, auf der Grundlage einer Reihenfolge bestimmen, in der die Vielzahl von komprimierten Daten ausgegeben wird. Die Speichersteuerung kann die wiederhergestellten Teildaten gemäß der bestimmten Reihenfolge verbinden, wodurch die gelesenen Daten wiederhergestellt werden.
  • Das Betriebsverfahren des Speichergeräts kann den in 1 bis 6 gezeigten Beschreibungen entsprechen.
  • 8 zeigt ein Diagramm, das die in 1 gezeigte Speichervorrichtung darstellt.
  • Unter Bezugnahme auf 8 kann die Speichervorrichtung 100 ein Speicherzellenfeld 110, einen Adressendecoder 120, eine Seitenpuffergruppe 130, eine Steuerlogik 140, einen Spannungsgenerator 150, eine Stromabtastschaltung 160 und eine Kodiervorrichtung 170 umfassen. Der Adressendecoder 120, die Seitenpuffergruppe 130, der Spannungsgenerator 150 und die Stromabtastschaltung 160 können als eine von der Steuerlogik 140 gesteuerte Peripherieschaltung bezeichnet werden. Die Steuerlogik 140 kann als Hardware, Software oder eine Kombination aus Hardware und Software realisiert sein. Beispielsweise kann die Steuerlogik 140 eine Steuerlogikschaltung sein, die gemäß einem Algorithmus arbeitet, und/oder ein Prozessor, der einen Steuerlogikcode ausführt.
  • Das Speicherzellenfeld 110 kann eine Vielzahl von Speicherblöcken BLK1 bis BLKz umfassen. Die Vielzahl von Speicherblöcken BLK1 bis BLKz kann über Wortleitungen WL mit dem Adressendecoder 120 verbunden sein. Die Vielzahl von Speicherblöcken BLK1 bis BLKz kann über die Bitleitungen BL1 bis BLm mit der Seitenpuffergruppe 130 verbunden sein. Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKz kann eine Vielzahl von Speicherzellen umfassen. In einer Ausführungsform kann die Vielzahl von Speicherzellen nichtflüchtige Speicherzellen sein und mit nichtflüchtigen Speicherzellen ausgeführt sein, die eine vertikale Kanalstruktur aufweisen. Das Speicherzellenfeld 110 kann als ein Speicherzellenfeld ausgeführt sein, das eine zweidimensionale Struktur aufweist. In einigen Ausführungsformen kann das Speicherzellenfeld 110 als ein Speicherzellenfeld ausgeführt sein, das eine dreidimensionale Struktur aufweist. Unterdessen kann jede der Vielzahl von Speicherzellen, die in dem Speicherzellenfeld 110 umfasst sind, zumindest 1-Bit-Daten speichern. In einer Ausführungsform kann jede der Vielzahl von in dem Speicherzellenfeld 110 umfassten Speicherzellen eine Single-Level Cell (SLC) sein, die 1-Bit-Daten speichert. In einer anderen Ausführungsform kann jede der Vielzahl von in dem Speicherzellenfeld 110 umfassten Speicherzellen eine Multi-Level-Zelle (MLC) sein, die 2-Bit-Daten speichert. In einer weiteren Ausführungsform kann jede der Vielzahl von in dem Speicherzellenfeld 110 umfassten Speicherzellen eine Triple-Level-Zelle (TLC) sein, die 3-Bit-Daten speichert. In einer weiteren Ausführungsform kann jede der Vielzahl von in dem Speicherzellenfeld 110 umfassten Speicherzellen eine Quadruple-Level-Zelle (QLC) sein, die 4-Bit-Daten speichert. In einigen Ausführungsformen kann das Speicherzellenfeld 110 eine Vielzahl von Speicherzellen umfassen, die jeweils 5-Bit-Daten oder mehr speichern.
  • Der Adressendecoder 120 kann mit dem Speicherzellenfeld 110 über die Wortleitungen WL verbunden sein. Der Adressendecoder 120 kann unter der Steuerung der Steuerlogik 140 arbeiten. Der Adressendecoder 120 kann eine Adresse über einen Eingabe-/Ausgabekanal in der Speichervorrichtung 100 empfangen.
  • Der Adressendecoder 120 kann eine Blockadresse in der empfangenen Adresse dekodieren. Der Adressendecoder 120 kann zumindest einen Speicherblock gemäß der dekodierten Blockadresse auswählen. Außerdem kann der Adressendecoder 120 in einem Lesespannungs-Anlegevorgang während eines Lesevorganges eine von dem Spannungsgenerator 150 erzeugte Lesespannung Vread an eine ausgewählte Wortleitung des ausgewählten Speicherblocks anlegen und eine Durchgangsspannung Vpass an die anderen nicht ausgewählten Wortleitungen anlegen. Außerdem kann der Adressendecoder 120 bei einem Programmüberprüfungsvorgang eine von dem Spannungsgenerator 150 erzeugte Prüfspannung an die ausgewählte Wortleitung des ausgewählten Speicherblocks anlegen und die Durchgangsspannung Vpass an die anderen nicht ausgewählten Wortleitungen anlegen.
  • Der Adressendecoder 120 kann eine Spaltenadresse in der empfangenen Adresse dekodieren. Der Adressendecoder 120 kann die dekodierte Spaltenadresse an die Seitenpuffergruppe 130 übertragen.
  • Ein Lesevorgang und ein Programmiervorgang der Speichervorrichtung 100 können in Seiteneinheiten durchgeführt werden. Eine Adresse, die in einer Anforderung für den Lesevorgang und den Programmiervorgang empfangen wird, kann eine Blockadresse, eine Zeilenadresse und eine Spaltenadresse umfassen. Der Adressendecoder 120 kann einen Speicherblock und eine Wortleitung gemäß der Blockadresse und der Zeilenadresse auswählen. Die Spaltenadresse kann durch den Adressendecoder 120 dekodiert werden, um sie der Seitenpuffergruppe 130 bereitzustellen. In dieser Beschreibung können Speicherzellen, die mit einer Wortleitung verbunden sind, als eine „physische Seite“ bezeichnet werden.
  • Die Seitenpuffergruppe 130 kann eine Vielzahl von Seitenpuffern PB1 bis PBm umfassen. Die Seitenpuffergruppe 130 kann bei einem Lesevorgang als eine „Leseschaltung“ und bei einem Schreibvorgang als eine „Schreibschaltung“ arbeiten. Die Vielzahl von Seitenpuffern PB1 bis PBm kann mit dem Speicherzellenfeld 110 über die Bitleitungen BL1 bis BLm verbunden sein. Um eine Schwellenspannung von Speicherzellen bei einem Lesevorgang und einem Programmüberprüfungsvorgang abzutasten, kann die Vielzahl von Seitenpuffern PB1 bis PBm über einen Abtastknoten eine Betragsänderung eines fließenden Stroms gemäß einem Programmzustand einer entsprechenden Speicherzelle erfassen, während sie den mit den Speicherzellen verbundenen Bitleitungen kontinuierlich einen Abtaststrom zuführen, und die Strombetragsänderung als Abtastdaten zwischenspeichern. Die Seitenpuffergruppe 130 arbeitet als Antwort auf von der Steuerlogik 140 ausgegebene Seitenpuffer-Steuersignale. In dieser Beschreibung kann der Schreibvorgang der Schreibschaltung in der gleichen Bedeutung wie ein Programmiervorgang in ausgewählten Speicherzellen verwendet werden.
  • Bei einem Lesevorgang kann die Seitenpuffergruppe 130 Lesedaten vorübergehend speichern, indem sie Daten einer Speicherzelle abtastet und dann Daten DATA an die Kodiervorrichtung 170 der Speichervorrichtung 100 ausgibt.
  • Die Kodiervorrichtung 170 kann die gelesenen Daten komprimieren, bevor sie die Daten über den Eingabe-/Ausgabekanal ausgibt. Die komprimierten Lesedaten können über den Eingangs-/Ausgangskanal ausgegeben werden.
  • Die Steuerlogik 140 kann mit dem Adressendecoder 120, der Seitenpuffergruppe 130, dem Spannungsgenerator 150 und der Stromabtastschaltung 160 verbunden sein. Die Steuerlogik 140 kann einen Befehl CMD und ein Steuersignal CTRL über den Eingangs-/Ausgangskanal der Speichervorrichtung 100 empfangen. Die Steuerlogik 140 kann einen allgemeinen Betrieb der Speichervorrichtung 100 als Antwort auf das Steuersignal CTRL steuern. Außerdem kann die Steuerlogik 140 ein Steuersignal zum Einstellen bzw. Anpassen eines Abtastknoten-Vorladepotentialpegels der Vielzahl von Seitenpuffern PB1 bis PBm ausgeben. Die Steuerlogik 140 kann die Seitenpuffergruppe 130 steuern, um einen Lesevorgang des Speicherzellenfeldes 110 durchzuführen.
  • Unterdessen kann die Steuerlogik 140 als Antwort auf ein Pass-Signal bzw. Durchgangssignal PASS oder ein Fail-Signal bzw. Fehlersignal FAIL, das von der Stromabtastschaltung 160 empfangen wird, bestimmen, ob ein Überprüfungsvorgang in einem bestimmten Zielprogrammzustand bestanden oder fehlgeschlagen ist.
  • Der Spannungsgenerator 150 erzeugt eine Lesespannung Vread und eine Durchgangsspannung Vpass bei einem Lesevorgang als Antwort auf ein von der Steuerlogik 140 ausgegebenes Steuersignal. Um eine Vielzahl von Spannungen mit verschiedenen Spannungspegeln zu erzeugen, kann der Spannungsgenerator 150 eine Vielzahl von Pumpkondensatoren zum Empfangen einer internen Versorgungsspannung umfassen. Der Spannungsgenerator 150 kann die Vielzahl von Spannungen durch selektives Aktivieren der Vielzahl von Pumpkondensatoren unter der Steuerung der Steuerlogik 140 erzeugen.
  • Die Abtastschaltung 160 kann einen Referenzstrom und eine Referenzspannung als Antwort auf ein von der Steuerlogik 140 empfangenes Erlaubnis-Bit VRY_BIT<#> in einem Überprüfungsvorgang erzeugen. Die Abtastschaltung 160 kann das Durchgangssignal PASS oder das Fehlersignal FAIL ausgeben, indem sie die erzeugte Referenzspannung mit einer Abtastspannung VPB vergleicht, die von den in der Seitenpuffergruppe 130 umfassten Seitenpuffern PB1 bis PBm empfangen wird, oder indem sie den erzeugten Referenzstrom mit einem Abtaststrom vergleicht, der von den in der Seitenpuffergruppe 130 umfassten Seitenpuffern PB1 bis PBm empfangen wird.
  • Der Adressendecoder 120, die Seitenpuffergruppe 130, der Spannungsgenerator 150 und die Stromabtastschaltung 160 können als „Peripherieschaltung“ dienen, um einen Lesevorgang, einen Schreibvorgang und einen Löschvorgang in dem Speicherzellenfeld 110 durchzuführen. Die Peripherieschaltung kann den Lesevorgang, den Schreibvorgang und den Löschvorgang in dem Speicherzellenfeld 110 unter der Steuerung der Steuerlogik 140 durchführen.
  • 9 zeigt ein Diagramm, das beispielsweise ein Datenverarbeitungssystem darstellt, das ein Solid-State-Laufwerk gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst.
  • Unter Bezugnahme auf 9 umfasst das Datenverarbeitungssystem 2000 eine Hostvorrichtung 2100 und ein SSD 2200.
  • Das SSD 2200 kann eine Steuerung 2210, eine Pufferspeichervorrichtung 2220, nichtflüchtige Speicher 2231 bis 223n, eine Stromversorgung 2240, einen Signalanschluss 2250 und einen Stromanschluss 2260 umfassen.
  • Die Steuerung 2210 kann den Gesamtbetrieb des SSD 2200 steuern.
  • Die Pufferspeichervorrichtung 2220 kann Daten vorübergehend speichern, um in den nichtflüchtigen Speichern 2231 bis 223n gespeichert zu werden. Außerdem kann die Pufferspeichervorrichtung 2220 vorübergehend Daten speichern, die aus den nichtflüchtigen Speichern 2231 bis 223n gelesen werden. Die in der Pufferspeichervorrichtung 2220 vorübergehend gespeicherten Daten können unter der Steuerung der Steuerung 2210 an die Hostvorrichtung 2100 oder die nichtflüchtigen Speicher 2231 bis 223n übertragen werden.
  • Die nichtflüchtigen Speicher 2231 bis 223n können als Speichermedium der SSD 2200 verwendet werden. Jeder der nichtflüchtigen Speicher 2231 bis 223n kann mit der Steuerung 2210 über eine Vielzahl von Kanälen CH1 bis CHn verbunden sein. Ein oder mehrere nichtflüchtige Speicher können mit einem Kanal verbunden sein. Nichtflüchtige Speicher, die mit einem Kanal verbunden sind, können mit demselben Signalbus und demselben Datenbus verbunden sein.
  • In einer Ausführungsform der vorliegenden Offenbarung können die nichtflüchtigen Speicher 2231 bis 223n eine Vielzahl von komprimierten Daten erzeugen, die durch Kodieren und Komprimieren von Lesedaten erhalten werden. Die Vielzahl von erzeugten komprimierten Daten kann in der Speichervorrichtung 2220 gespeichert werden, um ausgegeben zu werden.
  • Die Stromversorgung 2240 kann einen über den Stromanschluss 2260 eingegebenen Strom PWR in das Innere des SSD 2200 zuführen. Die Stromversorgung 2240 kann eine Hilfsstromversorgung 2241 umfassen. Die Hilfsstromversorgung 2241 kann Strom derart zuführen, dass das SSD 2200 normal beendet werden kann, wenn eine plötzliche Stromabschaltung auftritt. Die Hilfsstromversorgung 2241 kann Kondensatoren mit großer Kapazität umfassen, die in der Lage sind, den Strom PWR aufzuladen.
  • Die Steuerung 2210 kann ein Signal SGL mit der Hostvorrichtung 2100 über den Signalanschluss 2250 austauschen. Das Signal SGL kann einen Befehl, eine Adresse, Daten und dergleichen umfassen. Der Signalanschluss 2250 kann gemäß einem Schnittstellenverfahren zwischen der Hostvorrichtung 2100 und dem SSD 2200 als verschiedene Typen von Anschlüssen bzw. Verbindern ausgeführt sein.
  • 10 zeigt ein Diagramm, das zum Beispiel ein Datenverarbeitungssystem darstellt, das ein Datenspeichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst.
  • Unter Bezugnahme auf 10, kann das Datenverarbeitungssystem 3000 eine Hostvorrichtung 3100 und ein Datenspeichergerät 3200 umfassen.
  • Die Hostvorrichtung 3100 kann in Form einer Platine, wie z.B. einer Leiterplatte (Printed Circuit Board - PCB), ausgeführt sein. Obwohl in der Zeichnung nicht dargestellt, kann die Hostvorrichtung 3100 interne Funktionsblöcke umfassen, um die Funktion der Hostvorrichtung durchzuführen.
  • Die Hostvorrichtung 3100 kann einen Verbindungsanschluss 3110 wie eine Buchse, einen Schlitz oder einen Stecker umfassen. Das Datenspeichergerät 3200 kann an oder in dem Verbindungsanschluss 3110 angerbracht werden.
  • Das Datenspeichergerät 3200 kann in Form einer Platine, wie z.B. einer Leiterplatte, ausgeführt sein. Das Datenspeichergerät 3200 kann als ein Speichermodul oder eine Speicherkarte bezeichnet werden. Das Datenspeichergerät 3200 kann eine Steuerung 3210, eine Pufferspeichervorrichtung 3220, nichtflüchtige Speicher 3231 und 3232, eine integrierte Schaltung zur Leistungsverwaltung (Power Management Integrated Circuit - PMIC) 3240 und einen Verbindungsanschluss 3250 umfassen.
  • In einer Ausführungsform der vorliegenden Offenbarung kann das Datenspeichergerät 3200 Teildaten erzeugen, indem es aus den nichtflüchtigen Speichern 3231 und 3232 gelesene Daten aufteilt, und eine Vielzahl von komprimierten Daten erzeugen, die Positionsinformationen umfassen, die Bits mit einem ersten logischen Wert unter in den Teildaten und Abtastdaten umfassten Bits darstellen, und dann die Vielzahl von erzeugten komprimierten Daten in der Pufferspeichervorrichtung 3220 speichern. In einer Ausführungsform werden komprimierte Daten übertragen, so dass ein Datenengpassphänomen, das in dem Datenspeichergerät 3200 auftritt, verhindert oder abgemildert werden kann.
  • Die Steuerung 3210 kann den Gesamtbetrieb des Datenspeichergeräts 3200 steuern. Die Steuerung 3210 kann identisch wie die in 15 gezeigte Steuerung 2210 ausgeführt sein.
  • Die Pufferspeichervorrichtung 3220 kann Daten vorübergehend speichern, um in den nichtflüchtigen Speichern 3231 und 3232 gespeichert zu werden. Die Pufferspeichervorrichtung 3220 kann vorübergehend Daten speichern, die aus den nichtflüchtigen Speichern 3231 und 3232 gelesen werden. Die in der Pufferspeichervorrichtung 3220 vorübergehend gespeicherten Daten können unter der Steuerung der Steuerung 3210 an die Hostvorrichtung 3100 oder die nichtflüchtigen Speicher 3231 und 3232 übertragen werden.
  • Die nichtflüchtigen Speicher 3231 und 3232 können als Speichermedien des Datenspeichergeräts 3200 verwendet werden.
  • Die PMIC 3240 kann über den Verbindungsanschluss 3250 eingegebenen Strom in das Innere des Datenspeichergeräts 3200 zuführen. Die PMIC 3240 kann die Stromversorgung des Datenspeichergeräts 3200 unter der Steuerung der Steuerung 3210 verwalten.
  • Der Verbindungsanschluss 3250 kann mit dem Verbindungsanschluss 3110 der Hostvorrichtung 3100 verbunden werden. Über den Verbindungsanschluss 3250 können Strom und Signale wie Befehle, Adressen und Daten zwischen der Hostvorrichtung 3100 und dem Datenspeichergerät 3200 übertragen werden. Der Verbindungsanschluss 3250 kann gemäß einem Schnittstellenverfahren zwischen der Hostvorrichtung 3100 und dem Datenspeichergerät 3200 in verschiedenen Formen ausgeführt sein. Der Verbindungsanschluss 3250 kann auf einer beliebigen Seite des Datenspeichergeräts 3200 angeordnet sein.
  • Gemäß der vorliegenden Offenbarung können in einer Ausführungsform ein Speichergerät und ein Verfahren zum Betrieb derselben bereitgestellt werden, bei denen eine Menge an Eingabe-/Ausgabedaten durch Komprimieren der gelesenen Daten verringert wird, so dass eine größere Datenmenge für einen kurzen Zeitraum übertragen werden kann.
  • Während die vorliegende Offenbarung unter Bezugnahme auf bestimmte Ausführungsformen davon gezeigt und beschrieben worden ist, wird ein Fachmann verstehen, dass verschiedene Änderungen in Form und Details vorgenommen werden können, ohne von dem Grundgedanken und Umfang der vorliegenden Offenbarung abzuweichen, wie dies durch die beigefügten Ansprüche und ihre Äquivalente definiert ist. Daher sollte der Umfang der vorliegenden Offenbarung nicht auf die oben beschriebenen Ausführungsformen beschränkt sein, sondern sollte nicht nur durch die beigefügten Ansprüche, sondern auch durch die Äquivalente davon bestimmt werden.
  • In den oben beschriebenen Ausführungsformen können alle Schritte selektiv durchgeführt werden oder ein Teil der Schritte kann weggelassen werden. In jeder Ausführungsform werden die Schritte nicht notwendigerweise gemäß der beschriebenen Reihenfolge durchgeführt und können neu angeordnet werden. Die in dieser Beschreibung und den Zeichnungen offenbarten Ausführungsformen sind nur Beispiele, die das Verständnis der vorliegenden Offenbarung erleichtern sollen, und die vorliegende Offenbarung ist nicht darauf beschränkt. Das heißt, es sollte für einen Fachmann offensichtlich sein, dass verschiedene Modifikationen bzw. Änderungen auf der Grundlage des technologischen Umfangs der vorliegenden Offenbarung vorgenommen werden können.
  • Unterdessen sind die Ausführungsformen der vorliegenden Offenbarung in den Zeichnungen und der Beschreibung beschrieben worden. Obwohl hier spezifische Terminologien verwendet werden, dienen diese nur zur Erläuterung der Ausführungsformen der vorliegenden Offenbarung. Daher ist die vorliegende Offenbarung nicht auf die oben beschriebenen Ausführungsformen beschränkt und viele Variationen sind im Rahmen des Grundgedankens und Umfanges der vorliegenden Offenbarung möglich. Es sollte einem Fachmann klar sein, dass auf der Grundlage des technologischen Umfangs der vorliegenden Offenbarung zusätzlich zu den hier offenbarten Ausführungsformen verschiedene Modifikationen vorgenommen werden können.

Claims (17)

  1. Speichergerät, aufweisend: eine Speichervorrichtung, die eingerichtet ist, um Bits mit einem ersten logischen Wert aus Bits zu extrahieren, die in von außerhalb der Speichervorrichtung empfangenen Daten umfasst sind, eine Vielzahl von komprimierten Datenblöcken zu erzeugen, die die Bits mit dem ersten logischen Wert und Positionsinformationen umfassen, die Positionen der Bits mit dem ersten logischen Wert in den Daten darstellen, und die Vielzahl von komprimierten Datenblöcken als Antwort auf einen Datenausgabebefehl auszugeben; und eine Speichersteuerung, die eingerichtet ist, um die Vielzahl von komprimierten Datenblöcken von der Speichervorrichtung zu empfangen und die Daten auf der Grundlage der Bits mit dem ersten logischen Wert und der Positionsinformationen, die in der Vielzahl von komprimierten Datenblöcken umfasst sind, wiederherzustellen.
  2. Speichervorrichtung nach Anspruch 1, wobei die Daten aus ausgewählten Speicherzellen gelesene Daten sind, und wobei die Speichervorrichtung die gelesenen Daten in eine Vielzahl von Teildatenblöcken unterteilt, die Vielzahl von komprimierten Datenblöcken in jedem der Vielzahl von Teildatenblöcken erzeugt und die Vielzahl von komprimierten Datenblöcken, die in jedem der Vielzahl von Teildatenblöcken erzeugt werden, gemäß einer Reihenfolge ausgibt, in der sich die Vielzahl von Teildatenblöcken in den gelesenen Daten befindet.
  3. Speichergerät nach Anspruch 2, wobei die Speichervorrichtung eine Größe von jeder der Vielzahl von Teildatenblöcken auf der Grundlage einer Größe der Vielzahl von komprimierten Datenblöcken bestimmt, und wobei jede aus der Vielzahl von komprimierten Datenblöcken Bits, die die Positionsinformation darstellen, und Bits, die den ersten logischen Wert darstellen, umfasst.
  4. Speichergerät nach Anspruch 2, wobei die Speichervorrichtung eine Anzahl der Vielzahl von komprimierten Datenblöcken, die jeder der Vielzahl von Teildatenblöcken zugewiesen sind, auf der Grundlage eines vorgegebenen Komprimierungsverhältnisses bestimmt und komprimierte Datenblöcke erzeugt, die der Anzahl entsprechen.
  5. Speichergerät nach Anspruch 2, wobei die Speichervorrichtung eine Reihenfolge der Vielzahl von Teildatenblöcken, die durch die Vielzahl von komprimierten Datenblöcken wiederhergestellt werden, auf der Grundlage einer Reihenfolge bestimmt, in der die Vielzahl von komprimierten Datenblöcken ausgegeben wird, und die gelesenen Daten gemäß der bestimmten Reihenfolge wiederherstellt.
  6. Speichergerät nach Anspruch 5, wobei die Speichersteuerung die Vielzahl von Teildatenblöcken einschließlich der Bits mit dem ersten logischen Wert an einer Position, die auf der Grundlage der Positionsinformation bestimmt wird, wiederherstellt, und wobei die gelesenen Daten wiederhergestellt werden, indem die Vielzahl von wiederhergestellten Teildatenblöcken gemäß der bestimmten Reihenfolge angeordnet wird.
  7. Kodiervorrichtung, die eingerichtet ist, um Bits mit einem ersten logischen Wert aus Bits zu extrahieren, die in von außen empfangenen Daten umfasst sind, und eine Vielzahl von komprimierten Datenblöcken zu erzeugen, die die Bits mit dem ersten logischen Wert und erste Positionsinformationen, die Positionen der Bits mit dem ersten logischen Wert in den Daten darstellen, umfassen.
  8. Kodiervorrichtung nach Anspruch 7, wobei die Daten aus einem Speichergerät gelesene Daten sind, und wobei die Kodiervorrichtung die gelesenen Daten in eine Vielzahl von Teildatenblöcken unterteilt, jede der Vielzahl von Teildatenblöcken in einer Einheit von zumindest zwei Bits abtastet und Bitgruppen erfasst, die die Bits mit dem ersten logischen Wert umfassen.
  9. Kodiervorrichtung nach Anspruch 8, wobei die Kodiervorrichtung die Vielzahl von komprimierten Datenblöcken einschließlich zweiter Positionsinformationen, die Positionen der Bitgruppen in jedem der Vielzahl von Teildatenblöcken und Abtastdaten der Bitgruppen darstellen, erzeugt.
  10. Kodiervorrichtung nach Anspruch 9, wobei die Kodiervorrichtung eine Größe von jedem der Vielzahl von Teildatenblöcken als M*(2^N) Bits bestimmt, wobei die zweite Positionsinformation mit N Bits ausgedrückt wird, und wobei die Abtastdaten mit M Bits ausgedrückt wird.
  11. Kodiervorrichtung nach Anspruch 7, wobei die Kodiervorrichtung eine Vielzahl von gelesenen Datenblöcken von einer Vielzahl von Speicherbereichen empfängt, ein Komprimierungsverhältnis auf der Grundlage einer Anzahl der Vielzahl von Speicherbereichen bestimmt und die Vielzahl von komprimierten Datenblöcken von jeder der Vielzahl von gelesenen Datenblöcken auf der Grundlage des Komprimierungsverhältnisses erzeugt.
  12. Kodiervorrichtung nach Anspruch 11, aufweisend eine Vielzahl von Kodierern, die jeweils der Vielzahl von Speicherbereichen entsprechen, wobei die Kodierer gleichzeitig die Vielzahl von komprimierten Datenblöcken an eine Datenausgabeeinheit einer Speichervorrichtung übertragen.
  13. Verfahren zum Betreiben eines Speichergeräts, das Verfahren aufweisend: Empfangen einer Vielzahl von Datenblöcken von einer Vielzahl von Speicherbereichen, die Daten über einen Kanal senden und/oder empfangen; Aufteilen jeder der Vielzahl von Datenblöcken in eine Vielzahl von Teildatenblöcken; Extrahieren von Bits mit einem ersten logischen Wert aus Bits, die in jeder der Vielzahl von Teildatenblöcken umfasst sind, und Erzeugen einer Vielzahl von komprimierten Datenblöcken, die die Bits mit dem ersten logischen Wert und Positionsinformationen, die Positionen der Bits mit dem ersten logischen Wert in den Teildatenblöcken darstellen, umfassen; Ausgeben der Vielzahl von komprimierten Datenblöcken als Antwort auf einen Datenausgabebefehl; und Wiederherstellen der Vielzahl von Datenblöcken auf der Grundlage einer Reihenfolge, in der die Vielzahl von komprimierten Datenblöcken ausgegeben wird, und der Bits mit dem ersten logischen Wert und der Positionsinformation, die in der Vielzahl von komprimierten Datenblöcken umfasst sind.
  14. Verfahren nach Anspruch 13, wobei das Ausgeben der Vielzahl von komprimierten Datenblöcken ein Ausgeben der Vielzahl von komprimierten Datenblöcken gemäß einer Reihenfolge umfasst, in der die Vielzahl von Teildatenblöcken in jeder der Vielzahl von Datenblöcken angeordnet ist.
  15. Verfahren nach Anspruch 14, wobei das Aufteilen jeder der Vielzahl von Datenblöcken in die Vielzahl von Teildatenblöcken ferner ein Bestimmen einer Größe jeder der Vielzahl von Teildatenblöcken auf der Grundlage einer Größe der Vielzahl von komprimierten Datenblöcken umfasst, und wobei jede der Vielzahl von komprimierten Datenblöcken Bits, die die Positionsinformation darstellen, und Bits, die den ersten logischen Wert darstellen, umfasst.
  16. Verfahren nach Anspruch 14, wobei das Erzeugen der Vielzahl von komprimierten Datenblöcken ein Bestimmen einer Anzahl der Vielzahl von komprimierten Datenblöcken, die jeder der Vielzahl von Teildatenblöcken zugewiesen werden, auf der Grundlage eines vorgegebenen Komprimierungsverhältnisses umfasst.
  17. Verfahren nach Anspruch 14, wobei das Wiederherstellen der Vielzahl von Datenblöcken umfasst: Wiederherstellen der Vielzahl von Teildatenblöcken einschließlich der Bits mit dem ersten logischen Wert an einer Position, die auf der Grundlage der Positionsinformation bestimmt wird; Bestimmen einer Reihenfolge der Vielzahl von wiederhergestellten Teildatenblöcken auf der Grundlage der Reihenfolge, in der die Vielzahl von komprimierten Datenblöcken ausgegeben wird; und Verbinden der Vielzahl von wiederhergestellten Teildatenblöcken gemäß der bestimmten Reihenfolge.
DE102022207672.9A 2021-07-28 2022-07-27 Kodiervorrichtung, speichergerät und betriebsverfahren des speichergeräts Pending DE102022207672A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0099126 2021-07-28
KR20210099126 2021-07-28
KR10-2022-0065679 2022-05-27
KR1020220065679A KR20230017717A (ko) 2021-07-28 2022-05-27 저장 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
DE102022207672A1 true DE102022207672A1 (de) 2023-02-02

Family

ID=84890206

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022207672.9A Pending DE102022207672A1 (de) 2021-07-28 2022-07-27 Kodiervorrichtung, speichergerät und betriebsverfahren des speichergeräts

Country Status (4)

Country Link
US (1) US12014076B2 (de)
CN (1) CN115840529A (de)
DE (1) DE102022207672A1 (de)
TW (1) TW202314473A (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014076B2 (en) 2021-07-28 2024-06-18 SK Hynix Inc. Storage device and operating method of the storage device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819104B1 (ko) 2006-09-07 2008-04-03 삼성전자주식회사 병렬 비트 테스트 회로 및 그에 의한 병렬 비트 테스트방법
KR20080046345A (ko) 2006-11-22 2008-05-27 삼성전자주식회사 휴대용 단말기의 메모리 절약 장치 및 방법
KR20120098094A (ko) 2011-02-28 2012-09-05 에스케이하이닉스 주식회사 반도체 메모리 장치
US10275186B2 (en) 2015-10-30 2019-04-30 Sandisk Technologies Llc System and method of data compression and data shaping
US20220269601A1 (en) * 2015-11-02 2022-08-25 Pure Storage, Inc. Cost Effective Storage Management
US10275376B2 (en) * 2016-03-02 2019-04-30 Western Digital Technologies, Inc. Efficient cross device redundancy implementation on high performance direct attached non-volatile storage with data reduction
US11762557B2 (en) * 2017-10-30 2023-09-19 AtomBeam Technologies Inc. System and method for data compaction and encryption of anonymized datasets
US11342933B2 (en) 2018-12-14 2022-05-24 Advanced Micro Devices, Inc. Lossy significance compression with lossy restoration
US11678085B2 (en) 2020-11-16 2023-06-13 Sony Semiconductor Solutions Corporation Data compression method, data compression device, solid-state imaging device, data decompression device and electronic system
CN115225094A (zh) * 2021-04-21 2022-10-21 伊姆西Ip控股有限责任公司 数据压缩方法、电子设备和计算机程序产品
US12014076B2 (en) 2021-07-28 2024-06-18 SK Hynix Inc. Storage device and operating method of the storage device
JP2023064241A (ja) * 2021-10-26 2023-05-11 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ処理方法

Also Published As

Publication number Publication date
US12014076B2 (en) 2024-06-18
US20230031951A1 (en) 2023-02-02
TW202314473A (zh) 2023-04-01
CN115840529A (zh) 2023-03-24
US20230030668A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
DE102011085988B4 (de) Verfahren und Vorrichtungen zum Beeinflussen eines Betriebszustands eines Mehrfachpegelzelle-Speichers
DE102013103391B4 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102008009235A1 (de) Speichersystem
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102011056776A1 (de) Flashspeichervorrichtung und Speichersystem mit derselben
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102008033518A1 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE102019135863B4 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE112015003569B4 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102022207672A1 (de) Kodiervorrichtung, speichergerät und betriebsverfahren des speichergeräts
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE112019005506T5 (de) Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE102021121974A1 (de) Speicher-steuereinheit und speichersystem, welches diese enthält
DE102022004129A1 (de) Zurückkopier-lösch-befehl zur durchführung einer scan- und leseoperation in einer speichervorrichtung
DE102022003141A1 (de) Defekt-verwaltung bei speichervorrichtungen