DE102020119205A1 - Speichervorrichtung, speichersystem und betriebsverfahren hierfür - Google Patents

Speichervorrichtung, speichersystem und betriebsverfahren hierfür Download PDF

Info

Publication number
DE102020119205A1
DE102020119205A1 DE102020119205.3A DE102020119205A DE102020119205A1 DE 102020119205 A1 DE102020119205 A1 DE 102020119205A1 DE 102020119205 A DE102020119205 A DE 102020119205A DE 102020119205 A1 DE102020119205 A1 DE 102020119205A1
Authority
DE
Germany
Prior art keywords
lba
storage device
stream
data
related information
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
DE102020119205.3A
Other languages
English (en)
Inventor
Kang Ho Roh
Ji Min Lee
Byeong Hui KIM
Jung Min Seo
Seung Jun Yang
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 DE102020119205A1 publication Critical patent/DE102020119205A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die Speichervorrichtung umfasst: eine Schnittstelle, die Daten und eine entsprechende LBA von einem Host erhält, wobei die Daten erste Daten mit einer Stream-ID und/oder zweite Daten ohne Stream-ID umfassen, eine nichtflüchtige Speicher(NVM)-Vorrichtung, die mindestens einen nichtflüchtigen Speicher umfasst, der eingerichtet ist, die Daten zu speichern, und einen LBA-Vorhersager, der eingerichtet ist, eine vorhergesagte Stream-ID für die zweiten Daten unter Verwendung eines neuronalen Netzmodells bereitzustellen, das ansprechend auf mindestens ein Merkmal arbeitet, das mit LBA-Werten assoziiert ist, welche die Speichervorrichtung von dem Host empfangen hat, wobei die ersten Daten in der NVM-Vorrichtung unter Verwendung der Stream-ID gespeichert werden und die Daten in der NVM-Vorrichtung unter Verwendung der vorhergesagten Stream-ID gespeichert werden.

