DE102020126663A1 - Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben - Google Patents

Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben Download PDF

Info

Publication number
DE102020126663A1
DE102020126663A1 DE102020126663.4A DE102020126663A DE102020126663A1 DE 102020126663 A1 DE102020126663 A1 DE 102020126663A1 DE 102020126663 A DE102020126663 A DE 102020126663A DE 102020126663 A1 DE102020126663 A1 DE 102020126663A1
Authority
DE
Germany
Prior art keywords
key
keystream
invalid
keys
value
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
DE102020126663.4A
Other languages
English (en)
Inventor
Hwang Lee
Satish Kumar
Chansoo KIM
Wan Heo
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 DE102020126663A1 publication Critical patent/DE102020126663A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Abstract

Eine Speichervorrichtung erzeugt und speichert einen Schlüsselstrom und einen Wertstrom durch Extrahieren einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, aus Daten. Die Speichervorrichtung enthält einen Controller und einen nichtflüchtigen Speicher. Der Controller empfängt vom Host Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, gemeinsam mit einem Verdichtungsbefehl und führt eine Verdichtungsoperation am Schlüsselstrom als Reaktion auf den Verdichtungsbefehl durch. Der nichtflüchtige Speicher speichert den Schlüsselstrom und den Wertstrom. Der Controller führt den Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel in der Vergleichsoperation mit einem weiteren Schlüsselstrom zusammen.

