DE102012112354A1 - Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon - Google Patents

Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon Download PDF

Info

Publication number
DE102012112354A1
DE102012112354A1 DE102012112354A DE102012112354A DE102012112354A1 DE 102012112354 A1 DE102012112354 A1 DE 102012112354A1 DE 102012112354 A DE102012112354 A DE 102012112354A DE 102012112354 A DE102012112354 A DE 102012112354A DE 102012112354 A1 DE102012112354 A1 DE 102012112354A1
Authority
DE
Germany
Prior art keywords
compressed data
stored
bit size
data
area
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
DE102012112354A
Other languages
English (en)
Other versions
DE102012112354A8 (de
Inventor
Hojun Shim
Je-Hyuck SONG
Kwanggu 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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102012112354A1 publication Critical patent/DE102012112354A1/de
Publication of DE102012112354A8 publication Critical patent/DE102012112354A8/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Speichervorrichtung (120), die einen Nutzerbereich (126) einer Speicherzellanordnung; einen Pufferbereich (124), welcher konfiguriert ist, um vorübergehend komprimierte Daten, welche in den Nutzerbereich (126) zu schreiben sind, zu speichern; und eine Verwaltungslogik (123, 1370, 6213) für komprimierte Daten aufweist, welche konfiguriert ist, um den Nutzerbereich (126) und den Pufferbereich (124) derart zu steuern, dass komprimierte Daten, welche in dem Pufferbereich (124) gespeichert sind, in den Nutzerbereich (126) geschrieben werden. Die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten verwaltet komprimierte Daten, welche in den Nutzerbereich (126) zu schreiben sind, eher mit einer ECC-Blockeinheit als mit einer Seitengrößeneinheit.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Ein Prioritätsanspruch unter 35 U.S.C. § 119 wird auf die koreanische Patentanmeldung Nr. 10-2012-0902559 , welche am 9. Januar 2012 eingereicht wurde erhoben, deren Gesamtheit hierin durch Bezugnahme eingebunden ist.
  • HINTERGRUND
  • 1. Technisches Gebiet
  • Die erfinderischen Konzepte, die hierin beschrieben sind, beziehen sich auf eine Speichervorrichtung und genauer beziehen sie sich auf eine nichtflüchtige Speichervorrichtung und ein Betriebsverfahren davon.
  • 2. Diskussion des Standes der Technik
  • Halbleiterspeichervorrichtungen verwendeten Speichervorrichtungen, welche flüchtige Speichervorrichtungen aufweisen, wie beispielsweise einen dynamischen RAM (DRAM = Dynamic RAM), einen statischen RAM (SRRAM = Static RAM) und dergleichen und nichtflüchtige Speichervorrichtungen wie beispielsweise einen elektrisch löschbaren und programmierbaren ROM (EEPROM = Electrically Erasable and Programmable ROM), einen ferroelektrischen RAM (FRAM = Ferroelectric RAM), einen Phasenübergangs-RAM (PRAM = Phase-Change RAM), einen Magnetwiderstands-RAM (MRAM = Magnetoresistive RAM), einen Flashspeicher und dergleichen. Die flüchtigen Speicher verlieren ihre gespeicherten Inhalte beim Abschalten, während die nichtflüchtigen Speicher auch beim Abschalten Inhalte, welche darin gespeichert sind, halten.
  • In den vergangenen Jahren haben die Anzahl und die Typen von Vorrichtungen der Unterhaltungselektronik (Consumer Electronic Devices), welche einen nichtflüchtigen Speicher verwenden, zugenommen. Beispielsweise können ein MP3-Player, eine digitale Kamera, ein mobiles Telefon, ein Camcorder, eine Flashkarte und ein Festkörperlaufwerk (SSD = Solid State Disk) einen nichtflüchtigen Speicher als eine Datenspeichervorrichtung verwenden. Ein Flashspeicher ist ein nichtflüchtiger Speicher und kann eine Funktion eines elektrischen Löschens von Zelldaten in einem Block unterstützen. Dies versetzt den Flashspeicher in die Lage, weithin als eine Speichervorrichtung anstelle einer Festplatte (Harddisk-Drive) verwendet zu werden.
  • Da die Speicherkapazität, welche durch den Nutzer benötigt wird, zunimmt, ist eine Technik des Verwendens des Speicherplatzes eines Flashspeichers auf effizientem Wege wünschenswert.
  • KURZFASSUNG
  • Beispielhafte Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen Nutzerbereich aus einer (nichtflüchtigen) Speicherzellanordnung; einen Pufferbereich (beispielsweise RAM), welcher konfiguriert ist, um vorübergehend komprimierte Daten, welche in den Nutzerbereich zu schreiben sind, zu speichern; und eine Verwaltungslogik für komprimierte Daten, welche konfiguriert ist, um den Nutzerbereich und den Pufferbereich zu steuern derart, dass komprimierte Daten, welche in dem Pufferbereich gespeichert sind, in den Nutzerbereich geschrieben werden, aufweist. Die Verwaltungslogik für die komprimierten Daten verwaltet komprimierte Daten, welche in den Nutzerbereich zu schreiben sind, durch eine bzw. mit einer ECC-Blockeinheit (beispielsweise mehrere Seiten).
  • In beispielhaften Ausführungsformen ist die ECC-Blockeinheit eine Bitgröße, welche die Zuverlässigkeit der komprimierten Daten, welche in den Nutzerbereich zu schreiben sind, sicherstellt.
  • In beispielhaften Ausführungsformen weist die ECC-Blockeinheit einen Daten-Bitbereich auf, was Nutzerdateninformationen sind, und einen ECC-Bitbereich, welcher verwendet wird, um einen Fehler des Daten-Bitbereichs zu erfassen und zu korrigieren.
  • In beispielhaften Ausführungsformen werden bei einer Programmieroperation gesammelte komprimierte Daten, welche in dem Pufferbereich gespeichert sind, in den Nutzerbereich mit der Programmiereinheit (beispielsweise eine oder mehrere Seitengrößen) größer als die ECC-Blockeinheit geschrieben.
  • In beispielhaften Ausführungsformen ist die Programmiereinheit ein ganzzahliges Vielfaches der ECC-Blockeinheit.
  • In beispielhaften Ausführungsformen speichert der Pufferbereich vorübergehend erste komprimierte Daten und zweite komprimierte Daten und die Verwaltungslogik für komprimierte Daten programmiert die gesammelten ersten und zweiten komprimierten Daten in dieselbe Seite in dem Nutzerbereich.
  • In beispielhaften Ausführungsformen weist die Speichervorrichtung weiterhin einen Komprimierer auf, welcher konfiguriert ist, um schreib-angefragte Rohdaten zu komprimieren; und eine ECC-Schaltung, welche konfiguriert ist, um ein ECC-Bit zu Rohdaten, welche durch den Komprimierer komprimiert sind, hinzuzufügen, um komprimierte Daten, welche in den Nutzerbereich zu schreiben sind, zu erzeugen.
  • In beispielhaften Ausführungsformen weist die Speichervorrichtung weiterhin eine Verwaltungstabelle für komprimierte Daten auf, welche konfiguriert ist, um Örtlichkeitsinformationen von komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, zu verwalten, wobei die Verwaltungstabelle für die komprimierten Daten Örtlichkeitsinformationen von komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit, welche kleiner ist als die Programmiereinheit (beispielsweise eine oder mehrere Seitengrößen) gemäß einer Steuerung der Verwaltungslogik für komprimierte Daten verwaltet.
  • In beispielhaften Ausführungsformen verwaltet die Verwaltungstabelle für komprimierte Daten Informationen, welche mit der physikalischen Adresse von komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, verknüpft sind, Informationen, welche mit der Startzahl des ECC-Blocks der komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, verknüpft sind und Informationen, welche mit der ECC-Blocklänge der komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, verknüpft sind.
  • In beispielhaften Ausführungsformen verwaltet die Verwaltungstabelle für komprimierte Daten ferner Informationen, welche mit einer logischen Adresse verknüpft sind, welche der physikalischen Adresse der komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, entspricht.
  • In beispielhaften Ausführungsformen verwaltet die Verwaltungstabelle für komprimierte Daten Informationen, welche mit physikalischen Adressen von ersten und zweiten komprimierten Daten, welche in dem Nutzerbereich gespeichert sind, verknüpft sind, und die ersten und zweiten komprimierten Daten haben dieselbe physikalische Adresse.
  • In beispielhaften Ausführungsformen bestimmt die Verwaltungslogik für komprimierte Daten, ob zweite komprimierte Daten in den Nutzerbereich mit ersten komprimierten Daten zu programmieren sind, oder nicht, basierend auf der Bitgröße eines leeren Bereichs der ersten komprimierten Daten.
  • In beispielhaften Ausführungsformen werden, wenn die Bitgröße des leeren Bereichs der ersten komprimierten Daten größer ist als die Bitgröße der zweiten komprimierten Daten, die ersten und zweiten komprimierten Daten in dieselbe Seite des Nutzerbereichs programmiert.
  • In beispielhaften Ausführungsformen werden, wenn die Bitgröße des leeren Bereichs der ersten komprimierten Daten kleiner ist als die Bitgröße der zweiten komprimierten Daten, die ersten komprimierten Daten in den Nutzerbereich programmiert.
  • In beispielhaften Ausführungsformen ist ein Schreibanfrage-Zeitpunkt der ersten komprimierten Daten vor einem Schreibanfrage-Zeitpunkt der zweiten komprimierten Daten.
  • In beispielhaften Ausführungsformen weist der Pufferbereich einen Wartebereich auf, welcher vorübergehend eine Mehrzahl von komprimierten Daten speichert, und die Verwaltungslogik für komprimierte Daten vergleicht die Bitgröße von schreib-angefragten komprimierten Daten mit einem leeren Bereich jeder der Mehrzahl von komprimierten Daten, welche in dem Wartebereich gespeichert sind.
  • In beispielhaften Ausführungsformen programmiert dann, wenn die Bitgröße der schreib-angefragten komprimierten Daten kleiner ist als ein leerer Bereich ausgewählter einer aus einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich gespeichert sind, die Verwaltungslogik für komprimierte Daten die schreib-angefragten komprimierten Daten und die ausgewählten komprimierten Daten in die gleiche Seite des Nutzerbereichs.
  • In beispielhaften Ausführungsformen überträgt dann, wenn die Bitgröße der schreib-angefragten komprimierten Daten größer ist als die leeren Bereiche einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich gespeichert sind, die Verwaltungslogik für komprimierte Daten die schreib-angefragten komprimierten Daten in den Wartebereich.
  • In beispielhaften Ausführungsformen vergleicht die Verwaltungslogik für komprimierte Daten die Bitgröße des Wartebereichs mit einer Referenz-Bitgröße und programmiert ausgewählte eine aus einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich gespeichert sind, wenn die Bitgröße des Wartebereichs größer ist als die Referenz-Bitgröße.
  • In beispielhaften Ausführungsformen vergleicht die Verwaltungslogik für komprimierte Daten die Bitgröße eines leeren Bereichs von ersten komprimierten Daten mit der Bitgröße von zweiten komprimierten Daten und unterteilt die zweiten komprimierten Daten, wenn die Bitgröße des leeren Bereichs der ersten komprimierten Daten kleiner ist als die Bitgröße der zweiten komprimierten Daten.
  • In beispielhaften Ausführungsformen unterteilt die Verwaltungslogik für komprimierte Daten die zweiten komprimierten Daten in erste und zweite unterteilte komprimierte Daten, und die Bitgröße der ersten unterteilten komprimierten Daten ist kleiner als die Bitgröße eines leeren Bereiches der ersten komprimierten Daten.
  • In beispielhaften Ausführungsformen programmiert die Verwaltungslogik für komprimierte Daten die ersten komprimierten Daten und die ersten unterteilten komprimierten Daten in die gleiche Seite des Nutzerbereichs.
  • In beispielhaften Ausführungsformen speichert die Verwaltungslogik für komprimierte Daten vorläufig die zweiten unterteilten komprimierten Daten in dem Pufferbereich.
  • In beispielhaften Ausführungsformen programmiert die Verwaltungslogik für komprimierte Daten gleichzeitig wenigstens eine oder mehrere komprimierten Daten, welche in dem Pufferbereich gespeichert sind, in eine Mehrzahl k von Seiten des Nutzerbereichs. Die Anzahl k von Seiten des Nutzerbereichs ist vorzugsweise geringer als die Anzahl von komprimierten Daten.
  • Ein anderer Aspekt des erfinderischen Konzepts sieht eine nichtflüchtige Speichervorrichtung vor, welche einen nichtflüchtigen Speicher, welcher konfiguriert ist, um eine Programmieroperation mit einer Programmiereinheit durchzuführen, welche eine Bitgröße von k mal der Bitgröße einer Seite des nichtflüchtigen Speichers hat, wobei k eine ganze Zahl ist; einen Pufferspeicher, welcher konfiguriert ist, um vorläufig komprimierte Daten, welche in den nichtflüchtigen Speicher zu programmieren sind, speichert; und eine Verwaltungslogik für komprimierte Daten aufweist, welche konfiguriert ist, um den nichtflüchtigen Speicher und den Pufferspeicher derart zu steuern, dass die komprimierten Daten, welche in dem Pufferspeicher gespeichert sind, in den nichtflüchtigen Speicher programmiert werden. Die Verwaltungslogik für komprimierte Daten verwaltet die komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind durch eine bzw. mit einer ECC-Blockeinheit, welche kleiner ist als die Bitgröße einer Seite des nichtflüchtigen Speichers.
  • In beispielhaften Ausführungsformen weist der Pufferspeicher eine Mehrzahl von gesammelten komprimierten Daten auf, wobei die Mehrzahl von komprimierten Daten, welche in dem Pufferspeicher gespeichert ist, gleichzeitig in den nichtflüchtigen Speicher zu programmieren ist, wenn die Bitgröße einer Mehrzahl von komprimierten Daten, welche in dem Pufferspeicher gespeichert sind, kleiner ist als die Programmiereinheit von k Seiten.
  • In beispielhaften Ausführungsformen weist die nichtflüchtige Speichervorrichtung weiterhin eine Verwaltungstabelle für komprimierte Daten auf, welche konfiguriert ist, um Örtlichkeitsinformationen von komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, zu verwalten. Die Verwaltungstabelle für komprimierte Daten verwaltet die Örtlichkeitsinformationen von komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit, welche geringer ist als die Bitgröße einer Seite, unter einer Steuerung der Verwaltungslogik für komprimierte Daten.
  • In beispielhaften Ausführungsformen verwaltet die Verwaltungstabelle für komprimierte Daten Informationen, welche mit der physikalischen Adresse von komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, verknüpft sind, Informationen, welche mit einer Startnummerdes ECC-Blocks der komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, verknüpft sind, und Informationen, welche mit der ECC-Blocklänge der komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, verknüpft sind.
  • In beispielhaften Ausführungsformen verwaltet die Verwaltungstabelle für komprimierte Daten weiterhin Informationen, welche mit einer logischen Adresse der komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind, verknüpft sind.
  • In beispielhaften Ausführungsformen weist der nichtflüchtige Speicher eine Mehrzahl von komprimierten Daten auf, welche durch eine Programmieroperation programmiert sind, und vorbestimmte komprimierte Daten der Mehrzahl von komprimierten Daten werden unterteilt, so dass sie in wenigstens zwei Seiten des nichtflüchtigen Speichers gespeichert werden.
  • Ein anderer Aspekt des erfinderischen Konzepts sieht ein Betriebsverfahren einer nichtflüchtigen Speichervorrichtung vor, welches ein Komprimieren von schreib-angefragten Daten; ein Sammeln der komprimierten Daten in einem Schreib-Lese-Speicher(RAM = Random Access Memory)-Puffer; ein Programmieren bzw. Kodieren der komprimierten Daten, welche in dem RAM gesammelt sind, in einen nichtflüchtigen Speicher; und ein Aktualisieren einer Verwaltungstabelle für komprimierte Daten aufweist, welche komprimierte Daten, die in dem nichtflüchtigen Speicher gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit verwaltet.
  • In beispielhaften Ausführungsformen weist das Betriebsverfahren weiterhin ein Vergleichen der Bitgröße der schreib-angefragten Daten mit der Bitgröße eines leeren Bereichs von vorangehend komprimierten Daten auf. Wenn die Bitgröße der schreib-angefragten Daten geringer ist als die Bitgröße des leeren Bereichs der vorangehend komprimierten Daten, dann werden die schreib-angefragten Daten und die vorangehend komprimierten Daten in dieselbe Seite des nichtflüchtigen Speichers programmiert.
  • In beispielhaften Ausführungsformen weist das Betriebsverfahren weiterhin ein Vergleichen der Bitgröße der schreib-angefragten Datene mit der Bitgröße jedes von leeren Bereichen einer Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, auf. Wenn die Bitgröße der schreib-angefragten Daten kleiner ist als die Bitgröße eines leeren Bereichs ausgewählter einer der Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, dann werden die schreib-angefragten Daten und die ausgewählten komprimierten Daten in dieselbe Seite des nichtflüchtigen Speichers programmiert.
  • In beispielhaften Ausführungsformen ist die Bitgröße der schreib-angefragten Daten größer als die Bitgröße von leeren Bereichen einer Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, die Daten der Schreibanfrage werden in dem RAM gespeichert.
  • In beispielhaften Ausführungsformen weist das Betriebsverfahren weiterhin ein Vergleichen der Bitgröße einer Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, mit einer Referenz-Bitgröße auf, wenn die schreib-angefragten Daten in dem RAM gespeichert werden. Wenn die Bitgröße der Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, größer ist als die Referenz-Bitgröße, dann werden vorbestimmte komprimierte Daten der Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, in den nichtflüchtigen Speicher programmiert.
  • Ein anderer Aspekt des erfinderischen Konzepts sieht ein Betriebsverfahren einer nichtflüchtigen Speichervorrichtung vor, welches Folgendes aufweist: ein sequentielles bzw. nacheinander folgendes Empfangen von ersten schreib-angefragten Daten und zweiten schreib-angefragten Daten; ein sequentielles bzw. nacheinander folgendes Komprimieren von ersten schreib-angefragten Daten und zweiten schreib-angefragten Daten; ein Sammeln der ersten und zweiten komprimierten Daten in einem Schreib-Lese-Speicher(RAM = Random Access Memory)-Puffer; ein Programmieren der ersten und zweiten komprimierten Daten, welche in dem RAM gesammelt sind, in einen nichtflüchtigen Speicher; und ein Aktualisieren einer Verwaltungstabelle für komprimierte Daten zum Verwalten von komprimierten Daten, welche in dem nichtflüchtigen Speicher gespeichert sind.
  • Das erfinderische Konzept wird vollständiger hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden, in welchen einige beispielhafte Ausführungsformen gezeigt sind. Dieses erfinderische Konzept kann jedoch in vielen unterschiedlichen Formen ausgeführt werden und sollte nicht als auf die Ausführungsformen, welche hierin erläutert sind, beschränkt angesehen werden. Vielmehr sind diese Ausführungsformen vorgesehen, so dass diese Offenbarung sorgfältig und vollständig sein wird, und den Umfang des vorliegenden erfinderischen Konzepts Fachleuten vollständig vermitteln wird. In den Zeichnungen können die Bitgrößen und relativen Bitgrößen für die Klarheit übertrieben bzw. überzogen sein. Gleiche Bezugszeichen beziehen sich durchgehend auf gleiche Elemente.
  • Es wird verstanden werden, dass, obwohl der Wortlaut erster/erste/erstes, zweiter/zweite/zweites, dritter/dritte/drittes etc. hierin verwendet werden kann, um verschiedene Elemente, Komponenten bzw. Bestandteile, Bereiche und/oder Sektionen zu beschreiben, diese Elemente, Komponenten bzw. Bestandteile, Bereiche und/oder Sektionen durch diese Wortlaute nicht beschränkt werden sollten. Diese Wortlaute werden nur verwendet, um ein Element, eine Komponente bzw. einen Bestandteil, einen Bereich oder eine Sektion von einem anderen Bereich oder einer anderen Sektion zu unterscheiden. Demnach könnte ein erstes Element, Komponente bzw. Bestandteil, Bereich oder Sektion welches untenstehend diskutiert wird, als ein zweites Element, Komponente bzw. Bestandteil, Bereich oder Sektion bezeichnet werden, ohne von den Lehren des erfinderischen Konzepts abzuweichen.
  • Die Terminologie, welche hierin verwendet wird, ist nur zum Zwecke des Beschreibens bestimmter beispielhafter Ausführungsformen und ist nicht vorgesehen, um für das vorliegende erfinderische Konzept beschränkend zu sein. Wie hierin verwendet, sind die Singularformen „einer/eine/eines” und „der/die/das” vorgesehen, um ebenso die Pluralformen zu umfassen, sofern der Kontext bzw. Zusammenhang nicht deutlich Anderes anzeigt. Wie hierin verwendet, umfasst der Wortlaut „und/oder” irgendeine und alle Kombinationen von einem oder mehreren der zugehörigen aufgelisteten Gegenstände.
  • Es wird verstanden werden, dass, wenn auf ein Element oder eine Schicht Bezug genommen wird als „an” bzw. „auf”, „verbunden mit”, „gekoppelt mit” oder „benachbart zu” einem anderen Element oder Schicht, es direkt an bzw. auf, verbunden mit, gekoppelt mit oder benachbart zu dem anderen Element oder Schicht sein kann, oder dazwischen liegende Elemente oder Schichten gegenwärtig sein können. Im Gegensatz hierzu sind, wenn auf ein Element Bezug genommen wird als „direkt an” bzw. „direkt auf”, „direkt verbunden mit”, „direkt gekoppelt mit” oder „unmittelbar benachbart zu” einer anderen Schicht, dass keine dazwischen angeordneten Elemente gegenwärtig sind.
  • Soweit nicht anderweitig definiert, haben alle Wortlaute (einschließlich technischer und wissenschaftlicher Wortlaute), welche hierin verwendet werden, dieselbe Bedeutung, wie sie allgemein durch einen Fachmann, zu welchem dieses erfinderische Konzept gehört, verstanden werden. Es wird weiterhin verstanden werden, dass Wortlaute, wie beispielsweise diejenigen Wortlaute, welche in allgemein verwendeten Wörterbüchern definiert sind, interpretiert werden sollen, als eine Bedeutung habend, welche konsistent mit ihrer Bedeutung in dem Kontext des relevanten Fachgebiets oder der vorliegenden Beschreibung ist, und nicht in einem idealisierten oder übermäßig formalen Sinn interpretiert werden sollen, soweit nicht ausdrücklich hierin so definiert.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die obigen und andere Merkmale werden offensichtlich werden aus der folgenden Beschreibung unter Bezugnahme auf die folgenden Figuren, wobei gleiche Bezugsziffern gleichen Teilen über die verschiedenen Figuren hinweg entsprechen, soweit nicht anders spezifiziert, und worin:
  • 1 ein Blockschaltbild eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts ist;
  • 2 ein Flussdiagramm ist, welches ein Betriebsverfahren des Speichersystems der 1 veranschaulicht;
  • 3 ein Blockschaltbild eines Flashspeichersystems gemäß einer Ausführungsform des erfinderischen Konzepts ist;
  • 4 ein Blockschaltbild ist, welches schematisch eine Zellanordnung und einen Seitenpuffer in dem Flashspeicher der 3 veranschaulicht;
  • 5 ein Diagramm ist, welches schematisch eine Struktur von Daten, welche in einer Seite in dem Seitenpuffer in 4 gespeichert sind, veranschaulicht;
  • 68 Diagramme sind, welche einen Betrieb des Flashspeichersystems der 3 veranschaulichen;
  • 9 ein Flussdiagramm ist, welches das Betriebsverfahren des Flashspeichersystems, welches in den 68 beschrieben ist, veranschaulicht;
  • 10 ein Flussdiagramm ist, welches ein Betriebsverfahren des Flashspeichersystems in 3 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 11 ein Diagramm ist, welches einen RAM (Random Access Memory) bzw. einen Schreib-Lese-Speicher gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 12 ein Flussdiagramm ist, welches ein Betriebsverfahren des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 13 ein Diagramm ist, welches einen Betrieb des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 14 ein Flussdiagramm ist, welches ein Betriebsverfahren des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 15 ein Blockschaltbild einer Zellanordnung in dem Flashspeichersystem der 3 gemäß einer anderen Ausführungsform des erfinderischen Konzepts ist;
  • 16 und 17 Diagramme sind, welche einen Betrieb des Flashspeichersystems der 1 veranschaulichen, wenn eine Mehrzahl von Seiten gleichzeitig programmiert wird;
  • 1820 Blockdiagramme sind, welche verschiedene Anwendungen eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulichen;
  • 21 ein Blockschaltbild eines Speicherkartensystems ist, auf welches ein Flashspeichersystem gemäß einer Ausführungsform des erfinderischen Konzepts angewandt wird;
  • 22 ein Blockschaltbild eines Festkörperlaufwerks ist, in welchem ein Speichersystem gemäß dem erfinderischen Konzept angewandt wird;
  • 23 ein Blockschaltbild des SSD-Controllers in dem Festkörperlaufwerksystem der 22 ist;
  • 24 ein Blockschaltbild einer elektronischen Vorrichtung, welche ein Flashspeichersystem gemäß einer Ausführungsform des erfinderischen Konzepts aufweist, ist;
  • 25 ein Blockschaltbild eines Flashspeichers ist, welcher auf das erfinderische Konzept angewandt wird;
  • 26 eine perspektivische Ansicht ist, welche schematisch eine 3D-Struktur eines Speicherblocks in dem Flashspeicher der 25 veranschaulicht; und
  • 27 ein Schaltkreisdiagramm bzw. Schaltbild einer äquivalenten Schaltung des Speicherblocks der 26 ist.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • 1 ist ein Blockschaltbild eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts. Bezug nehmend auf 1 weist ein Speichersystem 100 einen Host 110 und eine Speichervorrichtung 120 auf. Die Speichervorrichtung 120 weist einen Controller bzw. Steuerung 121 und einen nichtflüchtigen Speicher 125 auf.
  • Der Controller 121 steuert den Gesamtbetrieb der Speichervorrichtung 120 in Antwort auf eine Anfrage des Host 110. Beispielsweise kann der Controller 121 die Lese- und Schreiboperationen des nichtflüchtigen Speichers 125 in Antwort auf eine Lese- und Schreibanfrage des Host 110 steuern.
  • Der nichtflüchtige Speicher 125 kann durch den Controller 121 gesteuert werden und kann Operationen (beispielsweise lesen oder schreiben) entsprechend den Anfragen des Controllers 121 durchführen. Der nichtflüchtige Speicher 125 weist einen Nutzerbereich 126 auf, welcher verwendet wird, um Daten zu speichern (beispielsweise komprimierte Nutzerdaten).
  • Das Speichersystem 100 gemäß einer Ausführungsform des erfinderischen Konzepts kann komprimierte Daten durch den ECC-Block verwalten. Der ECC-Block kann weniger sein als die Bitgröße einer Seite der Speichervorrichtung. Das Speichersystem 100 gemäß einer Ausführungsform des erfinderischen Konzepts kann konfiguriert sein, um Daten zu komprimieren, komprimierte Daten zu sammeln und die gesammelten komprimierten Daten zu schreiben. Hierin nachstehend kann auf diese Operation Bezug genommen werden als „kollektive Schreiboperation” für gesammelte Daten. Mit der kollektiven Schreiboperation können komprimierte Daten bei einem RAM-Pufferspeicher 124 angesammelt werden und zwei oder mehr komprimierte Daten, welche an dem Pufferspeicher 124 angesammelt sind, können gemäß der Programmiereinheit (beispielsweise der Größe einer oder mehrerer Seiten) des Nutzerbereichs 126 geschrieben werden.
  • Der Controller 121 gemäß einer Ausführungsform des erfinderischen Konzepts weist einen Komprimierer 122, eine Verwaltungslogik 123 für komprimierte Daten und den Pufferspeicher 124 auf.
  • Der Komprimierer 122 kann konfiguriert sein, um Daten, welche von dem Host 110 übertragen werden, zu komprimieren. Die komprimierten Daten können vorläufig in dem Pufferspeicher 124 gespeichert werden. Die Verwaltungslogik 123 für komprimierte Daten kann konfiguriert sein, um komprimierte Daten, welche in dem Pufferspeicher 124 und dem Nutzerbereich 126 gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit verwalten. Hierin kann die ECC-Blockeinheit eine Einheit mit minimaler Größe anzeigen, welche in der Lage ist, die Zuverlässigkeit von Daten sicherzustellen.
  • Das Speichersystem 100 kann eine Verwendung eines Speicherplatzes des Nutzerbereichs 126 durch ein Verwalten von komprimierten Daten durch die ECC-Blockeinheit und ein Durchführen einer „kollektiven Schreiboperation” auf den komprimierten Daten maximieren. Weiterhin kann das Speichersystem 100 die Anzahl von Programmieroperationen, welche ausgeführt werden, um komprimierte Daten in den Nutzerbereich 126 zu programmieren, minimieren.
  • Untenstehend werden die Fälle beschrieben werden, in denen komprimierte Daten durch eine bzw. mit einer ECC-Blockeinheit (beispielsweise 1 K Bytes) verwaltet werden und in denen komprimierte Daten durch eine bzw. mit einer Einheit (beispielsweise 8 Kilobyte) größer als die ECC-Blockeinheit verwaltet werden.
  • Zur Erleichterung der Beschreibung wird angenommen, dass der Pufferspeicher 124 die Bitgröße einer ersten Einheit (beispielsweise 8 KB) hat, und Daten, welche in dem Pufferspeicher 124 gespeichert sind, werden in einem Speicherplatz des Nutzerbereichs 126 gespeichert, welcher die erste Einheit hat (beispielsweise einen Speicherplatz von 8 Kilobyte). Ebenso wird angenommen, dass die ECC-Blockeinheit eine zweite Einheit hat, welche kleiner ist als die erste Einheit. Ebenso wird angenommen, dass erste und zweite komprimierte Daten (beispielsweise 5 KB und 2 KB), welche eine Bitgröße kleiner als die erste Einheit und größer als die zweite Einheit haben, in den Nutzerbereich 126 programmiert werden.
  • In dem Fall, dass Daten, welche in dem Pufferspeicher 124 und dem Nutzerbereich 126 gespeichert sind durch die erste Einheit (8 KB) verwaltet werden, müssen die ersten und zweiten komprimierten Daten jeweils unabhängig in den Nutzerbereich 126 programmiert werden. Wenn die ersten und zweiten komprimierten Daten in denselben Speicherplatz (Speicherplatz von 8 KB) des Nutzerbereichs 126 programmiert werden, mag der Controller 121 die ersten und die zweiten komprimierten Daten nicht unterteilen. Dies kann bedeuten, dass ein Speicherplatz des Nutzerbereichs 126 verschwendet wird. Beispielsweise kann, wenn die Bitgröße der ersten komprimierten Daten 5 KB ist, ein Speicherplatz von 3 KB (8 KB minus 5 KB) verschwendet werden.
  • Um den oben beschriebenen Nachteil zu beseitigen, kann die Speichervorrichtung 120 gemäß einer Ausführungsform des erfinderischen Konzepts komprimierte Daten durch eine bzw. mit einer zweite(n) Einheit (oder bezeichnet als als ECC-Blockeinheit) von 1 KB verwalten. In diesem Fall kann, obwohl die ersten und zweiten komprimierten Daten in denselben Speicherplatz programmiert werden (beispielsweise ein Speicherplatz von 8 KB) der Controller 121 die ersten und die zweiten komprimierten Daten unterteilen.
  • Da die ersten und zweiten komprimierten Daten an bzw. bei dem Pufferspeicher 124 gesammelt werden, und die ersten und zweiten komprimierten Daten, welche bei dem Pufferspeicher 124 gesammelt werden, in dem Nutzerbereich 126 gemäß eines Programmierbefehls programmiert werden, kann die Speichervorrichtung 120 die Anzahl von Programmieroperationen verglichen mit dem Fall, dass komprimierte Daten durch die erste Einheit verwaltet werden, verringern.
  • 2 ist ein Flussdiagramm, welches ein Verfahren für den Betrieb des Speichersystems in 1 veranschaulicht.
  • In Schritt S110 kann die Speichervorrichtung 120 Quelldaten von einem Host 110 empfangen.
  • In Schritt S120 kann ein Komprimierer 122 der Speichervorrichtung 120 Rohdaten komprimieren. Hierin können die Rohdaten Daten bedeuten, welche nicht durch den Komprimierer 122 komprimiert sind und einer Komprimiereinheit des Komprimierers 122 entsprechen. Wenn die Bitgröße der Quelldaten größer ist als die Komprimiereinheit des Komprimierers 122, kann ein Controller 121 die Quelldaten mit der Komprimiereinheit partitionieren bzw. aufteilen, um Rohdaten zu erzeugen, und dann kann der Komprimierer 122 die Rohdaten komprimieren.
  • In Schritt S130 können Daten, welche durch den Komprimierer 122 komprimiert sind, an einem Pufferspeicher 124 gesammelt werden. Wenn der Pufferspeicher 124 die Bitgröße von 8 KB hat, erste komprimierte Daten die Bitgröße von 5 KB haben und zweite komprimierte Daten die Bitgröße von 2 KB haben, können die ersten komprimierten Daten und die zweiten komprimierten Daten sequentiell bei dem Pufferspeicher 124 gesammelt werden.
  • In Schritt S140 kann eine Mehrzahl von komprimierten Daten, welche bei dem Pufferspeicher 124 gesammelt wird, in den Nutzerbereich 126 programmiert werden. Beispielsweise können die ersten und die zweiten komprimierten Daten, welche bei dem Pufferspeicher 124 gesammelt werden, gleichzeitig in den Nutzerbereich 126 unter Verwendung eines Programmierbefehls programmiert werden. Eine Verwaltungslogik 123 für komprimierte Daten kann die ersten und zweiten komprimierten Daten durch eine bzw. mit einer ECC-Blockeinheit (beispielsweise 1 KB) verwalten. Demnach kann die Verwaltungslogik 123 für komprimierte Daten effizient und exakt Örtlichkeiten des Nutzerbereichs 126 finden, wo die ersten und zweiten komprimierten Daten gespeichert sind.
  • Wie obenstehend beschrieben ist, unterstützt die Speichervorrichtung 100 gemäß einer Ausführungsform des erfinderischen Konzepts eine kollektive Schreiboperation für komprimierte Daten und verwaltet Daten, welche in dem Nutzerbereich 126 gespeichert sind, durch die ECC-Blockeinheit. Demnach ist es möglich, den Speicherplatz des Nutzerbereichs 126 effizient zu nutzen.
  • Die Speichervorrichtung 100 kann weiterhin eine ECC-Schaltung aufweisen. Wenn Daten in einen nichtflüchtigen Speicher 125 programmiert werden, führt die ECC-Schaltung ein Kodieren mit der ECC-Blockeinheit durch. Wenn Daten aus dem nichtflüchtigen Speicher 125 ausgelesen werden, kann die ECC-Schaltung ein Dekodieren mit der ECC-Blockeinheit durchführen. Die Zuverlässigkeit von Daten kann durch ein Verwalten der Daten in der Größe der ECC-Blockeinheit gesichert werden. Weiterhin ist es möglich, eine Verwendung von Speicherplatz des Nutzerbereichs 126 zu maximieren.
  • Ein nichtflüchtiger Speicher 125 in 1 kann implementiert werden unter Verwendung verschiedener Speicher. Beispielsweise kann der nichtflüchtige Speicher 125 aus einem Flashspeicher, einem magnetischen RAM (MRAM = Magnetic RAM), einem Spin-Transfer-Drehmoment MRAM (STT-MRAM = Spin Transfer Torque MRAM), einem leitfähig brückenden RAM (CBRAM = Conductive Bridging RAM), einem Phasenänderungs-RAM (PRAM = Phase-Change RAM), genannt OUM (Ovonic Unified Memory), einem resistiven RAM (RRAM oder Re-RAM = Resistive RAM), einem Nanotube-RAM, einem Polymer-RAM (PoRAM = Polymer-RAM), einem Nanofloating Gate-Speicher (NFGM), einem holographischen Speicher, einem molekularelektronischen Speicher, einem Isolator-Widerstandsänderungsspeicher oder dergleichen gebildet sein.
  • Untenstehend wird eine beispielhafte Ausführungsform beschrieben werden, in der der nichtflüchtige Speicher 125 in 1 aus einem Flashspeicher gebildet ist.
  • 3 ist ein Blockschaltbild eines Flashspeichersystems gemäß einer Ausführungsform des erfinderischen Konzepts. Ein Flashspeichersystem 1000 weist einen Host 1100 und eine Flashspeichervorrichtung 1200 auf. Um einen Speicherplatz eines Flashspeichers 1400 effizient zu nutzen, unterstützt die Flashspeichervorrichtung 1200 eine „kollektive Schreiboperation” und verwaltet Daten, welche in dem Flashspeicher 1400 gespeichert sind durch eine bzw. mit einer ECC-Blockeinheit.
  • Bezug nehmend auf 3 weist die Flashspeichervorrichtung 1200 einen Controller 1300 und den Flashspeicher 1400 auf. Der Controller 1300 steuert den Gesamtbetrieb des Flashspeichers 1400 in Antwort auf eine Anfrage des Host 1100. Beispielsweise kann der Controller 1300 ein Schreiben oder Lesen auf bzw. von dem Flashspeicher 1400 steuern. Der Controller 1300 weist ein Host-Interface bzw. eine Host-Schnittstelle 1310, ein Speichermedien-Interface bzw. eine Speichermedien-Schnittstelle 1320, eine CPU 1330, einen RAM 1340, eine ECC-Schaltung 1350, einen Komprimierer 1360 und eine Verwaltungslogik 1370 für komprimierte Daten auf.
  • Die Host-Schnittstelle 1310 ist konfiguriert, um mit dem Host 1100 eine Schnittstelle zu bilden, und die Speichermedien-Schnittstelle 1320 ist konfiguriert, um mit dem Flashspeicher 1400 eine Schnittstelle zu bilden. Die Host-Schnittstelle 1310 kann mit dem Host 1100 über einen oder mehrere Kanäle (oder Ports) verbunden sein. Beispielsweise kann die Host-Schnittstelle 1310 mit dem Host 1100 über einen von einem parallelen AT-Attachment(PATA)-Bus und einem seriellen AT-Attachment(SATA)-Bus oder über sowohl den PATA-Bus als auch den SATA-Bus verbunden sein. Alternativ kann die Host-Schnittstelle 1310 mit dem Host 1100 über SCSI, USB oder dergleichen verbunden sein.
  • Die CPU 1330 steuert den Gesamtbetrieb der Flashspeichervorrichtung 1200. Obwohl in 3 nicht gezeigt, kann die CPU 1330 implementiert sein, so dass sie einen Prozessor, einen SRAM, einen DRAM-Controller und dergleichen aufweist.
  • Der RAM 1340 kann in Antwort auf die Steuerung der CPU 1330 oder auf die Verwaltungslogik 1370 für komprimierte Daten arbeiten, und kann als ein Arbeitsspeicher, ein Pufferspeicher, ein Cachespeicher und/oder dergleichen verwendet werden. Der RAM 1340 kann aus einem oder mehreren Chips gebildet sein.
  • Wenn der RAM 1340 als der Arbeitsspeicher verwendet wird, kann er verwendet werden, um vorübergehend Daten, welche durch die CPU 1330 verarbeitet werden bzw. sind, zu speichern.
  • Wenn der RAM 1340 als der Pufferspeicher verwendet wird, kann er verwendet werden, um vorübergehend die komprimierten Daten zu speichern und zu sammeln, welche zu dem Flashspeicher 1400 zu übertragen sind, oder Daten, welche von dem Flashspeicher 1400 übertragen werden. Beispielsweise kann der RAM 1340 verwendet werden, um vorübergehend ein komprimiertes Datum oder mehrere komprimierte Daten, welche zu dem Flashspeicher 1400 zu übertragen sind, zu speichern.
  • Der RAM 1340 kann als ein Treiberspeicher zum Treiben einer Flash-Übersetzungsschicht (FTL = Flash Translation Layer) verwendet werden. Die Flash-Übertragungsschicht kann logische Adressen von dem Host 1100 in physikalische Adressen der Speicherzellanordnung 1410 übersetzen und kann verwendet werden, um eine Merge-Operation bzw. Misch-Operation des Flashspeichers 1400, eine Mapping-Tabelle und dergleichen zu verwalten. Der RAM 1340 kann verwendet werden, um eine Mapping-Tabelle, welche durch die Flash-Übersetzungsschicht verwaltet wird oder eine Verwaltungstabelle für komprimierte Daten, welche durch die Verwaltungslogik 1370 für komprimierte Daten verwaltet wird, zu speichern. Der RAM 1340 kann verwendet werden, um eine vereinigte Mapping-Tabelle, in welcher die Mapping-Tabelle und die Verwaltungstabelle für komprimierte Daten vereinigt sind, zu speichern.
  • Die ECC-Schaltung 1350 erzeugt einen Fehlerkorrekturcode (ECC = Error Correction Code) zum Korrigieren von fehlerhaften Bits der Daten, welche von dem Flashspeicher 1400 empfangen werden. Die ECC-Schaltung 1350 kann Daten, welche für den Flashspeicher 1400 vorgesehen sind, kodieren, um Daten zu erzeugen, an welche ECC-Informationen (oder Parity-Informationen) angefügt sind. Die ECC-/Parity-Informationen können in einem Metabereich der Zellanordnung 1410 gespeichert werden. Die ECC-Schaltung 1350 kann Ausgabedaten dekodieren, um zu beurteilen, ob die Dekodier-Operation erfolgreich ist. Die ECC-Schaltung 1350 kann ein Anzeigesignal gemäß einem Beurteilungsergebnis ausgeben und fehlerhafte Bits der Ausgabedaten unter Verwendung von ECC-Informationen korrigieren.
  • Die ECC-Schaltung 1350 kann Fehlerkorrekturen durchführen unter Verwendung von einem LDPC(Low Density Parity Check)-Code, einem BCH-Code, einem Turbo-Code, einem Reed-Solomon-Code, einem Konvolusion-Code, einem RSC (Recursive Systematic Code), einer kodierten Modulation wie beispielsweise TCM (Trellis Coded Modulation), einer BCM (Block Coded Modulation) oder dergleichen. Die ECC-Schaltung 1350 kann eine oder alle einer Fehlerkorrekturschaltung, eines Fehlerkorrektursystems und einer Fehlerkorrekturvorrichtung aufweisen.
  • Der Komprimierer 1360 kann in Antwort auf die Steuerung der CPU 1330 (oder der Verwaltungslogik 1370 für komprimierte Daten) arbeiten und kann sequentiell Daten, welche von dem Host 1100 vorgesehen werden, gemäß einer Kompressionseinheit komprimieren. Beispielsweise können Daten, welche von dem Host 1100 vorgesehen werden, in dem RAM 1340 gespeichert werden, und Daten, welche in dem RAM 1340 gespeichert sind, können gemäß der Steuerung der CPU 1330 (oder der Verwaltungslogik 1370 für komprimierte Daten) mit der Komprimiereinheit unterteilt werden. Der Komprimierer 1360 kann Daten, welche gemäß der Komprimiereinheit unterteilt sind, sequentiell komprimieren.
  • Die ECC-Schaltung 1350 kann ECC-Informationen an Daten, welche durch den Komprimierer 1360 komprimiert sind, anfügen, und resultierende Daten können bei eine vorbestimmten Bereich des RAM 1340 gesammelt werden. Danach können komprimierte Daten, welche bei dem RAM 1340 gesammelt werden, in die Zellanordnung 1410 durch einen Seitenpuffer 1420 programmiert werden. Der Komprimierer 1360 kann Daten, welche aus dem Flashspeicher 1400 ausgelesen werden, in Antwort auf die Steuerung der CPU 1330 (oder der Verwaltungslogik 1370 für komprimierte Daten) dekomprimieren.
  • Die Verwaltungslogik 1370 für komprimierte Daten verwaltet komprimierte Daten, welche in dem Flashspeicher 1400 gespeichert sind durch eine bzw. mit einer ECC-Blockeinheit. Hierin kann die ECC-Blockeinheit die minimale Bitgröße sein, welche in der Lage ist, die Zuverlässigkeit von Daten, welche in dem Flashspeicher 1400 gespeichert sind, zu sichern. Es wird angenommen, dass ECC-Informationen zu komprimierten Daten, welche die Bitgröße von 8 KB haben, hinzugefügt werden. In diesem Fall kann die Zuverlässigkeit der komprimierten Daten durch eine 1 KB-Einheit, welche ECC-Informationen verwendet, gesichert werden. Hierin kann die ECC-Blockeinheit die Bitgröße von 1 KB haben.
  • Die Verwaltungslogik 1370 für komprimierte Daten verwaltet komprimierte Daten, welche in dem Flashspeicher 1400 gespeichert sind, durch die ECC-Blockeinheit. Die Verwaltungslogik 1370 für komprimierte Daten kann eine Mehrzahl von komprimierten Daten bei dem RAM 1340 sammeln und kann den Flashspeicher 1400 derart steuern, dass die Mehrzahl von komprimierten Daten, welche bei dem RAM 1340 gesammelt wird, kollektiv zu derselben Zeit in die Zellanordnung 1410 durch den Seitenpuffer 1420 programmiert wird.
  • Die Verwaltungslogik 1370 für komprimierte Daten verwaltet Örtlichkeitsinformationen (oder physikalische Adress(PA = Physical Adress)-Informationen) von komprimierten Daten, welche in der Zellanordnung 1410 gespeichert sind unter Verwendung der Verwaltungstabelle für komprimierte Daten. Alternativ kann die Verwaltungslogik 1370 für komprimierte Daten Örtlichkeitsinformationen von komprimierten Daten, welche in der Zellanordnung 1410 gespeichert sind, durch ein Vereinigen der Verwaltungstabelle für komprimierte Daten und einer Mapping-Tabelle, welche durch die Flash-Übersetzungsschicht verwaltet wird, verwalten. Der Flashspeicher 1400 weist die Zellanordnung 1410 und den Seitenpuffer 1420 auf.
  • Die Zellanordnung 1410 kann Daten speichern, welche von dem Host 1100 übertragen werden oder Daten, welche durch den Komprimierer 1360 komprimiert werden. Der Seitenpuffer 1420 kann vorübergehend Daten, welche in die Zellanordnung 1410 zu programmieren sind, oder der Daten, welche aus der Zellanordnung 1410 ausgelesen werden, speichern. Der Flashspeicher 1400 wird vollständiger unter Bezugnahme auf die 4 und 5 beschrieben werden.
  • 4 ist ein Blockschaltbild, welches schematisch eine Zellanordnung und einen Seitenpuffer in dem Flashspeicher der 3 veranschaulicht. Zur Erleichterung der Beschreibung wird angenommen, dass eine Zellanordnung 1410 in einer Ebene eines Halbleiters gebildet ist. Bezug nehmend auf 4 weist die Zellanordnung 1410 eine Ebene 1411 auf, welche eine Mehrzahl von Speicherblöcken 1412 bis 1413 aufweist. Jeder Speicherblock kann eine Mehrzahl von Seiten aufweisen.
  • Während eines Programmierens (Schreibens) können Daten, welche in dem Seitenuffer 1420 gespeichert sind, in der Zellanordnung 1410 Seite für Seite gespeichert werden. Während des Lesens können Daten, welche in einer Seite der Zellanordnung 1410 gespeichert sind, durch den Seitenpuffer 1420 mit der Seiteneinheit (d. h. Seite für Seite) gelesen werden.
  • Wenn Daten, welche in der Zellanordnung 1410 gespeichert sind, durch die Seiteneinheit verwaltet werden, können unterschiedliche Daten jeweils auf unterschiedlichen Seiten gespeichert werden. Dies kann der Fall sein, um zu verhindern, dass verschiedene Daten als ein Datum erkannt werden, wenn verschiedene Daten in eine Seite programmiert und dann davon gelesen werden. Der Speicherplatz jeder Seite kann verschwendet werden, wenn Daten, welche in der Zellanordnung 1410 gespeichert sind, mit der Seiteneinheit verwaltet werden.
  • Aspekte der Erfindung beseitigen den oben beschriebenen Nachteil, da eine Verwaltungslogik 1370 für komprimierte Daten gemäß einer Ausführungsform des erfinderischen Konzepts Daten, welche in der Zellanordnung 1410 gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit (beispielsweise eine Bitgröße kleiner als eine Seite) verwalten kann.
  • 5 ist ein Diagramm, welches schematisch eine Struktur von Daten veranschaulicht, welche in bzw. auf einer Seite des Seitenpuffers in 4 gespeichert sind. In 5 ist eine erste Seite eines Speicherblocks 1412 in 4 beispielhaft veranschaulicht. Zur Erleichterung der Beschreibung wird angenommen, dass eine Seite 8 ECC-Blöcke aufweist.
  • Bezug nehmend auf 5 kann eine erste Seite 8 ECC-Blöcke aufweisen. Jeder ECC-Block kann wenigstens ein Datenbit (d. h. Datenbits) und ein ECC-Bit (d. h. ECC-Bits) aufweisen. Das Datenbit kann ein Datum bzw. Daten mit einer Schreibanfrage durch den Host 1100 bedeuten, und das ECC-Bit kann ein Parity-Bit bedeuten, welches durch eine ECC-Schaltung 1350 (es sei Bezug genommen auf 3) hinzugefügt ist, um die Zuverlässigkeit des (der) Datenbits zu sichern.
  • Beispielsweise kann, in dem Fall, dass Daten von 8 KB auf der ersten Seite gespeichert sind, jedes Datenbit die Bitgröße von 1 KB haben und jedes ECC-Bit kann an jedes Datenbit von 1 KB angehängt sein. In diesem Fall kann der ECC-Block die Bitgröße haben, welche einer Summe des Datenbits von 1 KB und dem ECC-Bit entspricht. Die Zuverlässigkeit von Daten, welche in bzw. auf der ersten Seite gespeichert sind, kann durch die ECC-Blockeinheit gesichert werden. Die Bitgröße des ECC-Bits kann ignorierbar sein verglichen mit der Bitgröße des Datenbits. Demnach wird das erfinderische Konzept unter der Annahme beschrieben werden, dass die Bitgröße des ECC-Blocks ähnlich zu derjenigen des Datenbits ist.
  • Verschiedene komprimierte Daten können auf einer Seite gespeichert werden durch ein Verwalten von Daten, welche in einer Zellanordnung 1410 gespeichert sind (es sei Bezug genommen auf 4) durch die bzw. mit der ECC-Blockeinheit. Dies bedeutet, dass eine Mehrzahl von komprimierten Daten in bzw. auf einer physikalischen Seite gespeichert werden kann.
  • Beispielsweise wird angenommen, dass erste komprimierte Daten und zweite komprimierte Daten jeweils Bitgrößen von 5 KB und 2 KB haben. Weiterhin wird angenommen, dass die ersten komprimierten Daten und die zweiten komprimierten Daten bei einem RAM 1340 (es sei Bezug genommen auf 4) gesammelt und dann in erste bis siebte ECC-Blöcke der ersten Seite programmiert werden.
  • Da Daten durch die bzw. mit der ECC-Blockeinheit verwaltet werden, kann die Verwaltungslogik 1370 für komprimierte Daten wissen, dass die ersten komprimierten Daten in dem ersten bis fünften ECC-Block der ersten Seite gespeichert sind. Weiterhin kann die Verwaltungslogik 1370 für komprimierte Daten wissen, dass die zweiten komprimierten Daten in dem sechsten bis siebten ECC-Block der ersten Seite gespeichert sind.
  • Wie unter Bezugnahme auf die 3 bis 5 beschrieben ist, kann eine Flashspeichervorrichtung 1200 gemäß einer Ausführungsform des erfinderischen Konzepts konfiguriert sein, um komprimierte Daten, welche in einem Flashspeicher gespeichert sind, durch die bzw. mit der ECC-Blockeinheit zu verwalten, und um eine „kollektive Schreiboperation” auf komprimierten Daten zu unterstützen. Demnach kann die Flashspeichervorrichtung 1200 gemäß einer Ausführungsform des erfinderischen Konzepts die Verschwendung von Speicherplatz in der Speicherzellanordnung 1410 minimieren.
  • Die Bitgröße von komprimierten Daten kann kleiner sein als diejenige der ECC-Blockeinheit. Beispielsweise können komprimierte Daten die Bitgröße von 900 Byte haben. Weiterhin kann die Bitgröße von komprimierten Daten nicht exakt mit derjenigen der ECC-Blockeinheit übereinstimmen. Beispielsweise können komprimierte Daten die Bitgröße von 1.KB haben. Nichtsdestotrotz kann die Flashspeichervorrichtung 1200 komprimierte Daten durch die bzw. mit der ECC-Blockeinheit verwalten, um die Zuverlässigkeit von Daten zu sichern. Demnach können komprimierte Daten von 900 Bytes als komprimierte Daten, die einem ECC-Block entsprechen, verwaltet werden und komprimierte Daten von 1,9 KB können als komprimierte Daten, welche zwei ECC-Blöcken entsprechen, verwaltet werden.
  • Die Flashspeichervorrichtung 1200 und die kollektive Schreiboperation können variabel geändert oder abgewandelt werden, was vollständiger untenstehend beschrieben werden wird.
  • Die 6 bis 8 sind Diagramme, welche einen Betrieb des Flashspeichersystems der 3 veranschaulichen. Untenstehend wird der Fall, dass eine Programmieroperation Seite für Seite ausgeführt wird unter Bezugnahme auf 3 beschrieben werden.
  • Zur Erleichterung der Beschreibung wird angenommen, dass sowohl die Bitgröße einer Seite als auch die Bitgröße eines Platzes, welcher gesammelten komprimierten Daten alloziert bzw. zugeordnet wird, inmitten eines Raumes von einem RAM 1340 8 KB ist. Weiterhin wird angenommen, dass eine ECC-Blockeinheit die Bitgröße von 1 KB hat. Eine Speichervorrichtung 1200 kann sequentiell eine erste Schreibanforderung und eine zweite Schreibanforderung von einem Host 1100 erhalten.
  • Bezug nehmend auf 6 können die erste Schreibanforderung und erste Quelldaten von dem Host 1100 zu einem Controller 1300 übertragen werden. In Antwort auf die erste Schreibanforderung kann der Controller 1300 die ersten Quelldaten komprimieren, um die komprimierten ersten Quelldaten bei einem RAM 1340 zu sammeln. Dies wird untenstehend vollständiger beschrieben werden.
  • Die ersten Quelldaten können vorübergehend in dem RAM 1340 gespeichert werden. Die ersten Quelldaten können gemäß einer Komprimiereinheit eines Komprimierers 1360 unter der Steuerung der Verwaltungslogik 1370 für komprimierte Daten (oder der CPU 1330) partitioniert werden. Auf die partitionierten bzw. aufgeteilten Quelldaten, welche der Kompremiereinheit des Komprimierers 1360 entsprechen, kann Bezug genommen werden als Rohdaten.
  • Zur Erleichterung der Beschreibung kann angenommen werden, dass die Kompremiereinheit des Komprimierers 1360 mit einer Seiteneinheit (d. h. 8 KB) übereinstimmt und dass die ersten Quelldaten die Bitgröße von 8 KB haben. Mit dieser Annahme können, wie in 6 veranschaulicht ist, die ersten Quelldaten in erste Rohdaten umgewandelt werden.
  • Danach kann der Komprimierer 1360 die ersten Rohdaten komprimieren, und eine ECC-Schaltung 1350 (es sei Bezug genommen auf 3) kann ein ECC-Bit an die komprimierten Daten anhängen. Demnach können erste komprimierte Daten CD1 erzeugt werden. Beispielsweise können, wie in 6 veranschaulicht ist, die ersten Rohdaten von 8 KB in die ersten komprimierten Daten CD1 von 5 KB durch den Komprimierer 1360 umgewandelt werden. Die ersten komprimierten Daten CD1 können in dem RAM 1340 unter der Steuerung der Verwaltungslogik 1370 für komprimierte Daten gespeichert werden.
  • Nachdem die ersten Quelldaten, welche der ersten Schreibanforderung entsprechen, in dem RAM 1340 gespeichert sind, können eine zweite Schreibanfrage und zweite Quelldaten für den Controller 1300 vorgesehen werden. Die zweiten Quelldaten können in zweite Rohdaten in derselben Art und Weise wie die ersten Quelldaten umgewandelt werden. Der Komprimierer 1360 kann die zweiten Rohdaten komprimieren, und die ECC-Schaltung 1350 kann ein ECC-Bit an die komprimierten Daten anhängen. Wie in 6 veranschaulicht ist, können die zweiten Rohdaten von 8 KB in die zweiten komprimierten Daten CD2 von 2 KB durch den Komprimierer 1360 umgewandelt werden. Die zweiten komprimierten Daten CD2 können in dem RAM 1340 unter der Steuerung der Verwaltungslogik 1370 für komprimierte Daten gespeichert werden.
  • Nachdem sie sequentiell bei dem RAM 1340 gespeichert sind, können die ersten und zweiten komprimierten Daten in eine Zellanordnung 1410 programmiert werden. Beispielsweise können, wie in 6 veranschaulicht ist, die ersten und zweiten komprimierten Daten in eine erste Seite eines Speicherblocks 1420 programmiert werden.
  • Die Verwaltungslogik 1370 für komprimierte Daten kann Örtlichkeitsinformationen, welche den ersten und zweiten komprimierten Daten zugeordnet sind bzw. mit den ersten und zweiten Daten verknüpft sind, aktualisieren. Beispielsweise kann, wie in 7 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten Örtlichkeitsinformationen der ersten und zweiten komprimierten Daten durch ein Aktualisieren einer Verwaltungstabelle für komprimierte Daten verwalten. Dies wird vollständiger untenstehend beschrieben werden.
  • Wie in 6 veranschaulicht ist, können die ersten komprimierten Daten in erste bis fünfte ECC-Blöcke der ersten Seite programmiert werden. Hierin wird angenommen, dass eine physikalische Adresse der ersten Seite „1” ist. In diesem Fall kann, wie in 7 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten die Verwaltungstabelle für komprimierte Daten derart aktualisieren, dass eine physikalische Adresse PA auf „1” gesetzt wird, eine Startzahl eines ECC-Blocks SNE auf „1” gesetzt wird und die ECC-Blocklänge EBL auf „5” gesetzt wird. Demnach kann die Verwaltungslogik 1370 für komprimierte Daten genau eine Örtlichkeit der ersten komprimierten Daten CD1, welche den ersten Rohdaten entsprechen, unter Verwendung der Verwaltungstabelle für komprimierte Daten wissen.
  • Die zweiten komprimierten Daten können in sechste und siebte ECC-Blöcke der ersten Seite programmiert werden. Demnach kann, wie in 7 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten die Verwaltungstabelle für komprimierte Daten derart aktualisieren, dass eine physikalische Adresse PA auf „1” gesetzt wird, eine Startanzahl eines ECC-Blocks SNE auf „6” gesetzt wird, und die ECC-Blocklänge EBL auf „2” gesetzt wird. Demnach kann die Verwaltungslogik 1370 für komprimierte Daten genau eine Örtlichkeit der zweiten komprimierten Daten CD2, welche den zweiten Rohdaten entsprechen, unter Verwendung der Verwaltungstabelle für komprimierte Daten wissen.
  • Die Verwaltungstabelle für komprimierte Daten in 7 kann beispielhaft sein. Das erfinderische Konzept ist jedoch nicht hierauf beschränkt. Beispielsweise kann die Verwaltungslogik 1370 für komprimierte Daten komprimierte Daten unter Verwendung einer Mapping-Tabelle verwalten, welche durch eine Flash-Übersetzungsschicht verwaltet wird, ohne ein getrenntes Erzeugen der Verwaltungstabelle für komprimierte Daten. Demnach können, wie in 8 veranschaulicht ist, die Mapping-Tabelle und die Verwaltungstabelle für komprimierte Daten vereinigt werden, um eine vereinigte Mapping-Tabelle zu bilden. In diesem Fall können Mapping-Informationen, welche mit unkomprimierten Daten verknüpft sind, auch durch die vereinigte Mapping-Tabelle verwaltet werden. In 8 können Komprimirer-Informationen CI, welche durch „Y” gekennzeichnet sind, anzeigen, dass Daten komprimierte Daten sind, und Komprimier-Informationen CI, welche durch „N” markiert sind, können anzeigen, dass Daten unkomprimierte Daten sind. Dies wird untenstehend vollständiger beschrieben werden.
  • Es kann angenommen werden, dass eine logische Adresse LA von ersten Rohdaten „1” ist und eine logische Adresse von zweiten Rohdaten „2” ist, und dass eine physikalische Adresse PA einer ersten Seite „1” ist.
  • Wie in 6 veranschaulicht ist, können die ersten Rohdaten ersten komprimierten Daten entsprechen und die ersten komprimierten Daten können in erste bis fünfte ECC-Blöcke der ersten Seite programmiert werden. Danach kann, wie in 8 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten die Verwaltungstabelle für komprimierte Daten aktualisieren derart, dass solch eine logische Adresse LA auf „1” gesetzt wird, eine physikalische Adresse PA auf „1” gesetzt wird, eine Startzahl eines ECC-Blocks SNE auf „1” gesetzt wird, und die ECC-Blocklänge EBL auf „5” gesetzt wird. Demnach wird verstanden, dass Daten (d. h. die ersten Rohdaten), welche der logischen Adresse LA von „1” entsprechen, in erste bis fünfte ECC-Blöcke der ersten Seite gespeichert werden. Ebenso kann die Verwaltungslogik 1370 für komprimierte Daten die Komprimier-Informationen CI, welche auf „Y” zu setzen sind, aktualisieren. Demnach wird verstanden, dass Daten (d. h. die ersten Rohdaten), welche der logischen Adresse LA von „1” entsprechen, in einem komprimierten Zustand gespeichert sind.
  • Ähnlich können, wie in 6 veranschaulicht ist, die zweiten Rohdaten zweiten komprimierten Daten entsprechen und die zweiten komprimierten Daten können in einen sechsten und siebten ECC-Block der ersten Seite programmiert werden. Demnach kann, wie in 8 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten die Verwaltungstabelle für komprimierte Daten derart aktualisieren, dass eine logische Adresse LA auf „2” gesetzt wird, eine physikalische Adresse PA auf „1” gesetzt wird, eine Startzahl eines ECC-Blocks SNE auf „6” gesetzt wird und die ECC-Blocklänge EBL auf „2” gesetzt wird. Demnach wird verstanden, dass Daten (d. h. die zweiten Rohdaten), welche der logischen Adresse LA von 2 entsprechen, in dem sechsten und siebten ECC-Block der ersten Seite gespeichert werden. Ebenso kann die Verwaltungslogik 1370 für komprimierte Daten die Kompremier-Informationen CI, welche auf „Y” zu setzen sind, aktualisieren. Demnach wird es verstanden, dass Daten (d. h. die zweiten Rohdaten), die der logischen Adresse LA von 2 entsprechen, in einem komprimierten Zustand gespeichert sind.
  • Wie unter Bezugnahme auf die 68 beschrieben wird, kann eine Flashspeichervorrichtung 1200 gemäß einer Ausführungsform des erfinderischen Konzepts komprimierte Daten durch die bzw. mit der ECC-Blockeinheit unter Verwendung einer Verwaltungstabelle für komprimierte Daten oder einer vereinigten Mapping-Tabelle verwalten. Demnach kann die Flashspeichervorrichtung 1200 eine Verschwendung von Speicherplatz einer Zellanordnung 1410 durch ein Speichern einer Mehrzahl komprimierter Daten auf einer Seite minimieren.
  • 9 ist ein Flussdiagramm, welches ein Betriebsverfahren des Flashspeichersystems, welches in den 6 bis 8 beschrieben ist, veranschaulicht.
  • In Schritt S210 kann eine Flashspeichervorrichtung 1200 Quelldaten empfangen. Wenn die Bitgröße der Quelldaten unterschiedlich von einer Komprimiereinheit eines Komprimierers 1360 ist, können die Quelldaten gemäß der Komprimiereinheit unter der Steuerung der Verwaltungslogik 1370 für komprimierte Daten (oder der CPU 1330) partitioniert werden.
  • In Schritt S220 können Rohdaten komprimiert werden und ein ECC-Bit kann zu den komprimierten Daten hinzugefügt werden. Hierin bedeuten die Rohdaten Quelldaten, welche bis hinauf zu der Komprimiereinheit übereinstimmen. Demnach kann ein Komprimierer 1360 die Quelldaten (oder Rohdaten, welche gemäß der Kompremiereinheit partitioniert sind) komprimieren, und eine ECC-Schaltung 1350 kann das ECC-Bit zu den komprimierten Daten hinzufügen. Demnach können komprimierten Daten erzeugt werden.
  • In Schritt S230 können die komprimierten Daten bei einem RAM 1340 gesammelt werden. Beispielsweise können, wie unter Bezugnahme auf die 6 bis 8 beschrieben ist, verschiedene Daten, welche durch den Komprimierer 1360 komprimiert werden, bei dem RAM 1340 gesammelt werden.
  • In Schritt S240 können komprimierte Daten, welche bei dem RAM 1340 gesammelt werden, in die Zellanordnung 1410 programmiert werden. Beispielsweise kann, in dem Fall, dass eine Mehrzahl von komprimierten Daten bei dem RAM 1350 gesammelt wird, die Mehrzahl von komprimierten Daten in dieselbe Seite der Zellanordnung 1410 programmiert werden.
  • In Schritt S250 kann eine Verwaltungstabelle für komprimierte Daten aktualisiert werden. Demnach kann eine Verwaltungslogik 1370 für komprimierte Daten Daten, welche in der Zellanordnung 1410 gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit, welche eine Verwaltungstabelle für komprimierte Daten verwendet, verwalten, und sie kann die Verwaltungstabelle für komprimierte Daten aktualisieren, so dass sie Örtlichkeitsinformationen von neu programmierten komprimierten Daten aufweist.
  • Ein Betriebsverfahren des Flashspeichersystems 1000, welches in 9 beschrieben ist, kann beispielhaft sein. Das erfinderische Konzept ist jedoch nicht hierauf beschränkt. Beispielsweise kann, nachdem komprimierte Daten, welche bei dem RAM 1340 gesammelt werden, in die Zellanordnung 1410 programmiert sind, die Verwaltungstabelle für komprimierte Daten aktualisiert werden (S250). Als ein anderes Beispiel können, nachdem die Verwaltungstabelle für komprimierte Daten aktualisiert ist, komprimierte Daten, welche bei den RAM 1340 gesammelt werden, in die Zellanordnung 1410 programmiert werden.
  • 10 ist ein Flussdiagramm, welches ein Betriebsverfahren des Flashspeichersystems in 3 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Ein Betrieb eines Flashspeichersystems 1000 in 10 kann analog zu demjenigen sein, welcher unter Bezugnahme auf die 6 bis 9 beschrieben ist, und ein Unterschied dazwischen wird beschrieben werden.
  • Zur Erleichterung der Beschreibung kann angenommen werden, dass auf Daten, welche durch einen Komprimierer 1360 gemäß einer vorangehenden Schreibanfrage komprimiert wurden, Bezug genommen wird als vorangehend komprimierte Daten, und auf Daten, welche durch einen Komprimierer 1316 gemäß einer gegenwärtigen Schreibanfrage komprimiert werden, Bezug genommen wird als neu komprimierte Daten. Ebenso wird angenommen, dass die Bitgröße des RAM 1340 zum Sammeln von komprimierten Daten mit der Bitgröße der Programmiereinheit (beispielsweise eine oder mehrere Seitengrößen) (beispielsweise eine Seite, welche 8 KB hat) übereinstimmen.
  • In Schritt S310 können Quelldaten zu einer Flashspeichervorrichtung 1200 übertragen werden.
  • In Schritt S320 kann der Komprimierer 1360 Rohdaten komprimieren und eine ECC-Schaltung 1350 kann ein ECC-Bit zu den komprimierten Daten hinzufügen. Demnach können neu komprimierte Daten erzeugt werden.
  • In Schritt S330 kann die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße der komprimierten Daten mit der Bitgröße eines leeren Bereichs vergleichen. Hierin zeigt der leere Bereich den Unterschied zwischen der Bitgröße von gleichzeitig zu programmierenden Daten und der Bitgröße von vorangehend komprimierten Daten, welche bei einem RAM 1340 gesammelt sind, an. Beispielsweise entspricht, wie unter Bezugnahme auf die 6 bis 9 beschrieben ist, in einem Fall, in dem eine Programmieroperation Seite für Seite ausgeführt wird, ein leerer Bereich dem Unterschied zwischen der Seiten-Bitgröße und der Bitgröße von vorangehend komprimierten Daten, welche bei dem RAM 1340 gesammelt sind. Beispielsweise kann, wenn eine Seiten-Bitgröße 8 KB ist und die Bitgröße von vorangehend komprimierten Daten, welche bei dem RAM 1340 gesammelt sind, 5 KB ist, die Bitgröße des leeren Bereiches 3 KB sein.
  • Wenn die Bitgröße der neu komprimierten Daten kleiner ist als oder gleich zu der Bitgröße des leeren Bereichs, können in Schritt S340 die neu komprimierten Daten bei dem RAM 1340 gesammelt werden. In Schritt S350 können die neu komprimierten Daten und die vorangehend komprimierten Daten, welche bei dem RAM 1340 gesammelt sind, in dieselbe Seite programmiert werden. In Schritt S360 kann die Verwaltungslogik 1370 für komprimierte Daten eine Verwaltungstabelle für komprimierte Daten (oder eine vereinigte Mapping-Tabelle) aktualisieren.
  • Wenn die Bitgröße von neu komprimierten Daten größer ist als die Bitgröße des leeren Bereichs, können in Schritt S370 die vorangehend komprimierten Daten, welche in dem RAM 1340 gespeichert sind, in eine vorbestimmte Seite der Zellanordnung 1410 programmiert werden. In Schritt S380 kann die Verwaltungslogik 1370 für komprimierte Daten die Verwaltungstabelle für komprimierte Daten (oder die vereinigte Mapping-Tabelle) aktualisieren. In Schritt S390 können neu komprimierte Daten bei dem RAM 1340 gesammelt werden.
  • Wie obenstehend beschrieben ist, kann ein Flashspeichersystem 1000 gemäß einer Ausführungsform des erfinderischen Konzepts eine kollektive Schreiboperation basierend auf einem Vergleichsergebnis zwischen der Bitgröße von komprimierten Daten und einem leeren Bereich eines Seitenpuffers 1420 bestimmen.
  • Ein Betrieb eines Flashspeichersystems wird unter der Bedingung beschrieben, dass die Bitgröße des RAM 1340 zum Sammeln von komprimierten Daten mit der Programmiereinheit (eine oder mehrere Seitengrößen) übereinstimmt. Das erfinderische Konzept jedoch ist nicht hierauf beschränkt. Das erfinderische Konzept kann geändert oder verschiedentlich abgewandelt werden. Beispielsweise kann die Bitgröße des RAM 1340 größer als die Programmiereinheit sein. Untenstehend wird das erfinderische Konzept unter der Bedingung beschrieben werden, dass die Bitgröße des RAM 1340 größer als die Programmiereinheit ist.
  • 11 ist ein Diagramm, welches einen Schreib-Lese-Speicher (RAM = Random Access Memory = Schreib-Lese-Speicher) gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 11 kann ein Abschnitt eines RAM 1340 als ein Wartebereich 1341 zugeordnet bzw. alloziert werden und der Wartebereich 1341 kann vorübergehend vorangehend komprimierte Daten speichern. Beispielsweise ist der Fall, dass erste vorangehend komprimierte Daten CD1 und zweite vorangehend komprimierte Daten CD2 vorübergehend in dem Wartebereich 1341 gespeichert werden, in 11 veranschaulicht.
  • In beispielhaften Ausführungsformen kann die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße von neu komprimierten Daten mit der Bitgröße eines leeren Bereichs von jeden vorangehend komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, vergleichen. Wenn die Bitgröße der neu komprimierten Daten kleiner ist als die Bitgröße eines leeren Bereichs irgendeiner von vorangehend komprimierten Daten, können die neu komprimierten Daten und die ausgewählten vorangehend komprimierten Daten zu derselben Zeit in eine Seite programmiert werden.
  • Hierin können die neu komprimierten Daten Daten sein, welche durch den Komprimierer 1360 gemäß einer gegenwärtigen Schreibanfrage komprimiert werden, und die vorangehend komprimierten Daten können Daten sein, welche durch den Komprimierer 1360 gemäß einer vorangehenden Schreibanfrage komprimiert wurden. Ein leerer Bereich von vorangehend komprimierten Daten entspricht der Differenz zwischen der Bitgröße von Daten, welche in der Lage sind, zu derselben Zeit programmiert zu werden (d. h. der Programmiereinheit und der Bitgröße von vorangehend komprimierten Daten).
  • Beispielsweise bedeutet in dem Fall, dass eine Programmieroperation Seite für Seite ausgeführt wird, ein leerer Bereich von vorangehend komprimierten Daten die Differenz zwischen einer Seiten-Bitgröße und der Bitgröße von vorangehend komprimierten Daten. Beispielsweise ist, wenn die Seiten-Bitgröße 8 KB ist und die Bitgröße von ersten vorangehend komprimierten Daten CD1 5 KB ist, ein leerer Bereich der ersten vorangehend komprimierten Daten 3 KB.
  • 12 ist ein Flussdiagramm, welches ein Betriebsverfahren des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Wie in 11 veranschaulicht ist, weist ein RAM 1340 eines Flashspeichersystems 1000 einen Wartebereich 1341 auf. Ein Betrieb eines Flashspeichersystems in 12 kann analog zu demjenigen sein, welcher unter Bezugnahme auf 10 beschrieben ist, und der Unterschied dazwischen wird beschrieben werden.
  • In Schritt S410 können Quelldaten zu einer Flashspeichervorrichtung 1200 übertragen werden.
  • In Schritt S420 komprimiert ein Komprimierer 1360 Rohdaten und eine ECC-Schaltung 1350 fügt ein ECC-Bit zu den komprimierten Daten hinzu. Demnach können neue komprimierte Daten erzeugt werden.
  • In Schritt S425 vergleicht die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße von neu komprimierten Daten mit der Bitgröße eines leeren Bereichs von wenigstens einem komprimierten Datum, welches in dem Wartebereich 1341 gespeichert ist. Beispielsweise kann, wie in 11 veranschaulicht ist, in dem Fall, dass zwei vorangehend komprimierte Daten CD1 und CD2 in dem Wartebereich 1341 gespeichert sind, die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße von neu komprimierten Daten mit der Bitgröße eines leeren Bereiches von jeden der ersten und zweiten vorangehend komprimierten Daten CD1 und CD2 vergleichen.
  • Wenn die Bitgröße der neu komprimierten Daten geringer ist als die Bitgröße eines leeren Bereiches von irgendeiner der Mehrzahl von vorangehend komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, können die neu komprimierten Daten und entsprechende vorangehend komprimierte Daten bei dem RAM 1340 gesammelt werden. Danach können in Schritt S432 die neu und vorangehend komprimierten Daten, welche bei dem RAM 1340 gesammelt werden, in eine Seite einer Zellanordnung 1410 programmiert werden. In Schritt S4330 kann die Verwaltungslogik 1370 für komprimierte Daten eine Verwaltungstabelle für komprimierte Daten (oder eine vereinigte Mapping-Tabelle) aktualisieren.
  • Wenn die Bitgröße der neu komprimierten Daten größer ist als Bitgrößen von leeren Bereichen aller vorangehend komprimierter Daten, welche in dem Wartebereich 1341 gespeichert sind, können in Schritt S440 die neu komprimierten Daten zu dem Wartebereich 1341 übertragen werden. In Schritt S445 kann die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße von komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, mit einer Referenz-Bitgröße ref.bit-size vergleichen.
  • Wenn die Bitgröße von komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind größer ist als die Referenz-Bitgröße ref.bit-size, kann die Verwaltungslogik 1370 für komprimierte Daten eine Serie von Operationen zum Verringern der Bitgröße des Wartebereichs 1341 ausführen. Insbesondere können in Schritt S451 vorbestimmte komprimierte Daten von vorangehend komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, in die Zellanordnung 1410 programmiert werden. In Schritt S452 kann die Verwaltungstabelle für komprimierte Daten (oder die vereinigte Mapping-Tabelle) aktualisiert werden.
  • Wenn die Bitgröße von komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, kleiner ist als die Referenz-Bitgröße ref.bit-size, kann die Flashspeichervorrichtung 1200 einen Wartezustand aufrechterhalten, um einen nächsten Programmierbefehl zu empfangen.
  • Wie obenstehend beschrieben ist, kann ein Flashspeichersystem 1000 gemäß einer Ausführungsform des erfinderischen Konzepts die Bitgröße von neu komprimierten Daten mit Bitgrößen von leeren Bereichen von vorangehend komprimierten Daten, welche in dem Wartebereich 1341 gespeichert sind, vergleichen, und eine optimale kollektive Schreiboperation gemäß einem Vergleichsergebnis bestimmen. Ebenso kann, wenn die Bitgröße des Wartebereichs 1341 größer ist als eine Referenz-Bitgröße eine Serie von Operationen ausgeführt werden, um die Bitgröße des Wartebereichs 1341 zu verringern.
  • 13 ist ein Diagramm, welches einen Betrieb des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Wenn die Bitgröße von neu komprimierten Daten größer ist als die Bitgröße eines leeren Bereiches kann die Verwaltungslogik 1370 für komprimierte Daten gemäß einer Ausführungsform des erfinderischen Konzepts die Bitgröße des leeren Bereiches messen und die neu komprimierten Daten basierend auf der gemessenen Bitgröße unterteilen.
  • Hierin kann der leere Bereich eine Differenz zwischen der Bitgröße von gleichzeitig programmierten Daten (d. h. der Programmiereinheit) und der Bitgröße von komprimierten Daten, welche bei einem RAM 1340 gesammelt sind, bedeuten. Beispielsweise kann, wie unter Bezugnahme auf die 6 bis 9 beschrieben ist, wenn eine Programmieroperation Seite für Seite ausgeführt wird, ein leerer Bereich eine Differenz zwischen einer Seiten-Bitgröße und der Bitgröße von komprimierten Daten, welche bei dem RAM 1340 gesammelt sind, bedeuten.
  • Zur Erleichterung der Beschreibung kann, wie in 13 veranschaulicht ist, angenommen werden, dass die ECC-Blocklänge EBL 11 von neu komprimierten Daten „5” ist, und dass die ECC-Blocklänge EBL eines leeren Bereiches des RAM 1340 „2” ist. Mit dieser Annahme kann die Verwaltungslogik 1370 für komprimierte Daten die neu komprimierten Daten in erste neu komprimierte Daten, welche die ECC-Blocklänge EBL von „3” haben und zweite neu komprimierte Daten, welche die ECC-Blocklänge EBL von „2” haben, unterteilen. Danach können vorangehend komprimierte Daten und die zweiten neu komprimierten Daten unter der Steuerung der Verwaltungslogik 1370 für die komprimierten Daten programmiert werden.
  • 14 ist ein Flussdiagramm, welches ein Betriebsverfahren des Flashspeichersystems der 3 gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Ein Betrieb eines Flashspeichersystems 1000 in 14 kann analog zu demjenigen sein, welcher unter Bezugnahme auf die 10 beschrieben ist, und ein Unterschied dazwischen wird beschrieben werden.
  • In Schritt S510 können Quelldaten zu einer Flashspeichervorrichtung 1200 übertragen werden. In Schritt S520 kann ein Komprimierer 1360 Rohdaten komprimieren und eine ECC-Schaltung 1350 kann ein ECC-Bit an die komprimierten Daten anfügen. Demnach können komprimierte Daten erzeugt werden.
  • In Schritt S530 kann die Verwaltungslogik 1370 für komprimierte Daten die Bitgröße eines leeren Bereiches überprüfen. In Schritt S540 kann die Verwaltungslogik 1370 für komprimierte Daten komprimierte Daten gemäß der Bitgröße des leeren Bereiches unterteilen. In Schritt S550 kann ein ausgewähltes eines der unterteilten komprimierten Daten und der vorangehend komprimierten Daten in die Zellanordnung 1410 programmiert werden. In Schritt S560 kann eine Verwaltungstabelle für komprimierte Daten (oder eine vereinigte Mapping-Tabelle) aktualisiert werden.
  • Wie obenstehend beschrieben ist, kann ein Flashspeichersystem 1000 gemäß einer Ausführungsform des erfinderischen Konzepts komprimierte Daten gemäß einem leeren Bereich eines Seitenpuffers 1420 unterteilen, um eine kollektive Schreiboperation durchzuführen. Das erfinderische Konzept ist jedoch nicht hierauf beschränkt. Beispielsweise weist eine Zellanordnung 1410 eines Flashspeichersystems 1000 eine Mehrzahl von Ebenen auf, und eine Mehrzahl von Seiten kann zu derselben Zeit programmiert werden.
  • In einem Fall, in dem eine Mehrzahl von Seiten zu derselben Zeit programmiert werden kann, kann auf einen Satz von Seiten, welche zu derselben Zeit programmiert werden, Bezug genommen werden als eine Superseite. Untenstehend wird eine Programmieroperation, welche durch eine bzw. mit einer Superseite durchgeführt wird, vollständiger beschrieben werden.
  • 15 ist ein Blockschaltbild einer Anordnung in dem Flashspeichersystem der 3 gemäß einer anderen Ausführungsform des erfinderischen Konzepts. Im Gegensatz zu einer Zellanordnung in 4 weist eine Zellanordnung 1410 in 15 eine Mehrzahl von Ebenen auf. Zur Erleichterung der Veranschaulichung kann in 15 der Fall veranschaulicht sein, dass die Zellanordnung 1410 zwei Ebenen aufweist. Das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise kann die Zellanordnung 1410 konfiguriert sein, so dass sie drei oder mehr Ebenen aufweist.
  • Bezug nehmend auf 15 weist die Zellanordnung 1410 eine erste und eine zweite Ebene 1411 und 1412 auf. Jede der ersten und der zweiten Ebene 1411 und 1412 weist eine Mehrzahl von Speicherblöcken auf, von welchen jeder eine Mehrzahl von Seiten hat.
  • Ein Seitenpufferblock 1420 weist einen ersten und einen zweiten Seitenpuffer 1421 und 1422 auf. Der erste Seitenpuffer 1421 kann einer ersten Ebene 1411 entsprechen. Der erste Seitenpuffer 1421 kann konfiguriert sein, um vorübergehend Daten, welche in eine Seite der ersten Ebene 1411 zu programmieren sind, oder Daten, welche aus einer Seite der ersten Ebene 1411 ausgelesen werden, vorübergehend zu speichern. Der zweite Seitenpuffer 1422 kann einer zweiten Ebene 1412 entsprechen. Der zweite Seitenpuffer 1422 kann konfiguriert sein, um vorübergehend Daten, welche in eine Seite der zweiten Ebene 1412 zu programmieren sind, oder Daten, welche aus einer Seite der zweiten Ebene 1412 ausgelesen werden, zu speichern.
  • Wenn eine Programmieroperation ausgeführt wird, können Daten in dem ersten Seitenpuffer 1421 und Daten in dem zweiten Datenpuffer 1422 zu derselben Zeit in die Zellanordnung 1410 programmiert werden. Demnach können zwei Seiten der Zellanordnung 1410 zu derselben Zeit programmiert werden. In diesem Fall kann die Programmiereinheit (beispielsweise eine oder mehrere Seitengrößen) der Summe von Bitgrößen von zwei Seiten entsprechen.
  • Das erfinderische Konzept kann auch auf den Fall angewandt werden, dass eine Mehrzahl von Seiten zu derselben Zeit programmiert wird. Demnach kann, in dem Fall, dass eine Mehrzahl von Seiten zu derselben Zeit programmiert wird, die Verwaltungslogik 1370 für komprimierte Daten gemäß einer Ausführungsform des erfinderischen Konzepts Daten, welche in der Zellanordnung 1410 gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit verwalten und einen Flashspeicher 1400 derart steuern, dass eine Mehrzahl von komprimierten Daten zu derselben Zeit durch den ersten und den zweiten Seitenpuffer 1421 und 1422 programmiert werden.
  • Die 16 und 17 sind Diagramme, welche einen Betrieb des Flashspeichersystems der 1 veranschaulichen, wenn eine Mehrzahl von Seiten gleichzeitig programmiert wird. In den 16 und 17 kann ein Betrieb eines Flashspeichersystems ähnlich zu denjenigen, welcher unter Bezugnahme auf die 6 und 7 beschrieben ist, durchgeführt werden, und ein Unterschied dazwischen wird beschrieben werden.
  • Zur Erleichterung der Beschreibung kann angenommen werden, dass eine erste bis dritte Schreibanforderung nacheinanderfolgend für einen Controller 1300 von einem Host 1100 vorgesehen sind, dass eine Seiten-Bitgröße und eine Seitenpuffer-Bitgröße 8 KB sind, dass die Bitgröße eines RAM 1340 zum Sammeln komprimierter Daten 16 KB ist, und dass zwei Seiten gleichzeitig programmiert werden.
  • Bezug nehmend auf 16 können eine erste Schreibanforderung und erste Quelldaten von dem Host 1100 zu dem Controller 1300 übertragen werden. Der Controller 1300 kann die ersten Quelldaten gemäß einer Komprimiereinheit eines Komprimierers 1360 partitionieren. Zur Erleichterung der Beschreibung kann angenommen werden, dass die ersten Quelldaten und ersten Rohdaten jeweils eine Bitgröße von 8 KB haben.
  • Danach kann der Komprimierer 1360 die ersten Rohdaten komprimieren, um erste komprimierte Daten CD1 zu erzeugen. Beispielsweise können, wie in 16 veranschaulicht ist, die ersten komprimierten Daten CD1 von 6 KB durch ein Komprimieren der ersten Rohdaten von 8 KB erzeugt werden. Die ersten komprimierten Daten CD1 können bei einem RAM 1340 unter der Steuerung der Verwaltungslogik 1370 für komprimierte Daten gesammelt werden.
  • Nachdem die ersten komprimierten Daten CD1 bei dem RAM 1340 gesammelt sind, können eine zweite Schreibanforderung und zweite Quelldaten für den Controller 1300 vorgesehen werden. Die zweiten Quelldaten können komprimiert werden, um zweite komprimierte Daten CD2 auf dieselbe Art und Weise wie die ersten Quelldaten zu erhalten. Beispielsweise können, wie in 16 veranschaulicht ist, die zweiten komprimierten Daten CD2 die Bitgröße von 4 KB haben und sie können bei dem RAM 1340 gesammelt werden.
  • Dann können eine dritte Schreibanforderung und dritte Quelldaten für den Controller 1300 vorgesehen werden. Die dritten Quelldaten können komprimiert werden, um dritte komprimierte Daten CD3 auf derselben Art und Weise wie die ersten Quelldaten zu erhalten. Beispielsweise können, wie in 16 veranschaulicht ist, die dritten komprimierten Daten CD3 die Bitgröße von 6 KB haben und können bei dem RAM 1340 gesammelt werden.
  • Nachdem sie bei dem RAM 1340 gesammelt sind, können die ersten bis dritten komprimierten Daten CD1 bis CD3 gleichzeitig in die Zellanordnung 1410 durch einen Seitenpufferblock 1420 (es sei Bezug genommen auf 15) programmiert werden. Beispielsweise können, wie in 16 veranschaulicht ist, die ersten bis dritten komprimierten Daten CD1 bis CD3 gleichzeitig in eine erste Seite eines Speicherblocks 1413 und eine erste Seite eines Speicherblocks 1415 programmiert werden.
  • Danach kann die Verwaltungslogik 1370 für komprimierte Daten Örtlichkeitsinformationen der ersten bis dritten komprimierten Daten CD1 bis CD3 aktualisieren. Beispielsweise kann, wie in 17 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten eine vereinigte Mapping-Tabelle aktualisieren.
  • Insbesondere können, Bezug nehmend auf 16, die ersten komprimierten Daten CD1 in einen ersten bis sechsten ECC-Block einer ersten Seite gespeichert werden. Demnach kann, in dem Fall, dass eine physikalische Adresse PA der ersten Seite „1” ist, wie in 17 veranschaulicht ist, die Verwaltungslogik 1370 für komprimierte Daten die vereinigte Mapping-Tabelle derart aktualisieren, dass eine physikalische Adresse PA auf „1” gesetzt wird, eine Startzahl des ECC-Blocks SNE auf „1” gesetzt wird und die ECC-Blocklänge EBL auf „6” gesetzt wird.
  • Ebenso Bezug nehmend auf 16 können die zweiten komprimierten Daten CD2 in einem siebten und achten ECC-Block der ersten Seite und einem ersten und zweiten ECC-Block einer zweiten Seite gespeichert werden, und können die ECC-Blocklänge EBL von „4” haben. Wie in 17 veranschaulicht ist, kann die Verwaltungslogik 1370 für komprimierte Daten die vereinigte Mapping-Tabelle derart aktualisieren, dass eine physikalische Adresse PA auf „1” gesetzt wird, eine Startnummer des ECC-Blocks SNE auf „7” gesetzt wird und die ECC-Blocklänge EBL auf „4” gesetzt wird.
  • Ähnlich kann die Verwaltungslogik 1370 für komprimierte Daten die Örtlichkeitsinformationen der dritten komprimierten Daten CD3 (d. h. die vereinigte Mapping-Tabelle) derart aktualisieren, dass eine physikalische Adresse PA auf „2” gesetzt wird, eine Startzahl des ECC-Blocks SNE auf „3” gesetzt wird und die ECC-Blocklänge EBL auf „6” gesetzt wird.
  • Bei einer Leseanfrage auf erste bis dritte Rohdaten kann die Verwaltungslogik 1370 für komprimierte Daten auf die vereinigte Mapping-Tabelle Bezug nehmen, um exakt Örtlichkeiten zu finden, wo die ersten bis dritten Rohdaten gespeichert sind.
  • Die 18 bis 20 sind Blockschaltbilder, welcher verschiedene Anwendungen eines Speichersystems gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulichen. Bezug nehmend auf 18 bis 20 weist ein Speichersystem 2000/300/4000 einen Host 2100/3100/4100 und eine Speichervorrichtung 2200/3200/4200 auf. Die Speichervorrichtung 2200/3200/4200 weist einen Controller 2210/3210/4210 und einen nichtflüchtigen Speicher 4220/3220/4220 auf.
  • Die Speichervorrichtung 2200/3200/4200 weist eine Speicherkarte (beispielsweise SD, MMC etc.) oder ein Speichermedium wie beispielsweise eine anhängbare mobile Speichervorrichtung (attachable mobile storage device, beispielsweise USB-Speicher ect.) auf. Die Speichervorrichtung 2200/3200/4200 kann mit einem Host 2100/3100/4100 verbunden sein. Die Speichervorrichtung 2200/3200/4200 kann Daten mit dem Host 2100/3100/4100 durch ein Host-Interface bzw. eine Host-Schnittstelle austauschen. Die Speichervorrichtung 2200/3200/4200 kann durch den Host 2100/3100/4100 mit Leistung versorgt werden.
  • Bezug nehmend auf 18 kann eine Verwaltungslogik 2230 für komprimierte Daten aus Software S/W oder Firmware gebildet sein, nicht aus Hardware H/W. Die Verwaltungslogik 2230 für komprimierte Daten kann auf einem flüchtigen Speicher betrieben bzw. getrieben werden. Bezug nehmend auf 19 kann die Verwaltungslogik 2230 für komprimierte Daten implementiert sein, so dass sie innerhalb des Speichermediums 3220 enthalten ist. Bezug nehmend auf 20 kann ein Komprimierer 4240 innerhalb des Host 4100 vorgesehen sein und ein Controller 4210 kann komprimierte Daten empfangen.
  • Das Speichersystem 2000/3000/4000 gemäß einer Ausführungsform des erfinderischen Konzepts kann Daten, welche in einem nichtflüchtigen Speicher 2200/3200/4200 gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit verwalten und unterstützt eine kollektive Schreiboperation für komprimierte Daten. Demnach ist es möglich, einen Speicherplatz des Speichermediums 2200/3200/4200 effizient zu verwenden.
  • 21 ist ein Blockschaltbild eines Speicherkartensystems, auf welches ein Flashspeichersystem gemäß einer Ausführungsform des erfinderischen Konzepts angewandt wird. Ein Speicherkartensystem 5000 weist einen Host 5100 und eine Speicherkarte 5200 auf. Der Host 5100 weist einen Host-Controller 5110, eine Host-Verbindungseinheit 5120 und ein DRAM 5130 auf.
  • Der Host 5100 kann Daten in die Speicherkarte 5200 schreiben und Daten aus der Speicherkarte 5200 lesen bzw. auslesen. Der Host-Controller 5110 kann einen Befehl (beispielsweise einen Schreibbefehl), ein Taktsignal CLK, welches von einem Takterzeuger (nicht gezeigt) in dem Host 5100 erzeugt wird, und Daten zu der Speicherkarte 5200 über die Host-Verbindungseinheit 5120 senden. Der DRAM 5130 kann ein Hauptspeicher des Host 2100 sein.
  • Die Speicherkarte 5200 weist eine Kartenverbindungseinheit 5210, einen Karten-Controller 5220 und einen Flashspeicher 5230 auf. Der Karten-Controller 5220 kann Daten in dem Flashspeicher 5230 in Antwort auf einen Befehl, welcher über die Kartenverbindungseinheit 5210 eingegeben wird, speichern. Die Daten können in Synchronisierung mit einem Taktsignal, welches von einem Takterzeuger (nicht gezeigt) in dem Karten-Controller 5220 erzeugt wird, gespeichert werden. Der Flashspeicher 5230 kann Daten, welche von dem Host 5100 übertragen werden, speichern. Beispielsweise kann in einem Fall, in dem der Host 5100 eine Digitalkamera ist, der Flashspeicher 5230 Bilddaten speichern.
  • In dem Speicherkartensystem 5000 in 21 weist der Karten-Controller 5220 eine Verwaltungslogik für komprimierte Daten und einen Komprimierer, welche innerhalb des Host-Controllers 5110 vorgesehen sind, den Karten-Controller 5220 oder den Flashspeicher 5230 auf. Wie obenstehend beschrieben ist, ist es möglich, einen Speicherplatz effizient durch ein Verwalten von Daten durch eine bzw. mit einer ECC-Blockeinheit und ein Unterstützen einer kollektiven Schreiboperation für komprimierte Daten zu verwalten.
  • 22 ist ein Blockschaltbild eines Festkörperlaufwerks, in welchem ein Speichersystem gemäß dem erfinderischen Konzept angewandt wird. Bezug nehmend auf 22 weist ein Festkörperlaufwerk(SSD = Solid State Drive)-System 6000 einen Host 6100 und eine SSD 6200 auf. Der Host 6100 weist ein Host-Interface bzw. eine Host-Schnittstelle 6111, einen Host-Controller 6120 und einen DRAM 6130 auf.
  • Der Host 6100 kann Daten in das SSD 6200 schreiben oder Daten von dem SSD 6200 lesen. Der Host-Controller 6120 kann Signale SGL wie beispielsweise einen Befehl, eine Adresse, ein Steuersignal und dergleichen zu dem SSD 6200 über die Host-Schnittstelle 6111 übertragen. Der DRAM 6130 kann ein Hauptspeicher des Host 6100 sein.
  • Das SSD 6200 kann Signale SGL mit dem Host 6100 über die Host-Schnittstelle 6211 austauschen und kann über einen Leistungsverbinder bzw. Leistungsstecker 6221 mit Leistung versorgt werden. Das SSD 6200 weist eine Mehrzahl von nichtflüchtigen Speichern 6201 bis 620n, einen SSD-Controller 6210 und eine Hilfsleistungsversorgung 6220 auf. Hierin können die nichtflüchtigen Speicher 6201 bis 620n durch nicht nur einen NAND-Flashspeicher, sondern auch nichtflüchtige Speicher wie beispielsweise PRAM, MRAM, ReRAM und dergleichen implementiert sein.
  • Die Mehrzahl von nichtflüchtigen Speichern 6201 bis 620n kann als Speichermedium des SSD 6200 verwendet werden. Die Mehrzahl von nichtflüchtigen Speichern 6201 bis 620n können mit dem SSD-Controller 6210 über eine Mehrzahl von Kanälen CH1 bis CHn verbunden sein. Ein Kanal kann mit einem oder mehreren nichtflüchtigen Speichern verbunden sein. Nichtflüchtige Speicher, welche mit einem Kanal verbunden sind, können mit demselben Datenbus verbunden sein.
  • Der SSD-Controller 6210 kann Signale SGL mit dem Host 6100 über das Host-Interface bzw. die Hostschnittstelle 6211 austauschen. Hierin weisen die Signale SGL einen Befehl, eine Adresse, Daten und dergleichen auf. Der SSD-Controller 6210 kann konfiguriert sein, um Daten zu oder von einem entsprechenden nichtflüchtigen Speicher gemäß einem Befehl des Host 6100 zu schreiben oder zu lesen. Der SSD-Controller 6210 wird vollständiger unter Bezugnahme auf 23 beschrieben werden.
  • Die Hilfsleistungsversorgung 6220 kann mit dem Host 6100 über den Leistungsstecker bzw. Leistungsverbinder 6221 verbunden sein. Die Hilfsleistungsversorgung 6220 kann durch eine Leistung PWR von dem Host 6100 geladen werden. Die Hilfsleistungsversorgung 6220 kann innerhalb oder außerhalb des SSD 3200 platziert sein. Beispielsweise kann die Hilfsleistungsversorgung 6220 auf einem Mainboard platziert sein, um die Hilfsleistung für das SSD 6200 zur Verfügung zu stellen.
  • 23 ist ein Blockschaltbild des SSD-Controllers in dem Festkörperlaufwerksystem der 22. Bezug nehmend auf 23 weist ein SSD-Controller 6210 ein NVM-Interface bzw. eine NVM-Schnittstelle 6211, ein Host-Interface bzw. eine Host-Schnittstelle 6212, eine Verwaltungslogik 6213 für komprimierte Daten, eine Steuereinheit 6214, einen SRAM 6215 und einen DRAM 6216 auf.
  • Die NVM-Schnittstelle 6211 kann Daten, welche von einem Hauptspeicher eines Host 6100 übertragen werden, jeweils zu Kanälen CH1 bis CHn verteilen. Die NVM-Schnittstelle 6211 kann Daten, welche aus nichtflüchtigen Speichern 6201 bis 620n gelesen werden, über die Host-Schnittstelle 6212 zu dem Host 6100 übertragen.
  • Die Host-Schnittstelle 6212 kann eine Schnittstelle mit einem SSD 6200 gemäß dem Protokoll des Host 6100 vorsehen. Die Host-Schnittstelle 6212 kann mit dem Host 6100 unter Verwendung von USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI Express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) etc. kommunizieren. Die Host-Schnittstelle 6212 kann eine Disk-Emulationsfunktion durchführen, welche es dem Host 6100 ermöglicht, das SSD 6200 als ein Festplattenlaufwerk (HDD = Hard Disk Drive) zu erkennen.
  • Die Verwaltungslogik 6213 für komprimierte Daten kann, wie obenstehend beschrieben ist, Daten, welche in nichtflüchtigen Speichern 6201 bis 620n gespeichert sind, durch eine bzw. mit einer ECC-Blockeinheit verwalten und eine kollektive Schreiboperation für komprimierte Daten unterstützen. Die Steuereinheit 6214 kann einen Signaleingang von dem Host 6100 analysieren und verarbeiten. Die Steuereinheit 6214 kann den Host 6100 durch die Host-Schnittstelle 6212 oder die nichtflüchtigen Speicher 6201 bis 620n durch die NVM-Schnittstelle 6211 steuern. Die Steuereinheit 6214 kann die nichtflüchtigen Speicher 6201 bis 620n gemäß Firmware zum Treiben des SSD 6200 steuern.
  • Der SRAM 6215 kann verwendet werden, um Software, welche effizient die nichtflüchtigen Speicher 6201 bis 620n verwaltet, zu treiben bzw. zu betreiben. Der SRAM 6315 kann Metadaten-Eingaben von einem Hauptspeicher des Host 6100 oder Cash-Daten speichern. Bei einer plötzlichen Abschalt-Operation können Metadaten oder Cash-Daten, welche in dem SRAM 6215 gespeichert sind, in den nichtflüchtigen Speichern 6201 bis 620n unter Verwendung einer Hilfsleistungsversorgung 6220 gespeichert werden.
  • Der DRAM 6216 kann vorübergehend komprimierte Daten speichern und einen Platz zum Sammeln komprimierter Daten vorsehen. Ebenso kann, wie obenstehend beschrieben ist, ein Abschnitt des DRAM 6216 zu einem Wartebereich gewählt werden. Zurückkehrend zu 22 kann ein SSD-System 600 einen Speicherplatz effizient durch ein Verwalten von Daten durch eine bzw. mit einer ECC-Blockeinheit und ein Unterstützen einer kollektiven Schreiboperation für komprimierte Daten verwalten.
  • Der DRAM 6216 kann innerhalb des SSD-Controllers 6210 platziert sein. Das erfinderische Konzept ist jedoch nicht hierauf beschränkt. Beispielsweise kann der DRAM 6216 implementiert sein, so dass er außerhalb des SSD-Controllers 6210 implementiert ist. In den 22 und 23 können der SRAM 6215 und der DRAM 6216 durch einen nichtflüchtigen Speicher ersetzt sein. Demnach kann das SSD-System 6000 derart konfiguriert sein, dass nichtflüchtige Speicher (beispielsweise PRAM, RRAM, MRAM und dergleichen) die Rollen des SRAM 6215 und des DRAM 6216 durchführen.
  • 24 ist ein Blockschaltbild einer elektronischen Vorrichtung, welche ein Flashspeichersystem gemäß einer Ausführungsform des erfinderischen Konzepts aufweist. Hierin kann eine elektronische Vorrichtung 7000 ein Personal Computer oder eine handgeführte elektronische Vorrichtung wie beispielsweise ein Notebook-Computer, ein Mobiltelefon, ein PDA, eine Kamera oder dergleichen sein.
  • Bezug nehmend auf 24 weist die elektronische Vorrichtung 7000 ein Speichersystem 7100, eine Leistungsversorgungsvorrichtung 7200, eine Hilfsleistungsversorgung 7250, eine CPU 7300, einen DRAM 7400 und eine Nutzerschnittstelle 7500 auf. Das Speichersystem 7100 weist einen Flashspeicher 7110 und einen Speicher-Controller 7120 auf. Das Speichersystem 7100 kann innerhalb der elektronischen Vorrichtung 7000 eingebettet sein.
  • Wie obenstehend beschrieben ist, kann die elektronische Vorrichtung 7000 einen Speicherplatz effizient durch ein Verwalten von Daten durch eine bzw. mit einer ECC-Blockeinheit und ein Unterstützen einer kollektiven Schreiboperation für komprimierte Daten verwalten.
  • Ein Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts ist auf einen Flashspeicher, welcher eine dreidimensionale Struktur hat, sowie auf einen Flashspeicher, welcher eine zweidimensionale Struktur hat, anwendbar.
  • 25 ist ein Blockschaltbild eines Flashspeichers, welcher auf das erfinderische Konzept angewandt wird. Bezug nehmend auf 25 weist ein Flashspeicher 8000 eine dreidimensionale (3D)-Zellanordnung 8110, eine Dateneingabe-/Ausgabeschaltung 8120, einen Adress-Dekodierer 8130 und eine Steuerlogik 8140 auf.
  • Die 3D-Zellanordnung 8110 weist eine Mehrzahl von Speicherblöcken BLK1 bis BLKz auf, von welchen jedre gebildet ist, so dass er eine dreidimensionale Struktur (oder eine vertikale Struktur) hat. Für einen Speicherblock, welcher eine zweidimensionale (horizontale) Struktur hat, können Speicherzellen in einer Richtung horizontal zu einem Substrat gebildet sein. Für einen Speicherblock, welcher eine dreidimensionale Struktur hat, können Speicherzellen in einer Richtung rechtwinklig zu dem Substrat gebildet sein. Jeder Speicherblock kann eine Löscheinheit des Flashspeichers 8000 sein.
  • Die Dateneingabe-/Ausgabeschaltung 8120 kann mit der 3D-Zellanordnung 8110 über eine Mehrzahl von Bitleitungen verbunden sein. Die Dateneingabe-/Ausgabeschaltung 8120 kann Daten von einer externen Vorrichtung empfangen oder Daten, welche von der 3D-Zellanordnung 8110 gelesen werden, zu der externen Vorrichtung ausgeben. Der Adress-Dekodierer 8130 kann mit der 3D-Zellanordnung 8110 über eine Mehrzahl von Wortleitungen und Auswahlleitungen GSL und SSL verbunden sein. Der Adress-Dekodierer 8130 kann die Wortleitungen in Antwort auf eine Adresse ADDR auswählen.
  • Die Steuerlogik 8140 kann ein Programmieren, ein Löschen, ein Auslesen etc. des Flashspeichers 8000 steuern. Beispielsweise kann beim Programmieren die Steuerlogik 8140 den Adress-Dekodierer 8130 derart steuern, dass eine Programmierspannung für eine ausgewählte Wortleitung zur Verfügung gestellt wird und sie kann die Dateneingabe-/Ausgabeschaltung 8120 derart steuern, dass Daten programmiert werden.
  • 26 ist eine perspektivische Ansicht, welche schematisch eine 3D-Struktur eines Speicherblocks, welcher in dem Flashspeicher der 25 veranschaulicht ist, veranschaulicht. Bezug nehmend auf 26 kann ein Speicherblock BLK1 in einer Richtung rechtwinklig zu einem Substrat SUB gebildet sein. Ein n+-Dotierungsbereich kann an dem Substrat SUB gebildet sein. Eine Gate-Elektrodenschicht und eine Isolierschicht können auf dem Substrat SUB der Reihe nach bzw. abwechselnd abgeschieden bzw. angeordnet sein. Eine Ladungsspeicherschicht kann zwischen der Gate-Elektrodenschicht und der Isolierschicht gebildet sein.
  • Wenn die Gate-Elektrodenschicht und die Isolierschicht in einer vertikalen Richtung gemustert bzw. strukturiert werden, kann eine V-förmige Säule gebildet werden. Die Säule kann mit dem Substrat SUB über die Gate-Elektrodenschicht und die Isolierschicht verbunden sein. Ein äußerer Abschnitt O der Säule kann aus einem Kanal-Halbleiter gebildet sein und ein innerer Abschnitt I davon kann aus einem isolierenden Material wie beispielsweise Siliziumoxid gebildet sein.
  • Die Gate-Elektrodenschicht des Speicherblocks BLK1 kann mit einer Masse-Auswahlleitung GSL, einer Mehrzahl von Wortleitungen WL1 bis WL8 und einer String-Auswahlleitung SSL verbunden sein. Die Säule des Speicherblocks BLK1 kann mit einer Mehrzahl von Bitleitungen BL1 bis BL3 verbunden sein. In 13 ist der Fall veranschaulicht, dass ein Speicherblock BLK1 zwei Auswahlleitungen SSL und GSL, acht Wortleitungen WL1 bis WL8 und drei Bitleitungen BL1 bis BL3 hat. Das erfinderische Konzept ist jedoch nicht hierauf beschränkt.
  • 27 ist ein Schaltbild einer äquivalenten Schaltung des Speicherblocks der 26. Bezug nehmend auf 27 können NAND-Strings NS11 bis NS33 zwischen Bitleitungen BL1 bis BL3 und einer gemeinsamen Quellleitung CSL verbunden sein. Jeder NAND-String (beispielsweise NS11) weist einen String-Auswahltransistor SST, eine Mehrzahl von Speicherzellen MC1 bis MC8 und einen Masse-Auswahltransistor GST auf.
  • Die String-Auswahltransistoren SST können mit String-Auswahlleitungen SSL1 bis SSL3 verbunden sein. Die Speicherzellen MC1 bis MC8 können jeweils mit entsprechenden Wortleitungen WL1 bis WL8 verbunden sein. Die Masse-Auswahltransistoren GST können mit der Masse-Auswahlleitung GSL verbunden sein. Ein String-Auswahltransistor SST kann mit einer Bitleitung verbunden sein, und ein Masse-Auswahltransistor GST kann mit einer gemeinsamen Quellleitung GSL verbunden sein.
  • Wortleitungen (beispielsweise WL1), welche dieselbe Höhe haben, können gemeinsam verbunden sein, und die String-Auswahlleitungen SSL1 bis SSL3 können voneinander getrennt sein. Beim Programmieren von Speicherzellen (die eine Seite konstituieren), welche mit einer ersten Wortleitung WL1 verbunden ist und in NAND-Strings NS11, NS12 und NS13 enthalten sind, kann eine erste Wortleitung WL1, eine erste String-Auswahlleitung SSL1 ausgewählt werden.
  • Die obenstehend offenbarten Gegenstände sind als veranschaulichend und nicht beschränkend anzusehen, und die beigefügten Ansprüche sind vorgesehen, um alle solche Abwandlungen, Verbesserungen und andere Ausführungsformen, welche in den wahren Gedanken und Umfang fallen, zu umfassen. Demnach muss der Umfang zum maximalen Ausmaß, welches durch das Gesetz erlaubt ist, durch die breitest mögliche bzw. erlaubte Interpretation der folgenden Ansprüche und deren Äquivalente bestimmt werden und soll nicht durch die vorangehende detaillierte Beschreibung begrenzt oder beschränkt sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2012-0902559 [0001]