Description

  • Querverweis auf ähnliche Anmeldung
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung KR 10-2019-0142181 , eingereicht am 8. November 2019, deren Gegenstand hiermit durch Verweis aufgenommen wird.
  • Hintergrund
  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft Speichervorrichtungen, Speichersysteme und Betriebsverfahren für Speichervorrichtungen und/oder Speichersysteme.
  • Beschreibung des Stands der Technik
  • Speichervorrichtungen, die mindestens einen nichtflüchtigen Speicher umfassen, können mit Schreibfaktor (Write Amplification) assoziierte Probleme haben. Schreibfaktorprobleme können auftreten, wenn ein Verhältnis zwischen einer Anzahl an Schreibvorgängen, die durch den nichtflüchtigen Speicher ausgeführt werden, und einer Anzahl an Schreibvorgängen, die von einem Host angefordert werden, unausgewogen wird. Schreibfaktorprobleme können auftreten, wenn eine Speichervorrichtung eine große Anzahl an zufällig adressierten Schreibvorgängen durchführt. Schreibfaktorprobleme können eine Schreibperformance der Speichervorrichtung reduzieren und den Gesamtverschleiß der einzelnen nichtflüchtigen Speicherzellen erhöhen, wodurch die Lebensdauer und Zuverlässigkeit der Speichervorrichtung reduziert wird.
  • Um die schädlichen Auswirkungen des Schreibfaktors zu verringern oder zu verhindern, können logische Blockadressen (LBA), die mit einem oder mehreren Datenstreamkennung(en) (ID) assoziiert sind, in Bezug auf die Speichervorrichtung verwendet werden. Entsprechend muss die Speichervorrichtung dazu fähig sein, LBA-Werte, die mit einer Stream-ID assoziiert sind, genau zu ermitteln. Ferner muss die Speichervorrichtung dazu fähig sein, eine bestimmte Stream-ID mit LBA-Werten zu assoziieren, denen die gleiche Stream-ID zugeordnet wurde.
  • Kurzfassung
  • Ausführungsformen der vorliegenden Offenbarung schaffen eine Speichervorrichtung, die dazu fähig ist, LBA-Werte genau vorherzusagen, denen für einen Schreibvorgang die gleiche Stream-ID zugeordnet werden sollte.
  • Ausführungsformen der vorliegenden Offenbarung schaffen ein Speichersystem, das dazu fähig ist, LBA-Werte genau vorherzusagen, denen für einen Schreibvorgang die gleiche Stream-ID zugeordnet werden sollte.
  • Ausführungsformen der vorliegenden Offenbarung schaffen ein Betriebsverfahren für ein Speichersystem, das dazu fähig ist, LBA-Werte genau vorherzusagen, denen für einen Schreibvorgang die gleiche Stream-ID zugeordnet werden sollte.
  • Gemäß einem Aspekt des vorliegenden erfinderischen Konzepts wird eine Speichervorrichtung geschaffen umfassend: einen Pufferspeicher, der eingerichtet ist, eine erste Kennungs(ID)-spezifische, auf eine logische Blockadresse (LBA) bezogene Information, die mit einer ersten Stream-ID assoziiert ist und ferner mit „m“ LBA-Werten assoziiert ist, und eine zweite ID-spezifische LBA-bezogene Information, die mit einer zweiten Stream-ID assoziiert ist und ferner mit „n“ LBA-Werten assoziiert ist, zu speichem, und einen LBA-Vorhersager, der ein neuronales Netzmodell umfasst und eingerichtet ist, einen (m+k)-ten LBA-Wert basierend auf der ersten ID-spezifischen LBA-bezogenen Information vorherzusagen und einen (n+1)-ten LBA-Wert basierend auf der zweiten ID-spezifischen LBA-bezogenen Information vorherzusagen, wobei n, m, k und 1 natürliche Zahlen sind. Das neuronale Netzmodell kann eingerichtet sein, die erste ID-spezifische LBA-bezogene Information als erstes Merkmal zu empfangen, das verwendet wird, um den (m+k)-ten LBA-Wert vorherzusagen, die zweite ID-spezifische LBA-bezogene Information als zweites Merkmal zu empfangen, das verwendet wird, um den (n+1)-ten LBA-Wert vorherzusagen, die erste Stream-ID einem LBA-Wert zuzuordnen, der größer ist als ein m-ter LBA-Wert und kleiner gleich dem (m+k)-ten LBA-Wert ist, und die zweite Stream-ID einem LBA-Wert zuzuordnen, der größer ist als ein n-ter LBA-Wert und kleiner gleich dem (n+1)-ten LBA-Wert ist.
  • Gemäß einem Aspekt des vorliegenden erfinderischen Konzepts wird eine Speichervorrichtung geschaffen umfassend: eine Schnittstelle, die eingerichtet ist, Daten und eine entsprechende logische Blockadresse (LBA) von einem Host zu empfangen, wobei die Daten erste Daten mit einer Stream-ID und/oder zweite Daten ohne eine Stream-ID umfassen, eine nichtflüchtige Speicher(NVM)-Vorrichtung, die mindestens einen nichtflüchtigen Speicher umfasst, der eingerichtet ist, die Daten zu speichern, einen Pufferspeicher, und einen LBA-Vorhersager, der eingerichtet ist, eine vorhergesagte Stream-ID für die zweiten Daten unter Verwendung eines neuronalen Netzmodells bereitzustellen, das ansprechend auf mindestens ein Merkmal arbeitet, das mit LBA-Werten assoziiert ist, welche die Speichervorrichtung von dem Host empfangen hat, wobei die ersten Daten in der NVM-Vorrichtung unter Verwendung der Stream-ID gespeichert werden und die Daten in der NVM-Vorrichtung unter Verwendung der vorhergesagten Stream-ID gespeichert werden.
  • Gemäß einem Aspekt des vorliegenden erfinderischen Konzepts wird ein Speichersystem geschaffen umfassend: einen Host, der eingerichtet ist, „m“ logische Blockadress(LBA)-Werte auszugeben; und eine Speichervorrichtung. Die Speichervorrichtung umfasst: eine Schnittstelle, die eingerichtet ist, mit dem Host zu kommunizieren und die m LBA-Werte zu empfangen, einen Pufferspeicher, der eingerichtet ist, die m LBA-Werte vorübergehend zu speichern, eine nichtflüchtige Speichervorrichtung, die eingerichtet ist, Daten entsprechend den m LBA-Werten zu speichern, und einen LBA-Vorhersager, der eingerichtet ist, einen (m+k)-ten LBA-Wert unter Verwendung eines neuronalen Netzmodells ansprechend auf eine LBA-bezogene Information vorherzusagen, die in das neuronale Netzmodell als Merkmal eingegeben wird.
  • Gemäß einem Aspekt des vorliegenden erfinderischen Konzepts wird ein Betriebsverfahren für ein Speichersystem geschaffen. Das Verfahren umfasst: Speichern von Information bezüglich einer logischen Blockadresse (LBA) in einem Pufferspeicher, wobei die LBA-bezogene Information mit „m“ LBA-Werten assoziiert ist, Vorhersagen, durch die Verwendung eines LBA-Vorhersagers, der ein neuronales Netzmodell umfasst, eines (m+k)-ten LBA-Werts ansprechend auf die LBA-bezogene Information, und Zuordnen einer vorhergesagten Stream-ID zu einem LBA-Wert, der größer ist als ein m-ter LBA-Wert und kleiner gleich dem (m+k)-ten LBA-Wert ist.
  • Jedoch sind Aspekte der vorliegenden Offenbarung nicht auf die im vorliegenden Text dargelegten Aspekte beschränkt. Die obigen sowie weitere Aspekte der vorliegenden Offenbarung werden für einen Fachmann auf dem Gebiet, zu dem die vorliegende Offenbarung gehört, anhand der folgenden detaillierten Beschreibung der vorliegenden Offenbarung besser ersichtlich sein.
  • Figurenliste
  • Die obigen sowie weitere Aspekte und Merkmale der vorliegenden Offenbarung werden anhand einer detaillierten Beschreibung beispielhafter Ausführungsformen derselben unter Bezug auf die beiliegenden Zeichnungen besser ersichtlich sein; hierbei zeigen:
    • 1 ein Blockschaltbild, das ein Speichersystem gemäß einigen Ausführungsformen darstellt.
    • 2 und 3 Konzeptschemata, die einen Schreibfaktor sowie die Verwendung von Stream-IDs, um Schreibfaktorprobleme zu adressieren, genauer darstellen.
    • 4 ein Konzeptschema, das einen Betrieb einer Speichervorrichtung, die einen Wert einer logischen Blockadresse (LBA) unter Verwendung eines neuronalen Netzmodells vorhersagt, gemäß einigen Ausführungsformen darstellt.
    • 5, 6 und 7 jeweils Graphen, die einen Betrieb der Speichervorrichtung, die LBA-Werte vorhersagt, gemäß einigen Ausführungsformen genauer darstellen.
    • 8 eine Tabelle, die beispielhafte LBA-Informationen genauer auflistet, die verwendet werden können, um LBA-Werte vorherzusagen, gemäß einigen Ausführungsformen.
    • 9 und 10 jeweils Graphen, die einen Betrieb der Speichervorrichtung, die LBA-Werte vorhersagt, gemäß einigen Ausführungsformen genauer darstellen.
    • 11, 12 und 13 Blockschaltbilder, die Speichersysteme gemäß einigen Ausführungsformen darstellen.
    • 14 ein Flussdiagramm, das ein Betriebsverfahren für ein Speichersystem gemäß einigen Ausführungsformen zusammenfasst.
  • Detaillierte Beschreibung
  • Es werden nun bestimmte Ausführungsformen in Bezug auf die beigefügten Zeichnungen beschrieben. In allen dargestellten Ausführungsformen und einer zugehörigen schriftlichen Beschreibung werden gleiche Bezugszeichen und Benennungen verwendet, um gleiche oder ähnliche Elemente zu bezeichnen.
  • Figur (Fig.) 1 ist ein Blockschaltbild, das ein Speichersystem gemäß einigen Ausführungsformen darstellt. 2 ist ein Konzeptschema, das einen Schreibfaktor genauer beschreibt, und 3 ist ein Konzeptschema, das einen Zustand genauer beschreibt, in dem Stream-Kennungen (nachfolgend „IDs“) durch das Speichersystem zugeordnet werden. 4 ist ein Flussdiagramm, das einen Betrieb einer Speichervorrichtung genauer beschreibt, die einen Wert einer logischen Blockadresse (LBA) unter Verwendung eines neuronalen Netzmodells vorhersagt, gemäß einigen Ausführungsformen.
  • Gemäß 1 kann ein Speichersystem 1 allgemein einen Host 10 und eine Speichervorrichtung 20 umfassen.
  • Die Speichervorrichtung 20 kann eine Schnittstelle 60 umfassen, die eingerichtet ist, eine Verbindung zwischen dem Host 10 und der Speichervorrichtung, einer nichtflüchtigen Speichervorrichtung (NVM) 50, die eine oder mehrere nichtflüchtige Speicher umfasst, einem Pufferspeicher 40 und einem LBA-Vorhersager 30 zu fördern.
  • Der Host 10 kann während eines Schreib- (oder Programmier-)vorgangs, der durch die Speichervorrichtung 20 (z. B. eine Solid State Drive (SSD)) ausgeführt wird, Daten, die eine assoziierte ID umfassen, an die Speichervorrichtung 20 übertragen. Der Host 10 kann die ID den Daten abhängig von (z. B.) dem Datentyp (z. B. einer Protokolldatei, einer Meta-Datei, einer Mediendatei usw.) zuordnen. In diesem Kontext kann sich der Begriff „Typ“ auf verschiedene Merkmale oder Attribute der Daten beziehen. Sobald der Host 10 den Daten eine bestimmte ID zugeordnet hat, können die Daten als Teil eines Multi-Stream-Datensatzes an die Speichervorrichtung 20 übertragen werden. Zum Beispiel kann der Host 10 ersten Daten eines Protokolldateityps eine erste ID zuweisen und Daten eines Mediendateityps eine zweite ID zuweisen.
  • In diesem Kontext kann die Speichervorrichtung 20 - die eingerichtet ist, eine Mehrzahl mit einem Datensatz assoziierte IDs zu empfangen - als Multi-Stream-Speichervorrichtung bezeichnet werden. Die Multi-Stream-Speichervorrichtung kann Betriebssysteme und Anwendungen mit Schnittstellen vorsehen, durch die Daten mit unterschiedlichen Attributen individuell gespeichert werden können. Der/die jeweiligen Prozess(e), mit dem individuelle Daten gespeichert werden, können als „Streams“ bezeichnet werden. Das heißt, eine Sammlung (oder „Gruppe“) individueller Datenschreibvorgänge kann in einem aggregierten „Stream“ umfasst sein, wobei jeder Stream im Einzelnen durch eine entsprechende „Stream-ID“ identifiziert werden kann, die (z. B.) durch ein Betriebssystem oder eine entsprechende Anwendung zugeordnet wird. So kann ungleichartigen Daten mit ähnlichen Merkmalen oder Attributen eine eindeutige ID zugeordnet werden, sodass die Daten, die der eindeutigen Stream-ID entsprechen, in den gleichen Block in der NVM-Vorrichtung 50 der Speichervorrichtung 20 geschrieben werden können.
  • Wenn allerdings Daten ohne Stream-ID von dem Host 10 empfangen werden, kann die Speichervorrichtung 20 die Daten ohne Stream-ID in einen beliebigen Block speichem. Folglich können Daten mit unterschiedlichen Stream-IDs in den gleichen Block geschrieben werden. Diese Folge wird nachfolgend unter Bezugnahme auf 2 in genauerem Detail beschrieben.
  • Gemäß 1 und 2 kann die Speichervorrichtung 20, wenn Daten ohne Stream-ID von dem Host 10 empfangen werden, die Daten ohne Stream-ID beliebig in (z. B.) jeweilige Blöcke BLK1, BLK2 und BLK3 der NVM 50 in der Speichervorrichtung 20 schreiben.
  • Wie zuvor angemerkt, kann die NVM 50 eine Mehrzahl nichtflüchtiger Speicher umfassen. Jede der Mehrzahl nichtflüchtiger Speicher kann nichtflüchtige Speicherzellen (z. B.) NAND-Flash-Speicherzellen, NOR-Flash-Speicherzellen, resistive Direktzugriffsspeicher(RRAM)-Zellen, ferroelektrische Direktzugriffsspeicher(FRAM)-Zellen, Phasenänderungs-Direktzugriffsspeicher(PRAM)-Zellen, Thyristor-Direktzugriffsspeicher(TRAM)-Zellen, magnetische Direktzugriffsspeicher(MRAM)-Zellen usw. umfassen.
  • In dem in 2 dargestellten Beispiel wird angenommen, dass die Speichervorrichtung 20 sechs (6) individuelle Daten (z.B. erste Daten DATA1 bis sechste Daten DATA6) von dem Host 10 empfängt und jeweils (z. B. unter Verwendung einer beliebig etablierten Zuordnungssequenz, zufällig usw.) die ersten Daten DATA1 bis sechsten Daten DATA6 jeweils einem der Blöcke BLK1, BLK2 und BLK3 zuordnet.
  • Zum Beispiel kann die Speichervorrichtung 20 die ersten Daten DATA1 in einer ersten Zeile Row1 des ersten Blocks BLK1 und die zweiten Daten DATA2 in einer zweiten Zeile Row2 des ersten Blocks BLK1 speichern. Die Speichervorrichtung 20 kann die dritten Daten DATA3 in einer ersten Zeile Row1 des zweiten Blocks BLK2 und die vierten Daten DATA4 in einer zweiten Zeile Row2 des zweiten Blocks BLK2 speichern und kann die fünften Daten DATA5 in einer ersten Zeile Row1 des dritten Blocks BLK3 und die sechsten Daten DATA6 in einer zweiten Zeile Row2 des dritten Blocks BLK3 speichem.
  • Unter diesen Annahmen und erkennend, dass keine der ersten Daten DATA1 bis sechsten Daten DATA6 eine zugeordnete Stream-ID haben, kann die Speichervorrichtung 20 die ersten Daten DATA1 bis sechsten Daten DATA6 jeweils beliebig in einen der Blöcke BLK1, BLK2 und BLK3 schreiben. Allerdings gibt es Stream-IDs, die abhängig von (oder basierend auf) dem bestimmten Datentyp jeweils den ersten Daten DATA1 bis sechsten DATA6, die von der Speichervorrichtung 20 empfangen wurden, hätten zugeordnet werden sollen.
  • Das heißt, wenn die ersten Daten DATA1 bis sechsten Daten DATA6 von dem Host 10 empfangen werden aber keine jeweiligen Stream-IDs haben, speichert die Speichervorrichtung 20 die ersten Daten DATA1 bis sechsten Daten DATA6 beliebig (z. B. zufällig) in Blöcke BLK1, BLK2 und BLK3. Die Speichervorrichtung 20 sollte allerdings zweckmäßiger den ersten Daten DATA1 bis sechsten Daten DATA6 abhängig von seinem Typ jeweils eine Stream-ID zuordnen und dann alle Daten aus den ersten Daten DATA1 bis sechsten Daten DATA6 mit der gleichen Stream-ID dem gleichen Block zuweisen.
  • Gemäß 1, 2 und 3 und unter Berücksichtigung der zuvor genannten Annahmen sollte die Speichervorrichtung 20 die beliebig geschriebenen Daten (z. B. die in 2 gezeigten Daten) so „neu zuweisen“, dass Daten mit der gleichen Stream-ID in den gleichen Block geschrieben werden (wie in 3 gezeigt).
  • Zum Beispiel kann die Speichervorrichtung 20 die ersten Daten DATA1, die dritten Daten DATA3 und die fünften Daten DATA5 mit einer ersten Stream-ID (SID1) dem ersten Block BLK1 neu zuweisen (d. h. schreiben oder programmieren), die zweiten Daten DATA2 und die vierten Daten DATA4 mit einer zweiten Stream-ID (SID2) dem zweiten Block BLK2 neu zuweisen und die sechsten Daten DATA6 mit einer dritten Stream-ID (SID3) dem dritten Block BLK3 neu zuweisen. Als Folge des Neuzuordnungsprozesses kann die Speichervorrichtung 20 den ersten Block BLK1 löschen und dann die ersten Daten DATA1, die dritten Daten DATA3 und die fünften Daten DATA5 in den ersten Block BLK1 schreiben; den zweiten Block BLK2 löschen und dann die zweiten Daten DATA2 und die vierten Daten DATA4 in den zweiten Block BLK2 schreiben; und den dritten Block BLK3 löschen und dann die sechsten Daten DATA6 in den dritten Block BLK3 schreiben.
  • Um Daten mit der gleichen Stream-ID dem gleichen Block neu zuzuweisen, muss die Speichervorrichtung 20 daher zahlreiche zusätzliche Lösch- und/oder Schreibvorgänge über jene Schreibvorgänge hinaus durchführen, die erforderlich sind, um die von dem Host 10 empfangenen Daten erstmalig (und beliebig) zu schreiben. Die Ausführung dieser zusätzlichen Lösch- und/oder Schreibvorgänge trägt zu dem oben beschriebenen Schreibfaktorproblem bei. Zum Beispiel kann ein Schreibfaktor die Schreibvorgangsperformance der Speichervorrichtung 20 reduzieren und den Verschleiß einzelner nichtflüchtiger Speicherzellen der NVM 50 in der Speichervorrichtung 20 erhöhen, wodurch die Lebensdauer der Speichervorrichtung 20 reduziert wird.
  • Um Schreibfaktor zu verringern oder zu verhindern, kann die Speichervorrichtung 20, sobald sie einen Schreibbefehl, der mit Daten ohne Stream-ID assoziiert ist empfängt, und bevor sie die Daten ohne Stream-ID tatsächlich in die NVM 50 schreibt, eine Stream-ID für die Daten vorhersagen und danach basierend auf der vorhergesagten Stream-ID die Daten mit einer vorhergesagten Stream-ID in einen Speicherblock schreiben.
  • Die Vorhersage einer Stream-ID für bestimmte Daten kann unter Verwendung von „LBA-bezogenen Informationen“ (z. B. LBA-Werten, LBA-Größen, einer Häufigkeit, mit der jeweilige LBAs empfangen werden, Zeitintervallen, entsprechend welchen jeweilige LBAs empfangen werden usw.) durchgeführt werden, die bei einem Modell eines neuronalen Netzes (NN) eingesetzt werden. Das heißt, die Speichervorrichtung 20 kann eine Stream-ID für Daten ohne Stream-ID unter Verwendung eines neuronalen Netzmodells vorhersagen, um die Genauigkeit des einen oder der mehreren Schreibvorgänge, die verwendet werden, um die Daten ohne Stream-ID erstmalig in verfügbare Speicherblöcke zu schreiben, im Vergleich zu dem beliebigen Schreiben von Daten ohne Stream-ID zu verbessern.
  • Im Grunde ist es das Ziel des vorstehenden Ansatzes, eine Stream-ID (z. B. einen LBA-Wert) für Daten ohne Stream-ID genau vorherzusagen, bevor sie in der NVM-Vorrichtung 50 gespeichert werden (d. h. die gleiche Stream-ID kann genauer LBA-Werten zugeordnet werden, denen die gleiche Stream-ID zugeordnet werden sollte). Daher kann die Speichervorrichtung 20 die LBA-Werte, denen die gleiche Stream-ID zugeordnet werden sollte, genau vorhersagen, und kann die Daten basierend auf den vorhergesagten LBA-Werten in dem gleichen Block speichern, wodurch ein Schreibfaktor reduziert wird und die Zuverlässigkeit der Speichervorrichtung 20 verbessert wird. Nachfolgend wird ein beispielhafter Betrieb zur Vorhersage von LBA-Werten, denen die gleiche Stream-ID zugeordnet werden sollte, etwas detaillierter beschrieben.
  • Es ist anzumerken, dass die Anzahl und der Typ von Daten, welche die Speichervorrichtung 20 von dem Host 10 empfängt, nicht auf die in 2 und 3 dargestellten beschränkt sind. Zudem sind die Anzahl und der Typ von Blöcken in der Speichervorrichtung 20, die verwendet werden, um die Daten zu speichern, nicht auf die in 2 und 3 dargestellten beschränkt. In gewissen Ausführungsformen können ferner Daten auf Basis von Seiten gespeichert werden.
  • Es wird erneut auf 1 Bezug genommen; der Host 10 kann eine von verschiedenen möglichen Formen annehmen, einschließlich derer einer Verarbeitungseinheit, eines Host-Speichers, eines Interface-Schaltkreises usw. Hier kann die Verarbeitungseinheit unterschiedliche Software (z. B. Anwendungsprogramme, Betriebssysteme, Gerätetreiber und dergleichen) ausführen, die in dem Host-Speicher geladen wird. Die Verarbeitungseinheit kann ein Betriebssystem (OS) oder Anwendungsprogramme ausführen. Die Verarbeitungseinheit kann homogene Mehrkernprozessoren oder heterogene Mehrkernprozessoren umfassen. Die Verarbeitungseinheit kann zum Beispiel eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU), eine Bildverarbeitungseinheit (Image Processing Unit, ISP), eine digitale Signalverarbeitungseinheit (Digital Signal Processing Unit, DSP), eine Grafikverarbeitungseinheit (Graphics Processing Unit, GPU), eine Vision Processing Unit (VPU) und/oder eine neuronale Verarbeitungseinheit (Neural Processing Unit, NPU) umfassen, ist aber nicht darauf beschränkt.
  • Ein Anwendungsprogramm, ein Dateisystem, ein Gerätetreiber und dergleichen zum Antreiben bzw. Ansteuern des Speichersystems 1 kann in den Host-Speicher geladen werden. Allerdings ist es nicht darauf beschränkt, und es können unterschiedliche andere Software zum Ansteuern der Speichervorrichtung 20 in den Host-Speicher geladen werden. In den Host-Speicher können Anwendungsprogramme oder Daten geladen werden, die von der Verarbeitungseinheit verarbeitet werden sollen. Zum Beispiel kann ein (nicht gezeigter) Eingabe-/Ausgabe-Planer zum Verwalten von Eingabewarteschlangen und Beendigungswarteschlangen für Befehle, die an die Speichervorrichtung 20 geliefert werden sollen, in den Host-Speicher geladen werden.
  • Der Interface-Schaltkreis kann physische Verbindungen zwischen dem Host 10 und der Speichervorrichtung 20 vorsehen. Zum Beispiel kann der Interface-Schaltkreis Befehle, Adressen, Datensätze und dergleichen, die verschiedenen, von dem Host 10 erzeugten Anfragen entsprechen, in eine Schnittstellen-Form mit der Speichervorrichtung 20 konvertieren. Zum Beispiel kann der Interface-Schaltkreis eingerichtet sein, mit der Speichervorrichtung 20 unter Verwendung verschiedener Kommunikationsverfahren zu kommunizieren, wie beispielsweise universellem seriellem Bus (USB), Serial AT Attachment (SATA), Serial Attached SCSI (SAS), High Speed InterChip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnection (PCI), PCI express (PCIe), Nonvolatile Memory express (NVMe), Universal Flash Storage (UFS), Secure Digital (SD), Multi Media Card (MMC) und Embedded MMC (Emmc); allerdings ist die Konfiguration nicht darauf beschränkt.
  • Die Schnittstelle 60 in der Speichervorrichtung 20 kann verschiedene Befehle verarbeiten, die von dem Host 10 bereitgestellt werden. Die verschiedenen Befehle, die von dem Host 10 bereitgestellt werden, können Daten mit (oder ohne) eine Mehrzahl möglicher Stream-IDs umfassen. Alternativ können die verschiedenen, dem Host 10 bereitgestellten Befehle, Daten umfassen, denen keine Stream-IDs zugeordnet sind. Die Schnittstelle 60 kann ersucht werden, Daten an die NVM 50 zu übertragen. Alternativ kann die Schnittstelle 60 verwendet werden, um Daten aus der NVM 50 auszulesen, wenn die Schnittstelle 60 einen Lesebefehl von dem Host 10 empfängt.
  • Die Schnittstelle 60 kann als Schaltung implementiert werden, wie beispielsweise als Field Programmable Gate Array (FPGA), anwendungsspezifische integrierte Schaltung (ASIC) und dergleichen, oder sie kann als Kombination aus Prozessor und Software, die von dem Prozessor ausgeführt wird, implementiert werden, aber die Implementierung der Schnittstelle 60 ist nicht darauf beschränkt.
  • Die Schnittstelle 60 kann verwendet werden, um Daten vorübergehend in dem Pufferspeicher 40 zu speichern. Alternativ kann die Schnittstelle 60 verwendet werden, um Daten aus dem Pufferspeicher 40 zu laden. Der Pufferspeicher 40 kann vorübergehend LBA-bezogene Informationen speichern, wobei die LBA-bezogenen Informationen kontinuierlich gemäß (z. B.) einem etablierten Aktualisierungsplan oder -intervall aktualisiert werden kann. Auf diese Weise kann ein zunehmender Korpus LBA-bezogener Informationen (nachfolgend zu beliebiger Zeit schlicht als „die LBA-bezogene Information(en)“ bezeichnet) von einem neuronalen Netzmodell in dem LBA-Vorhersager 30 verwendet werden, um eine Stream-ID für die empfangenen Daten vorherzusagen. Die LBA-bezogene Information kann auf verschiedene Art und Weise in dem Speichersystem 1 oder in einer externen Umgebung gespeichert werden, die für das Speichersystem 1, das (z. B.) den Pufferspeicher 40 umfasst, zugänglich ist. Hier kann der Pufferspeicher 40 flüchtige Speicherzellen, wie beispielsweise eine dynamische Direktzugriffsspeicher(DRAM)-Zelle, eine statische Direktzugriffsspeicher(SRAM)-Zelle, oder dergleichen umfassen.
  • Der LBA-Vorhersager 30 in der Speichervorrichtung 20 kann verwendet werden, um Daten, die von dem Host 10 empfangen werden, eine vorhergesagte Stream-ID in Bezug auf LBA-Werte unter Verwendung des neuronalen Netzmodells zuzuordnen, das ansprechend auf die LBA-bezogene Informationen arbeitet.
  • Ein Beispiel für ein neuronales Netzmodell, das in gewissen Ausführungsformen des LBA-Vorhersagers 30 verwendet werden kann, ist in 4 dargestellt.
  • In 1 und 4 kann das neuronale Netzmodell des LBA-Vorhersagers 30 der Speichervorrichtung 20 die LBA-bezogenen Informationen als „Merkmale“ empfangen. So kann in dem dargestellten Beispiel aus 4 die LBA-bezogenen Informationen (z. B.) LBA-Werte F1, LBA-Größen F2, eine Häufigkeit Fn-1, mit der spezifische LBAs empfangen werden, Zeitintervalle Fn, in welchen LBAs empfangen werden usw. umfassen.
  • Diese Merkmale können in einem Merkmalspool 70 gebündelt werden und in dem Pufferspeicher 40 oder in einem später beschriebenen Merkmalspuffer 32 vorübergehend gespeichert werden.
  • Gewisse LBA-bezogene Informationen können, sobald sie in dem Korpus LBA-bezogener Information empfangen werden, in getrennte LBA-Informationen für die gleiche Stream-ID konfiguriert werden. Nachfolgend werden gewisse LBA-bezogene Informationen, die mit einer bestimmten Stream-ID gruppiert, assoziiert oder konfiguriert wurden, als „ID-spezifische LBA-bezogene Informationen“ bezeichnet. So kann die LBA-bezogene Information auf unterschiedliche Weise erste ID-spezifische LBA-bezogene Information, zweite ID-spezifische LBA-bezogene Information usw. umfassen.
  • ID-spezifische LBA-bezogenen Informationen können auf unterschiedliche Weise in den Merkmalspool 70 des neuronalen Netzmodells kanalisiert und gebündelt werden. Ein möglicher Ansatz bezüglich des Kanalisierens und/oder Bündelns ID-spezifischer, LBA-bezogener Informationen wird unter Bezugnahme auf 6 näher beschrieben.
  • In der nachfolgenden Beschreibung wird angenommen, dass eine erste ID-spezifische LBA-bezogene Information durch das neuronale Netzmodell aus 4 empfangen wurde und entsprechend in dem Merkmalspool 70 gebündelt wurde.
  • Das neuronale Netzmodell, das von dem LBA-Vorhersager 30 verwendet wird, verwendet die jeweiligen Merkmale des Merkmalspools 70 als Eingabe und kann den Merkmalen jeweils eine entsprechende Gewichtung (z. B. Gewichte W1, W2, ..., Wn-1 und Wn) zuschreiben oder zuordnen. Zum Beispiel kann ein erstes Merkmal F1 (z. B. LBA-Werte) mit einem ersten Gewicht W1 gewichtet werden, ein zweites Merkmal F2 (z. B. LBA-Größen) kann mit einem zweiten Gewicht W2 gewichtet werden usw. um entsprechend einen ersten gewichteten Merkmalswert (F1 x W1), einen zweiten gewichteten Merkmalswert (F2 x W2) usw. zu erzeugen.
  • Danach kann der LBA-Vorhersager 30 die gewichteten Merkmalswerte addieren (oder summieren), um ein Summenergebnis zu erzeugen. Das Summenergebnis kann verwendet werden, um unter Verwendung einer Aktivierungsfunktionfeinen zweckmäßigen LBA-Wert vorherzusagen. Entsprechend kann der vorhergesagte LBA-Wert durch die Aktivierungsfunktionfals Ausgabe bereitgestellt werden, wie beispielsweise in der nachfolgenden Gleichung gezeigt: Ausgabe = f ( F 1 W 1 + F2 W2 + + Fn- 1 Wn- 1 + Fn Wn )
    Figure DE102020119205A1_0001
  • 4 nimmt die Verwendung eines relativ einfachen neuronalen Netzmodells durch den LBA-Vorhersager 30 an. Der Fachmann wird allerdings erkennen, dass das von dem LBA-Vorhersager 30 verwendete neuronale Netzmodell eine Vielfalt an neuronalen Netzmodellen verwenden kann, die ein einlagiges Perzeptron(SLP)-Modell oder ein mehrlagiges Perzeptron(MLP)-Modell umfassen. Die Struktur des neuronalen Netzmodells, die von dem LBA-Vorhersager 30 verwendet wird, kann ein nichtlineares Regressionsmodell oder ein Klassifikationsmodell sein. Ferner können die Merkmale, die von dem LBA-Vorhersager 30 verwendet werden, in ihrer Art und Anzahl von den oben gegebenen Beispielen variieren. Allerdings können unterschiedliche, ID-spezifische LBA-bezogene Informationen, die mit der gleichen Stream-ID assoziiert sind, in dem gleichen Merkmalspool 70 gruppiert werden und als Eingabe in das neuronale Netzmodell verwendet werden.
  • Nachfolgend werden gewisse Betriebsprinzipien für den LBA-Vorhersager 30 etwas detaillierter unter Bezugnahme auf einen bzw. mehrere Graphen beschrieben. Ferner werden mögliche Ansätze für die Zuordnung und/oder Zuweisung der gleichen Stream-ID basierend auf vorhergesagten LBA-Werten beschrieben, die von einem neuronalen Netzmodell abgeleitet werden, das ID-spezifische LBA-bezogene Informationen als Eingaben verwendet.
  • 5 ist ein Graph, der einen Betrieb einer Speichervorrichtung, die vorhergesagte LBA-Werte vorsieht, gemäß einigen Ausführungsformen darstellt.
  • Gemäß 1, 4 und 5 kann der LBA-Vorhersager 30 spezifische LBA-Werte aus einem gespeicherten Korpus zuvor empfangener LBA-Werte (z. B. LBA1 bis LBAm) als Merkmale des neuronalen Netzmodells auslesen. Das heißt, die LBA-Werte, die innerhalb eines ersten Bereichs „I“ fallen, können als Merkmale des neuronalen Netzmodells eingegeben werden. Die LBA-Werte des ersten Bereichs „I“ können mit der gleichen Stream-ID (z. B. der ersten Stream-ID) assoziiert werden. Unter Verwendung dieser Information kann der LBA-Vorhersager 30 ein neuronales Netzmodell ansteuern, den (m+k)-ten LBA-Wert (z. B. LBAm+k) vorherzusagen.
  • Danach kann der LBA-Vorhersager 30 Daten (z. B. LBA-Werte) ohne Stream-ID empfangen, und kann einen Bereich des Graphen bestimmen, in dem sich die LBA-Werte wahrscheinlich befinden. Der LBA-Vorhersager 30 kann dann (z. B.) eine erste Stream-ID (SID1) empfangenen LBA-Werten zuordnen, die innerhalb eines zweiten Bereichs „II“ des Graphen fallen, die größer sind als der m-te LBA-Wert (LBAm) und kleiner gleich dem (m+k)-ten LBA-Wert (LBAm+k) sind.
  • Für die LBA-Werte ohne Stream-IDs kann der LBA-Vorhersager 30 Stream-IDs im Voraus zuordnen, um vorhergesagte Stream-IDs bereitzustellen, die verwendet werden können, um Daten mit der gleichen Stream-ID in den gleichen Block in der NVM 50 zu schreiben.
  • 6 ist ein anderer Graph, der einen Betrieb einer Speichervorrichtung, die LBA-Werte vorhersagt, gemäß einigen Ausführungsformen darstellt.
  • Gemäß 1, 4 und 6 wird angenommen, dass der LBA-Vorhersager 30 „m“ LBA-Werte, die mit der ersten Stream-ID (SID1) assoziiert sind, die innerhalb des ersten Bereichs „I“ des Graphen fallen (d. h. die erste ID-spezifische LBA-bezogene Information) als Merkmale des neuronalen Netzmodells ausliest, das verwendet wird, um die (m+k)-ten LBA-Werte (LBAm+k) vorherzusagen.
  • Zudem wird angenommen, dass der LBA-Vorhersager 30 „n“ LBA-Werte, die mit der zweiten Stream-ID (SID2) assoziiert sind, die innerhalb des dritten Bereichs III fallen (d. h. die zweite ID-spezifische LBA-bezogene Information) als Merkmale des neuronalen Netzmodells ausliest, das verwendet wird, um den (10+n+1)-ten LBA-Wert vorherzusagen (LBA10+n+1).
  • Es ist anzumerken, dass obwohl 6 konkret nur die erste Stream-ID (SID1) und die zweite Stream-ID (SID2) als Beispiele darstellt, jede geeignete Anzahl an Stream-IDs auf ähnliche Art und Weise vorhergesagt werden kann. Zum Beispiel wenn Daten (z. B. LBA-Werte) ohne Stream-ID von dem Host 10 empfangen werden und danach bestimmt wird, dass sie innerhalb des zweiten Bereichs „II“ fallen, kann die Speichervorrichtung 20 den Daten die erste Stream-ID (SID1) zuordnen, und wenn Daten (z. B. LBA-Werte) ohne Stream-ID von dem Host 10 empfangen werden und danach bestimmt wird, dass sie in den vierten Bereich IV fallen, kann die Speichervorrichtung 20 den Daten die zweite Stream-ID (SID2) zuordnen.
  • 7 ist ein anderer Graph, der einen Betrieb einer Speichervorrichtung, die LBA-Werte vorhersagt, gemäß einigen Ausführungsformen darstellt.
  • Gemäß 1, 4 und 7 kann der LBA-Vorhersager 30 Differenzen (z. B. Diff 1 bis Diff 4) zwischen „m“ vorher empfangenen LBA-Werten (z. B. LBA1 bis LBAm), die mit der gleichen ersten Stream-ID assoziiert sind, als Merkmale des neuronalen Netzmodells einlesen (oder eingeben). Das heißt, die Differenzen zwischen den LBA-Werten, die innerhalb eines ersten Bereichs „I“ fallen, können als Merkmale in das neuronale Netzmodell eingegeben werden. Die LBA-Werte des ersten Bereichs „I“ können alle mit der gleichen Stream-ID (z. B. der ersten Stream-ID) assoziiert sein. Entsprechend kann der LBA-Vorhersager 30 das neuronale Netzmodell derart ansteuern, dass es die m-te LBA-Differenz (Diff m) vorhersagt. Mit dieser Konfiguration kann der LBA-Vorhersager 30 die (m+k)-ten LBA-Werte (LBAm+k) vorhersagen, die erhalten werden, indem die m-te LBA-Differenz (Diff m) zu dem m-ten LBA-Wert (LBAm) addiert wird.
  • Danach kann der LBA-Vorhersager 30 Daten (z. B. LBA-Werte) ohne Stream-ID empfangen und einen Bereich des Graphen bestimmen, in dem sich die LBA-Werte ohne Stream-ID befinden.
  • Der LBA-Vorhersager 30 kann die erste Stream-ID (SID1) den empfangenen LBA-Werten des zweiten Bereichs „II“ zuordnen, die größer sind als der m-te LBA-Wert (LBAm) und kleiner gleich dem (m+k)-ten LBA-Wert (LBAm+k) sind.
  • Für die LBA-Werte ohne Stream-ID kann der LBA-Vorhersager 30 in der Speichervorrichtung 20 im Voraus auf die obige Art und Weise Stream-IDs zuordnen, um Daten ohne Stream-ID unter Verwendung einer vorhergesagten Stream-ID in den gleichen Block der NVM 50 zu schreiben. Entsprechend ist es möglich, einen Verschleiß der einzelnen nichtflüchtigen Speicherzelle der NVM 50 zu verringern oder zu verhindern. Folglich kann ein Schreibfaktor für die Speichervorrichtung 20 reduziert werden, wodurch die Zuverlässigkeit der Speichervorrichtung 20 verbessert wird.
  • 8 ist eine beispielhafte Tabelle, die Iterationsschrittbeziehungen für gewisse LBA-Informationen darstellt, die zum Vorhersagen von LBA-Werten gemäß einigen Ausführungsformen verwendet werden.
  • Gemäß 1, 4 und 8 kann der LBA-Vorhersager 30 gewisse Start-LBA-Werte und gewisse LBA-Größen für zuvor empfangene LBA-Werte, die mit der gleichen Stream-ID (z. B. der ersten Stream-ID) assoziiert sind, als Merkmale des neuronalen Netzmodells einlesen (oder eingeben). Gewisse LBA-Werte für „m“ LBA-Werte können abgeleitet werden, indem die LBA-Größen jeweils zu den Start-LBA-Werten addiert werden. Der LBA-Vorhersager 30 kann dann den (m+k)-ten LBA-Wert mit der gleichen Stream-ID unter Verwendung der LBA-Größentabelle vorhersagen, in der Informationen über die Start-LBA-Werte, LBA-Größen und End-LBA-Werte für die jeweiligen m LBA-Werte gespeichert sind.
  • Ein Betrieb des LBA-Vorhersagers 30 gemäß einigen Ausführungsformen sagt LBA-Werte vorher, indem als Merkmale des neuronalen Netzmodells die Start-LBA-Werte und LBA-Größen der vergangenen m LBA-Werte mit der gleichen ersten Stream-ID eingegeben werden; dies wird unter Bezugnahme auf 9 näher beschrieben.
  • 9 ist ein weiterer Graph, der einen Betrieb zur Vorhersage von LBA-Werten unter Verwendung der LBA-Informationen aus 8 gemäß einigen Ausführungsformen beschreibt.
  • In 1, 4, 8 und 9 kann der LBA-Vorhersager 30 die Start-LBA-Werte (Start-LBA 1~Start-LBA m) und LBA-Größen (LBA-Größe 1~LBA-Größe m) der „m“ zuvor empfangenen LBA-Werte, die mit der gleichen Stream-ID assoziiert sind, als Merkmale des neuronalen Netzmodells einlesen (oder eingeben). Das heißt, die LBA-Werte (Start-LBA 1-Start-LBA m) und LBA-Größen (LBA Größe 1~LBA-Größe m) der LBA-Werte des ersten Bereichs 1 können als Merkmale des neuronalen Netzmodells eingegeben werden. Die LBA-Werte des ersten Bereichs 1 können alle die gleiche Stream-ID aufweisen (z. B. die erste Stream-ID). Der LBA-Vorhersager 30 in der Speichervorrichtung 20 kann das neuronale Netzmodell ansteuern, um den (m+k)-ten Start-LBA-Wert (Start-LBA m+k) und die (m+k)-te LBA-Größe (LBA-Größe m+k) vorherzusagen. Durch diese Konfiguration kann der LBA-Vorhersager 30 in der Speichervorrichtung 20 den m+k-ten LBA-Wert vorhersagen, der erhalten wird, indem die m+k-te LBA-Größe (LBA-Größe m+k) zu dem m+k-ten Start-LBA-Wert (Start-LBA m+k) addiert wird.
  • Danach kann der LBA-Vorhersager 30 Daten (z. B. LBA-Werte) ohne Stream-ID empfangen und kann einen Bereich bestimmen, in dem sich die LBA-Werte ohne Stream-ID befinden.
  • Der LBA-Vorhersager 30 kann den empfangenen LBA-Werten des zweiten Bereichs II, die größer sind als der m-te LBA-Wert und kleiner gleich dem (m+k)-ten LBA-Wert sind, die erste Stream-ID (SID1) zuordnen, wobei der m-te LBA-Wert erhalten wird, indem die m-te LBA-Größe (LBA-Größe m) zu dem m-ten Start-LBA-Wert (Start-LBA m) addiert wird, und der (m+k)-te LBA-Wert erhalten wird, indem die (m+k)-te LBA-Größe (LBA-Größe m+k) zu dem (m+k)-ten Start-LBA-Wert (Start-LBA m+k) addiert wird.
  • Den LBA-Werten, denen von dem Host 10 keine Stream-IDs zugeordnet werden, kann der LBA-Vorhersager 30 in der Speichervorrichtung 20 auf die obige Art und Weise im Voraus Stream-IDs zuordnen, um Daten mit der gleichen Stream-ID in den gleichen Block der NVM 50 zu schreiben. Entsprechend ist es möglich, einen Verschleiß der einzelnen nichtflüchtigen Speicherzellen der NVM 50 zu verringern oder zu verhindern. Folglich kann ein Schreibfaktor für die Speichervorrichtung 20 reduziert werden, wodurch die Zuverlässigkeit der Speichervorrichtung 20 verbessert wird.
  • 10 ist ein anderer Graph, der einen Betrieb der Speichervorrichtung, die LBA-Werte vorhersagt, gemäß einigen Ausführungsformen darstellt.
  • Gemäß 1, 4 und 10 kann der LBA-Vorhersager 30 „m“ zuvor empfangene LBA-Werte (LBA1~LBAm), die mit der gleichen Stream-ID assoziiert sind, und Informationen bezüglich der Zeit (t1~tm), zu der die jeweiligen LBA-Werte (LBA1∼LBAm) empfangen wurden, als Merkmale des neuronalen Netzmodells einlesen (oder eingeben). Das heißt, die LBA-Werte (LBA1~LBAm) und die eingegebene Informationen bezüglich der Zeit (t1∼tm) der LBA-Werte (LBA1~LBAm) des ersten Bereichs I können als Merkmale des neuronalen Netzmodells eingegeben werden. Die LBA-Werte des ersten Bereichs I können alle die gleiche Stream-ID aufweisen (z. B. die erste Stream-ID). Der LBA-Vorhersager 30 in der Speichervorrichtung 20 kann das neuronale Netzmodell ansteuern, um den (m+k)-ten LBA-Wert (LBAm+k) vorherzusagen.
  • Da der LBA-Vorhersager 30 in der Speichervorrichtung 20 die Informationen bezüglich der Zeit (t1∼tm) als Eingabe in das neuronale Netzmodell umfasst, ist es möglich, die Vorhersagegenauigkeit des m+k-ten LBA-Wert zu verbessern (LBAm+k). Insbesondere kann, obwohl ein gewisser LBA-Wert innerhalb des ersten Bereichs „I“ fällt, der LBA-Wert aus der Vorhersage des (m+k)-ten LBA-Werts (LBAm+k) ausgeschlossen werden, falls die Zeit, zu welcher der LBA-Wert eingegeben wurde, ein übermäßig langes Zeitintervall (wobei die Kriterien des Zeitintervalls mit der Konfiguration des neuronalen Netzmodells frei beschränkt werden können) nach den anderen LBA-Werten liegt, die zuvor innerhalb des ersten Bereichs I fielen.
  • Danach kann der LBA-Vorhersager 30 Daten (z. B. LBA-Werte) ohne Stream-ID empfangen und kann einen Bereich bestimmen, in dem sich die LBA-Werte ohne Stream-ID wahrscheinlich befinden.
  • Der LBA-Vorhersager 30 kann die erste Stream-ID (SID1) den empfangenen LBA-Werten des zweiten Bereichs „II“ zuordnen, die größer sind als der m-te LBA-Wert (LBAm) und kleiner gleich dem (m+k)-ten LBA-Wert (LBAm+k) sind.
  • Für die LBA-Werte ohne Stream-IDs kann der LBA-Vorhersager 30 Stream-IDs im Voraus auf die obige Art und Weise zuordnen, um Daten mit der gleichen vorhergesagten Stream-ID in den gleichen Block in der NVM 50 zu schreiben. Entsprechend ist es möglich, einen Verschleiß der einzelnen nichtflüchtigen Speicherzellen der NVM 50 zu verringern oder zu verhindern. Folglich kann ein Schreibfaktor der Speichervorrichtung 20 reduziert werden, wodurch die Zuverlässigkeit der Speichervorrichtung 20 verbessert wird.
  • Es ist anzumerken, dass die Werte „n“, „m“, „k“ und „l“, die oben verwendet wurden, jeweils eine natürliche Zahl sind. Insbesondere kann „k“ eine natürliche Zahl sein, die größer ist als „m“, und „l“ kann eine natürliche Zahl sein, die größer ist als „n“, aber Ausführungsformen sind nicht darauf beschränkt.
  • 11, 12 und 13 sind jeweils Blockschaltbilder, die ein Speichersystem gemäß einigen Ausführungsformen darstellen.
  • Gemäß 11 kann der LBA-Vorhersager 30 der Speichervorrichtung 20 in einem Speichersystem 2, im Vergleich zu der Ausführungsform aus 1, ferner einen Merkmalspuffer 32 umfassen.
  • Der Merkmalspuffer 32 kann verwendet werden, um vorübergehend LBA-bezogene Informationen zu speichern. Der Merkmalspuffer 32 kann flüchtige Speicherzellen, wie beispielsweise eine DRAM-Zelle, eine SRAM-Zelle und dergleichen umfassen.
  • Der LBA-Vorhersager 30 kann die LBA-bezogenen Informationen, die verwendet werden, um einen LBA-Wert mit der gleichen Stream-ID nach einem gewissen Schritt vorherzusagen, vorübergehend in dem Merkmalspuffer 32 speichern und kann sie laden, um sie zu verwenden, wenn das neuronale Netzmodell angesteuert wird.
  • Gemäß 12 kann der LBA-Vorhersager 30 der Speichervorrichtung 20 in einem Speichersystem 3 gemäß einigen Ausführungsformen, im Vergleich zu der Ausführungsform aus 1, in der Schnittstelle 60 umfasst sein und gemäß 13 kann der LBA-Vorhersager 30 eines Speichersystems 4 ferner, im Vergleich zu der Ausführungsform aus 12, einen Merkmalspuffer 32 umfassen.
  • 14 ist ein Flussdiagramm, das ein Betriebsverfahren für ein Speichersystem gemäß einigen Ausführungsformen zusammenfasst.
  • Gemäß 1 und 14 kann das Speichersystem 1 LBA-bezogene Informationen als Merkmale extrahieren, die in ein neuronales Netzmodell eingegeben werden sollen, das verwendet wird, um LBA-Werte vorherzusagen (S10).
  • Danach kann das Speichersystem 1 die LBA-bezogenen Informationen, die als jene Merkmale extrahiert wurden, die in das neuronale Netzmodell eingegeben werden sollen, in einem Merkmalspool gruppieren (S20). Hier kann der Merkmalspool gemäß getrennten ID-spezifischen LBA-bezogenen Informationen, die mit der gleichen Stream-ID assoziiert sind, gruppiert werden.
  • Um das neuronale Netzmodell anzutreiben, kann das Speichersystem 1 die jeweiligen Merkmale (z. B. ID-spezifische LBA-bezogene Informationen, die mit der gleichen Stream-ID des Merkmalspools assoziiert sind) verwenden, um das neuronale Netzmodell anzusteuern (oder auszuführen) (S30).
  • Das Speichersystem 1 kann so LBA-Werte durch das neuronale Netzmodell vorhersagen (S40).
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020190142181 [0001]