Description

  • Querverweis auf ähnliche Anmeldungen
  • Diese Anmeldung beansprucht den Vorteil der am 24. Dezember 2019 beim Koreanischen Amt für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2019-0174281, deren Offenbarung durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
  • Hintergrund
  • Technisches Gebiet
  • Das/die hierin beschriebene/n erfinderische Konzept/e bezieht/beziehen sich auf eine Speichervorrichtung und ein Betriebsverfahren derselben. Insbesondere bezieht/beziehen sich das/die hierin beschriebene/n Konzept/e auf eine Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und auf einem Betriebsverfahren derselben.
  • Beschreibung der verwandten Technik
  • Jüngst sind verschiedene Arten von elektronischen Vorrichtungen zur Verwendung entwickelt worden. Einige elektronische Vorrichtungen sind zum Speichern von Daten und zum Operieren basierend auf den gespeicherten Daten imstande. Zu diesem Zweck kann eine elektronische Vorrichtung eine Speichervorrichtung oder ein Speichersystem zum Speichern von Daten enthalten. Eine elektronische Vorrichtung kann außerdem oder alternativ Daten lesen oder anderweitig operieren, während sie mit einer externen Speichervorrichtung oder einem externen Speichersystem kommuniziert.
  • Speichervorrichtungen können auf verschiedene Weise klassifiziert werden. Als ein Beispiel von Klassifikationen für Speichervorrichtungen kann eine Speichervorrichtung als ein auf einem nichtflüchtigen Speicher basierter Speicher oder ein auf einem flüchtigen Speicher basierter Speicher klassifiziert werden. Ein auf einem nichtflüchtigen Speicher basierter Speicher verliert womöglich keine Daten, selbst wenn keine Leistung zugeführt wird. Andererseits, wenn eine Leistungszufuhr unterbrochen ist, können in dem auf einem flüchtigen Speicher basierten Speicher gespeicherte Daten verloren gehen, allerdings kann der auf einem flüchtigen Speicher basierte Speicher anderweitig schneller operieren als der auf einem nichtflüchtigen Speicher basierte Speicher.
  • Als ein weiteres Beispiel von Klassifikationen für Speicher kann eine Speichervorrichtung als ein Blockspeicher, ein Dateispeicher oder ein Objektspeicher klassifiziert werden. Der Blockspeicher verwaltet Daten basierend auf physikalischen Positionen und der Dateispeicher verwaltet Daten basierend auf logischen Sequenzen. Andererseits kann der Objektspeicher Daten basierend auf einem eindeutigen Identifikator verwalten. Der Blockspeicher und der Dateispeicher sind nützlich, wenn die Textdatenmenge groß ist, während der Objektspeicher eine effiziente Alternative ist, wenn die Menge an typischen Daten, wie Sounddaten und Videodaten, groß ist. Ein Beispiel für den Objektspeicher ist ein Schlüssel-Wert-Speicher, der Daten auf einer Schlüssel-Wert-Basis speichert.
  • Kurfassung
  • Das/die hierin beschriebene/n erfinderische Konzept/e enthält/enthalten eine Speichervorrichtung, die eine Verdichtungsoperation an einem Schlüsselstrom basierend auf Informationen zu einem ungültigen Schlüssel durchführt, und ein Speichersystem, das die Speichervorrichtung enthält.
  • Nach einem Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte enthält eine Speichervorrichtung einen Controller und einen nichtflüchtigen Speicher. Die Speichervorrichtung erzeugt und speichert einen Schlüsselstrom und einen Wertstrom durch Extrahieren einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, aus Daten. Der Controller empfängt vom Host Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, gemeinsam mit einem Verdichtungsbefehl und führt eine Verdichtungsoperation am Schlüsselstrom als Reaktion auf den Verdichtungsbefehl durch. Der nichtflüchtige Speicher speichert den Schlüsselstrom und den Wertstrom. Der Controller führt den Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel in der Vergleichsoperation mit einem weiteren Schlüsselstrom zusammen.
  • Nach einem weiteren Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte speichert die Speichervorrichtung einen Schlüsselstrom und einen Wertstrom, die durch Extrahieren einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, aus Daten erzeugt werden. Ein Betriebsverfahren der Speichervorrichtung enthält: das Empfangen eines Verdichtungsbefehls und von Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, von einem Host; das Durchführen einer Verdichtungsoperation durch Zusammenführen des Schlüsselstroms mit einem weiteren Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel; und das Speichern des zusammengeführten Schlüsselstroms in einem nichtflüchtigen Speicher.
  • Nach einem weiteren Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte speichert ein Speichersystem einen Schlüsselstrom und einen Wertstrom, die durch Extrahieren einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, aus Daten erzeugt worden sind. Das Speichersystem enthält einen Host und eine Speichervorrichtung. Der Host ist konfiguriert, einen Verdichtungsbefehl für den Schlüsselstrom und Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, zu übertragen. Die Speichervorrichtung ist konfiguriert, den Verdichtungsbefehl zu empfangen, eine Verdichtungsoperation durch Zusammenführen des Schlüsselstroms mit einem weiteren Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel durchzuführen und den zusammengeführten Schlüsselstrom zu speichern.
  • Figurenliste
  • Für ein deutlicheres Verständnis der Ausführungsformen der vorliegenden Offenbarung sorgt die folgende, detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen, wobei:
    • 1 ein Blockdiagramm ist, das ein Speichersystem nach einer Ausführungsform darstellt;
    • 2 ein Blockdiagramm ist, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 3 ein Blockdiagramm ist, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 4 ein Flussdiagramm ist, das ein Betriebsverfahren einer Speichervorrichtung nach einer Ausführungsform darstellt;
    • 5 ein Schaltplan ist, der einen in einem Speicherzellenarray enthaltenen Speicherblock nach einer Ausführungsform darstellt;
    • 6 eine Perspektivansicht ist, die einen Speicherblock aus 5 darstellt;
    • 7 ein konzeptuelles Diagramm ist, das eine Operation eines Schlüssel-Wert-Managers nach einer Ausführungsform darstellt;
    • 8 ein konzeptuelles Diagramm ist, das eine Operation eines Schlüssel-Wert-Managers nach einer Ausführungsform darstellt;
    • 9 ein Flussdiagramm zur Erläuterung eines Betriebsverfahrens eines Schlüssel-Wert-Managers nach einer Ausführungsform ist;
    • 10 ein Diagramm ist, das eine Schlüsseltabelle nach einer Ausführungsform darstellt;
    • 11 ein Flussdiagramm zur Erläuterung eines Betriebsverfahrens eines Schlüssel-Wert-Managers nach einer Ausführungsform ist;
    • 12A ein Diagramm ist, das einen Block nach einer Ausführungsform darstellt;
    • 12B ein Diagramm ist, das eine Multi-Registertabelle nach einer Ausführungsform darstellt;
    • 13 ein Flussdiagramm ist, das ein Betriebsverfahren einer Speichervorrichtung nach einer Ausführungsform darstellt;
    • 14 ein Diagramm ist, das eine Operation eines Speichersystems im Laufe der Zeit nach einer Ausführungsform darstellt;
    • 15 ein Diagramm ist, das eine Operation eines Speichersystems im Laufe der Zeit nach einer Ausführungsform darstellt;
    • 16A ein Blockdiagramm ist, das ein Speichersystem nach einer Ausführungsform darstellt;
    • 16B ein Blockdiagramm ist, das ein Speichersystem nach einer Ausführungsform darstellt;
    • 17 ein Blockdiagramm ist, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 18 ein Blockdiagramm ist, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 19 ein Blockdiagramm ist, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 20 ein Blockdiagramm ist, das ein Speichersystem nach einer Ausführungsform darstellt;
    • 21 ein Blockdiagramm ist, das eine elektronische Vorrichtung nach einer Ausführungsform darstellt;
    • 22 ein Diagramm ist, das ein mobiles System, auf das eine Speichervorrichtung angewandt wird, nach einer Ausführungsform darstellt; und
    • 23 ein Diagramm ist, das ein mobiles Zentrum, auf das Speichervorrichtungen angewandt werden, nach einer Ausführungsform darstellt.
  • Detaillierte Beschreibung der Ausführungsformen
  • 1 ist ein Blockdiagramm, das ein Speichersystem 10 nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 1 kann das Speichersystem 10 eine Speichervorrichtung 100 und einen Host 200 enthalten und die Speichervorrichtung 100 kann einen Controller 110, einen Datenpuffer 130 und einen NVM 140 (nichtflüchtigen Speicher) enthalten. Der Host 200 kann über verschiedene Schnittstellen mit der Speichervorrichtung 100 kommunizieren. Zum Beispiel kann der Host 200 als, durch oder unter Verwendung eines Anwendungsprozessors (AP) oder eines Ein-Chip-Systems (SoC) umgesetzt werden. Der Controller 110 kann einen Speicher, der Anweisungen speichert, und einen Prozessor, der die Anweisungen ausführt, um einige oder alle Aspekte der durch oder unter Verwendung des Controllers 110 umgesetzten Prozesse umzusetzen, enthalten.
  • In einigen hierin beschriebenen Ausführungsformen kann die Speichervorrichtung 100 ein Objektspeicher sein, der eine Schlüssel-Wert-Speichervorrichtung oder einen Schlüssel-Wert-Speicher, zum Beispiel ein Schlüssel-Wert-Festkörperlaufwerk, enthält. Schlüssel-Wert-Speichervorrichtungen sind Vorrichtungen, die Daten schnell und einfach durch Verwenden von Schlüssel-Wert-Paaren verarbeiten. In diesem Fall kann das „Schlüssel-Wert-Paar“ ein Paar eines einzigartigen Schlüssels und eines Werts, der Daten entspricht, die dem Schlüssel entsprechen, sein und kann als ein „Tupel“ oder ein „Schlüssel-Wert-Tupel“ bezeichnet werden. Der einzigartige Schlüssel kann den Wert eindeutig identifizieren oder jenem anderweitig entsprechen. Zusätzlich kann das Schlüssel-Wert-Paar ein zur Speicher- und Abrufverwaltung von verwandten Arrays entworfenes Datenspeicherparadigma bedeuten, welche Datenstrukturen sind, die als Wörterbücher oder Hash bezeichnet werden. Im Schlüssel-Wert-Paar kann der Schlüssel eine beliebige Kette, wie einen Dateinamen, einen Uniform Resource Identifier (URI), ein Feld oder einen Hash repräsentieren und der Wert kann jeglicher Art von Daten, wie einem Bild, einer Benutzer-bevorzugten Datei und einem Dokument, entsprechen. In diesem Fall können Größen des Schlüssels und des Werts variieren. Zum Beispiel kann die Größe des Werts nach im Wert enthaltenen Daten variieren. Wie hierin verwendet, kann sich der Begriff „Schlüssel-Wert-Paar“ auf ein einzelnes Paar eines Schlüssels KEY und eines Werts VALUE oder jedes von mehreren Paaren an Schlüsseln KEY und Werten VALUE beziehen.
  • Nachfolgend enthalten Beschreibungen der Speichervorrichtung 100 hauptsächlich Ausführungsformen, in denen die Speichervorrichtung 100 eine Schlüssel-Wert-Speichervorrichtung ist. In diesen Ausführungsformen kann die Speichervorrichtung 100 im Wesentlichen gleichbedeutend zu der Schlüssel-Wert-Speichervorrichtung oder dem Schlüssel-Wert-Speicher sein. Allerdings ist die Speichervorrichtung 100 nicht auf die Schlüssel-Wert-Speichervorrichtung oder den Schlüssel-Wert-Speicher beschränkt. Die Speichervorrichtung 100 kann ein beliebiger Objekt-Cache-Speicher oder ein beliebiges Objektspeichersystem, das Daten in Objekteinheiten verwaltet, sein oder jene enthalten. Dementsprechend kann die Speichervorrichtung 100 die Daten in Objekteinheiten durch Verwenden von anderen Verfahren als dem Schlüssel-Wert-Paar verwalten.
  • Der Host 200 kann einen Schlüssel-Wert-Befehl CMD_KV zum Schreiben von Daten, die ein Schlüssel-KEY-Wert-VALUE-Paar enthalten, zum Beispiel einen Schreibanforderungsbefehl oder einen Ablagebefehl, an die Speichervorrichtung 100 übertragen. Das im Schlüssel-Wert-Befehl CMD_KV enthaltene Schlüssel-Wert-Paar kann eine Mehrzahl an Schlüsseln KEY und eine Mehrzahl an Werten VALUE, die der Mehrzahl an Schlüsseln KEY entsprechen, enthalten. Die Speichervorrichtung 100 kann den Wert VALUE als Reaktion auf den Schlüssel-Wert-Befehl CMD_KV in den NVM 140 schreiben. In einer Ausführungsform kann der Host 200 den Schlüssel-Wert-Befehl CMD_KV, der den Schlüssel KEY enthält, zum Beispiel einen Leseanforderungsbefehl oder einen Abrufbefehl, an die Speichervorrichtung 100 übertragen. Die Speichervorrichtung 100 kann den Wert VALUE, der dem Schlüssel KEY entspricht, als Reaktion auf den Schlüssel-Wert-Befehl CMD_KV aus dem NVM 140 lesen.
  • Der Host 200 kann einen Verdichtungsbefehl CMP_CP zum Durchführen einer Verdichtungsoperation an dem Schlüssel-Wert-Paar an die Speichervorrichtung 100 übertragen. Die Speichervorrichtung 100 kann die Verdichtungsoperation an einer im NVM 140 gespeicherten Mehrzahl an Schlüsseln KEY als Reaktion auf den Verdichtungsbefehl CMP_CP durchführen. In der vorliegenden Spezifikation kann sich die Verdichtungsoperation auf eine Operation zum Erzeugen eines Schlüsselstroms unter Verwendung von lediglich gültigen Schlüsseln KEY und nicht einem oder mehreren der ungültigen Schlüssel KEY aus der im NVM 140 gespeicherten Mehrzahl an Schlüsseln KEY beziehen. Die Verdichtungsoperation kann dazu führen, dass ein Schlüsselstrom mit weniger Gesamtschlüsseln KEY als anderweitig durch Ausschließen von ungültigen Schlüsseln KEY aus der im NVM 140 gespeicherten Mehrzahl an Schlüsseln KEY vom Enthaltensein im erzeugten Schlüsselstrom erzeugt wird.
  • Nach einem Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte kann der Host 200 Informationen zu einem ungültigen Schlüssel Info_IK zusammen mit dem Verdichtungsbefehl CMP_CP an die Speichervorrichtung 100 übertragen. Die Speichervorrichtung 100 kann die Verdichtungsoperation basierend auf den Informationen zum ungültigen Schlüssel Info_IK durchführen.
  • Der Controller 110 kann den Wert VALUE als Reaktion auf eine Schreibanforderung vom Host 200 in den NVM 140 schreiben. Alternativ kann der Controller 110 den NVM 140 derart steuern, dass der im NVM 140 gespeicherte Wert VALUE als Reaktion auf eine Leseanforderung vom Host 200 gelesen wird.
  • Der Schlüssel-Wert-Manager 120 kann das im Schlüssel-Wert-Befehl CMD_KV enthaltene Schlüssel-Wert-Paar empfangen und den Schlüssel KEY und den Wert VALUE vom Schlüssel-Wert-Paar trennen. Das im Schlüssel-Wert-Befehl CMD_KV enthaltene Schlüssel-Wert-Paar kann eine Mehrzahl an Schlüsseln KEY und eine Mehrzahl an Werten VALUE, die der Mehrzahl an Schlüsseln KEY entsprechen, enthalten. Der Schlüssel-Wert-Manager 120 kann die im Schlüsse-Wert-Paar enthaltene Mehrzahl an Schlüsseln KEY extrahieren und die Mehrzahl an Schlüsseln KEY im Datenpuffer 130 speichern. Der Schlüssel-Wert-Manager 120 kann eine im Schlüssel-Wert-Paar enthaltene Mehrzahl an Werten VALUE extrahieren und die Mehrzahl an Werten VALUE im Datenpuffer 130 speichern.
  • Wenn die Mehrzahl an Schlüsseln KEY einer gewissen Anzahl an Daten, wie einer vorbestimmten Schwellenanzahl an Daten, oder einer gewissen Menge an Daten, wie einer vorbestimmten Schwellenmenge an Daten, im Datenpuffer 130 gespeichert sind, kann der Schlüssel-Wert-Manager 120 die gespeicherte Mehrzahl an Schlüsseln KEY als einen Schlüsselstrom im NVM 140 speichern. Wenn die Mehrzahl an Werten VALUE einer gewissen Anzahl an Daten, wie einer vorbestimmten Schwellenanzahl an Daten, oder einer gewissen Menge an Daten, wie einer vorbestimmten Schwellenmenge an Daten, im Datenpuffer 130 gespeichert sind, kann der Schlüssel-Wert-Manager 120 die gespeicherte Mehrzahl an Werten VALUE als einen Wertstrom speichern. In einer Ausführungsform können sowohl der Wertstrom als auch der Schlüsselstrom in Bereichen, die sich voneinander unterscheiden, im NVM 140 gespeichert sein.
  • Zusätzlich kann der Schlüssel-Wert-Manager 120 als Reaktion auf den Verdichtungsbefehl CMP_CP eine Mehrzahl an Schlüsselströmen aus dem NVM 140 lesen, einen oder mehrere ungültige Schlüssel KEY aus der Mehrzahl an Schlüsselströmen löschen und die Verdichtungsoperation zum Erzeugen eines neuen Schlüsselstroms durch Verwenden des gültigen Schlüssels KEY durchführen. Nach einer Ausführungsform kann der Schlüssel-Wert-Manager 120 basierend auf den vom Host 200 empfangenen Informationen zum ungültigen Schlüssel INFO_IK bestimmen, welcher Schlüssel KEY aus der Mehrzahl an Schlüsselströmen gültig ist. Der Schlüssel-Wert-Manager 120 kann einen neuen Schlüsselstrom durch Zusammenführen von lediglich gültigen Schlüsseln KEY aus der Mehrzahl an Schlüsselströmen erzeugen.
  • In einer Ausführungsform können die Informationen zum ungültigen Schlüssel Info_IK Indexinformationen enthalten, die dem ungültigen Schlüssel KEY entsprechen. In einer weiteren Ausführungsform können die Informationen zum ungültigen Schlüssel Info_IK Adressinformationen im NVM 140, in dem der ungültige Schlüssel KEY gespeichert ist, enthalten.
  • In der vorliegenden Spezifikation, obwohl ein Beispiel dargestellt ist, in dem der Schlüssel-Wert-Manager 120 die Informationen zum ungültigen Schlüssel Info_IK vom Host 200 empfängt und die Verdichtungsoperation durch Verwenden der empfangenen Informationen durchführt, ist dies lediglich eine Ausführungsform. In einer weiteren Ausführungsform kann der Schlüssel-Wert-Manager 120 Informationen zu den gültigen Schlüsseln KEY vom Host 200 empfangen und die Verdichtungsoperation durch Verwenden der Informationen zu den gültigen Schlüsseln durchführen.
  • Der Datenpuffer 130 kann mindestens ein Speicherelement zum Speichern des Schlüssels KEY und des Werts VALUE enthalten. In einem Beispiel kann der Datenpuffer 130 flüchtige Speicherelemente enthalten, wie einen dynamischen Direktzugriffsspeicher (RAM) (DRAM) und statischen RAM (SRAM).
  • Der NVM 140 kann ein Speicherzellenarray MCA enthalten und das Speicherzellenarray MCA kann Speicherblöcke (BLK1 bis BLKz) enthalten. Ein erster Speicherblock BLK1 kann eine Mehrzahl an Seiten (PG1 bis PGk) enthalten. In diesem Fall können z und k jeweils eine positive ganze Zahl sein und können nach einer Ausführungsform verschiedenartig verändert werden. Zum Beispiel kann ein Speicherblock eine Löscheinheit sein und eine Seite kann eine Schreib- und Leseeinheit sein. In einigen Ausführungsformen kann das Speicherzellenarray MCA eine Mehrzahl an Ebenen, eine Mehrzahl an Kontakten oder eine Mehrzahl an Chips enthalten. In einer Ausführungsform kann der NVM 140 eine Flashspeichervorrichtung, zum Beispiel eine NAND-Flashspeichervorrichtung, enthalten. Allerdings ist/sind das/die erfinderische/n Konzept/e nicht darauf beschränkt und der NVM 140 kann eine resistive Speichervorrichtung, wie einen resistiven RAM (rRAM), einen Phasenübergangs-RAM (PRAM) und einen magnetischen Ram (MRAM) enthalten.
  • In einer Ausführungsform können der durch Verwenden des Schlüssels KEY erzeugte Schlüsselstrom und der durch Verwenden des Werts VALUE erzeugte Wertstrom in unterschiedlichen Blöcken (BLK1 bis BLKz) oder auf unterschiedlichen Seiten (PG1 bis PGk) eines selben Speicherblocks, zum Beispiel eines ersten Speicherblocks BLK1, gespeichert sein.
  • Das Speichersystem 10 kann zum Beispiel als, durch, unter Verwendung von oder in einem Computer (PC), einem Datenserver, einem mit einem Netzwerk gekoppelten Speicher, einer Internet-der-Dinge(IoT)-Vorrichtung oder einer tragbaren elektronischen Vorrichtung umgesetzt sein. Die tragbare elektronische Vorrichtung kann enthalten: einen Laptop, ein Mobiltelefon, ein Smartphone, ein Tablet, einen Personal Digital Assistant (PDA), einen Enterprise Digital Assistant (EDA), eine digitale Standbildkamera, eine digitale Videokamera, eine Audiovorrichtung, einen tragbaren Multimedia-Player (PMP), eine persönliche Navigationsvorrichtung (PND), einen MP3-Player, eine Handspielekonsole, ein E-Book, eine tragbare Vorrichtung und Ähnliches.
  • In einigen Ausführungsformen kann die Speichervorrichtung 100 ein in einer elektronischen Vorrichtung eingebetteter interner Speicher sein oder jenen enthalten. Zum Beispiel kann die Speichervorrichtung 100 eine eingebettete Universal-Flash-Speicher(UFS)-Speichervorrichtung oder eine eingebettete Multimediakarte (eMMC) sein oder jene enthalten. In einigen Ausführungsformen kann die Speichervorrichtung 100 ein aus der elektronischen Vorrichtung herausnehmbarer externer Speicher sein oder jenen enthalten. Zum Beispiel kann die Speichervorrichtung 100 eine UFS-Speicherkarte, eine Kompakt-Flash(CF)-Speicherkarte, eine Secure-Digital(SD)-Karte, eine Mikro-SD-Karte, eine Mini-SD-Karte, eine Extreme-Digital(xD)-Karte oder ein Speicherstick sein oder jene enthalten.
  • 2 ist ein Blockdiagramm, das die Speichervorrichtung 100 nach einer Ausführungsform darstellt. 2 stellt ein Betriebsverfahren in dem Fall dar, in dem die Speichervorrichtung 100 einen Wert-Schlüssel-Befehl CMD_KV zum Speichern des Schlüssels KEY und des Werts VALUE empfängt.
  • Bezugnehmend auf 2 kann die Speichervorrichtung 100 den Schlüssel-Wert-Manager 120, den Datenpuffer 130 und den NVM 140 enthalten. Der Schlüssel-Wert-Manager 120 kann eine Schlüssel-Wert-Extraktionsvorrichtung 121 und ein Verdichtungsmodul 122 enthalten. Die Schlüssel-Wert-Extraktionsvorrichtung 121 und das Verdichtungsmodul 122 können zum Beispiel unter Verwendung von getrennten Software-Algorithmen, die durch einen Prozessor, wie einem Mikroprozessor, ausgeführt werden, umgesetzt werden. Die Schlüssel-Wert-Extraktionsvorrichtung 121 kann den Schlüssel KEY und den Wert VALUE, die im Schlüssel-Wert-Befehl CMD_KV enthalten sind, extrahieren. Die Schlüssel-Wert-Extraktionsvorrichtung 121 kann den extrahierten Schlüssel KEY in einem Schlüsselpuffer 131 des Datenpuffers 130 speichern und den extrahierten Wert VALUE in einem Wertpuffer 132 des Datenpuffers 130 speichern. In einem Ausführungsbeispiel können der Schlüsselpuffer 131 und der Wertpuffer 132 mit getrennten Speicherelementen, wie physikalisch getrennten Speicherelementen, konfiguriert sein. In einer weiteren Ausführungsform können der Schlüsselpuffer 131 und der Wertpuffer 132 als unterschiedliche Bereiche im Datenpuffer 130, wie physikalisch getrennten Bereichen, konfiguriert sein.
  • In einer Ausführungsform kann die Schlüssel-Wert-Extraktionsvorrichtung 121 eine physikalische Adresse des im Schlüsselpuffer 131 gespeicherten Schlüssels KEY durch Verwenden einer Zuordnungstabelle verwalten. Zum Beispiel kann die Zuordnungstabelle als eine Hash-Tabelle erzeugt werden, die einen Hash-Schlüssel, der dem Schlüssel KEY entspricht, als einen Zuordnungsindex für den Schlüssel KEY speichert.
  • Wenn die im Schlüsselpuffer 131 gespeicherte Menge an Schlüsseln KEY gleich oder größer ist als eine gewisse Menge an Daten, wie eine vorbestimmte Schwellenmenge an Daten, kann die Schlüssel-Wert-Extraktionsvorrichtung 121 einen Schlüsselstrom ST_KEY basierend auf der Mehrzahl an Schlüsseln KEY erzeugen. In einer Ausführungsform kann die Schlüssel-Wert-Extraktionsvorrichtung 121 den Schlüsselstrom ST_KEY durch sequenzielles Anordnen der Mehrzahl an Schlüsseln KEY erzeugen. In einer weiteren Ausführungsform kann die Schlüssel-Wert-Extraktionsvorrichtung 121 den Schlüsselstrom ST_KEY durch Kombinieren der Mehrzahl an Schlüsseln KEY mit Indizes für die Werte VALUE, die jeweils der Mehrzahl an Schlüsseln KEY entsprechen, erzeugen. Das heißt, in der letzteren Ausführungsform kann jeder Schlüssel KEY für jedes Schlüssel-Wert-Paar mit einem Index, der dem Wert VALUE entspricht, derart kombiniert werden, dass die Mehrzahl an Schlüsseln gemeinsam mit Indizes, die den Werten VALUE entsprechen, kombiniert werden, um den Schlüsselstrom ST_KEY zu erzeugen. Die Schlüssel-Wert-Extraktionsvorrichtung 121 kann den erzeugten Schlüsselstrom ST_KEY in einem ersten Bereich AR1 des NVM 140 speichern.
  • In einer Ausführungsform kann die Schlüssel-Wert-Extraktionsvorrichtung 121 die physikalischen Adressen des ersten Bereichs AR1 des gespeicherten Schlüsselstrom ST_KEY durch Verwenden einer Schlüsseltabelle verwalten. In einer Ausführungsform kann die Schlüsseltabelle als eine Hash-Tabelle erzeugt werden, die einen gehashten Schlüssel, der jedem Schlüssel KEY des Schlüsselstroms ST_KEY entspricht, als einen Zuordnungsindex für den Schlüssel KEY speichert.
  • Wenn die im Wertpuffer 132 gespeicherte Menge an Werten VALUE gleich oder größer ist als eine gewisse Menge an Daten, wie eine vorbestimmte Schwellenmenge an Daten, kann die Schlüssel-Wert-Extraktionsvorrichtung 121 einen Wertstrom ST_VAL basierend auf der Mehrzahl an Werten VALUE erzeugen. Zum Beispiel kann die Schlüssel-Wert-Extraktionsvorrichtung 121 den Wertstrom ST_VAL durch sequenzielles Anordnen der Mehrzahl an Werten VALUE erzeugen. Die Schlüssel-Wert-Extraktionsvorrichtung 121 kann den erzeugten Wertstrom ST_VAL in einem zweiten Bereich AR2 des NVM 140 speichern. In einer Ausführungsform kann die Schlüssel-Wert-Extraktionsvorrichtung 121 die physikalische Adresse des zweiten Bereichs AR2 des gespeicherten Wertstroms ST_VAL durch Verwenden einer Werttabelle verwalten.
  • 3 ist ein Blockdiagramm, das eine Speichervorrichtung nach einer Ausführungsform darstellt. 3 stellt ein Betriebsverfahren in dem Fall dar, in dem die Speichervorrichtung 100 einen Verdichtungsbefehl CMD_CP für die Verdichtungsoperation empfängt. Bereits mit Bezug auf 2 gegebene Beschreibungen sind weggelassen.
  • Bezugnehmend auf 3 kann die Speichervorrichtung 100 den Schlüssel-Wert-Manager 120, den Datenpuffer 130 und den NVM 140 enthalten. Der Schlüssel-Wert-Manager 120 kann die Schlüssel-Wert-Extraktionsvorrichtung 121 und das Verdichtungsmodul 122 enthalten.
  • Das Verdichtungsmodul 122 kann die Verdichtungsoperation als Reaktion auf den Verdichtungsbefehl CMD_CP an einer Mehrzahl an Schlüsselströmen, die einen ersten Schlüsselstrom ST_KEY1 und einen zweiten Schlüsselstrom ST_KEY2 enthält, die im NVM 140 gespeichert sind, durchführen. Zum Beispiel kann die Verdichtungsoperation eine Operation zum Komprimieren von Daten in einer Datenstruktur, die auf einem langstrukturierten Zusammenführ(LSM)-Baum basiert, bedeuten. Der ungültige Schlüssel KEY kann in der Verdichtungsoperation aus den Schlüsseln KEY im ersten Schlüsselstrom ST_KEY1 und im zweiten Schlüsselstrom ST_KEY2, die aus dem NVM 140 gelesen werden, gelöscht werden.
  • Das Verdichtungsmodul 122 kann den ersten Schlüsselstrom ST_KEY1 und den zweiten Schlüsselstrom ST_KEY2 aus dem NVM 140 lesen und kann einen ungültigen Schlüssel KEY unter dem ersten Schlüsselstrom ST_KEY1 und dem zweiten Schlüsselstrom ST_KEY2 basierend auf den Informationen zum ungültigen Schlüssel Info_IK, die zusammen mit dem Verdichtungsbefehl CMD_CP empfangen werden, bestimmen. In einem Beispiel kann der ungültige Schlüssel KEY einen Schlüssel KEY enthalten, der einem Wert VALUE entspricht, der einen Löschbefehl vom Host 200 empfangen hat. In einigen Ausführungsformen können die Informationen zum ungültigen Schlüssel Info_IK mehrere Benachrichtigungen von ungültigen Schlüsseln KEY enthalten, sodass mehrere der ungültigen Schlüssel KEY aus dem ersten Schlüsselstrom ST_KEY1 und dem zweiten Schlüsselstrom ST_KEY2, die aus dem NVM 140 gelesen werden, basierend auf den Informationen zum ungültigen Schlüssel Info_IK entfernt werden.
  • Das Verdichtungsmodul 122 kann einen zusammengeführten Schlüsselstrom ST_MK durch Zusammenführen von lediglich gültigen Schlüsseln KEY, die im ersten Schlüsselstrom ST_KEY1 und im zweiten Schlüsselstrom ST_KEY2 enthalten sind, erzeugen. Das Verdichtungsmodul 122 kann den zusammengeführten Schlüsselstrom ST_MK in den NVM 140 schreiben.
  • Wenn die Verdichtungsoperation durchgeführt wird, kann die Speichervorrichtung 100 die Verdichtungsoperation durch Lesen von lediglich dem ersten Schlüsselstrom ST_KEY1 und dem zweiten Schlüsselstrom ST_KEY2 ohne Lesen der Werte VALUE mit einer relativ großen Menge an Daten durchführen. Dementsprechend kann die Menge an Datenzugriffen auf den NVM 140 reduziert werden. Zusätzlich kann die Speichervorrichtung 100 nach einer Ausführungsform der vorliegenden Offenbarung einen Zeit- und Betriebsspeicher, der für die Verdichtungsoperation erforderlich ist, durch Durchführen der Verdichtungsoperation basierend auf den vom Host 200 empfangenen Informationen zum ungültigen Schlüssel Info_IK ohne einen Bedarf zum Analysieren von einer oder mehreren Tabellen (zum Beispiel der Schlüsseltabelle KT oder einer Werttabelle), die im Datenpuffer 130 gespeichert sind, reduzieren.
  • Das Verdichtungsmodul 122 kann eine Gültigkeit des ungültigen Schlüssels KEY, die ein Ziel der Verdichtungsoperation ist, aktualisieren. In einer Ausführungsform kann das Verdichtungsmodul 122 die Schlüsseltabelle KT, die Informationen zum ungültigen Schlüssel KEY enthält, aus dem Datenpuffer 130 lesen und kann die Schlüsseltabelle basierend auf den Informationen zum ungültigen Schlüssel Info_IK aktualisieren. Das Verdichtungsmodul 122 kann die aktualisierte Schlüsseltabelle KT_udt im Datenpuffer 130 speichern. Der ungültige Schlüssel KEY kann aus der aktualisierten Schlüsseltabelle KT_udt im Datenpuffer 130 basierend auf der Verdichtungsoperation weggelassen werden. In einigen Ausführungsformen können mehrere der ungültigen Schlüssel KEY für eine oder mehrere Verdichtungsoperationen basierend auf einer oder mehreren Instanzen der Informationen zum ungültigen Schlüssel Info_IK aus der Schlüsseltabelle KT gelöscht werden.
  • 4 ist ein Flussdiagramm, das ein Betriebsverfahren einer Speichervorrichtung nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 3 und 4 kann die Speichervorrichtung 100 den Verdichtungsbefehl CMD_CP und die Informationen zum ungültigen Schlüssel Info_IK empfangen (S110). Die Speichervorrichtung 100 kann die Verdichtungsoperation basierend auf den empfangen Informationen zum ungültigen Schlüssel Info_IK durchführen (S120). In einer Ausführungsform kann die Speichervorrichtung 100 mehrere der ungültigen Schlüssel KEY basierend auf den Informationen zum ungültigen Schlüssel KEY unter der Mehrzahl an Schlüsseln KEY, die im ersten Schlüsselstrom ST_KEY1 und im zweiten Schlüsselstrom ST_KEY2, die im NVM 140 gespeichert sind, enthalten sind, bestimmen. Die Speichervorrichtung 100 kann den zusammengeführten Schlüsselstrom ST_MK durch Zusammenführen von lediglich gültigen Schlüsseln KEY aus dem ersten Schlüsselstrom ST_KEY1 und dem zweiten Schlüsselstrom ST_KEY2 und Ausschließen eines oder mehrerer ungültiger Schlüssel KEY basierend auf den Informationen zum ungültigen Schlüssel Info_IK erzeugen.
  • Die Speichervorrichtung 100 kann den durch die Verdichtungsoperation erzeugten zusammengeführten Schlüsselstrom ST_MK im NVM 140 speichern (S130). In einer Ausführungsform kann die Speichervorrichtung 100 den ersten Schlüsselstrom ST_KEY1 und den zweiten Schlüsselstrom ST_KEY2, welche die Ziele der Verdichtungsoperation sind, aus dem NVM 140 löschen, nachdem der zusammengeführte Schlüsselstrom ST_MK gespeichert worden ist. Der zusammengeführte Schlüsselstrom ST_MK kann gültige Schlüssel KEY enthalten und nicht einen oder mehrere ungültige Schlüssel KEY, die basierend auf einer oder mehreren Verdichtungsoperationen weggelassen werden. Der zusammengeführte Schlüsselstrom ST_MK kann Daten enthalten, die aktualisiert oder korrigiert werden, um die Informationen zum ungültigen Schlüssel Info_IK wiederzugeben, verglichen mit Daten des ersten Schlüsselstroms ST_KEY1 und des zweiten Schlüsselstroms ST_KEY2.
  • 5 ist ein Schaltplan, der einen in einem Speicherzellenarray enthaltenen Speicherblock nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 5 kann ein Speicherzellenarray (zum Beispiel MCA aus 1) ein Speicherzellenarray von vertikalen NAND-Flashspeichern sein. Das Speicherzellenarray kann eine Mehrzahl an Speicherblöcken enthalten. Jeder Speicherblock BLKO kann enthalten: eine Mehrzahl an NAND-Zellenketten (NS11 bis NS33), eine Mehrzahl an Wortleitungen (WL1 bis WL8), eine Mehrzahl an Bitleitungen (BL1 bis BL3), eine Mehrzahl an Masse-Auswahlleitungen (GSL1 bis GSL3), eine Mehrzahl an Ketten-Auswahlleitungen (SSL1 bis SSL3) und eine gemeinsame Source-Leitung CSL. In diesem Fall können die Anzahl an NAND-Zellenketten, die Anzahl an Wortleitungen WL, die Anzahl an Bitleitungen BL, die Anzahl an Masse-Auswahlleitungen GSL und die Anzahl an Ketten-Auswahlleitungen SSL nach einer Ausführungsform variieren.
  • Die NAND-Zellenketten (NS11, NS21 und NS31) können zwischen der ersten Bitleitung BL1 und der gemeinsamen Source-Leitung CSL sein. Die NAND-Zellenketten (NS12, NS22 und NS32) können zwischen der zweiten Bitleitung BL2 und der gemeinsamen Source-Leitung CSL sein. Die NAND-Zellenketten (NS13, NS23 und NS33) können zwischen der dritten Bitleitung BL3 und der gemeinsamen Source-Leitung CSL sein. Jede NAND-Zellenkette (zum Beispiel NS11) kann einen Zellenketten-Auswahltransistor SST, eine Mehrzahl an Speicherzellen (MC1 bis MC8) und einen Masse-Auswahltransistor GST enthalten, die in Reihe verbunden sind.
  • Zellenketten, die mit einer Bitleitung gemeinsam verbunden sind, können eine Spalte ausbilden. Zum Beispiel können die Zellenketten (NS11, NS21 und NS31), die mit der ersten Bitleitung BL1 gemeinsam verbunden sind, einer ersten Spalte entsprechen. Die Zellenketten (NS12, NS22 und NS32), die mit der zweiten Bitleitung BL2 gemeinsam verbunden sind, können einer zweiten Spalte entsprechen. Die Zellenketten (NS13, NS23 und NS33), die mit der dritten Bitleitung BL3 gemeinsam verbunden sind, können einer dritten Spalte entsprechen.
  • Die mit einer Zellenketten-Auswahlleitung verbundenen Zellenketten können eine Reihe ausbilden. Zum Beispiel können die Zellenketten (NS11, NS12 und NS13), die mit der ersten Zellenketten-Auswahlleitung SSL1 verbunden sind, einer ersten Reihe entsprechen. Die Zellenketten (NS21, NS22 und NS23), die mit der zweiten Zellenketten-Auswahlleitung SSL2 verbunden sind, können einer zweiten Reihe entsprechen. Die Zellenketten (NS31, NS32 und NS33), die mit der dritten Zellenketten-Auswahlleitung SSL3 verbunden sind, können einer dritten Reihe entsprechen.
  • Der Zellenketten-Auswahltransistor SST kann mit den entsprechenden Zellenketten-Auswahlleitungen (SSL1 bis SSL3) verbunden sein. Die Mehrzahl an Speicherzellen (MC1 bis MC8) kann jeweils mit den entsprechenden Wortleitungen (WL1 bis WL8) verbunden sein. Der Masse-Auswahltransistor GST kann mit den entsprechenden Masse-Auswahlleitungen (GSL1 bis GSL3) verbunden sein. Der Zellenketten-Auswahltransistor SST kann mit den entsprechenden Bitleitungen (BL1 bis BL3) verbunden sein. Der Masse-Auswahltransistor GST kann mit der gemeinsamen Source-Leitung CSL verbunden sein.
  • Wortleitungen auf demselben Niveau (zum Beispiel WL1) können gemeinsam miteinander verbunden sein, während die Ketten-Auswahlleitungen (SSL1 bis SSL3) voneinander entfernt sind und Masse-Auswahlleitungen (GSL1 bis GSL3) voneinander entfernt sind. Wenn zum Beispiel die Speicherzellen, die mit der ersten Wortleitung WL1 verbunden sind und den Zellenketten (NS11, NS12 und NS13) angehören, programmiert werden, können die erste Wortleitung WL1 und die erste Ketten-Auswahlleitung SSL1 ausgewählt werden. Die Masse-Auswahlleitungen (GSL1 bis GSL3) können gemeinsam miteinander verbunden sein.
  • Die Speichervorrichtung 100 nach einer Ausführungsform der vorliegenden Offenbarung kann Schlüssel KEY und Werte VALUE in unterschiedlichen Bereichen des Speicherzellenarrays MCA speichern. In einem Beispiel kann der Schlüssel KEY auf einer ersten Seite, die mit der ersten Wortleitung WL1 des Speicherblocks BLK0 verbunden ist, gespeichert sein. Der Wert VALUE kann auf einer zweiten Seite, die mit der vierten Wortleitung WL4 des Speicherblocks BLK0 verbunden ist, gespeichert sein.
  • 6 ist eine Perspektivansicht, die den Speicherblock BLK0 aus 5 darstellt.
  • Bezugnehmend auf 6 kann jeder in einem Speicherzellenarray (zum Beispiel MCA aus 1) enthaltene Speicherblock in eine vertikale Richtung in Bezug auf ein Substrat SUB ausgebildet sein. In 6 ist der Speicherblock BLK0 derart dargestellt, dass er zwei Auswahlleitungen (GSL und SSL), acht Wortleitungen (WL1 bis WL8) und drei Bitleitungen (BL1 bis BL3) enthält, allerdings können die Anzahlen derselben tatsächlich größer oder kleiner als jene Anzahlen sein.
  • Das Substrat SUB kann aus einem ersten Leitfähigkeitstyp (zum Beispiel einem p-Typ) bestehen. Die gemeinsamen Source-Leitungen CSL darin erstrecken sich in eine erste Richtung (zum Beispiel eine Y-Richtung) und können aus einem zweiten Leitfähigkeitstyp (zum Beispiel einem n-Typ) bestehen. Eine Mehrzahl an Isolierschichten IL kann sequenziell in eine dritte Richtung (zum Beispiel eine Z-Richtung) angeordnet sein. Die Mehrzahl an Isolierschichten ist in einem Bereich des Substrats SUB zwischen zwei benachbarten Source-Leitungen CSL in eine zweite Richtung (zum Beispiel eine X-Richtung) angeordnet und erstreckt sich individuell in die erste Richtung. Die Mehrzahl an Isolierschichten IL kann durch denselben Abstand oder durch mindestens einen vorbestimmten Mindest-Schwellenabstand in der dritten Richtung voneinander entfernt sein. Zum Beispiel kann die Mehrzahl an Isolierschichten IL ein Isoliermaterial, wie Siliziumoxid, enthalten.
  • Eine Mehrzahl an Säulen P kann sequenziell in dem Bereich des Substarts SUB in die zweite Richtung angeordnet sein. Die Mehrzahl an Säulen erstreckt sich individuell in die dritte Richtung und ist zwischen zwei benachbarten gemeinsamen Source-Leitungen CSL in die zweite Richtung angeordnet. Die Mehrzahl an Säulen P durchdringt dir Mehrzahl an Isolierschichten IL in der dritten Richtung. Zum Beispiel kann die Mehrzahl an Säulen P das Substrat SUB durch die Mehrzahl an Isolierschichten IL berühren. Eine Oberflächenschicht S einer jeden Säule P kann ein Siliziummaterial des ersten Typs enthalten und kann als ein Kanalbereich fungieren. Eine Innenschicht I einer jeden Säule P kann ein Isoliermaterial, wie Siliziumoxid, oder einen Luftspalt enthalten.
  • Eine Ladungsspeicherschicht CS kann entlang freigelegten Oberflächen der Isolierschichten IL, der Säulen P und des Substrats SUB im Bereich zwischen zwei benachbarten gemeinsamen Source-Leitungen CSL vorgesehen sein. Die Ladungsspeicherschicht CS kann eine Gate-Isolierschicht (die alternativ als eine Tunnelisolierschicht bezeichnet werden kann), eine Ladungseinfangschicht und eine Sperrisolierschicht enthalten. Zum Beispiel kann die Ladungsspeicherschicht CS eine Oxid-Nitrid-Oxid(ONO)-Struktur aufweisen. Zusätzlich kann eine Gate-Elektrode GE die Auswahlleitungen GSL und SSL und die Wortleitungen (WL1 bis WL8) enthalten und kann in einem Bereich zwischen zwei benachbarten gemeinsamen Source-Leitungen CSL auf einer freigelegten Oberfläche der Ladungsspeicherschicht CS vorgesehen sein.
  • Drains und Drain-Kontakte DR können auf einer jeden der Mehrzahl an Säulen P vorgesehen sein. Zum Beispiel können die Drains oder die Drain-Kontakte DR ein mit Verunreinigungen des zweiten Leitfähigkeitstyps dotiertes Siliziummaterial enthalten. Die Bitleitungen (BL1 bis BL3), die sich in die zweite Richtung erstrecken, können auf den Drains DR vorgesehen sein. Die Bitleitungen (BL1 bis BL3) sind durch denselben Abstand oder mindestens einen vorbestimmten Mindest-Schwellenabstand in der ersten Richtung voneinander entfernt.
  • 7 ist ein konzeptuelles Diagramm, das eine Operation des Schlüssel-Wert-Managers 120 nach einer Ausführungsform darstellt. 7 stellt eine Operation dar, in welcher der Schlüssel-Wert-Manager 120 den Schlüsselstrom ST_KEY und den Wertstrom ST_VAL basierend auf dem Schlüssel-Wert-Befehl CMD_KV erzeugt.
  • Bezugnehmend auf 2 und 7 kann der Schlüssel-Wert-Manager 120 Schlüssel-Wert-Paare KVP empfangen und die Schlüssel KEY von den Werten VALUE, welche jeweils in den Schlüssel-Wert-Paaren KVP enthalten sind, trennen. Der Schlüssel-Wert-Manager 120 kann den Index Idx, der dem Wert VALUE entspricht, mit dem Schlüssel KEY kombinieren und den mit dem Index Idx kombinierten Schlüssel KEY im Datenpuffer 130 speichern. Zusätzlich kann der Schlüssel-Wert-Manager 120 den Schlüsselstrom ST_KEY durch Zusammenführen der Mehrzahl an Schlüsseln KEY, die jeweils mit den entsprechenden Indizes Idx für die entsprechenden Werte VALUE kombiniert sind, erzeugen. Die Schlüssel-Wert-Manager 120 kann den erzeugten Schlüsselstrom ST_KEY im ersten Bereich AR1 des NVM 140 speichern.
  • In 7 ist ein Schlüsselstrom ST:KEY derart dargestellt, dass er einem Index Idx entspricht, dies dient allerdings der Einfachheit der Beschreibung. Der Schlüsselstrom ST_KEY nach einer Ausführungsform der vorliegenden Offenbarung kann eine Mehrzahl an Index-Schlüssel-Paaren enthalten, in denen die Indizes Idx eins-zu-eins mit entsprechenden Schlüsseln KEY kombiniert sind.
  • Der Schlüssel-Wert-Manager 120 kann die Schlüsseltabelle KT durch Verwenden einer physikalischen Seitennummer (PPN), auf welcher der Schlüsselstrom ST_KEY im NVM 140 gespeichert ist, erzeugen. Mit anderen Worten kann die Schlüsseltabelle KT den Schlüsselstrom ST_KEY, die physikalische Adresse des NVM 140, in dem der Schlüsselstrom ST:KEY gespeichert ist, und den Index Idx oder die Indizes Idx, die dem Schlüsselstrom ST_KEY entsprechen, speichern. In einer Ausführungsform kann die Schlüsseltabelle KT ferner ein Gültigkeitsbit enthalten, das angibt, ob der Schlüsselstrom ST_KEY gültig ist.
  • Der Schlüssel-Wert-Manager 120 kann Werte VALUE, die vom Schlüssel-Wert-Paar KVP getrennt sind, im Datenpuffer 130 speichern, den Wertstrom ST_VAL durch Zusammenführen der im Datenpuffer 130 gespeicherten Mehrzahl an Werten VALUE erzeugen und den erzeugten Wertstrom ST_VAL im NVM 140 speichern.
  • Der Schlüssel-Wert-Manager 120 kann eine Werttabelle VT durch Verwenden der PPN, auf welcher der Schlüsselstrom ST_VAL im NVM 140 gespeichert ist, erzeugen. Mit anderen Worten kann die Werttabelle VT den Wertstrom ST_VAL und die physikalische Adresse des NVM 140, in dem der Wertstrom ST_VAL gespeichert ist, speichern. In einer Ausführungsform kann die Werttabelle VT ferner das Gültigkeitsbit enthalten, das angibt, ob der Wert VALUE gültig ist.
  • 8 ist ein konzeptuelles Diagramm, das eine Operation des Schlüssel-Wert-Managers 120 nach einer Ausführungsform darstellt. 8 stellt ein Diagramm dar, in dem der Schlüssel-Wert-Manager 120 die Verdichtungsoperation durchführt.
  • Bezugnehmend auf 3 und 8 kann der Schlüssel-Wert-Manager 120 eine Operation durchführen, die das Lesen eines ungültigen Schlüsselstrom ST_IK aus dem ersten Bereich AR1 des NVM 140 enthält. Die ungültigen Schlüsselströme ST_IK können einen Schlüsselstrom bedeuten, der einen ungültigen Schlüssel KEY enthält. In einer Ausführungsform kann der Schlüssel-Wert-Manager 120 die Informationen zum ungültigen Schlüssel Info_IK vom Host (200 aus 1) empfangen. Der Schlüssel-Wert-Manager 120 kann den ungültigen Schlüsselstrom ST_KEY basierend auf den empfangenen Informationen zum ungültigen Schlüssel Info_IK bestimmen.
  • In einem Beispiel können die Informationen zum ungültigen Schlüssel Info_IK die dem ungültigen Schlüssel entsprechenden Indexinformationen Idx_IK enthalten. Der Schlüssel-Wert-Manager 120 kann den ungültigen Schlüssel KEY aus der Schlüsseltabelle KT durch Verwenden der dem ungültigen Schlüssel entsprechenden Indexinformationen Idx_IK bestimmen.
  • Der Schlüssel-Wert-Manager 120 kann mindestens einen zusammengeführten Schlüsselstrom ST_MK durch Zusammenführen des gelesenen ungültigen Schlüsselstroms ST_IK erzeugen. In einem Beispiel kann der Schlüssel-Wert-Manager 120 den zusammengeführten Schlüsselstrom ST_MK durch Löschen des ungültigen Schlüssels KEY basierend auf den Informationen zum ungültigen Schlüssel Info_IK und Extrahieren von lediglich gültigen Schlüsseln erzeugen. Dementsprechend kann der zusammengeführte Schlüsselstrom ST_MK den Schlüsselstrom ST_KEY, der lediglich gültige Schlüssel KEY enthält, enthalten.
  • Der Schlüssel-Wert-Manager 120 kann den zusammengeführten Schlüsselstrom ST_MK in den ersten Bereich AR1 des NVM 140 schreiben. Zusätzlich kann der Schlüssel-Wert-Manager 120 den ungültigen Schlüsselstrom ST_IK nach dem Schreiben des zusammengeführten Schlüsselstroms ST_MK löschen und das Gültigkeitsbit, das dem ungültigen Schlüsselstrom ST_IK entspricht, zu einem aktualisierten Gültigkeitsbit in der Schlüsseltabelle KT aktualisieren.
  • Der Schlüssel-Wert-Manager 120 kann die Werttabelle VT durch Verwenden von ungültigen Werten VALUE, die ungültigen Schlüsseln KEY entsprechen, aktualisieren. In einer Ausführungsform kann der Schlüssel-Wert-Manager 120 die Werttabelle VT durch Umwandeln der Gültigkeitsbits, die den ungültigen Werten VALUE der Werttabelle VT entsprechen, zu aktualisierten Gültigkeitsbits, die zeigen, dass die entsprechenden Werte VALUE ungültig sind, aktualisieren.
  • In einer Ausführungsform kann der Schlüssel-Wert-Manager 120 eine Speicherbereinigungsoperation für die ungültigen Werte VALUE basierend auf den Gültigkeitsbits der Werttabelle VT durchführen. Da die Speicherbereinigungsoperation basierend auf der Werttabelle VT durchgeführt wird, können die ungültigen Werte VALUE aus dem zweiten Bereich AR2 gelöscht werden.
  • Der Schlüssel-Wert-Manager 120 nach einer Ausführungsform der vorliegenden Offenbarung kann eine Operation zum Bestimmen des ungültigen Schlüssels KEY durch Verwenden von Informationen zum ungültigen Schlüssel Info_IK, die vom Host empfangen werden, wenn die Verdichtungsoperation durchgeführt wird, minimieren. Dementsprechend kann eine für die Verdichtungsoperation erforderliche Daten-Eingabe/Ausgabe-Geschwindigkeit erhöht werden.
  • 9 ist ein Flussdiagramm zur Erläuterung eines Betriebsverfahrens des Schlüssel-Wert-Managers 120 nach einer Ausführungsform. 9 stellt ein Betriebsverfahren dar, in dem der Schlüssel-Wert-Manager 120 die Verdichtungsoperation durchführt.
  • Bezugnehmend auf 3 und 9 kann der Schlüssel-Wert-Manager 120 die Mehrzahl an Schlüsselströmen ST_KEY aus dem NVM 140 lesen (S210). In einer Ausführungsform kann die Mehrzahl an Schlüsselströmen ST_KEY, die gelesen wird, mindestens einen ungültigen Schlüssel KEY enthalten. Der Schlüssel-Wert-Manager 120 kann durch Zusammenführen der Mehrzahl an Schlüsselströmen ST_KEY basierend auf den Informationen zum ungültigen Schlüssel Info_IK einen neuen Schlüsselstrom ST_KEY erzeugen (S220). In einem Beispiel kann der Schlüssel-Wert-Manager 120 die Indexinformationen, die dem ungültigen Schlüssel Info_IK entsprechen, als die dem ungültigen Schlüssel entsprechenden Indexinformationen Idx_IK vom Host 200 empfangen. Der Schlüssel-Wert-Manager 120 kann den ungültigen Schlüssel KEY basierend auf den dem ungültigen Schlüssel entsprechenden Indexinformationen Idx_IK bestimmen. Zusätzlich kann der Schlüssel-Wert-Manager 120 den zusammengeführten Schlüsselstrom ST_MK durch Entfernen des in der Mehrzahl an Schlüsselströmen ST_KEY enthaltenen ungültigen Schlüssels KEY und Zusammenführen von lediglich den gültigen Schlüsseln KEY erzeugen.
  • Der Schlüssel-Wert-Manager 120 kann den zusammengeführten Schlüsselstrom ST_MK im NVM 140 speichern (S230). Der Schlüssel-Wert-Manager 120 kann die ungültigen Schlüsselströme ST_KEY aus dem NVM 140 löschen (S240), nachdem der zusammengeführte Schlüsselstrom ST_MK gespeichert worden ist. In einer Ausführungsform kann der Schlüssel-Wert-Manager 120 die Schlüsseltabelle KT derart aktualisieren, dass das Gültigkeitsbit, das dem ungültigen Schlüsselstrom ST_IK entspricht, eine Ungültigkeit angibt. Zusätzlich kann der Schlüssel-Wert-Manager 120 die Werttabelle VT durch Verwenden der Werte VALUE, die den ungültigen Schlüsseln KEY entsprechen, aktualisieren.
  • 10 ist ein Diagramm, das die Schlüsseltabelle KT nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 3 und 10 kann die Schlüsseltabelle KT den Schlüssel KEY, den Index Idx, eine physikalische Adresse ADDR (zum Beispiel PPN1, PPN2, PPN3 oder PPN4), in welcher der Schlüssel KEY gespeichert ist, und ein Gültigkeitsbit Vld enthalten. In einem Beispiel kann ein erster Schlüssel KEY1 „1“ als den Index Idx zugeordnet bekommen und kann an einer ersten physikalischen Adresse PPN1 des NVM 140 gespeichert werden. Zusätzlich, wenn der dem ersten Schlüssel KEY1 entsprechende Wert VALUE als gültig bestimmt wird, kann der erste Schlüssel KEY1 „1“ als das Gültigkeitsbit Vld aufweisen.
  • Ein zweiter Schlüssel KEY2 kann „2“ als den Index Idx zugeordnet bekommen und kann an einer zweiten physikalischen Adresse PPN2 des NVM 140 gespeichert werden. Zusätzlich, wenn der dem zweiten Schlüssel KEY2 entsprechende Wert VALUE als gültig bestimmt wird, kann der zweite Schlüssel KEY2 „1“ als das Gültigkeitsbit Vld aufweisen.
  • Ein dritter Schlüssel KEY3 kann „3“ als den Index Idx zugeordnet bekommen und kann an einer dritten physikalischen Adresse PPN3 des NVM 140 gespeichert werden. Zusätzlich, wenn der dem dritten Schlüssel KEY3 entsprechende Wert VALUE als ungültig bestimmt wird, kann der dritte Schlüssel KEY3 „0“ als das Gültigkeitsbit Vld aufweisen.
  • Ein vierter Schlüssel KEY4 kann „4“ als den Index Idx zugeordnet bekommen und kann an einer vierten physikalischen Adresse PPN4 des NVM 140 gespeichert werden. Zusätzlich, wenn der dem vierten Schlüssel KEY4 entsprechende Wert VALUE als gültig bestimmt wird, kann der vierte Schlüssel KEY4 „1“ als das Gültigkeitsbit Vld aufweisen.
  • In einem Beispiel kann der Schlüssel-Wert-Manager 120 den Verdichtungsbefehl CMP_CP zusammen mit „2“ als den dem ungültigen Schlüssel entsprechenden Indexinformationen Idx_IK vom Host 200 empfangen. Der Schlüssel-Wert-Manager 120 kann das Gültigkeitsbit Vld, das dem zweiten Schlüssel KEY2 mit „2“ als dem Index Idx entspricht, auf „0“ aktualisieren. Der Schlüssel-Wert-Manager 120 kann die Verdichtungsoperation zum Löschen des zweiten Schlüssels KEY2 und des dritten Schlüssels KEY3 durchführen.
  • 11 ist ein Flussdiagramm zur Erläuterung eines Betriebsverfahrens des Schlüssel-Wert-Managers 120 nach einer Ausführungsform.
  • Bezugnehmend auf 3 und 11 kann der Schlüssel-Wert-Manager 120 die den ungültigen Schlüsseln entsprechenden Indexinformationen Idx_IK vom Host 200 empfangen (S310). Der Schlüssel-Wert-Manager 120 kann die Schlüsseltabelle KT basierend auf den empfangenen den ungültigen Schlüsseln entsprechenden Indexinformationen Idx_IK aktualisieren (S320). In einem Beispiel kann der Schlüssel-Wert-Manager 120 das Gültigkeitsbit Vld, das dem ungültigen Schlüssel KEY entspricht, auf ein aktualisiertes Gültigkeitsbit Vld aktualisieren, um basierend auf den den ungültigen Schlüsseln entsprechenden Indexinformationen Idx_IK zu zeigen, dass der Schlüssel KEY der ungültige Schlüssel KEY ist.
  • Der Schlüssel-Wert-Manager 120 kann die Verdichtungsoperation basierend auf einer aktualisierten Schlüsseltabelle KT_udt durchführen (S330). In einem Beispiel kann der Schlüssel-Wert-Manager 120 den zusammengeführten Schlüsselstrom ST_MK durch Zusammenführen von gültigen Schlüsseln KEY und Ausschließen von ungültigen Schlüsseln KEY basierend auf den in der aktualisierten Schlüsseltabelle KT_udt enthaltenen Gültigkeitsbits Vld erzeugen. Der Schlüssel-Wert-Manager 120 kann den zusammengeführten Schlüsselstrom ST_MK im NVM 140 speichern.
  • 12A ist ein Diagramm, das einen Block BLK nach einer Ausführungsform darstellt. 12B ist ein Diagramm, das eine Multi-Zuordnungstabelle MMT nach einer Ausführungsform darstellt. In einem Beispiel kann die Multi-Zuordnungstabelle MMT aus 12B die Schlüsseltabelle KT oder die Werttabelle VT, die oben mit Bezug auf 1 bis 11 beschrieben werden, darstellen.
  • Bezugnehmend auf 12A kann der Block BLK eine Mehrzahl an Speicherzellen (in 12A durch Quadrate dargestellt), die jeweils unterschiedliche PPN aufweisen, enthalten. Die Mehrzahl an Speicherzellen kann gültige Daten DV oder ungültige Daten ID speichern. In einer Ausführungsform können die gültigen Daten VD oder die ungültigen Daten ID den Schlüssel KEY oder den Wert VALUE, die mit Bezug auf 1 bis 11 oben beschrieben werden, enthalten. Zusätzlich können die gültigen Daten VD einen Wert VALUE, für den der Löschbefehl nicht vom Host (200 aus 1) empfangen worden ist, oder einen Schlüssel KEY, der dem Wert VALUE, für den der Löschbefehl nicht empfangen worden ist, entspricht, darstellen. Die ungültigen Daten ID können einen Wert VALUE, für den der Löschbefehl vom Host 200 empfangen worden ist, oder einen Schlüssel KEY, der dem Wert VALUE, für den der Löschbefehl empfangen worden ist, entspricht, darstellen.
  • Der Block BLK kann eine Mehrzahl an Datenteilen speichern und mindestens manche davon können durchgehend geschrieben werden. In dem Beispiel aus 12A können drei Datenteile durchgehend auf die erste physikalische Adresse PPN1 geschrieben werden, drei Datenteile können durchgehend auf die zweite physikalische Adresse PPN2 geschrieben werden, drei Datenteile können durchgehend auf die dritte physikalische Adresse PPN3 geschrieben werden und drei Datenteile können durchgehend auf die vierte physikalische Adresse PPN4 geschrieben werden.
  • Bezugnehmend auf 12B können Speicherpositionen von geschriebenen Datenteilen aus 12A durch Verwenden der Multi-Zuordnungstabelle MMT identifiziert werden. Die Multi-Zuordnungstabelle MMT kann enthalten: eine Adresse ADDR (zum Beispiel eine physikalische Adresse PPN), in der erste Daten unter aufeinanderfolgenden Datenteilen gespeichert sind, und das erste Gültigkeitsbit TD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3, die eine Gültigkeit der in der Adresse ADDR gespeicherten aufeinanderfolgenden Datenteile angeben. Zusätzlich kann die Multi-Zuordnungstabelle MMT den Index Idx, der den geschriebenen Datenteilen entspricht, enthalten. In einem Beispiel können das erste Gültigkeitsbit VD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3 „1“-en enthalten, wenn dazu entsprechende Daten gültig sind, und „0“-en, wenn dazu entsprechende Daten ungültig sind. In einer Ausführungsform kann der Schlüssel-Wert-Manager 120 die Multi-Zuordnungstabelle MMT basierend auf den vom Host 200 empfangenen Informationen zum ungültigen Schlüssel Info_IK aktualisieren.
  • Erneut bezugnehmend auf 12A und 12B, da in der ersten physikalischen Adresse PPN1 gespeicherte aufeinanderfolgende Datenteile die gültigen Daten VD, die ungültigen Daten ID und die gültigen Daten VD sequenziell enthalten können, kann die Multi-Zuordnungstabelle MMT „1“, „0“ und „1“ sequenziell als das erste Gültigkeitsbit VD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3, die jeweils der ersten physikalischen Adresse PPN1 entsprechen, enthalten. Da in der zweiten physikalischen Adresse PPN2 gespeicherte aufeinanderfolgende Datenteile allesamt gültige Daten VD sind, kann die Multi-Zuordnungstabelle MMT alle „1“-en als das erste Gültigkeitsbit VD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3, die jeweils der zweiten physikalischen Adresse PPN2 entsprechen, enthalten.
  • Da in der dritten physikalischen Adresse PPN3 gespeicherte aufeinanderfolgende Datenteile allesamt ungültige Daten ID sind, kann die Multi-Zuordnungstabelle MMT alle „0“-en als das erste Gültigkeitsbit VD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3, die jeweils der dritten physikalischen Adresse PPN3 entsprechen, enthalten. Da in der vierten physikalischen Adresse PPN4 gespeicherte aufeinanderfolgende Datenteile sequenziell die gültigen Daten VD, die gültigen Daten VD und die ungültigen Daten ID sein können, kann die Multi-Zuordnungstabelle MMT „1“, „1“ und ,,0" als das erste Gültigkeitsbit VD1, das zweite Gültigkeitsbit VD2 und das dritte Gültigkeitsbit VD3, die jeweils der vierten physikalischen Adresse PPN4 entsprechen, enthalten.
  • In einer Ausführungsform kann der Schlüssel-Wert-Manager (120 aus 1) die Verdichtungsoperation durch Verwenden der Multi-Zuordnungstabelle MMT durchführen. In einem Beispiel kann der Schlüssel-Wert-Manager 120 die Multi-Zuordnungstabelle MMT basierend auf den vom Host 200 empfangenen Indexinformationen aktualisieren. Wenn ein oder mehrere in den aufeinanderfolgenden Adressen ADDR gespeicherte Schlüssel ungültig sind, kann der Schlüssel-Wert-Manager 120 die Verdichtungsoperation basierend auf der aktualisierten Multi-Zuordnungstabelle MMT durchführen. Wenn zum Beispiel alle in den aufeinanderfolgenden Adressen ADDR gespeicherten Schlüssel ungültig sind, kann der Schlüssel-Wert-Manager 120 die Verdichtungsoperation basierend auf der aktualisierten Multi-Zuordnungstabelle MMT durchführen.
  • In einer Ausführungsform kann der Schlüssel-Wert-Manager (120 aus 2) die Speicherbereinigungsoperation durch Verwenden der Multi-Zuordnungstabelle MMT durchführen. Mit anderen Worten kann der Schlüssel-Wert-Manager 120 durch Verwenden der Multi-Zuordnungstabelle MMT bestimmen, welche Daten (zum Beispiel der Schlüsselstrom ST_KEY oder der Wertstrom ST_VAL) gültig sein. Der Schlüssel-Wert-Manager 120 kann einen gültigen Raum des NVM (140 aus 20) durch Durchführen der Speicherbereinigungsoperation an den gültigen Daten VD sicherstellen.
  • 13 ist ein Flussdiagramm, das ein Betriebsverfahren der Speichervorrichtung 100 nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 1 und 13 kann die Speichervorrichtung 100 Datenkapazitätsinformationen zu den Werten VALUE, die den ungültigen Schlüsseln KEY entsprechen, vom Host 200 empfangen (S410). In einem Beispiel können die Datenkapazitätsinformationen zu den Werten VALUE einer physikalischen Größe, die der Wert VALUE im NVM 140 belegt, entsprechen.
  • Die Speichervorrichtung 100 kann die Speicherbereinigungsoperation basierend auf den empfangenen Datenkapazitätsinformationen durchführen (S420). Die Speichervorrichtung 100 kann die Speicherbereinigungsoperation zum Löschen des Werts VALUE basierend auf den empfangenen Datenkapazitätsinformationen durchführen. Der Wert VALUE, welcher in der Speicherbereinigungsoperation gelöscht wird, entspricht dem Schlüssel KEY, welcher in der Verdichtungsoperation gelöscht worden ist, und wird basierend auf den empfangenen Datenkapazitätsinformationen gelöscht.
  • 14 ist ein Diagramm, das eine Operation des Speichersystems 10 im Laufe der Zeit nach einer Ausführungsform darstellt. 14 stellt ein Diagramm einer Ausführungsform dar, in der das Speichersystem 10 einen Schreibbefehl empfängt.
  • Bezugnehmend auf 14 kann das Speichersystem 10 den Host 200, den Controller 110 und den NVM 140 enthalten. Der Host 200 kann einen ersten Befehl CMD1 zum Schreiben eines ersten Schlüssels KEY1 und eines ersten Werts VAL1 an den Controller 110 ausgeben (T110). Der Controller 110 kann den ersten Schlüssel KEY1 vom ersten Wert VAL1 als Reaktion auf den ersten Befehl CMD1 trennen (T120).
  • Der Controller 110 kann den Schlüsselstrom ST_KEY durch Verwenden des ersten Schlüssels KEY1 und eines zweiten Schlüssels KEY2, der zuvor im Datenpuffer (130 aus 2) gespeichert worden ist, erzeugen. Der Controller 110 kann den Wertstrom ST_VAL durch Verwenden eines ersten Werts VAL1 und eines zweiten Werts VAL2, der zuvor im Datenpuffer (130 aus 1) gespeichert worden ist, erzeugen (T130). In einer Ausführungsform kann der Controller 110 den Schlüsselstrom ST_KEY erzeugen. Der Controller 110 kann den Schlüsselstrom ST_KEY zunächst durch Kombinieren eines ersten Index dx1, der dem ersten Wert VAL1 entspricht, mit dem ersten Schlüssel KEY1 und eines zweiten Index idx2, der dem zweiten Wert VAL2 entspricht, mit dem zweiten Schlüssel KEY2 erzeugen. Der Controller 110 kann den Schlüsselstrom ST_KEY als nächstes durch Kombinierungen des ersten Schlüssels KEY1 und des ersten Index idx1 und des zweiten Schlüssels KEY2 und des zweiten Index idx2 erzeugen.
  • Der Controller 110 kann den erzeugten Schlüsselstrom ST_KEY und den erzeugten Wertstrom ST_VAL im NVM 140 speichern (T140). Der NVM 140 kann den ersten Schlüssel KEY1 in der ersten physikalischen Adresse PPN1 und den zweiten Schlüssel KEY2 in der zweiten physikalischen Adresse PPN2 speichern (T150). Zusätzlich kann der NVM 140 den ersten Wert VAL1 in der dritten physikalischen Adresse PPN3 und den zweiten Wert VAL2 in der vierten physikalischen Adresse PPN4 speichern (T150). In einer Ausführungsform können die erste physikalische Adresse PPN1 und die zweite physikalische Adresse PPN2 physikalisch zusammenhängend sein und die dritte physikalische Adresse PPN3 und die vierte physikalische Adresse PPN4 können physikalisch zusammenhängend sein. Zusätzlich können sich die erste physikalische Adresse PPN1 und die zweite physikalische Adresse PPN2 in einem anderen Bereich als die dritte physikalische Adresse PPN3 und die vierte physikalische Adresse PPN4 befinden.
  • Der Controller 110 kann die Schlüsseltabelle KT durch Zuordnen einer Speicherposition des ersten Schlüssels KEY1 zu der ersten physikalischen Adresse PPN1 und einer Speicherposition des zweiten Schlüssels KEY2 zu der zweiten physikalischen Adresse PPN2 in der Schlüsseltabelle KT aktualisieren (T160).
  • Der Controller 110 kann die dritte physikalische Adresse PPN3 in die Werttabelle VT schreiben, sodass die dritte physikalische Adresse PPN3 dem ersten Index idx1, der dem ersten Wert VAL1 entspricht, entspricht. Zusätzlich, da der erste Wert VAL1 und der zweite Wert VAL2, die in aufeinanderfolgende Adressen geschrieben sind, gültig sind, kann der Controller 110 die Werttabelle VT durch Schreiben von „1“-en als die Gültigkeitsbits aktualisieren, um dazu zu entsprechen (T170).
  • 15 ist ein Diagramm, das eine Operation des Speichersystems 10 im Laufe der Zeit nach einer Ausführungsform darstellt. 15 stellt ein Diagramm einer Ausführungsform dar, in der das Speichersystem 10 einen Verdichtungsbefehl empfängt.
  • Bezugnehmend auf 15 kann das Speichersystem 10 den Host 200, den Controller 110 und den NVM 140 enthalten. Der Host 200 kann einen zweiten Befehl CMD2 für die Verdichtungsoperation am zweiten Schlüssel KEY2 und dem zweiten Wert VAL2 an den Controller 110 ausgeben (T210). In einer Ausführungsform kann der Host 200 den zweiten Index idx2, der dem zweiten Schlüssel KEY2 entspricht, zusammen mit dem zweiten Befehl CMD2 an den Controller 110 übertragen.
  • Der Controller 110 kann das Gültigkeitsbit, das dem zweiten Schlüssel KEY2 entspricht, als Reaktion auf den zweiten Befehl CMD2 auf ein aktualisiertes Gültigkeitsbit in der Schlüsseltabelle KT aktualisieren. Das Gültigkeitsbit, das dem zweiten Schlüssel KEY2 entspricht, kann auf „0“ aktualisiert werden, um anzugeben, dass der zweite Schlüssel KEY2 ungültig ist (T220). Obwohl nicht dargestellt, kann der Controller 110 außerdem als Reaktion auf den zweiten Befehl CMD2 ein zweites Gültigkeitsbit der Werttabelle VT auf ein aktualisiertes zweites Gültigkeitsbit aktualisieren. Das zweite Gültigkeitsbit kann angeben, ob der zweite Wert VAL2 gültig ist. Zusätzlich, obwohl nicht dargestellt, kann der Controller 110 den ersten Schlüsselstrom ST_KEY1 und den zweiten Schlüsselstrom ST_KEY2, der den zweiten Schlüssel KEY2, der dem zweiten Index idx2 entspricht, enthält, aus dem NVM 140 lesen, um die Verdichtungsoperation durchzuführen.
  • Der Controller 110 kann den zusammengeführten Schlüsselstrom ST_MK durch Entfernen von mindestens einem Schlüssel KEY, der den ungültigen Schlüssel KEY2 enthält, aus dem ersten Schlüsselstrom ST_KEY1 und dem zweiten Schlüsselstrom ST_KEY2 basierend auf dem empfangenen zweiten Index idx2 und Zusammenführen von gültigen Schlüsseln KEY erzeugen (T230). In einem Beispiel kann der Controller 110 den zusammengeführten Schlüsselstrom ST_MK durch Löschen des zweiten Schlüssels KEY2, der dem zweiten Befehl CMD2 entspricht, und unter Verwendung von mindestens dem im ersten Schlüsselstrom ST_KEY1 enthaltenen ersten Schlüssel KEY1 und dem im zweiten Schlüsselstrom ST_KEY2 enthaltenen zweiten Schlüssel KEY2 erzeugen.
  • Der Controller 110 kann den zusammengeführten Schlüsselstrom ST_MK im NVM 140 speichern (T240) und der NVM 140 kann den zusammengeführten Schlüsselstrom ST_MK in der sechsten physikalischen Adresse PPN66 speichern (T250). Als nächstes kann der Controller 110 den ersten Schlüsselstrom ST_KEY1 und den zweiten Schlüsselstrom ST_KEY2, die im NVM 140 gespeichert sind, löschen (T260), nachdem der zusammengeführte Schlüsselstrom ST_MK gespeichert worden ist. Der NVM 140 kann den ersten Schlüsselstrom ST_KEY1 und den zweiten Schlüsselstrom ST_KEY2 durch Durchführen einer Löschoperation an der ersten physikalischen Adresse PPN1, die den ersten Schlüsselstrom ST_KEY1 speichert, der zweiten physikalischen Adresse PPN2, die den zweiten Schlüsselstrom ST_KEY2 speichert, und der fünften physikalischen Adresse PPN5 löschen (T270).
  • Nach einem Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte kann der Controller 110 die Verdichtungsoperation durch Verwenden von Information zum zweiten Index idx2, die vom Host 200 empfangen werden, durchführen. Dementsprechend ist es womöglich nicht notwendig, Daten zur Bestimmung von gültigen Schlüsseln KEY in den/aus dem Datenpuffer (130 aus 1) einzugeben/auszugeben und die Verdichtungsoperation kann effizient durchgeführt werden.
  • 16A ist ein Blockdiagramm, das ein Speichersystem nach einer Ausführungsform darstellt. 16A stellt eine Ausführungsform der Speichervorrichtung 100 dar, die Informationen zum gültigen Schlüssel Info_VK vom Host 200 empfängt. Bereits mit Bezug auf 1 bis 15 gegebene Beschreibungen sind weggelassen.
  • Bezugnehmend auf 16A kann ein Speichersystem 10a die Speichervorrichtung 100 und den Host 200 enthalten und die Speichervorrichtung 100 kann den Controller 110, den Datenpuffer 130 und den NVM 140 enthalten. Im Unterschied zu den oben mit Bezug auf 1 bis 15 beschriebenen Ausführungsformen kann die Speichervorrichtung 100 die Informationen zum gültigen Schlüssel Info_VK zusammen mit dem Verdichtungsbefehl CMD_CP vom Host 200 empfangen.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Speichervorrichtung 100 die Verdichtungsoperation, die lediglich gültige Schlüssel KEY unter der Mehrzahl an Schlüsselströmen ST_KEY zusammenführt, basierend auf den Informationen zu den gültigen Schlüsseln Info_VK durchführen. In einem Beispiel können die Informationen zu den gültigen Schlüsseln Info_VK die Indexinformationen zum gültigen Schlüssel KEY und die Adressinformationen zum gültigen Schlüssel KEY enthalten.
  • 16B ist ein Blockdiagramm, das ein Speichersystem 10b nach einer Ausführungsform darstellt. 16B stellt eine Ausführungsform der Speichervorrichtung 100 dar, die Informationen zum ungültigen Wert Info_IV vom Host 200 empfängt. Bereits mit Bezug auf 1 bis 15 gegebene Beschreibungen sind weggelassen.
  • Bezugnehmend auf 16B kann ein Speichersystem 10b die Speichervorrichtung 100 und den Host 200 enthalten und die Speichervorrichtung 100 kann den Controller 110 und den NVM 140 enthalten. Im Unterschied zu den oben mit Bezug auf 1 bis 15 beschriebenen Ausführungsformen kann die Speichervorrichtung 100 die Informationen zum ungültigen Wert Info_IV zusammen mit dem Verdichtungsbefehl CMD_CP vom Host 200 empfangen.
  • In einer Ausführungsform der vorliegenden Offenbarung kann die Speichervorrichtung 100 einen Schlüssel KEY bestimmen, der basierend auf den Informationen zum ungültigen Wert Info_IV und mindestens einer im Datenpuffer 130 gespeicherten Tabelle ungültig ist. Die Speichervorrichtung 100 kann die Verdichtungsoperation, die lediglich gültige Schlüssel KEY unter der Mehrzahl an Schlüsselströmen ST_KEY zusammenführt, durch Verwenden von Informationen zum bestimmten ungültigen Schlüssel durchführen. In einem Beispiel können die Informationen zum ungültigen Wert Info_IV die Indexinformationen zum ungültigen Wert VALUE und die Adressinformationen zum ungültigen Wert VALUE enthalten.
  • 17 ist ein Blockdiagramm, das eine Speichervorrichtung 100a nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 17 kann die Speichervorrichtung 100a einen Controller 110a, einen VM 130a (flüchtigen Speicher) und den NVM 140 enthalten. Zusätzlich kann der Controller 110a enthalten: einen Prozessor 111, einen Speicher 112, eine Host-Schnittstelle (IF) 113, eine NVM-IF 114, eine VM-IF 115, eine ECC(Fehlerkorrekturcode)-Maschine 116 und eine AES(Advance Encryption Standard)-Maschine 117, die imstande sind, über einen Bus 118 miteinander zu kommunizieren.
  • Der Prozessor 111 kann eine zentrale Verarbeitungseinheit (CPU), einen Mikroprozessor oder Ähnliches enthalten und kann den Gesamtbetrieb des Controllers 110a steuern. Der Prozessor 111 kann Software-Anweisungen ausführen, die im Speicher 112 gespeichert sind oder aus jenem abgerufen werden und/oder von außerhalb des Controllers 110a abgerufen werden. Der Speicher 112 kann unter einer Steuerung des Prozessors 111 operieren und kann als ein Operationsspeicher, ein Pufferspeicher, ein Cache-Speicher oder Ähnliches verwendet werden. Zum Beispiel kann der Speicher 112 als ein VM, wie DRAM und SRAM, oder ein NVM, wie PRAM und ein Flash-Speicher, umgesetzt sein.
  • Der Schlüssel-Wert-Manager 120a kann mit Firmware oder Software umgesetzt sein. Der Schlüssel-Wert-Manager 120a kann in den Speicher 112 geladen werden. In einer Ausführungsform kann der Schlüssel-Wert-Manager 120a mit einer Flash-Übersetzungsschicht (FTL) umgesetzt sein und kann in den Speicher 112 geladen werden. Allerdings ist die vorliegende Ausführungsform nicht darauf beschränkt und der Schlüssel-Wert-Manager 120 kann mit einer Hardware umgesetzt sein. Die oben mit Bezug auf 1 bis 16B beschriebenen Operationen können durch den Prozessor 111 durch Verwenden des Schlüssel-Wert-Managers 120a durchgeführt werden.
  • Die Host-IF 113 kann die IF zwischen dem Host 200 und dem Controller 110a zum Beispiel nach einem Universal Serial Bus (USB), einer Multimediakarte (MMC), einem Peripheral Component Interconnect (PCI) Express (PCI-E), einem Advanced Technology Attachment (ATA), einem Serial ATA (SATA), einem parallelen ATA (PATA), einer kleinen Computersystem-Schnittstelle (SCSI), einer Serial Attached SCSI (SAS), einer Enhanced Small Disk Interface (ESDI), einer integrierten Antriebselektronik (IDE) etc. vorsehen. In einer Ausführungsform der vorliegenden Offenbarung können die Informationen zum ungültigen Schlüssel Info_IK zusammen mit dem Verdichtungsbefehl CMD_CP über die Host-IF 113 an den Schlüssel-Wert-Manager 120a übermittelt werden.
  • Die NVM-IF 114 kann die IF zwischen dem Controller 110a und dem NVM 140 vorsehen. Zum Beispiel können der Schlüsselstrom ST_KEY oder der Wertstrom ST_VAL zwischen dem Controller 110a und dem NVM 140 über die NVM-IF 114 übermittelt werden. Die NVM-IF 114 kann derart umgesetzt sein, dass sie Standardkonventionen, wie Toggle oder ONFI, erfüllt.
  • Die VM-IF 115 kann die IF zwischen dem Controller 110a und dem VM 130a vorsehen. Zum Beispiel können der Schlüssel KEY, der Wert VALUE und die Zuordnungstabelle MT zwischen dem Controller 110a und dem VM 130a übermittelt werden.
  • Der VM 130a kann die Zuordnungstabelle MT speichern. Zum Beispiel kann der VM 130a ferner die Schlüssel KEY und die Werte VALUE, wie den Datenpuffer 130 aus 2, speichern. Zu diesem Zweck kann der VM 130a mit einem DRAM umgesetzt sein. Die Zuordnungstabelle MT kann jegliche der Multi-Zuordnungstabelle, der Schlüsseltabelle KT und der Werttabelle VT, die oben mit Bezug auf 1 bis 16B beschrieben werden, enthalten.
  • Die ECC-Maschine 116 kann eine Fehlererfassungs- und Korrekturfunktion für Lesedaten, die aus dem nichtflüchtigen Speicher 140 gelesen werden, durchführen. Insbesondere kann die ECC-Maschine 116 Paritätsbits für Schreibdaten, die in den nichtflüchtigen Speicher 140 geschrieben werden sollen, erzeugen und die wie oben beschrieben erzeugten Paritätsbits werden zusammen mit den Schreibdaten gespeichert. Wenn Daten aus dem nichtflüchtigen Speicher 140 gelesen werden, kann die ECC-Maschine 116 den Fehler der Lesedaten unter Verwendung der Paritätsbits, die zusammen mit den Lesedaten aus dem nichtflüchtigen Speicher 140 gelesen werden, korrigieren und die Lesedaten, in denen der Fehler korrigiert ist, ausgeben. In einer Ausführungsform kann die ECC-Maschine 116 einen ECC-Kodierer (nicht gezeigt), der Paritätsbits für Schreibdaten erzeugt, und/oder einen ECC-Dekodierer (nicht gezeigt), der Fehler in Lesedaten korrigiert, enthalten.
  • Die AES-Maschine 117 kann mindestens eine Verschlüsselungsoperation oder eine Entschlüsselungsoperation für in den Controller 110a eingegebene Daten durchführen. In einer Ausführungsform kann die AES-Maschine 117 mindestens eine Verschlüsselungsoperation oder eine Entschlüsselungsoperation unter Verwendung eines symmetrischen Schlüssel-Algorithmus durchführen. In einer Ausführungsform kann die AES-Maschine 117 ein Verschlüsselungsmodul (nicht gezeigt), das eine Verschlüsselungsoperation durchführt, und/oder ein Entschlüsselungsmodul (nicht gezeigt), das eine Entschlüsselungsoperation durchführt, enthalten.
  • Sowohl die ECC-Maschine 116 als auch die AES-Maschine 117 können als Firmware oder Software umgesetzt sein und können in den Speicher 112 geladen werden. Allerdings ist die vorliegende Offenbarung nicht darauf beschränkt und sowohl die ECC-Maschine 116 als auch die AES-Maschine 117 können als Hardware umgesetzt sein oder können als eine Kombination aus Software und Hardware umgesetzt sein.
  • Nach einem Aspekt des/der hierin beschriebenen erfinderischen Konzepts/Konzepte kann der Schlüssel-Wert-Manager 120a verschiedene Operationen (zum Beispiel die Verdichtungsoperation und die Speicherbereinigungsoperation) am Schlüssel-Wert-Paar ohne Eingreifen des Hosts 200 oder eines Betriebssystems (OS) durchführen. Dementsprechend kann eine Datenverarbeitungsgeschwindigkeit erhöht werden.
  • 18 ist ein Blockdiagramm, das eine Speichervorrichtung nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 17 und 18 kann die Speichervorrichtung 300 einen Controller 310 und einen nichtflüchtigen Speicher 320 enthalten. Die Speichervorrichtung 300 kann eine Mehrzahl an Kanälen CH1 bis CHm tragen und der Controller 310 und der nichtflüchtige Speicher 320 können durch eine Mehrzahl an Kanälen CH1 bis CHm verbunden sein. Der Controller 310 kann den oben in 1 bis 17 beschriebenen Controllern 110 und 110a entsprechen und der nichtflüchtige Speicher 320 kann dem oben in 1 bis 17 beschriebenen nichtflüchtigen Speicher 140 entsprechen.
  • Der nichtflüchtige Speicher 320 kann eine Mehrzahl an nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn enthalten. Jede der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn kann durch einen entsprechenden Weg mit einem der Mehrzahl an Kanälen CH1 bis CHm verbunden sein. Zum Beispiel sind die nichtflüchtigen Speichervorrichtungen NVM11 bis NVM1n durch die Wege W11 bis W1n mit dem ersten Kanal CH1 verbunden und die nichtflüchtigen Speichervorrichtungen NVM21 bis NVM2n sind durch die Wege W21 und W2n mit dem zweiten Kanal CH2 verbunden.
  • Der Controller 310 kann Signale durch eine Mehrzahl an Kanälen CH1 bis CHm an den nichtflüchtigen Speicher 320 übertragen und von jenem empfangen. Zum Beispiel überträgt der Controller 310 Befehle CMDa bis CMDm, Adressen ADDRa bis ADDRm und Daten DATAa bis DATAm durch die Kanäle CH1 bis CHm an den nichtflüchtigen Speicher 320. Alternativ können die Daten DATAa bis DATAm vom nichtflüchtigen Speicher 320 empfangen werden.
  • Der Controller 310 kann eine der mit dem entsprechenden Kanal verbundenen nichtflüchtigen Speichervorrichtungen durch jeden Kanal auswählen und Signale mit der ausgewählten nichtflüchtigen Speichervorrichtung übertragen und empfangen. Zum Beispiel kann der Controller 310 die nichtflüchtige Speichervorrichtung NVM 11 aus den mit dem ersten Kanal CH1 verbundenen nichtflüchtigen Speichervorrichtungen NVM11 bis NVMln auswählen. Der Controller 310 überträgt einen Befehl CMDa, eine Adresse ADDRa und Daten DATAa durch den Weg W11 an die ausgewählte nichtflüchtige Speichervorrichtung oder empfängt Daten DATAa durch den Weg W11 aus der ausgewählten nichtflüchtigen Speichervorrichtung NVM11.
  • 19 ist ein Blockdiagramm, das eine Speichervorrichtung nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 18 und 19 kann die Speichervorrichtung 400 einen Controller 410 und einen nichtflüchtigen Speicher 420 enthalten. Der nichtflüchtige Speicher 420 kann einer der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn, die basierend auf einem der Mehrzahl an Kanälen CH1 bis CHm mit dem Controller 310 kommunizieren, aus 18 entsprechen. Der Controller 410 kann dem Controller 310 aus 18 entsprechen.
  • Der Controller 410 kann einen ersten bis achten Pin P21 bis P28 und eine Controller-Schnittstellenschaltung 411 enthalten. Der nichtflüchtige Speicher 420 kann einen ersten bis achten Pin P11 bis P18, eine Speicherschnittstellenschaltung 421, eine Steuerlogikschaltung 423 und ein Speicherzellenarray 425 enthalten. Der erste bis achte Pins P21 bis P28 kann dem ersten bis achten Pin P11 bis P18 entsprechen.
  • Die Controller-Schnittstellenschaltung 411 kann das Chip-Aktivierungssignal nCE durch den ersten Pin P21 an den nichtflüchtigen Speicher 420 übertragen. Die Controller-Schnittstellenschaltung 411 kann Signale durch den zweiten bis achten Pin P22 bis P28 an den durch das Chip-Aktivierungssignal nCE ausgewählten nichtflüchtigen Speicher 420 übertragen oder von jenem empfangen.
  • Die Controller-Schnittstellenschaltung 411 überträgt ein Befehls-Zwischenspeicher-Aktivierungssignal CLE, ein Adress-Zwischenspeicher-Aktivierungssignal ALE und ein Schreib-Aktivierungssignal nWE durch den zweiten bis vierten Pin P22 bis P24 an einen nichtflüchtigen Speicher 420. Die Controller-Schnittstellenschaltung 411 kann das Lese-Aktivierungssignal nRE durch den fünften Pin P25 an den nichtflüchtigen Speicher 420 übertragen. Die Controller-Schnittstellenschaltung 411 kann das Datenabtastsignal DQS durch den sechsten Pin P26 aus dem nichtflüchtigen Speicher 420 empfangen oder das Datenabtastsignal DQS durch den sechsten Pin P26 an den nichtflüchtigen Speicher 420 übertragen.
  • Die Controller-Schnittstellenschaltung 411 kann das Datensignal DQ durch den siebten Pin P27 an den nichtflüchtigen Speicher 420 übertragen oder von jenem empfangen. Der Befehl CMD, die Adresse ADDR und die Daten DATA können durch das Datensignal DQ übertragen werden. In diesem Fall kann der siebte Pin P27 eine Mehrzahl an Pins enthalten, die einer Mehrzahl an Datensignalen entspricht. Die Speicherschnittstellenschaltung 421 kann das Bereit/Beschäftigt-Ausgabesignal nR/B durch den achten Pin P28 an den Controller 410 übertragen.
  • Die Steuerlogikschaltung 423 kann verschiedene Operationen des nichtflüchtigen Speichers 420 im Allgemeinen steuern. Die Steuerlogikschaltung 423 kann den/die von der Speicherschnittstellenschaltung 421 erhaltenen/erhaltene Befehl/Adresse CMD/ADDR empfangen. Die Steuerlogikschaltung 421 kann verschiedene Steuersignale zum Programmieren von Daten DATA in das Speicherzellenarray 425 oder zum Lesen von Daten DATA aus dem Speicherzellenarray 425 nach dem/der empfangenen Befehl/Adresse CMD/ADDR erzeugen.
  • 20 ist ein Blockdiagramm, das ein Speichersystem 10b nach einer Ausführungsform darstellt. Bereits mit Bezug auf 1 gegebene Beschreibungen sind weggelassen.
  • Bezugnehmend auf 20 kann das Speichersystem 10b eine Speichervorrichtung 100b und einen Host 200b enthalten und der Host 200b kann einen Schlüssel-Wert-Manager 220b enthalten. Der Schlüssel-Wert-Manager 220b kann die oben mit Bezug auf 1 bis 17 beschriebenen Operationen durchführen. Zum Beispiel kann das Speichersystem 10b als ein offenes Kanal-SSD konfiguriert sein, in dem der Host 200b die Speichervorrichtung 100b direkt und ohne getrennten Controller steuert.
  • Der Schlüssel-Wert-Manager 220b kann die Mehrzahl an Schlüsselströmen ST_KEY aus der Speichervorrichtung 100b lesen, ungültige Schlüssel KEY aus der Mehrzahl an Schlüsselströmen ST_KEY löschen und die Verdichtungsoperation zum Erzeugen eines neuen Schlüsselstroms ST_KEY durch Verwenden von gültigen Schlüsseln KEY durchführen. Nach einer Ausführungsform kann der Schlüssel-Wert-Manager 220b die Informationen zum ungültigen Schlüssel Info_IK speichern, basierend auf den gespeicherten Informationen bestimmen, welcher Schlüssel KEY unter der Mehrzahl an Schlüsselströmen ST_KEY gültig ist, und einen neuen Schlüsselstrom ST_KEY durch Zusammenführen von lediglich gültigen Schlüsseln KEY unter der Mehrzahl an Schlüsselströmen ST_KEY erzeugen.
  • 21 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1000 nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 21 kann die elektronische Vorrichtung 1000 einen Prozessor 1100, eine Speichervorrichtung 1200, eine Speichervorrichtung 1300, ein Modem 1400, eine Eingabe/Ausgabe(I/O)-Vorrichtung 1500 und eine Leistungsversorgung 1600 enthalten. In einer Ausführungsform kann die Speichervorrichtung 1300 durch Verwenden der oben mit Bezug auf 1 bis 20 beschriebenen Ausführungsformen umgesetzt sein.
  • In einer Ausführungsform kann die Speichervorrichtung 1300 den ungültigen Schlüssel KEY durch Verwenden der Informationen zum ungültigen Schlüssel Info_IK, die vom Host (zum Beispiel dem Prozessor 1100) empfangen werden, in der Verdichtungsoperation bestimmen. Die Speichervorrichtung 1300 kann die Verdichtungsoperation zum Erzeugen des zusammengeführten Schlüsselstroms ST_MK durch Zusammenführen des Schlüsselstroms ST_KEY, der den ungültigen Schlüssel KEY enthält, mit dem Schlüsselstrom ST_KEY, der sich davon unterscheidet, durchführen. Dementsprechend kann die Menge an Zugriffsdaten einer VM-Vorrichtung im Verdichtungsprozess der Speichervorrichtung 1300 reduziert werden und die Datenverarbeitungsgeschwindigkeit kann erhöht werden.
  • 22 ist ein Diagramm, das ein mobiles System 2000, auf das eine Speichervorrichtung angewandt wird, nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 22 kann das mobile System 2000 eine Kamera 2100, ein Display 2200, eine Audioverarbeitungseinheit 2300, ein Modem 2400, DRAMs (2500a und 2500b), Flash-Speichervorrichtungen (2600a und 2600b), I/O-Vorrichtungen (2700a und 2700b) und einen AP 2800 enthalten.
  • Das mobile System 2000 kann mit einem Laptop, einem Mobiltelefon, einem Smartphone, einem Tablet-Computer (PC), einer tragbaren Vorrichtung, einer Gesundheitsversorgungsvorrichtung oder einer Internet-der-Dinge(IoT)-Vorrichtung umgesetzt sein. Zusätzlich kann das mobile System 2000 mit einem Server oder einem Computer umgesetzt sein.
  • Die Kamera 2100 kann ein Standbild oder ein Videobild nach einer Benutzersteuerung aufnehmen. Das mobile System 2000 kann besondere Informationen durch Verwenden des durch die Kamera 2100 aufgenommenen Standbilds/Videobilds erhalten. Alternativ kann das mobile System 2000 das Standbild/Videobild in andere Arten von Daten, wie einen Text, umwandeln und speichern. Alternativ kann das mobile System 2000 eine im durch die Kamera 2100 aufgenommenen Standbild/Videobild enthaltene Zeichenkette erkennen und eine Text- oder Audioübersetzung, die der Zeichenkette entspricht, vorsehen. Auf diese Weise ist das Anwendungsgebiet der Kamera 2100 im mobilen System 2000 zunehmend diversifiziert worden. In einer Ausführungsform kann die Kamera 2100 Daten, wie das Standbild/Videobild, nach einer D-Phy- oder C-Phy-Schnittstelle nach dem Mobile-Industry-Prozessorschnittstellen (MIPI)-Standard an den AP 2800 übertragen.
  • Das Display 2200 kann auf verschiedene Arten umgesetzt sein, wie eine Flüssigkristallanzeige (LCD), eine organische Lichtemissionsdioden(OLED)-Anzeige, eine organische Aktivmatrix-Lichtemissionsdioden(AM-OLED)-Anzeige, ein Plasmaanzeigefeld (PDP), eine Feldemissionsanzeige (FED) und eine elektronische Papieranzeige. In einer Ausführungsform kann das Display 2200 außerdem durch Vorsehen einer Touchscreen-Funktion als eine Eingabevorrichtung des mobilen Systems 2000 verwendet werden. Zusätzlich kann das Display 2200 integral mit einem Fingerabdrucksensor oder Ähnlichem ausgestattet sein. Das Display 2200 kann eine Sicherheitsfunktion des mobilen Systems 2000 vorsehen. In einer Ausführungsform kann der AP 2800 auf dem Display 2200 anzuzeigende Bilddaten nach der D-Phy- oder C-Phy-Schnittstelle nach dem MIPI-Standard an das Display 2200 übertragen.
  • Die Audioverarbeitungseinheit 2300 kann in der Flash-Speichervorrichtung (2600a oder 2600b) gespeicherte Audiodaten oder Audiodaten, die in einem Inhalt enthalten sind, der extern über das Modem 2400 oder die I/O-Vorrichtung (2700a oder 2700b) empfangen werden, verarbeiten. Zum Beispiel kann die Audioverarbeitungseinheit 2300 verschiedene Prozesse, wie eine Kodierung/Dekodierung, eine Verstärkung, eine Geräuschfilterung und Ähnliches, der Audiodatei durchführen.
  • Das Modem 2400 kann Signale derart modulieren und übertragen, dass sie verdrahtete/drahtlose Daten übermitteln, während ein von außerhalb empfangenes Originalsignal moduliert und gespeichert wird. Die I/O-Vorrichtungen (2700a und 2700b) können Vorrichtungen sein, die digitale Eingaben und Ausgaben vorsehen. Die I/O-Vorrichtungen (2700a und 2700b) können enthalten: einen Port, der mit einem externen Aufzeichnungsmedium verbindbar ist, eine Eingabevorrichtung, wie einen Touchscreen oder einen mechanischen Schaltflächenschlüssel, eine Ausgabevorrichtung, die zum Ausgeben von Vibrationen in einem haptischen Verfahren oder Ähnlichem imstande ist, oder Ähnliches. In einigen Beispielen können die I/O-Vorrichtungen (2700a und 2700b) über Ports, wie einem USB, einem Lightning-Kabel, einer SD-Karte, einer Mikro-SD-Karte, einer DVD und einem Netzwerkadapter, mit externen Aufzeichnungsmedien verbunden sein.
  • Der AP 2800 kann die Gesamtoperation des mobilen Systems 2000 steuern. Der AP 2800 kann das Display 2200 derart steuern, dass ein Abschnitt von in den Flash-Speichervorrichtungen (2600a und 2600b) gespeicherten Inhalten auf einem Bildschirm angezeigt wird. Zusätzlich, wenn eine Benutzereingabe über die I/O-Vorrichtungen (2700a und 2700b) empfangen wird, kann der AP 2800 eine Steueroperation durchführen, die der Benutzereingabe entspricht.
  • Der AP 2800 kann als ein Ein-Chip-System (SoC), das ein Anwendungsprogramm antreibt, ein Betriebssystem (OS) oder Ähnliches vorgesehen sein. Zusätzlich kann der AP 2800 in einem Halbleitergehäuse enthalten sein, zusammen mit anderen im mobilen System 2000 enthaltenen Vorrichtungen, zum Beispiel dem DRAM 2500a, einem Flash-Speicher 2620 und/oder einem Speichercontroller 2610. Zum Beispiel können der AP 2800 und mindestens eine weitere Vorrichtung in einer Gehäuseform, wie einem Package-on-Package (PoP), Ball-Grid-Arrays (BGAs), Chip-Scale-Packages (CSPs), einem System-in-Package (SIP), einem Multi-Chip-Package (MCP), einem Wafer-Level-Fabricated-Package (WFP) und einem Wafer-Level-Processed-Stack-Package (WSP), vorgesehen sein. Der Kernel eines Betriebssystems, das auf dem AP 2800 ausgeführt wird, kann einen I/O-Scheduler und einen Vorrichtungstreiber zum Steuern der Flash-Speichervorrichtungen (2600a und 2600b) enthalten. Der Vorrichtungstreiber kann eine Zugriffsperformance der Flash-Speichervorrichtungen (2600a und 2600b) durch Bezugnahme auf die Anzahl an synchronen Queues, die durch den I/O-Scheduler verwaltet werden, steuern oder kann einen CPU-Modus im Innern des SoC, einen dynamischen Spannungs- und Frequenz-Skalier(DVFS)-Pegel etc. steuern.
  • In einer Ausführungsform kann der AP 2800 einen Prozessorblock zum Durchführen einer Berechnungsoperation oder Antreiben eines Anwendungsprogramms und/oder eines Betriebssystems und andere verschiedene Peripheriekomponenten, die über den Prozessorblock und einen Systembus damit verbunden sind, enthalten. Die Peripheriekomponenten können einen Speichercontroller, einen internen Speicher, einen Leistungsverwaltungsblock, einen Fehlererfassungsblock, einen Überwachungsblock etc. enthalten. Der Prozessorblock kann einen oder mehrere Kerne enthalten, und wenn eine Mehrzahl an Kernen im Prozessorblock enthalten ist, kann jeder der Mehrzahl an Kernen einen Cache-Speicher enthalten, und ein gemeinsamer Cache, der von der Mehrzahl an Kernen gemeinsam genutzt wird, kann im Prozessorblock enthalten sein.
  • In einer Ausführungsform kann der AP 2800 einen Beschleunigungsblock 2820 enthalten, der eine dedizierte Schaltung für eine Berechnung von Daten einer künstlichen Intelligenz (AI) ist. Alternativ kann nach Ausführungsformen ein getrennter Beschleunigungschip getrennt vom AP 2800 vorgesehen sein und ein DRAM 2500b kann zusätzlich mit dem Beschleunigungsblock 2820 oder dem Beschleunigungschip verbunden sein. Der Beschleunigungsblock 2820 kann ein Funktionsblock sein, der besondere Funktionen des AP 2800 professionell durchführt, und kann enthalten: eine Grafikverarbeitungseinheit (GPU) zum professionellen Durchführen einer Grafikdatenverarbeitung, eine neuronale Verarbeitungseinheit (NPU) zum professionellen Durchführen der AI-Datenberechnung und -Inferenz, eine für eine Datenübertragung dedizierte Datenverarbeitungseinheit (DPU) etc.
  • Nach einer Ausführungsform kann das mobile System 200 eine Mehrzahl an DRAMs (2500a und 2500b) enthalten. In einer Ausführungsform kann der AP 2800 einen Controller 2810 zum Steuern der DRAMs (2500a und 2500b) enthalten und der DRAM 2500a kann mit dem AP 2800 direkt verbunden sein.
  • Der AP 2800 kann den DRAM durch Einstellen von Befehlen und eines Modusregistersatzes (MRS), der dem Joint Electron Device Engineering Council (JEDEC) Standard entspricht, steuern. Alternativ kann der AP 2800 durch Einstellen von Spezifikationen und Funktionen, die vom mobilen System 2000 benötigt werden, wie eine niedrige Spannung, eine hohe Geschwindigkeit und Zuverlässigkeit und ein DRAM-Schnittstellen-Protokoll für eine zyklische Redundanz-Prüf/Fehler-Prüfung und -Korrektur (CRC/ECC), kommunizieren. Zum Beispiel kann der AP 2800 über eine dem JEDEC-Standard entsprechende Schnittstelle, wie einer doppelten Leistungsdatenrate (LPDDR) 4 (LPDDR4) und LPDDR5, mit dem DRAM 2500a kommunizieren. Alternativ kann der AP 2800 durch Einstellen eines neuen DRAM-Schnittstellen-Protokolls kommunizieren, sodass der DRAM 2500b für den Beschleuniger, der eine höhere Bandbreite aufweist als der DRAM 2500a, durch den Beschleunigungsblock 2820 oder den vom AP 2800 getrennt vorgesehenen Beschleunigungschip gesteuert wird.
  • Obwohl lediglich DRAMs (2500a und 2500b) in 22 dargestellt sind, ist die Konfiguration des mobilen Systems 2000 nicht zwangsläufig darauf beschränkt und andere Speicher mit Ausnahme der DRAMs (2500a und 2500b) können im mobilen System 2000 nach einer Bandbreite, Reaktionsgeschwindigkeit, Spannungsbedingung etc. des AP 2800 oder des Beschleunigungsblocks 2820 enthalten sein. Zum Beispiel können der Controller 2810 und/oder der Beschleunigungsblock 2820 verschiedene Speicher steuern, wie PRAM, SRAM, MRAM, RRAM, FRAM und Hybrid-RAM. Die DRAMs (2500a und 2500b) können eine relativ kleine Latenz und hohe Bandbreite aufweisen verglichen mit den I/O-Vorrichtungen (2700a und 2700b) oder den Flash-Speichervorrichtungen (2600a und 2600b). Die DRAMs (2500a und 2500b) können zum Einschaltzeitpunkt des mobilen Systems 2000 initialisiert werden und können, wenn das Betriebssystem und die Anwendungsdaten geladen werden, als ein Temperaturspeicherplatz für das Betriebssystem und die Anwendungsdaten oder ein Ausführungsplatz für verschiedene Softwarecodes verwendet werden.
  • In den DRAMs (2500a und 2500b) können Daten von arithmetischen Additions-/Subtraktions-/Multiplikations-/Divisions-Operationen und Vektoroperationen, Adressoperationen oder schnellen Fourier-Transformations(FFT)-Operationen gespeichert sein. In einer weiteren Ausführungsform können die DRAMs (2500a und 2500b) als eine in-Speicher-Verarbeitung (PIM), die mit einer Berechnungsfunktion ausgestattet ist, vorgesehen sein. Zum Beispiel kann in den DRAMs (2500a und 2500b) eine in einer Inferenzoperation zu verwendende Funktion für eine Performance durchgeführt werden. In diesem Fall kann die Inferenzoperation durch Verwenden eines Deep-Learning-Algorithmus unter Verwendung eines künstlichen neuronalen Netzwerks durchgeführt werden. Der Deep-Learning-Algorithmus kann eine Trainingsoperation zum Lernen eines Modells unter Verwendung verschiedener Daten und die Inferenzoperation zum Erkennen von Daten unter Verwendung des gelernten Modells enthalten. Zum Beispiel kann die für die Inferenzoperation verwendete Funktion eine hyperbolische Tangensfunktion, eine Sigmoidfunktion, eine Rectified-Linear-Unit(ReLU)-Funktion enthalten.
  • In einer Ausführungsform kann das durch den Benutzer durch das Verwenden der Kamera 2100 aufgenommene Bild Signal-verarbeitet und im DRAM 2500b gespeichert werden. Der Beschleunigungsblock 2820 oder der Beschleunigungschip können die AI-Datenberechnung, die Daten durch Verwenden von im DRAM 2500b gespeicherten Daten erkennt, und die in der Inferenzoperation verwendete Funktion durchführen.
  • Nach einer Ausführungsform kann das mobile System 2000 eine Mehrzahl an Speichern oder eine Mehrzahl an Flash-Speichervorrichtungen (2600a und 2600b) mit einer größeren Datenkapazität (Datenspeicherkapazität) als die DRAMs (2500a und 2500b) enthalten.
  • Die Flash-Speichervorrichtungen (2600a und 2600b) können den Speichercontroller 2610 und den Flash-Speicher 2620 enthalten. Der Speichercontroller 2620 kann Steuerbefehle, Daten und Ähnliches vom AP 2800 empfangen, Daten als Reaktion auf den Steuerbefehl in den Flash-Speicher 2620 schreiben oder im Flash-Speicher 2620 gespeicherte Daten lesen und die gelesenen Daten an den AP 2800 übertragen.
  • Die Flash-Speichervorrichtungen (2600a und 2600b) können Speichervorrichtungen nach verschiedenen Ausführungsformen der oben mit Bezug auf 1 bis 20 beschriebenen Ausführungsformen enthalten. Wenn eine Leseoperation und/oder eine Programmverifizierungsoperation durchgeführt werden, können die Flash-Speichervorrichtungen (2600a und 2600b) einen Zeitpunkt, zu dem eine Lesedurchgangsspannung in mindestens eine einer Mehrzahl an nicht ausgewählten Wortleitungen eingegeben wird, zu einem Zeitpunkt nach einem Einstellzeitraum der nicht ausgewählten Wortleitungen verzögern. Infolgedessen können die Flash-Speichervorrichtungen (2600a und 2600b) ein Auftreten von weichem Löschen verhindern und eine Zuverlässigkeit durch Steuern des Grads, bei dem der Kanal der nicht ausgewählten Zellenketten auf einen gewissen Spannungspegel gesteigert wird, wie einen vorbestimmten Mindestspannungspegel, sicherstellen. Zusätzlich können die Flash-Speichervorrichtungen (2600a und 2600b) eine verbrauchte Elektrizität und eine Größenerhöhung einer Leistungsversorgungsvorrichtung durch selektives Anwenden einer Vorimpulsspannung auf jegliche von nicht ausgewählten Ketten-Auswahlleitungen und nicht ausgewählten Masse-Auswahlleitungen, die mit den nicht ausgewählten Zellenketten verbunden sind, während einer Leseoperation und/oder einer Programmverifizierungsoperation reduzieren.
  • Nach einer Ausführungsform können der Beschleunigungsblock 2820 oder der Beschleunigungschip die Trainingsoperation und die AI-Datenberechnung durch Verwenden der Flash-Speichervorrichtungen (2600a und 2600b) durchführen. In einer Ausführungsform kann ein Block, der zum Ausführen einer gewissen Operation imstande ist, im Innern der Flash-Speichervorrichtungen (2600a und 2600b) umgesetzt sein und der entsprechende Block kann stattdessen mindestens einen Abschnitt der Trainingsoperation und einer Inferenz-AI-Datenberechnung, die durch den AP 2800 und/oder den Beschleunigungsblock 2820 durchgeführt werden, durch Verwenden der im Flash-Speicher 2620 gespeicherten Daten durchführen.
  • In einer Ausführungsform kann der AP 2800 eine Schnittstelle 2830 enthalten und dementsprechend können die Flash-Speichervorrichtungen (2600a und 2600b) direkt mit dem AP 2800 verbunden sein. Zum Beispiel kann der AP 2800 als ein SoC umgesetzt sein, die Flash-Speichervorrichtung 2600a kann als ein getrennter Chip vom AP 2800 umgesetzt sein und der AP 2800 und die Flash-Speichervorrichtung 2600a können in einem Gehäuse umgesetzt sein. Allerdings sind die Ausführungsformen der vorliegenden Offenbarung nicht darauf beschränkt und die Mehrzahl an Flash-Speichervorrichtungen (2600a und 2600b) kann über eine Verbindung elektrisch mit dem mobilen System 2000 verbunden sein.
  • Die Flash-Speichervorrichtungen (2600a und 2600b) können Daten, wie durch die Kamera 2100 aufgenommene Standbilder und Videos, speichern oder können Daten speichern, die über ein Kommunikationsnetzwerk und/oder Ports oder Ähnliches, das in den I/O-Vorrichtungen (2700a und 2700b) enthalten ist, empfangen werden. Zum Beispiel können die Flash-Speichervorrichtungen (2600a und 2600b) Inhalte für erweiterte Realität (AR)/virtuelle Realität (VR), HD-Qualität (HD) oder Ultra-HD-Qualität (UHD) speichern.
  • In einer Ausführungsform können die Flash-Speichervorrichtungen (2600a und 2600b) durch Verwenden von oben mit Bezug auf 1 bis 20 beschriebenen Ausführungsformen umgesetzt werden. In einer Ausführungsform können die Flash-Speichervorrichtungen (2600a und 2600b) den ungültigen Schlüssel KEY durch Verwenden der Informationen zum ungültigen Schlüssel Info_IK, die vom Host 200 in der Verdichtungsoperation empfangen werden, bestimmen. Die Flash-Speichervorrichtungen (2600a und 2600b) können die Verdichtungsoperation zum Erzeugen des zusammengeführten Schlüsselstroms ST_MK durch Zusammenführen des Schlüsselstrom ST_KEY, der den ungültigen Schlüssel KEY enthält, mit dem Schlüsselstrom ST_KEY, der sich davon unterscheidet, durchführen. Dementsprechend kann die Menge an Zugriffsdaten der VM-Vorrichtung im Verdichtungsprozess der Flash-Speichervorrichtungen (2600a und 2600b) reduziert werden und die Datenverarbeitungsgeschwindigkeit kann erhöht werden.
  • 23 ist ein Diagramm, das ein Datenzentrum 3000, auf das Speichervorrichtungen angewandt werden, nach einer Ausführungsform darstellt.
  • Bezugnehmend auf 23 kann das Datenzentrum 3000 eine Einrichtung sein, in der verschiedene Daten gesammelt werden und Dienstleistungen vorgesehen werden, und kann außerdem als ein Datenspeicherzentrum bezeichnet werden. Das Datenzentrum 3000 kann Anwendungsserver (3100 bis 3100n) und Speicherserver (3200 bis 3200m) enthalten. Die Anzahl an Anwendungsservern (3100 bis 3100n) und die Anzahl an Speicherservern (3200 bis 3200m) kann nach Ausführungsformen verschiedenartig ausgewählt werden und die Anzahl an Anwendungsservern (3100 bis 3100n) und die Anzahl an Speicherservern (3200 bis 3200m) können sich voneinander unterscheiden.
  • Der Anwendungsserver 3100 und der Speicherserver 3200 können mindestens Prozessoren (3110 und 3210) und/oder Speicher (3120 und 3220) enthalten. Zum Beispiel bezugnehmend auf den Speicherserver 3200 kann der Prozessor 3210 den Gesamtbetrieb des Speicherservers 3200 steuern, auf den Speicher 3220 zugreifen und Befehle und/oder in den Speicher 3220 geladene Daten durchführen. Nach einer Ausführungsform können die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220, die im Speicherserver 3200 enthalten sind, verschiedenartig ausgewählt werden. In einer Ausführungsform können der Prozessor 3210 und der Speicher 3220 ein Prozessor-Speicher-Paar vorsehen. In einer Ausführungsform können sich die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220 voneinander unterscheiden. Der Prozessor 3210 kann einen Einzelkernprozessor oder einen Multikernprozessor enthalten. Die obige Beschreibung des Speicherservers 3200 kann ähnlich auf den Anwendungsserver 3100 angewandt werden. Nach einer Ausführungsform enthält der Anwendungsserver 3100 womöglich keine Speichervorrichtung 3150. Der Speicherserver 3200 kann mindestens eine der Speichervorrichtungen 3250 enthalten. Die im Speicherserver 3200 enthaltene Anzahl an Speichervorrichtungen 3250 kann nach Ausführungsformen verschiedenartig ausgewählt werden.
  • Die Anwendungsserver (3100 bis 3100n) und die Speicherserver (3200 bis 3200m) können über ein Netzwerk 3300 miteinander kommunizieren. Das Netzwerk 3300 kann durch Verwenden eines Fibre-Kanals (FC) oder von Ethernet umgesetzt sein. In diesem Fall kann der FC ein Medium sein, das für eine Datenübertragung mit relativ hoher Geschwindigkeit verwendet wird, und kann einen optischen Schalter, der eine hohe Performance/hohe Verfügbarkeit vorsieht, verwenden. Nach einem Zugriffsverfahren des Netzwerks 3300 können die Speicherserver (3200 bis 3200m) als Dateispeicher, Blockspeicher oder Objektspeicher vorgesehen sein.
  • Nachfolgend werden hauptsächlich der Anwendungsserver 3100 und der Speicherserver 3200 beschrieben. Beschreibungen des Anwendungsservers 3100 können auf andere Anwendungsserver (zum Beispiel 3100n) angewandt werden und Beschreibungen des Speicherservers 3200 können auf andere Speicherserver (zum Beispiel 3200m) angewandt werden.
  • Der Anwendungsserver 3100 kann durch den Benutzer oder Klienten angeforderte Daten, die in einem der Speicherserver (3200 bis 3200m) gespeichert werden sollen, über das Netzwerk 3300 speichern. Ferner kann der Anwendungsserver 3100 durch den Benutzer oder Klienten angeforderte Daten, die aus einem der Speicherserver (3200 bis 3200m) gelesen werden sollen, über das Netzwerk 3300 erhalten. Zum Beispiel kann der Anwendungsserver 3100 als ein Webserver oder ein Datenbank-Verarbeitungssystem (DBMS) umgesetzt sein.
  • Der Anwendungsserver 31000 kann über das Netzwerk 3300 auf einen Speicher 3120n oder eine Speichervorrichtung 3150n, die in einem Anwendungsserver 3100n enthalten sind, zugreifen oder kann über das Netzwerk 3300 auf die Speicher (3220 bis 3220m) oder Speichervorrichtungen (3250 bis 3250m), die in den Speicherservern (3200 bis 3200m) enthalten sind, zugreifen. Somit kann der Anwendungsserver 3100 verschiedene Operationen an in den Anwendungsservern (3100 bis 3100n) und/oder den Speicherservern (3200 bis 3200m) gespeicherten Daten durchführen. Zum Beispiel kann der Anwendungsserver 3100 einen Befehl zum Bewegen oder Kopieren von Daten zwischen den Anwendungsservern (3100 bis 3100n) und/oder den Speicherservern (3200 bis 3200m) ausführen. In diesem Fall können die Daten über die Speicher (3220 bis 3220m) der Speicherserver (3200 bis 3200m) oder direkt aus den Speichervorrichtungen (3250 bis 3250m) der Speicherserver (3200 bis 3200m) zu den Speichern (3120 bis 3120m) der Anwendungsserver (3100 bis 3100n) bewegt werden.
  • Zum Beispiel bezugnehmend auf den Speicherserver 3200 kann eine I/F 3254 eine physikalische Verbindung zwischen dem Prozessor 3210 und einem Controller 3251 und eine physikalische Verbindung zwischen einem Netzwerkschnittstellencontroller (NIC) 3240 und dem Controller 3251 vorsehen. Zum Beispiel kann die I/F 3254 in einem Direct-Attached-Storage(DAS)-Verfahren zum direkten Verbinden der Speichervorrichtung 3250 mit einem dedizierten Kabel umgesetzt werden. Zusätzlich kann die I/F 3254 in verschiedenen Schnittstellenverfahren umgesetzt sein, wie: einem Advanced Technology Attachment (ATA), einem Serial ATA (SATA), einem externen SATA (e-SATA), einer kleinen Computersystem-Schnittstelle (SCSI), einer Serial Attached SCSI (SAS), einer Peripheral Component Interconnect (PCI), einem PCI-Express (PCIe), einem Node-Version-Manager(NVM)-Express (NVMe), einem IEEE 1394, einem Universal Serial Bus (USB), einer Secure-Digital(SD)-Karte, einer Multimediakarte (MMC), einer eingebetteten Multimediakarte (eMMC), einem Universal-Flash-Speicher (UFS) und einer Kompakt-Flash(CF)-Karte.
  • Der Speicherserver 3200 kann ferner einen Schalter 3230 und den NIC 3240 enthalten. Der Schalter 3230 kann den Prozessor 3210 unter der Steuerung des Prozessors 3210 selektiv mit der Speichervorrichtung 3250 verbinden. Alternativ kann der Schalter 3230 den NIC 3240 selektiv mit der Speichervorrichtung 3250 verbinden.
  • In einer Ausführungsform kann der NIC 3240 eine Netzwerkschnittstellenkarte, einen Netzwerkadapter und Ähnliches enthalten. Der NIC 3240 kann durch eine verdrahtete Schnittstelle, eine drahtlose Schnittstelle, eine Bluetooth-Schnittstelle, eine optische Schnittstelle und Ähnliches mit dem Netzwerk 3300 verbunden sein. Der NIC 3240 kann einen internen Speicher, einen Digitalsignalprozessor (DSP), eine Host-Bus-Schnittstelle und Ähnliches enthalten und kann über die Host-Bus-Schnittstelle mit dem Prozessor 3120 und/oder dem Schalter 3230 verbunden sein. Die Host-Bus-Schnittstelle kann als eines der oben beschriebenen Beispiele der I/F 3254 umgesetzt sein. In einer Ausführungsform kann der NIC 3240 mit mindestens einem von dem Prozessor 3210, dem Schalter 3230 und der Speichervorrichtung 3250 integriert sein.
  • In den Speicherservern (3200 bis 3200m) oder den Anwendungsservern (3100 bis 3100n) können die Prozessoren (3110 bis 3110n und 3210 bis 3210m) Daten durch Übertragen von Befehlen an die Speichervorrichtungen (3130 bis 3130n und 3250 bis 3250m) oder die Speicher (3120 bis 3120n und 3220 bis 3220n) programmieren oder lesen. In diesem Fall können die Daten Fehler-korrigierte Daten sein, die durch eine Fehlerprüf- und -Korrektur(ECC)-Maschine verarbeitet werden. Die Daten können Daten sein, die durch eine Datenbusinversion (DBI) oder eine Datenmaskierung (DM) verarbeitet werden, und können zyklische Redundanzcode(CRC)-Informationen enthalten.
  • Die Speichervorrichtungen (3150 bis 3150m und 3250 bis 3250m) können Steuersignale und Befehls-/Adresssignale als Reaktion auf von den Prozessoren (3110 bis 3110n und 3210 bis 3210m) empfangenen Lesebefehlen an die NAND-Flash-Speichervorrichtungen (3252 bis 3252m) übertragen. Dementsprechend, wenn Daten aus den NAND-Flash-Speichervorrichtungen (3252 bis 3252m) gelesen werden, kann ein Leseaktivierungs(RE)-Signal als ein Datenausgabe-Steuersignal eingegeben werden und kann die Daten an den Datensignal(DQ)-Bus ausgeben. Eine Datenabtastung (DQS) kann durch Verwenden des RE-Signals erzeugt werden. Die Befehls- und Adresssignale können in einem Seitenpuffer nach einer ansteigenden Flanke oder einer abfallenden Flanke eines Schreibaktivierungs(WE)-Signals zwischengespeichert werden. In einer Ausführungsform können die Speichervorrichtungen (3150 bis 3150m) durch Verwenden der oben mit Bezug auf 1 bis 20 beschriebenen Ausführungsformen umgesetzt sein. In einer Ausführungsform können die Speichervorrichtungen (3150 bis 3150m) den ungültigen Schlüssel KEY durch Verwenden der Informationen zum ungültigen Schlüssel Info_IK, die vom Host 200 in der Verdichtungsoperation empfangen werden, bestimmen. Die Speichervorrichtungen (3150 bis 3150m) können die Verdichtungsoperation zum Erzeugen des zusammengeführten Schlüsselstroms ST_MK durch Zusammenführen des Schlüsselstroms ST_KEY, der den ungültigen Schlüssel KEY enthält, mit dem Schlüsselstrom ST_KEY, der sich davon unterscheidet, durchführen. Dementsprechend kann die Menge an Zugriffsdaten der VM-Vorrichtung im Verdichtungsprozess der Speichervorrichtungen (3150 bis 3150m) reduziert werden und die Datenverarbeitungsgeschwindigkeit kann erhöht werden.
  • Der Controller 3151 kann den Gesamtbetrieb der Speichervorrichtung 3150 steuern. In einer Ausführungsform kann der Controller 3251 SRAM enthalten. Der Controller 3251 kann Daten als Reaktion auf einen Schreibbefehl in die NAND-Flash-Speichervorrichtung 3252 schreiben. Alternativ kann der Controller 3251 Daten als Reaktion auf einen Lesebefehl aus der NAND-Flash-Speichervorrichtung 3252 lesen. Zum Beispiel können der Schreibbefehl und/oder der Lesebefehl durch den Prozessor 3210 im Speicherserver 3200, dem Prozessor 3210m in einem weiteren Speicherserver 3200m oder die Prozessoren (3110 bis 3110n) in den Anwendungsservern (3100 bis 3100n) vorgesehen sein.
  • Obwohl die erfinderischen Konzepte mit Bezug auf Ausführungsformen der vorliegenden Offenbarung besonders gezeigt und beschrieben worden sind, versteht es sich, dass verschiedene Änderungen in Form und Details darin vorgenommen werden können, ohne dabei vom Geist und Umfang der nachfolgenden Ansprüche abzuweichen.