Claims (30)

  1. Speichervorrichtung (120), die Folgendes aufweist: einen Nutzerbereich (126) einer Speicherzellanordnung; einen Pufferbereich (124), welcher konfiguriert ist, um vorübergehend komprimierte Daten, welche in den Nutzerbereich (126) zu schreiben sind, zu speichern; und eine Verwaltungslogik (123, 1370, 6213) für komprimierte Daten, welche konfiguriert ist, um den Nutzerbereich (126) und den Pufferbereich (124) derart zu steuern, dass komprimierte Daten, welche in dem Pufferbereich (124) gespeichert sind, in den Nutzerbereich (126) geschrieben werden, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten komprimierte Daten, welche in den Nutzerbereich (126) zu schreiben sind, mit einer ECC-Blockeinheit verwaltet.
  2. Speichervorrichtung (120) nach Anspruch 1, wobei die ECC-Blockeinheit eine Bitgröße ist, welche die Zuverlässigkeit von komprimierten Daten, welche in den Nutzerbereich (126) zu schreiben sind, erhöht.
  3. Speichervorrichtung (120) nach Anspruch 2, wobei die ECC-Blockeinheit ein Datenbit aufweist, welches eine Nutzerdateninformation ist und ein ECC-Bit, welches verwendet wird, um einen Fehler des Datenbits zu korrigieren.
  4. Speichervorrichtung (120) nach Anspruch 1, wobei während einer Schreiboperation komprimierte Daten, welche in dem Pufferbereich (124) gespeichert sind, in den Nutzerbereich (126) mit einer Programmiereinheit, welche größer als die ECC-Blockeinheit ist, geschrieben werden.
  5. Speichervorrichtung (120) nach Anspruch 4, wobei die Programmiereinheit ein ganzzahliges Vielfaches der ECC-Blockeinheit ist.
  6. Speichervorrichtung (120) nach Anspruch 1, wobei der Pufferbereich (124) vorübergehend erste komprimierte Daten und zweite komprimierte Daten speichert und die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die ersten und die zweiten komprimierten Daten in dieselbe Seite des Nutzerbereichs (126) schreibt.
  7. Speichervorrichtung (120) nach Anspruch 1, weiterhin aufweisend: einen Komprimierer (122, 1360), welcher konfiguriert ist, um Rohdaten, welche zum Schreiben angefragt sind, zu komprimieren; und eine ECC-Schaltung, welche konfiguriert ist, um ein ECC-Bit zu Rohdaten, welche durch den Komprimierer (122, 1360) komprimiert sind, hinzuzufügen, und um die komprimierten Daten, welche in den Nutzerbereich (126) zu schreiben sind, zu erzeugen.
  8. Speichervorrichtung (120) nach Anspruch 1, weiterhin aufweisend: eine Verwaltungstabelle für komprimierte Daten, welche konfiguriert ist, um Örtlichkeitsinformationen von komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, zu verwalten, wobei die Verwaltungstabelle für komprimierte Daten Örtlichkeitsinformationen von komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, mit einer ECC-Blockeinheit kleiner als die Programmiereinheit gemäß der Steuerung der Verwaltungslogik (123, 1370, 6213) für komprimierte Daten verwaltet.
  9. Speichervorrichtung (120) nach Anspruch 8, wobei die Verwaltungstabelle für komprimierte Daten Folgendes verwaltet: Informationen, welche mit der physikalischen Adresse der komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, verknüpft sind, Informationen, welche mit der Startzahl des ECC-Blocks der komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, verknüpft sind, und Informationen, welche mit der ECC-Blocklänge der komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, verknüpft sind.
  10. Speichervorrichtung (120) nach Anspruch 9, wobei die Verwaltungstabelle für komprimierte Daten weiterhin Informationen verwaltet, welche mit einer logischen Adresse verknüpft sind, welche der physikalischen Adresse der komprimierten Daten, welche in dem Nutzerbereich (126) gespeichert sind, entspricht.
  11. Speichervorrichtung (120) nach Anspruch 8, wobei die Verwaltungstabelle für komprimierte Daten Informationen verwaltet, welche mit einer physikalischen Adresse von ersten und zweiten komprimierten Daten verknüpft sind, welche in dem Nutzerbereich (126) gespeichert sind, und wobei die ersten und die zweiten komprimierten Daten die gleiche physikalische Adresse haben.
  12. Speichervorrichtung (120) nach Anspruch 1, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten basierend auf der Bitgröße eines leeren Bereichs der ersten komprimierten Daten bestimmt, ob zweite komprimierte Daten in den Nutzerbereich (126) mit ersten komprimierten Daten zu schreiben sind oder nicht.
  13. Speichervorrichtung (120) nach Anspruch 12, wobei dann, wenn die Bitgröße des leeren Bereichs der ersten komprimierten Daten größer ist als die Bitgröße der zweiten komprimierten Daten, die ersten und zweiten komprimierten Daten in dieselbe Seite des Nutzerbereichs (126) programmiert werden.
  14. Speichervorrichtung (120) nach Anspruch 12, wobei dann, wenn die Bitgröße des leeren Bereiches der ersten komprimierten Daten kleiner ist als die Bitgröße der zweiten komprimierten Daten, die ersten komprimierten Daten in den Nutzerbereich (126) programmiert werden.
  15. Speichervorrichtung (120) nach Anspruch 12, wobei der Zeitpunkt einer Schreibanfrage der ersten komprimierten Daten vor dem Zeitpunkt einer Schreibanfrage der zweiten komprimierten Daten ist.
  16. Speichervorrichtung (120) nach Anspruch 1, wobei der Pufferbereich (124) einen Wartebereich (1341) aufweist, welcher vorübergehend eine Mehrzahl von komprimierten Daten speichert, während die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die Bitgröße von komprimierten Daten, die schreibangefragt sind, mit einem leeren Bereich von jeder der Mehrzahl von komprimierten Daten, welche in dem Wartebereich (1341) gespeichert sind, vergleicht.
  17. Speichervorrichtung (120) nach Anspruch 16, wobei, wenn die Bitgröße der schreibangefragten komprimierten Daten kleiner ist als ein leerer Bereich von ausgewählten einen aus einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich (1341) gespeichert sind, die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die schreibangefragten komprimierten Daten und die ausgewählten komprimierten Daten in dieselbe Seite des Nutzerbereichs (126) schreibt.
  18. Speichervorrichtung (120) nach Anspruch 17, wobei, wenn die Bitgröße der schreibangefragten komprimierten Daten größer ist als leere Bereiche einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich (1341) gespeichert sind, die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die schreibangefragten komprimierten Daten in den Wartebereich (1341) überträgt.
  19. Speichervorrichtung (120) nach Anspruch 18, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die Bitgröße des Wartebereichs (1341) mit einer Referenz-Bitgröße vergleicht und ausgewählte aus einer Mehrzahl von komprimierten Daten, welche in dem Wartebereich (1341) gespeichert sind, schreibt, wenn die Bitgröße des Wartebereichs (1341) größer ist als die Referenz-Bitgröße.
  20. Speichervorrichtung (120) nach Anspruch 1, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die Bitgröße eines leeren Bereichs von ersten komprimierten Daten mit der Bitgröße von zweiten komprimierten Daten vergleicht und die zweiten komprimierten Daten aufteilt, wenn die Bitgröße des leeren Bereichs der ersten komprimierten Daten kleiner ist als die Bitgröße der zweiten komprimierten Daten.
  21. Speichervorrichtung (120) nach Anspruch 20, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die zweiten komprimierten Daten in erste und zweite unterteilte komprimierte Daten unterteilt und die Bitgröße der ersten unterteilten komprimierten Daten kleiner ist als die Bitgröße eines leeren Bereichs der ersten komprimierten Daten.
  22. Speichervorrichtung (120) nach Anspruch 21, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten die ersten komprimierten Daten und die ersten unterteilten komprimierten Daten auf dieselbe Seite des Nutzerbereichs (126) schreibt.
  23. Speichervorrichtung (120) nach Anspruch 21, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten vorläufig die zweiten unterteilten komprimierten Daten in dem Pufferbereich (124) speichert.
  24. Speichervorrichtung (120) nach Anspruch 1, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten gleichzeitig wenigstens ein komprimiertes Datum, welches in dem Pufferbereich (124) gespeichert ist, in eine Mehrzahl von Seiten des Nutzerbereichs (126) schreibt.
  25. Nichtflüchtige Speichervorrichtung, die Folgendes aufweist: einen nichtflüchtigen Speicher (2220, 3220, 4220), welcher konfiguriert ist, um eine Programmieroperation mit einer Programmiereinheit einer Mehrzahl von Seiten durchzuführen; einen Pufferspeicher (124), welcher konfiguriert ist, um komprimierte Daten, welche in den nichtflüchtigen Speicher (2220, 3220, 4220) zu programmieren sind, vorläufig zu speichern; und eine Verwaltungslogik (123, 1370, 6213) für komprimierte Daten, welche konfiguriert ist, um den nichtflüchtigen Speicher (2220, 3220, 4220) und den Pufferspeicher (124) derart zu steuern, dass komprimierte Daten, welche in dem Pufferspeicher (124) gespeichert sind, in den nichtflüchtigen Speicher (2220, 3220, 4220) programmiert werden, wobei die Verwaltungslogik (123, 1370, 6213) für komprimierte Daten komprimierte Daten, welche in dem nichtflüchtigen Speicher (2220, 3220, 4220) gespeichert sind, mit einer ECC-Blockeinheit kleiner als der Bitgröße einer Seite des nichtflüchtigen Speichers (2220, 3220, 4220) verwaltet.
  26. Nichtflüchtige Speichervorrichtung nach Anspruch 25, wobei der Pufferspeicher (124) eine Mehrzahl von komprimierten Daten speichert, wobei die Mehrzahl von komprimierten Daten, welche in dem Pufferspeicher (124) gespeichert ist, gleichzeitig in den nichtflüchtigen Speicher (2220, 3220, 4220) zu programmieren ist, wenn die Bitgröße der Mehrzahl von komprimierten Daten, welche in dem Pufferspeicher (124) gespeichert ist, kleiner ist als die Programmiereinheit einer Mehrzahl von Seiten.
  27. Nichtflüchtige Speichervorrichtung nach Anspruch 25 oder 26, weiterhin aufweisend: eine Verwaltungstabelle für komprimierte Daten, welche konfiguriert ist, um Örtlichkeitsinformationen von komprimierten Daten, welche in dem nichtflüchtigen Speicher (2220, 3220, 4220) gespeichert sind, zu verwalten, wobei die Verwaltungstabelle für komprimierte Daten Örtlichkeitsinformationen von komprimierten Daten, welche in dem nichtflüchtigen Speicher (2220, 3220, 4220) gespeichert sind, verwaltet, und wobei die komprimierten Daten mit einer ECC-Blockeinheit kleiner als der Bitgröße einer Seite unter der Steuerung der Verwaltungslogik (123, 1370, 6213) für komprimierte Daten gespeichert werden.
  28. Nichtflüchtige Speichervorrichtung nach Anspruch 25, wobei der nichtflüchtige Speicher (2220, 3220, 4220) eine Mehrzahl von komprimierten Daten aufweist, welche durch eine Programmieroperation programmiert werden, und vorbestimmte komprimierte Daten der Mehrzahl von komprimierten Daten unterteilt sind, um in wenigstens zwei Seiten des nichtflüchtigen Speichers (2220, 3220, 4220) gespeichert zu werden.
  29. Betriebsverfahren einer nichtflüchtigen Speichervorrichtung, das Folgendes aufweist: ein Komprimieren von schreibangefragten Daten; ein Sammeln der komprimierten Daten in einem Schreib- und Lesespeicher (RAM); ein Programmieren von komprimierten Daten, welche in dem RAM gesammelt sind, in einen nichtflüchtigen Speicher (2220, 3220, 4220); und ein Aktualisieren einer Verwaltungstabelle für komprimierte Daten zum Verwalten von komprimierten Daten, welche in dem nichtflüchtigen Speicher (2220, 3220, 4220) mit einer ECC-Blockeinheit gespeichert sind.
  30. Betriebsverfahren nach Anspruch 29, weiterhin aufweisend: ein Vergleichen der Bitgröße der schreibangefragten Daten mit der Bitgröße von jedem von leeren Bereichen einer Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, wobei, wenn die Bitgröße der schreibangefragten Daten kleiner ist als die Bitgröße eines leeren Bereichs von ausgewählten einen der Mehrzahl von komprimierten Daten, welche in dem RAM gespeichert sind, die schreibangefragten Daten und die ausgewählten komprimierten Daten in dieselbe Seite des nichtflüchtigen Speichers (2220, 3220, 4220) programmiert werden.