Claims (20)

  1. Speichervorrichtung, aufweisend: einen Pufferspeicher, der eingerichtet ist, eine erste Kennungs(ID)-spezifische, auf eine logische Blockadresse (LBA) bezogene Information, die mit eine erste Stream-ID assoziiert ist und ferner mit „m“ LBA-Werten assoziiert ist, und eine zweite ID-spezifische LBA-bezogene Information, die mit einer zweiten Stream-ID assoziiert ist und ferner mit „n“ LBA-Werten assoziiert ist, zu speichern; und einen LBA-Vorhersager, der ein neuronales Netzmodell umfasst und eingerichtet ist, einen (m+k)-ten LBA-Wert basierend auf der ersten ID-spezifischen LBA-bezogenen Information vorherzusagen und einen (n+1)-ten LBA-Wert basierend auf der zweiten ID-spezifischen LBA-bezogenen Information vorherzusagen, wobei n, m, k und 1 natürliche Zahlen sind, wobei das neuronale Netzmodell eingerichtet ist, die erste ID-spezifische LBA-bezogene Information als erstes Merkmal zu empfangen, das verwendet wird, um den (m+k)-ten LBA-Wert vorherzusagen, die zweite ID-spezifische LBA-bezogene Information als zweites Merkmal zu empfangen, das verwendet wird, um den (n+1)-ten LBA-Wert vorherzusagen, die erste Stream-ID einem LBA-Wert zuzuordnen, der größer ist als ein m-ter LBA-Wert und kleiner gleich dem (m+k)-ten LBA-Wert ist, und die zweite Stream-ID einem LBA-Wert zuzuordnen, der größer ist als ein n-ter LBA-Wert und kleiner gleich dem (n+1)-ten LBA-Wert ist.
  2. Speichervorrichtung nach Anspruch 1, wobei ein erster LBA-Wert, der mit der zweiten ID-spezifischen LBA-bezogenen Information assoziiert ist, größer ist als ein letzter LBA-Wert, der mit der ersten ID-spezifischen LBA-bezogenen Information assoziiert ist.
  3. Speichervorrichtung nach Anspruch 1, wobei jeder der m LBA-Werte einen Start-LBA-Wert und einen LBA-Größenwert umfasst, und das neuronale Netzmodell ferner eingerichtet ist, einen (m+k)-ten Start-LBA-Wert vorherzusagen.
  4. Speichervorrichtung nach Anspruch 1, wobei k größer ist als m und 1 größer ist als n.
  5. Speichervorrichtung nach Anspruch 1, wobei der LBA-Vorhersager einen Merkmalspuffer umfasst, der eingerichtet ist, die erste ID-spezifische LBA-bezogene Information und/oder die zweite ID-spezifische LBA-bezogene Information zu speichem.
  6. Speichervorrichtung nach Anspruch 5, wobei die erste ID-spezifische LBA-bezogene Information in dem Merkmalspuffer in einer Warteschlange, einem Array und/oder einer Liste gespeichert ist.
  7. Speichervorrichtung nach Anspruch 1, wobei die erste ID-spezifische LBA-bezogene Information eine Zeit umfasst, zu der ein assoziierter LBA-Wert von der Speichervorrichtung empfangen wird.
  8. Speichervorrichtung nach Anspruch 1, wobei die erste ID-spezifische LBA-bezogene Information ein Zeitintervall umfasst, in dem eine assoziierte LBA von der Speichervorrichtung empfangen wird.
  9. Speichervorrichtung nach Anspruch 1, wobei das neuronale Netzmodell ein Regressionsmodell oder ein Klassifikationsmodell ist.
  10. Speichervorrichtung nach Anspruch 1, wobei das neuronale Netzmodell ein einlagiges Perzeptron(SLP)-Modell oder ein mehrlagiges Perzeptron(MLP)-Modell ist.
  11. Speichervorrichtung nach Anspruch 1, wobei der Pufferspeicher ein dynamischer Direktzugriffsspeicher (DRAM) oder ein statischer Direktzugriffsspeicher (SRAM) ist.
  12. Speichervorrichtung, aufweisend: eine Schnittstelle, die eingerichtet ist, Daten und eine entsprechende logische Blockadresse (LBA) von einem Host zu empfangen, wobei die Daten erste Daten mit einer Stream-ID und/oder zweite Daten ohne eine Stream-ID umfassen; eine nichtflüchtige Speicher(NVM)-Vorrichtung, die mindestens einen nichtflüchtigen Speicher umfasst, der eingerichtet ist, die Daten zu speichern; einen Pufferspeicher; und einen LBA-Vorhersager, der eingerichtet ist, eine vorhergesagte Stream-ID für die zweiten Daten unter Verwendung eines neuronalen Netzmodells bereitzustellen, das ansprechend auf mindestens ein Merkmal arbeitet, das mit LBA-Werten assoziiert ist, welche die Speichervorrichtung von dem Host empfangen hat, wobei die ersten Daten in der NVM-Vorrichtung unter Verwendung der Stream-ID gespeichert werden und die Daten in der NVM-Vorrichtung unter Verwendung der vorhergesagten Stream-ID gespeichert werden.
  13. Speichervorrichtung nach Anspruch 12, wobei das mindestens eine Merkmal ein erstes Merkmal und ein zweites Merkmal umfasst, und der LBA-Vorhersager ferner eingerichtet ist, das erste Merkmal und das zweite Merkmal in einem Merkmalspool zu bündeln, der in dem Pufferspeicher gespeichert ist.
  14. Speichervorrichtung nach Anspruch 13, wobei der LBA-Vorhersager ferner eingerichtet ist, das erste Merkmal unter Verwendung eines ersten Gewichts zu gewichten, um ein erstes gewichtetes Merkmal zu erzeugen, das zweite Merkmal unter Verwendung eins zweiten Gewichts zu gewichten, um ein zweites gewichtetes Merkmal zu erzeugen, und das erste gewichtete Merkmal und das zweite gewichtete Merkmal zu summieren, um ein Summenergebnis zu erzeugen.
  15. Speichervorrichtung nach Anspruch 12, wobei das erste Merkmal LBA-Werte, LBA-Größen, eine Häufigkeit, mit der eine LBA in der Speichervorrichtung empfangen wird, und/oder ein Zeitintervall, entsprechend welchem eine LBA in der Speichervorrichtung empfangen wird, umfasst.
  16. Speichervorrichtung nach Anspruch 12, wobei der LBA-Vorhersager in der Schnittstelle eingerichtet ist.
  17. Speichersystem aufweisend: einen Host, der eingerichtet ist, „m“ logische Blockadress(LBA)-Werte auszugeben; und eine Speichervorrichtung, wobei die Speichervorrichtung umfasst: eine Schnittstelle, die eingerichtet ist, mit dem Host zu kommunizieren und die m LBA-Werte zu empfangen, einen Pufferspeicher, der eingerichtet ist, die m LBA-Werte vorübergehend zu speichem, eine nichtflüchtige Speichervorrichtung, die eingerichtet ist, Daten entsprechend den m LBA-Werten zu speichern, und einen LBA-Vorhersager, der eingerichtet ist, einen (m+k)-ten LBA-Wert unter Verwendung eines neuronalen Netzmodells ansprechend auf eine LBA-bezogene Information vorherzusagen, die in das neuronale Netzmodell als Merkmal eingegeben wird.
  18. Speichersystem nach Anspruch 17, wobei die Speichervorrichtung ferner einen Merkmalspuffer umfasst, der eingerichtet ist, die LBA-bezogene Information zu speichern.
  19. Betriebsverfahren für ein Speichersystem, wobei das Verfahren aufweist: Speichern von Information bezüglich einer logischen Blockadresse (LBA) in einem Pufferspeicher, wobei die LBA-bezogene Information mit „m“ LBA-Werten assoziiert ist, Vorhersagen, durch Verwendung eines LBA-Vorhersagers, der ein neuronales Netzmodell umfasst, eines (m+k)-ten LBA-Werts ansprechend auf die LBA-bezogene Information; und Zuordnen einer vorhergesagten Stream-ID zu einem LBA-Wert, der größer ist als ein m-ter LBA-Wert und kleiner gleich dem (m+k)-ten LBA-Wert ist.
  20. Betriebsverfahren nach Anspruch 19, wobei die LBA-bezogene Information LBA-Werte, LBA-Größen, eine Häufigkeit, mit der eine LBA in einer Speichervorrichtung empfangen wird, und/oder ein Zeitintervall umfasst, entsprechend welchem eine LBA in der Speichervorrichtung empfangen wird.