Claims (20)

  1. Speichervorrichtung, aufweisend: einen Controller, der konfiguriert ist, einen Schlüsselstrom und einen Wertstrom durch Extrahieren einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der durch einen Host vorgesehenen Mehrzahl an Schlüsseln entsprechen, zu erzeugen, Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, gemeinsam mit einem Verdichtungsbefehl vom Host zu empfangen, und eine Verdichtungsoperation am Schlüsselstrom als Reaktion auf den Verdichtungsbefehl durchzuführen; und einen nichtflüchtigen Speicher, der den Schlüsselstrom und den Wertstrom speichert, wobei der Controller den Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel in der Vergleichsoperation mit einem weiteren Schlüsselstrom zu einem zusammengeführten Schlüsselstrom zusammenführt.
  2. Speichervorrichtung nach Anspruch 1, wobei der Controller konfiguriert ist, den Schlüsselstrom durch Zusammenführen eines jeden der Mehrzahl an Schlüsseln mit einem Index, der einem entsprechenden Wert aus der Mehrzahl an Werten entspricht, zu erzeugen.
  3. Speichervorrichtung nach Anspruch 2, wobei der Controller einen Index, der dem ungültigen Schlüssel entspricht, als die Informationen zu dem ungültigen Schlüssel vom Host empfängt.
  4. Speichervorrichtung nach Anspruch 1, wobei der Controller einen ersten Schlüsselstrom durch Kombinieren von mindestens einigen der Mehrzahl an Schlüsseln erzeugt, einen zweiten Schlüsselstrom durch Kombinieren von mindestens einigen der Mehrzahl an Schlüsseln erzeugt, einen dritten Schlüsselstrom durch Zusammenführen des ersten Schlüsselstroms mit dem zweiten Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel erzeugt und den erzeugten dritten Schlüsselstrom im nichtflüchtigen Speicher speichert.
  5. Speichervorrichtung nach Anspruch 4, wobei der Controller ungültige Schlüssel aus einer Mehrzahl an Schlüsseln, die im ersten Schlüsselstrom und im zweiten Schlüsselstrom enthalten ist, basierend auf den Informationen zu dem ungültigen Schlüssel bestimmt und den dritten Schlüsselstrom durch Kombinieren von gültigen Schlüsseln, die im ersten Schlüsselstrom und im zweiten Schlüsselstrom enthalten sind, erzeugt, wobei die ungültigen Schlüssel Werten, die einen Löschbefehl vom Host empfangen haben, aus der Mehrzahl an Werten entsprechen.
  6. Speichervorrichtung nach Anspruch 1, wobei der Wertstrom im nichtflüchtigen Speicher unabhängig vom Schlüsselstrom gespeichert ist, und wobei die Speichervorrichtung ferner aufweist: einen flüchtigen Speicher, der eine Schlüsseltabelle, die eine physikalische Adresse für den nichtflüchtigen Speicher aufweist, und eine Wertetabelle, die eine physikalische Adresse für den nichtflüchtigen Speicher des Wertstroms aufweist, speichert.
  7. Speichervorrichtung nach Anspruch 6, wobei die Schlüsseltabelle ein Gültigkeitsbit, das dem Wertstrom entspricht, speichert, sodass ein gültiger Schlüssel einem Schlüssel entspricht, welcher der Mehrzahl an Werten entspricht.
  8. Speichervorrichtung nach Anspruch 6, wobei, wenn die Verdichtungsoperation durchgeführt wird, der Controller die Schlüsseltabelle durch Hinzufügen einer Adresse für den zusammengeführten Schlüsselstrom zu der Schlüsseltabelle aktualisiert.
  9. Speichervorrichtung nach Anspruch 1, wobei der Controller ferner Datenkapazitätsinformationen zu Werten, die einer Mehrzahl an ungültigen Schlüsseln, die den ungültigen Schlüssel enthält, entsprechen, vom Host empfängt und eine Freispeichersammlungsoperation durch Verwenden der Datenkapazitätsinformationen an den Werten durchführt.
  10. Speichervorrichtung nach Anspruch 1, wobei der Controller eine Adresse des nichtflüchtigen Speichers, in dem der ungültige Schlüssel gespeichert ist, als die Informationen zu dem ungültigen Schlüssel empfängt.
  11. Betriebsverfahren einer Speichervorrichtung, die einen Schlüsselstrom und einen Wertstrom speichert, die durch Extrahieren, aus Daten, einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, erzeugt werden, wobei das Betriebsverfahren aufweist: Empfangen eines Verdichtungsbefehls und von Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, von einem Host; Durchführen einer Verdichtungsoperation basierend auf dem Verdichtungsbefehl durch Zusammenführen des Schlüsselstroms mit einem weiteren Schlüsselstrom zu einem zusammengeführten Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel; und Speichern des zusammengeführten Schlüsselstroms in einem nichtflüchtigen Speicher.
  12. Betriebsverfahren nach Anspruch 11, ferner aufweisend: Erzeugen von Indizes für die Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen; und Erzeugen des Schlüsselstroms durch in Bezug Setzen der Indizes mit der Mehrzahl an Schlüsseln.
  13. Betriebsverfahren nach Anspruch 12, wobei die Informationen zu dem ungültigen Schlüssel Indexinformationen enthalten, die einer Mehrzahl an ungültigen Schlüsseln, die den ungültigen Schlüssel enthält, entsprechen, und das Durchführen der Verdichtungsoperation das Zusammenführen von lediglich gültigen Schlüsseln des Schlüsselstroms mit einem weiteren Schlüsselstrom durch Ausschließen der Mehrzahl an ungültigen Schlüsseln aus dem Schlüsselstrom basierend auf den Informationen aufweist.
  14. Betriebsverfahren nach Anspruch 13, ferner aufweisend: Erzeugen einer Schlüsseltabelle, die Informationen zu einer Speicherposition des Schlüsselstroms im nichtflüchtigen Speicher und einem Gültigkeitsbit, das dem Schlüsselstrom entspricht, aufweist; und Aktualisieren des Gültigkeitsbits basierend auf den Informationen zu dem ungültigen Schlüssel.
  15. Betriebsverfahren nach Anspruch 14, wobei das Durchführen der Verdichtungsoperation das Erzeugen des zusammengeführten Schlüsselstroms durch Extrahieren von gültigen Schlüsseln aus einer Mehrzahl an Schlüsseln, die im Schlüsselstrom und im weiteren Schlüsselstrom enthalten ist, basierend auf dem Gültigkeitsbit aufweist.
  16. Speichersystem, das einen Schlüsselstrom und einen Wertstrom aufweist, die durch Extrahieren, aus Daten, einer Mehrzahl an Schlüsseln und einer Mehrzahl an Werten, die jeweils der Mehrzahl an Schlüsseln entsprechen, erzeugt werden, wobei das Speichersystem aufweist: einen Host, der konfiguriert ist, einen Verdichtungsbefehl für den Schlüsselstrom und Informationen zu einem ungültigen Schlüssel, der im Schlüsselstrom enthalten ist, zu übertragen; und eine Speichervorrichtung, die konfiguriert ist, den Verdichtungsbefehl zu empfangen, eine Verdichtungsoperation basierend auf dem Verdichtungsbefehl durch Zusammenführen des Schlüsselstroms mit einem weiteren Schlüsselstrom zu einem zusammengeführten Schlüsselstrom basierend auf den Informationen zu dem ungültigen Schlüssel durchzuführen und den zusammengeführten Schlüsselstrom zu speichern.
  17. Speichersystem nach Anspruch 16, wobei die Speichervorrichtung den Schlüsselstrom durch Kombinieren eines jeden der Mehrzahl an Schlüsseln mit einem Index, der einem entsprechenden Wert aus der Mehrzahl an Werten entspricht, erzeugt; und die Informationen zu dem ungültigen Schlüssel Indexinformationen aufweisen, die einer Mehrzahl an ungültigen Schlüsseln, die den ungültigen Schlüssel enthält, entsprechen.
  18. Speichersystem nach Anspruch 17, wobei die Speichervorrichtung einen ersten Schlüsselstrom durch Kombinieren von mindestens einigen der Mehrzahl an Schlüsseln erzeugt, einen zweiten Schlüsselstrom durch Kombinieren von mindestens einigen der Mehrzahl an Schlüsseln, die nicht im ersten Schlüsselstrom sind, erzeugt, einen dritten Schlüsselstrom durch Zusammenführen des ersten Schlüsselstroms mit dem zweiten Schlüsselstrom basierend auf den Indexinformationen erzeugt und den erzeugten dritten Schlüsselstrom in einem nichtflüchtigen Speicher speichert.
  19. Speichersystem nach Anspruch 18, wobei die Speichervorrichtung aufweist: einen Controller, der konfiguriert ist, die Mehrzahl an Schlüsseln und die Mehrzahl an Werten zu verwalten; einen nichtflüchtigen Speicher, der den ersten Schlüsselstrom, den zweiten Schlüsselstrom, den dritten Schlüsselstrom und die Mehrzahl an Werten speichert; und einen flüchtigen Speicher, der eine Schlüsseltabelle, die physikalische Adressen für den nichtflüchtigen Speicher des ersten Schlüsselstroms, des zweiten Schlüsselstroms, des dritten Schlüsselstroms aufweist, und eine Wertetabelle, die physikalische Adressen für den nichtflüchtigen Speicher des Wertstroms aufweist, speichert, und wobei die Schlüsseltabelle ein Gültigkeitsbit, das einem jeden der Mehrzahl an Werten entspricht, speichert, um einem Schlüssel zu entsprechen, welcher der Mehrzahl an Werten entspricht.
  20. Speichersystem nach Anspruch 16, wobei die Speichervorrichtung ferner Datenkapazitätsinformationen zu Werten, die einer Mehrzahl an ungültigen Schlüsseln, die den ungültigen Schlüssel enthält, entsprechen, vom Host empfängt und eine Freispeichersammlungsoperation durch Verwenden der Datenkapazitätsinformationen an den Werten durchführt.