DE102012112354A 2012-01-09 2012-12-17 Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon Pending DE102012112354A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120002559A KR101888074B1 (ko) 2012-01-09 2012-01-09 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
KR10-2012-0002559 2012-01-09

Publications (2)

Publication Number Publication Date
DE102012112354A1 true DE102012112354A1 (de) 2013-07-11
DE102012112354A8 DE102012112354A8 (de) 2013-09-12

Family

ID=48652578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012112354A Pending DE102012112354A1 (de) 2012-01-09 2012-12-17 Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon

Country Status (4)

Country Link
US (1) US9176808B2 (de)
KR (1) KR101888074B1 (de)
CN (1) CN103197897B (de)
DE (1) DE102012112354A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753463A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
WO2015016877A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Memory unit
US9898365B2 (en) 2013-07-31 2018-02-20 Hewlett Packard Enterprise Development Lp Global error correction
US9740621B2 (en) 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) * 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
KR102295223B1 (ko) * 2015-01-13 2021-09-01 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US9710324B2 (en) * 2015-02-03 2017-07-18 Qualcomm Incorporated Dual in-line memory modules (DIMMs) supporting storage of a data indicator(s) in an error correcting code (ECC) storage unit dedicated to storing an ECC
KR20160148952A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170008339A (ko) * 2015-07-13 2017-01-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN112765006B (zh) * 2015-07-21 2024-09-03 北京忆恒创源科技股份有限公司 固态硬盘日志生成方法及其固态硬盘
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US10402323B2 (en) * 2015-10-28 2019-09-03 Nvidia Corporation Organizing memory to optimize memory accesses of compressed data
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
US10877544B2 (en) * 2016-01-12 2020-12-29 Smart Modular Technologies, Inc. Memory management system with backup system and method of operation thereof
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10067706B2 (en) 2016-03-31 2018-09-04 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
KR102525061B1 (ko) 2016-07-19 2023-04-21 에스케이하이닉스 주식회사 입력 데이터를 압축하여 저장하는 데이터 저장 장치
US10043573B2 (en) * 2016-08-04 2018-08-07 Intel Corporation Apparatus and method for endurance friendly programming using lower voltage thresholds
US10176090B2 (en) 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
CN106527984A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种用于固态硬盘的存储方法及其系统
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
CN106776109B (zh) * 2016-12-26 2020-01-24 湖南国科微电子股份有限公司 固态硬盘读错误检测装置及读不可纠错误原因的检测方法
US10732896B2 (en) * 2017-06-12 2020-08-04 Western Digital Technologies, Inc. Method and system for reading data during control sync operations
TWI720246B (zh) * 2017-08-30 2021-03-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
KR102490104B1 (ko) * 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법
KR102384759B1 (ko) * 2017-11-13 2022-04-11 삼성전자주식회사 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치
CN108334287A (zh) * 2018-01-30 2018-07-27 江苏华存电子科技有限公司 一种提高闪存每单位写入的资料量的方法及装置
US10514980B2 (en) * 2018-03-22 2019-12-24 Winbond Electronics Corp. Encoding method and memory storage apparatus using the same
KR102505913B1 (ko) * 2018-04-04 2023-03-07 삼성전자주식회사 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템
KR102538253B1 (ko) * 2018-04-16 2023-06-01 삼성전자주식회사 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
KR102530369B1 (ko) * 2018-04-23 2023-05-10 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN110333965B (zh) * 2019-05-30 2023-05-26 深圳市博德越科技有限公司 一种固态硬盘控制器装置及固态硬盘数据校验方法
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US11587620B2 (en) * 2020-06-05 2023-02-21 Samsung Electronics Co., Ltd. Automatic program voltage selection network
KR20220116650A (ko) * 2021-02-15 2022-08-23 삼성전자주식회사 이형 메모리들을 포함하는 전자 장치 및 그것의 이형 메모리들 간 압축 데이터 이동 방법
CN114579048A (zh) * 2022-02-14 2022-06-03 阿里巴巴(中国)有限公司 控制硬盘的方法、装置以及固态硬盘
CN114490172B (zh) * 2022-04-02 2022-07-12 武汉杰开科技有限公司 数据存储系统及方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237460A (en) 1990-12-14 1993-08-17 Ceram, Inc. Storage of compressed data on random access storage devices
US5778411A (en) 1995-05-16 1998-07-07 Symbios, Inc. Method for virtual to physical mapping in a mapped compressed virtual storage subsystem
US6115787A (en) 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
KR100242996B1 (ko) 1996-12-30 2000-02-01 김영환 압축데이타 저장방법
JP2001093226A (ja) * 1999-09-21 2001-04-06 Sony Corp 情報通信システムおよび方法、ならびに、情報通信装置および方法
US7111142B2 (en) * 2002-09-13 2006-09-19 Seagate Technology Llc System for quickly transferring data
US7612803B2 (en) * 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
US7424482B2 (en) 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
KR20070031647A (ko) 2005-09-15 2007-03-20 삼성전자주식회사 플래시 메모리 장치에 압축 데이터를 기록하는 방법 및상기 기록된 데이터를 읽는 방법, 그리고 상기 방법을이용하는 플래시 메모리 장치
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
KR100772393B1 (ko) * 2006-02-08 2007-11-01 삼성전자주식회사 에러 정정 블록, 에러 정정 블록의 생성 방법 및 장치,에러 정정 방법
TW200820261A (en) * 2006-09-08 2008-05-01 Samsung Electronics Co Ltd Fusion memory device and method
US20080140724A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
KR100924021B1 (ko) 2007-10-02 2009-10-28 주식회사 휴원 플래시 메모리의 사상 관리 방법
WO2010035124A1 (en) 2008-09-29 2010-04-01 Sandisk Il Ltd. File system for storage device which uses different cluster sizes
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
KR20110016324A (ko) 2009-08-11 2011-02-17 주식회사 유니듀 플래시 메모리에 데이터를 기록하는 방법
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
KR20110113420A (ko) 2010-04-09 2011-10-17 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템
KR20110113421A (ko) 2010-04-09 2011-10-17 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템
WO2012025974A1 (ja) * 2010-08-23 2012-03-01 富士通株式会社 データ記憶装置およびデータ記憶装置制御方法
KR20120090194A (ko) * 2011-02-07 2012-08-17 삼성전자주식회사 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템
WO2012168960A1 (en) * 2011-06-07 2012-12-13 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
KR20130084469A (ko) * 2012-01-17 2013-07-25 삼성전자주식회사 데이터 압축 저장 방법 및 이를 이용한 저장 장치
US8898548B1 (en) * 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753463A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法
CN109753463B (zh) * 2017-11-08 2022-06-17 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法

Also Published As

Publication number Publication date
KR101888074B1 (ko) 2018-08-13
KR20130081534A (ko) 2013-07-17
CN103197897A (zh) 2013-07-10
CN103197897B (zh) 2018-01-23
DE102012112354A8 (de) 2013-09-12
US9176808B2 (en) 2015-11-03
US20130179752A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102018105750A1 (de) System und Verfahren für Hybrid-Push-Pull-Datenmanagement in einem nichtflüchtigen Datenspeicher
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102013108456B4 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102014100161A1 (de) Speichersystem und Betriebsverfahren davon
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102013100596B4 (de) Nichtflüchtiges Speichersystem mit Programmier- und Löschverfahren und Blockverwaltungsverfahren
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112016002631T5 (de) Speicherfunktionszustandsüberwachung
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE102013112195A1 (de) Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE112019005506T5 (de) Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block

Legal Events

Date Code Title Description
R012 Request for examination validly filed