DE102020119205.3A 2019-11-08 2020-07-21 Speichervorrichtung, speichersystem und betriebsverfahren hierfür Pending DE102020119205A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190142181A KR20210055875A (ko) 2019-11-08 2019-11-08 저장 장치와 저장 장치 시스템 그리고 그 동작 방법
KR10-2019-0142181 2019-11-08

Publications (1)

Publication Number Publication Date
DE102020119205A1 true DE102020119205A1 (de) 2021-05-12

Family

ID=75584100

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020119205.3A Pending DE102020119205A1 (de) 2019-11-08 2020-07-21 Speichervorrichtung, speichersystem und betriebsverfahren hierfür

Country Status (4)

Country Link
US (1) US11429314B2 (de)
KR (1) KR20210055875A (de)
CN (1) CN112786095A (de)
DE (1) DE102020119205A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907586B2 (en) 2019-12-31 2024-02-20 Samsung Electronics Co., Ltd. Storage device configured to support multi-streams and operation method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681965B2 (en) * 2019-10-25 2023-06-20 Georgetown University Specialized computing environment for co-analysis of proprietary data
KR20230135748A (ko) * 2022-03-17 2023-09-26 에스케이하이닉스 주식회사 신경망을 이용하여 쓰기 주소를 결정하는 데이터 저장 장치
US11983442B2 (en) * 2022-06-22 2024-05-14 Western Digital Technologies, Inc. Data storage device and method for multi-level conditional prediction of future random read commands

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6468100A (en) 1987-09-08 1989-03-14 Audio Technica Kk Electro-acoustic transducer
KR100541642B1 (ko) 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
KR101606453B1 (ko) 2009-05-13 2016-04-01 삼성전자주식회사 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
KR101856506B1 (ko) 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US9817761B2 (en) * 2012-01-06 2017-11-14 Sandisk Technologies Llc Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer
US9747214B2 (en) 2013-05-22 2017-08-29 Schwegman Lundberg & Woessner, P.A. Forecast modeling cache prefetch system and method
US9471229B2 (en) * 2014-12-15 2016-10-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Scaling performance for raid storage controllers by predictively caching data for host write requests
US10282324B2 (en) * 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
CN106250064B (zh) 2016-08-19 2020-05-12 深圳大普微电子科技有限公司 固态硬盘控制装置和基于学习的固态硬盘数据存取方法
US10289309B2 (en) * 2016-09-12 2019-05-14 Toshiba Memory Corporation Automatic detection of multiple streams
US11049009B2 (en) 2017-06-12 2021-06-29 Western Digital Technologies, Inc. Identifying memory block write endurance using machine learning
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US11037056B2 (en) 2017-11-21 2021-06-15 Distech Controls Inc. Computing device and method for inferring a predicted number of data chunks writable on a flash memory before wear out
CN110532195B (zh) * 2018-05-23 2023-04-07 爱思开海力士有限公司 存储器系统的工作负荷分簇及执行其的方法
US11294595B2 (en) * 2018-12-18 2022-04-05 Western Digital Technologies, Inc. Adaptive-feedback-based read-look-ahead management system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907586B2 (en) 2019-12-31 2024-02-20 Samsung Electronics Co., Ltd. Storage device configured to support multi-streams and operation method thereof