DE102020126663.4A 2019-12-24 2020-10-12 Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben Pending DE102020126663A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0174281 2019-12-24
KR1020190174281A KR20210081888A (ko) 2019-12-24 2019-12-24 키-밸류 기반으로 데이터를 저장하는 스토리지 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
DE102020126663A1 true DE102020126663A1 (de) 2021-06-24

Family

ID=76205865

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020126663.4A Pending DE102020126663A1 (de) 2019-12-24 2020-10-12 Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben

Country Status (4)

Country Link
US (2) US11573890B2 (de)
KR (1) KR20210081888A (de)
CN (1) CN113032289A (de)
DE (1) DE102020126663A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210397345A1 (en) * 2020-05-19 2021-12-23 Nutanix, Inc. Managing i/o amplification in log-structured merge trees
US11392327B2 (en) 2020-09-09 2022-07-19 Western Digital Technologies, Inc. Local data compaction for integrated memory assembly
US20230188338A1 (en) * 2021-12-10 2023-06-15 Amazon Technologies, Inc. Limiting use of encryption keys in an integrated circuit device
US11853607B2 (en) 2021-12-22 2023-12-26 Western Digital Technologies, Inc. Optimizing flash memory utilization for NVMe KV pair storage
US11817883B2 (en) 2021-12-27 2023-11-14 Western Digital Technologies, Inc. Variable length ECC code according to value length in NVMe key value pair devices
US11733876B2 (en) 2022-01-05 2023-08-22 Western Digital Technologies, Inc. Content aware decoding in KV devices
CN114415966B (zh) * 2022-01-25 2022-08-12 武汉麓谷科技有限公司 一种kv ssd存储引擎的构建方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689616B2 (en) * 2005-04-15 2010-03-30 Microsoft Corporation Techniques for specifying and collecting data aggregations
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US9311252B2 (en) 2013-08-26 2016-04-12 Globalfoundries Inc. Hierarchical storage for LSM-based NoSQL stores
WO2015121938A1 (ja) 2014-02-13 2015-08-20 株式会社日立製作所 データ管理装置及び方法
US9971526B1 (en) 2015-06-29 2018-05-15 Amazon Technologies, Inc. Volume-based key-value store
CN106407224B (zh) 2015-07-31 2019-09-13 华为技术有限公司 一种键值存储系统中文件压实的方法和装置
US10248680B2 (en) 2015-09-28 2019-04-02 International Business Machines Corporation Index management
US10318199B2 (en) 2015-11-18 2019-06-11 International Business Machines Corporation System, method, and recording medium for reducing memory consumption for in-memory data stores
KR101656750B1 (ko) 2016-02-26 2016-09-23 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US10768836B2 (en) 2017-07-07 2020-09-08 Sap Se Page based data persistency

Also Published As

Publication number Publication date
US20230143869A1 (en) 2023-05-11
KR20210081888A (ko) 2021-07-02
US20210191882A1 (en) 2021-06-24
US11573890B2 (en) 2023-02-07
CN113032289A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
DE102020126663A1 (de) Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben
US11301373B2 (en) Reconstruction of address mapping in a host of a storage system
US10671524B2 (en) Data storage device including nonvolatile memory device and operating method thereof
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
CN105739915A (zh) 存储系统中执行的条带重建方法和存储系统
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
TWI518694B (zh) 可減少記憶體干擾之記憶裝置及其操作方法
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
CN106610904B (zh) 存储系统及其操作方法
US20170270040A1 (en) Memory system and operating method thereof
KR102254099B1 (ko) 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
US11733891B2 (en) Storage device storing data based on key-value and operating method of the same
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
US11556271B2 (en) Storage device storing data on key-value basis and operating method thereof
CN110888597A (zh) 存储设备、存储系统以及操作存储设备的方法
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
KR20200113990A (ko) 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치
KR102271502B1 (ko) 메모리 장치 및 그 제어 방법
DE102022209756A1 (de) Speichervorrichtung und speichersystem zum programmieren von daten
DE102022203891A1 (de) Steuerung und betriebsverfahren davon
DE112022000470T5 (de) Cache-basierter fluss für einen einfachen kopierbefehl
US10990520B2 (en) Method for gabage collecting for non-volatile memory

Legal Events

Date Code Title Description
R012 Request for examination validly filed