Also Published As

Publication number Publication date
CN112786095A (zh) 2021-05-11
US20210181986A1 (en) 2021-06-17
US11429314B2 (en) 2022-08-30
KR20210055875A (ko) 2021-05-18

Similar Documents

Publication Publication Date Title
DE102020119205A1 (de) Speichervorrichtung, speichersystem und betriebsverfahren hierfür
DE112010002663B4 (de) Speichermanagementsysteme, Verfahren zur Verbesserung der Schreib-Lösch-Ausdauerlebenszeit von Speichervorrichtungen und Computerprogrammprodukt
DE69728212T2 (de) Speichersteuerung und diese verwendendes Rechnersystem
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE102011086098A1 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102018132781A1 (de) Heterogenes Rechensystem, welches konfiguriert ist, um eine Cachekohärenz adaptiv zu steuern
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE102019103114A1 (de) Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
DE102018204427A1 (de) Simulieren mehrerer Speichergeräte mit einem einzelnen Speichergerät, das mit einem Rechengerät gekoppelt ist
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE102016010276A1 (de) Verfahren und systeme zur verbesserung von flash-speicher-leerung
DE102018119881A1 (de) Verwaltung einer DRAM-Bankaktivierung
DE102018104188A1 (de) Kombiniertes Rendering- und Berechnungs-Ressourcenzuweisungsverwaltungssystem
DE102012220277A1 (de) Rechen-Aufgabe-Zustands-Einkapselung
DE112020005987T5 (de) Setzen von prüfpunkten in akkumulatorregister-ergebnissen in einem mikroprozessor
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen

Legal Events

Date Code Title Description
R012 Request for examination validly filed