DE102021119267A1 - Verfahren zum Betreiben einer Speichervorrichtung und einer Host-Vorrichtung sowie Speichervorrichtung - Google Patents

Verfahren zum Betreiben einer Speichervorrichtung und einer Host-Vorrichtung sowie Speichervorrichtung Download PDF

Info

Publication number
DE102021119267A1
DE102021119267A1 DE102021119267.6A DE102021119267A DE102021119267A1 DE 102021119267 A1 DE102021119267 A1 DE 102021119267A1 DE 102021119267 A DE102021119267 A DE 102021119267A DE 102021119267 A1 DE102021119267 A1 DE 102021119267A1
Authority
DE
Germany
Prior art keywords
storage device
data
memory
volatile memory
failure
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
DE102021119267.6A
Other languages
English (en)
Inventor
Young-Seop Shim
Kyung Duk LEE
Jong-Sung Na
Chan Moo PARK
In Kap Chang
Chang Min Cho
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 DE102021119267A1 publication Critical patent/DE102021119267A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1024Identification of the type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • 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
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

Es wird ein Verfahren zum Betreiben einer Speichervorrichtung geschaffen, die fähig ist, eine Zuverlässigkeit eines Speichersystems zu verbessern. Das Verfahren umfasst ein Bereitstellen einer Speichervorrichtung, die eine erste Komponente und eine zweite Komponente umfasst; ein Empfangen, über eine Host-Schnittstelle der Speichervorrichtung, eines Befehls zum Anfordern der Fehlermöglichkeitsinformation über die Speichervorrichtung von einer externen Vorrichtung; und ein Bereitstellen, über die Host-Schnittstelle, der Fehlermöglichkeitsinformation über die Speichervorrichtung an die externe Vorrichtung ansprechend auf den Befehl.

Description

  • QUERVERWEIS AUF ÄHNLICHE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der am 8. Dezember 2020 beim koreanischen Amt für geistiges Eigentum eingereichten Patentanmeldung 10-2020-0170198 , deren Offenbarung hierin durch Verweis vollinhaltlich aufgenommen ist.
  • HINTERGRUND
  • 1. Gebiet
  • Verfahren, Einrichtungen und Systeme, die beispielhaften Ausführungsformen entsprechen, betreffen eine Host-Vorrichtung und eine Speichervorrichtung.
  • 2. Beschreibung der verwandten Technik
  • Während eine Speichervorrichtung kontinuierlich betrieben wird, kann ein Fehler in der Speichervorrichtung auftreten. Ein solcher Fehler der Speichervorrichtung hat einen negativen Einfluss auf ein Speichersystem und wird daher vorzugsweise auf ein Minimum reduziert.
  • Es wurden verschiedene Techniken zur Wiederherstellung nach Fehlern, die in einer Speichervorrichtung auftraten, vorgeschlagen. Da diese Techniken allerdings eingesetzt werden, nachdem ein Fehler in der Speichervorrichtung tatsächlich aufgetreten ist, tragen die Techniken nicht dazu dabei, die Zuverlässigkeit des Speichersystems zu verbessern. Entsprechend besteht ein Bedarf hinsichtlich eines Verfahrens, das die Zuverlässigkeit des Speichersystems verbessern kann.
  • KURZFASSUNG
  • Eine oder mehrere beispielhafte Ausführungsformen schaffen ein Verfahren zum Betreiben einer Speichervorrichtung, die fähig ist, eine Zuverlässigkeit eines Speichersystems zu verbessern.
  • Eine oder mehrere beispielhafte Ausführungsformen schaffen ein Verfahren zum Betreiben einer Host-Vorrichtung, die fähig ist, die Zuverlässigkeit des Speichersystems zu verbessern.
  • Eine oder mehrere beispielhafte Ausführungsformen schaffen eine Speichervorrichtung, die fähig ist, die Zuverlässigkeit des Speichersystems zu verbessern.
  • Beispielhafte Ausführungsformen können sich mindestens den obigen Probleme und/oder Nachteilen und anderen Nachteilen, die nicht oben beschrieben sind, widmen. Es ist ferner nicht erforderlich, dass die beispielhaften Ausführungsformen die oben beschriebenen Nachteile bewältigen, und sie bewältigen möglicherweise keines der oben beschriebenen Probleme.
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform umfasst ein Verfahren, eine Speichervorrichtung zu schaffen, die eine erste Komponente und eine zweite Komponente umfasst; Empfangen, über eine Host-Schnittstelle der Speichervorrichtung, eines Befehls zum Anfordern der Fehlermöglichkeitsinformation über die Speichervorrichtung von einer externen Vorrichtung; und Bereitstellen, über die Host-Schnittstelle, der Fehlermöglichkeitsinformation über die Speichervorrichtung an die externe Vorrichtung ansprechend auf den Befehl.
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform umfasst ein Verfahren zum Betreiben einer Host-Vorrichtung: Übertragen eines Befehls, der Fehlermöglichkeitsinformation über eine Speichervorrichtung anfordert, an die Speichervorrichtung, wobei die Speichervorrichtung eine erste Komponente und eine zweite Komponente umfasst; und Empfangen der Fehlermöglichkeitsinformation über die Speichervorrichtung von der Speichervorrichtung ansprechend auf den Befehl.
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform umfasst eine Speichervorrichtung: einen Pufferspeicher, der eingerichtet ist, Daten vorübergehend zu speichem, die von einer Host-Vorrichtung bereitgestellt werden; einen nichtflüchtigen Speicher, der eingerichtet ist, die Daten zu speichern, die von der Host-Vorrichtung bereitgestellt werden; einen Log-Monitor, der eingerichtet ist, Log-Daten von dem Pufferspeicher und dem nichtflüchtigen Speicher zu sammeln; und einen Prozessor, der eingerichtet ist, ein Modul für maschinelles Lernen zu implementieren, das eine Fehlermöglichkeit über die Speichervorrichtung basierend auf den Log-Daten identifiziert.
  • Figurenliste
  • Die vorstehenden und andere Aspekte werden aus der folgenden Beschreibung von beispielhaften Ausführungsformen in Verbindung mit den beiliegenden Zeichnungen, deutlicher ersichtlich sein. Es zeigen:
    • 1 ein Blockschaltbild, das ein Speichersystem gemäß einigen beispielhaften Ausführungsformen zeigt;
    • 2 ein Schema, das einen Speicher-Controller und einen nichtflüchtigen Speicher gemäß einigen beispielhaften Ausführungsformen zeigt;
    • 3 ein Schema, das einen Speicher-Controller, eine Speicherschnittstelle und einen nichtflüchtigen Speicher gemäß einigen beispielhaften Ausführungsformen zeigt;
    • 4 ein Flussdiagramm, das einen Vorgang eines Speichersystems gemäß einigen beispielhaften Ausführungsformen zeigt;
    • 5 ein Flussdiagramm zur Erläuterung eines Rechnerausführvorgangs, der in einer Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen durchgeführt wird;
    • 6 bis 10 Flussdiagramme zur Erläuterung eines Rechnerausführvorgangs, der in einer Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen durchgeführt wird;
    • 11 und 12 Schemata zur Erläuterung eines Vorgangs eines Speichersystems gemäß einigen beispielhaften Ausführungsformen,
    • 13 ein Schema zur Erläuterung eines Vorgangs eines Speichersystems gemäß einigen anderen beispielhaften Ausführungsformen; und
    • 14 ein Schema, das ein Rechenzentrum umfassend eine Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Nachstehend werden beispielhafte Ausführungsformen mit Bezug auf die zugehörigen Zeichnungen beschrieben.
  • 1 ist ein Blockschaltbild, das ein Speichersystem gemäß einigen beispielhaften Ausführungsformen zeigt.
  • Ein Speichersystem 10 kann eine Host-Vorrichtung 100 und eine Speichervorrichtung 200 umfassen. Die Speichervorrichtung 200 kann auch einen Speicher-Controller 210 und einen nichtflüchtigen Speicher (NVM) 220 umfassen. Bei einigen beispielhaften Ausführungsformen kann die Host-Vorrichtung 100 auch einen Host-Controller 110 und einen Host-Speicher 120 umfassen. Der Host-Speicher 120 kann als Pufferspeicher fungieren, um vorübergehend Daten, die an die Speichervorrichtung 200 übertragen werden sollen, oder die Daten, die von der Speichervorrichtung 200 empfangen werden, zu speichern.
  • Die Speichervorrichtung 200 kann einen Datenträger zum Speichern von Daten gemäß einer Anforderung von der Host-Vorrichtung 100 umfassen. Die Speichervorrichtung 200 kann zum Beispiel eine Solid State Drive (SSD), ein eingebetteter Speicher und/oder ein entfernbarer externer Speicher sein. Falls die Speichervorrichtung 200 eine SSD ist, kann die Speichervorrichtung 200 eine Vorrichtung sein, welche einem Non-Volatile Memory Express (NVMe) entspricht.
  • Falls die Speichervorrichtung 200 ein eingebetteter Speicher oder ein externer Speicher ist, kann die Speichervorrichtung 200 eine Vorrichtung sein, die einem Standard für Standard Universal Flash Storage (UFS) oder einem Standard für Multi-Media Card (eMMC) entspricht. Die Host-Vorrichtung 100 und die Speichervorrichtung 200 können jeweils Pakete erzeugen und übertragen, die dem eingesetzten Standardprotokoll entsprechen.
  • Wenn der nichtflüchtige Speicher 220 der Speichervorrichtung 200 einen Flash-Speicher umfasst, kann der Flash-Speicher ein 2D-NAND-Speicher-Array oder ein 3D-(oder vertikales) NAND(VNAND)-Speicher-Array umfassen. Gemäß einem anderen Beispiel kann die Speichervorrichtung 200 auch verschiedene andere Arten an nichtflüchtigen Speichern umfassen. Zum Beispiel können ein magnetischer RAM (MRAM), ein Spin-Transfer-Torque-MRAM, ein Conductive-Bridging-RAM (CBRAM), ein ferroelektrischer RAM (FeRAM), ein Phasen-RAM (PRAM), ein resistiver Speicher (resistiver RAM) und verschiedene andere Speichertypen bei der Speichervorrichtung 200 zum Einsatz kommen.
  • Bei einigen beispielhaften Ausführungsformen können der Host-Controller 110 und der Host-Speicher 120 als unterschiedliche Halbleiter-Chips implementiert sein. Alternativ können der Host-Controller 110 und der Host-Speicher 120 in einigen beispielhaften Ausführungsformen auf dem gleichen Halbleiter-Chip implementiert sein. Der Host-Controller 110 kann zum Beispiel eines aus einer Mehrzahl von Modulen sein, die in dem Anwendungsprozessor ausgebildet sind, und ein solcher Anwendungsprozessor kann als Ein-Chip-System (SoC) implementiert sein. Ferner kann der Host-Speicher 120 ein eingebetteter Speicher sein, der in dem Anwendungsprozessor ausgebildet ist, oder ein nichtflüchtiger Speicher oder ein Speichermodul, das sich außerhalb des Anwendungsprozessors befindet.
  • Der Host-Controller 110 kann einen Vorgang zum Speichern von Daten einer Pufferregion (zum Beispiel Schreibdaten) in dem nichtflüchtigen Speicher 220 oder Speichern von Daten des nichtflüchtigen Speichers 220 (zum Beispiel Lesedaten) in der Pufferregion verwalten.
  • Der Speicher-Controller 210 kann eine Host-Schnittstelle 211, eine Speicherschnittstelle 212 und eine zentrale Verarbeitungseinheit (CPU) 213 umfassen. Der Speicher-Controller 210 kann auch eine Flash-Translation-Schicht (FTL) 214, einen Paket-Manager 215, einen Pufferspeicher 216, eine Fehlerkorrektur-Code(ECC)-Engine 217 und eine Advanced-Encryption-Standard(AES)-Engine 218 umfassen.
  • Der Speicher-Controller 210 kann ferner einen Arbeitsspeicher umfassen, in den die Flash-Translation-Schicht (FTL) 214 geladen wird, und wenn die CPU 213 die Flash-Translation-Schicht 214 ausführt, können die Datenschreib- und -lesevorgänge des nichtflüchtigen Speichers gesteuert werden.
  • Die Host-Schnittstelle 211 kann Pakete an die Host-Vorrichtung 100 senden und von dieser empfangen. Pakete, die von der Host-Vorrichtung 100 an die Host-Schnittstelle 211 übertragen werden, können einen Befehl, Daten, die in den nichtflüchtigen Speicher 220 geschrieben werden sollen, oder dergleichen umfassen. Die Pakete, die von der Host-Schnittstelle 211 an die Host-Vorrichtung 100 gesendet werden, können eine Antwort auf einen Befehl, Daten, die aus dem nichtflüchtigen Speicher 220 gelesen werden, oder dergleichen umfassen.
  • Die Speicherschnittstelle 212 kann die Daten, die in den nichtflüchtigen Speicher 220 geschrieben werden sollen, an den nichtflüchtigen Speicher 220 senden oder die Lesedaten von dem nichtflüchtigen Speicher 220 empfangen. Die Speicherschnittstelle 212 kann derart implementiert sein, dass sie herkömmliche Konventionen erfüllt, wie beispielsweise Toggle oder Open NAND Flash Interface (ONFI).
  • Die Flash-Translation-Schicht 214 kann verschiedene Vorgänge durchführen, wie beispielsweise Adresszuordnung, Wear-Leveling und Garbage-Collection bzw. Speicherbereinigung. Der Adresszuordnungsvorgang ist ein Vorgang zum Ändern einer logischen Adresse, die von einem Host empfangen wird, in eine physikalische Adresse, die zum tatsächlichen Speichern von Daten in dem nichtflüchtigen Speicher 220 verwendet wird. Der Wear-Leveling-Vorgang ist eine Technologie, um sicherzustellen, dass Blöcke in dem nichtflüchtigen Speicher 220 einheitlich verwendet werden, um einen übermäßigen Verschleiß eines bestimmten Blocks zu verhindern und kann zum Beispiel durch eine Firmware-Technologie implementiert sein, die die Löschanzahlen der physischen Blöcke ausgleicht. Der Garbage-Collection-Vorgang ist eine Technologie, um eine verfügbare Kapazität in dem nichtflüchtigen Speicher 220 durch ein Verfahren sicherzustellen, bei dem die gültigen Daten des Blocks in einen neuen Block kopiert werden und der existierende Block dann gelöscht wird.
  • Der Paket-Manager 215 kann ein Paket gemäß dem Protokoll der Schnittstelle mit der Host-Vorrichtung 100 erzeugen oder kann verschiedene Arten an Informationen aus dem Paket, das von der Host-Vorrichtung 100 empfangen wird, analysieren. Ferner kann der Pufferspeicher 216 vorübergehend die Daten speichern, die in dem nichtflüchtigen Speicher 220 gespeichert werden sollen, oder Daten, die aus dem nichtflüchtigen Speicher 220 ausgelesen werden. Der Pufferspeicher 216 kann in dem Speicher-Controller 210 ausgebildet sein, aber beispielhafte Ausführungsformen sind nicht darauf beschränkt und der Pufferspeicher 216 kann sich außerhalb des Speicher-Controllers 210 befinden.
  • Die ECC-Engine 217 kann Fehlererkennungs- und Korrekturfunktionen bei den Daten durchführen, die in dem nichtflüchtigen Speicher 220 gespeichert werden sollen, oder den Lesedaten, die aus dem nichtflüchtigen Speicher 220 gelesen werden. Genauer gesagt kann die ECC-Engine 217 Paritätsbits für die Schreibdaten erzeugen, die in den nichtflüchtigen Speicher 220 geschrieben werden sollen, und die Paritätsbits, die auf diese Weise erzeugt wurden, können zusammen mit den Schreibdaten in dem nichtflüchtigen Speicher 220 gespeichert werden. Wenn die Daten aus dem nichtflüchtigen Speicher 220 ausgelesen werden, kann die ECC-Engine 217 einen Fehler der Lesedaten korrigieren und die Lesedaten mit einem korrigierten Fehler unter Verwendung der Paritätsbits, die aus dem nichtflüchtigen Speicher 220 ausgelesen werden, zusammen mit den Lesedaten ausgeben.
  • Die AES-Engine 218 kann einen Verschlüsselungsvorgang und/oder einen Entschlüsselungsvorgang bei den Daten, die in den Speicher-Controller 210 eingegeben werden, unter Verwendung eines symmetrischen Kryptosystems durchführen.
  • Ein Modul 219 für maschinelles Lernen kann einen maschinellen Lernvorgang bei den Daten, die aus der Speichervorrichtung 200 erzeugt werden, durchführen.
  • Bei einigen beispielhaften Ausführungsformen kann das Modul 219 für maschinelles Lernen eine Eingabeschicht, eine verborgene Schicht und eine Ausgabeschicht umfassen.
  • Der Eingabeschicht können Lerndaten für jeden Zeitpunkt ab dem vergangenen Zeitpunkt bis zum aktuellen Zeitpunkt bereitgestellt werden. Die Lerndaten für jeden Zeitpunkt können zum Beispiel Log-Daten umfassen, die von verschiedenen Komponenten (zum Beispiel verschiedene Arten an Hardware und Firmware, die einen nichtflüchtigen Speicher 220, einen Pufferspeicher 216 und einen Temperatursensor 230 umfassen), die in der Speichervorrichtung 200 umfasst sind, gesammelt wurden.
  • Eine solche Eingabeschicht kann der verborgenen Schicht zum Lernen bereitgestellt werden. Obwohl ein Recurrent-Neural-Network(RNN)-Modell bzw. Modell eines rekurrenten neuronalen Netzes, das Zeitreihenmerkmale empfangen kann und technisch ausgefeilte Prädiktionen erstellen kann, bei einigen beispielhaften Ausführungsformen als verborgene Schicht eingesetzt werden kann, sind beispielhafte Ausführungsformen nicht darauf beschränkt.
  • Wenn ein solches Lernen abgeschlossen ist, können Prädiktionsinformationen (zum Beispiel eine Fehlermöglichkeit) zu einem zukünftigen Zeitpunkt, der weiter weg ist als der aktuelle Zeitpunkt, in der Ausgabeschicht berechnet werden. Obwohl die Ausgabeschicht in einigen Beispielhaften Ausführungsformen ein Multi-Layer-Perceptron (MLP) verwenden kann, sind beispielhafte Ausführungsformen nicht darauf beschränkt.
  • Bei einigen beispielhaften Ausführungsformen kann das Modul 219 für maschinelles Lernen als Firmware oder Software implementiert sein und durch die Speichervorrichtung 200 betrieben werden. In diesem Fall kann das Modul 219 für maschinelles Lernen den Vorgang bzw. Betrieb des Speicher-Controllers 210 steuern. Auch kann das Modul 219 für maschinelles Lernen in einigen beispielhaften Ausführungsformen als Hardware implementiert sein und durch die Speichervorrichtung 200 betrieben werden. In diesem Fall kann das Modul 219 für maschinelles Lernen in Form eines anderen Prozessors für maschinelles Lernen implementiert sein, der in der Speichervorrichtung 200 umfasst ist.
  • Der Temperatursensor 230 kann eine Temperatur der Speichervorrichtung 200 erfassen und die erfasste Temperaturinformation dem Speicher-Controller 210 bereitstellen. Insbesondere kann der Temperatursensor 230 die Betriebstemperatur der Speichervorrichtung 200 und/oder die Umgebungstemperatur der Speichervorrichtung 200 und/oder die Temperatur der Komponenten, die in der Speichervorrichtung 200 umfasst sind, erfassen und die erfasste Temperaturinformation dem Speicher-Controller 210 bereitstellen.
  • 2 ist ein Schema, in dem der Speicher-Controller und der nichtflüchtige Speicher der Speichervorrichtung aus 1 neu konfiguriert werden.
  • Bezug nehmend auf 2 kann die Speichervorrichtung 200 einen nichtflüchtigen Speicher 220 und einen Speicher-Controller 210 umfassen. Die Speichervorrichtung 200 kann eine Mehrzahl von Kanälen CH1 bis CHm unterstützen und der nichtflüchtige Speicher 220 und der Speicher-Controller 210 können durch die Mehrzahl von Kanälen CH1 bis CHm verbunden sein. Die Speichervorrichtung 200 kann als Speichervorrichtung, wie beispielsweise eine SSD, implementiert sein.
  • Der nichtflüchtige Speicher 220 kann eine Mehrzahl von nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn umfassen. Jede der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn kann durch einen entsprechenden Pfad mit einem der Mehrzahl an Kanälen CH1 bis CHm verbunden sein. Zum Beispiel sind die nichtflüchtigen Speichervorrichtungen NVM11 bis NVM1n durch Pfade W11 bis W1n mit einem ersten Kanal CH1 verbunden und die nichtflüchtigen Speichervorrichtungen NVM21 bis NVM2n können durch die Pfade W21 bis W2n mit einem zweiten Kanal CH2 verbunden sein. Bei einer beispielhaften Ausführungsform kann jeder der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn in einer Speichereinheit implementiert sein, die gemäß individuellen Anweisungen von dem Speicher-Controller 210 betrieben werden kann. Obwohl zum Beispiel jede der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn als Chip oder Die implementiert sein kann, sind beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Der Speicher-Controller 210 kann Signale durch die Mehrzahl von Kanälen CH1 bis CHm an den nichtflüchtigen Speicher 220 senden und von diesem empfangen. Der Speicher-Controller 210 kann zum Beispiel Befehle CMDa bis CMDM, Adressen ADDRa bis ADDRm und Daten DATAa bis DATAm an den nichtflüchtigen Speicher 220 durch die Kanäle CH1 bis CHm senden oder kann die Daten DATAa bis DATAm von dem nichtflüchtigen Speicher 220 empfangen.
  • Der Speicher-Controller 210 kann eine der nichtflüchtigen Speichervorrichtungen auswählen, die mit dem Kanal durch jeden Kanal verbunden ist, und kann Signale an bzw. von der ausgewählten nichtflüchtigen Speichervorrichtung senden bzw. empfangen. Der Speicher-Controller 210 kann zum Beispiel die nichtflüchtige Speichervorrichtung NVM11 aus den nichtflüchtigen Speichervorrichtungen NVM11 bis NVM1n auswählen, die mit dem ersten Kanal CH1 verbunden sind. Der Speicher-Controller 210 kann einen Befehl CMDa, eine Adresse ADDRa und Daten DATAa durch den ersten Kanal CH1 an die ausgewählte nichtflüchtige Speichervorrichtung NVM11 senden oder die Daten DATAa von der ausgewählten nichtflüchtigen Speichervorrichtung NVM11 empfangen.
  • Der Speicher-Controller 210 kann Signale durch voneinander unterschiedliche Kanäle parallel an den nichtflüchtigen Speicher 220 senden und empfangen. Der Speicher-Controller 210 kann zum Beispiel einen Befehl CMDb an den nichtflüchtigen Speicher 220 durch den zweiten Kanal CH2 übertragen, während er einen Befehl CMDa an den nichtflüchtigen Speicher 220 durch den ersten Kanal CH1 sendet. Der Speicher-Controller 210 kann zum Beispiel die Daten DATAb von dem nichtflüchtigen Speicher 220 durch den zweiten Kanal CH2 empfangen, während er die Daten DATAa von dem nichtflüchtigen Speicher 220 durch den ersten Kanal CH1 empfängt.
  • Die Speicher-Controller 210 kann den Gesamtbetrieb des nichtflüchtigen Speichers 220 steuern. Der Speicher-Controller 210 kann das Signal an die Kanäle CH1 bis CHm senden, um jede der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn, die mit den Kanälen CH1 bis CHm verbunden sind, zu steuern. Der Speicher-Controller 210 kann zum Beispiel den Befehl CMDa und die Adresse ADDRa an den ersten Kanal CH1 senden und kann eine ausgewählte aus den nichtflüchtigen Speichervorrichtungen NVM11 bis NVM1n steuern.
  • Jede der nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn kann gemäß der Steuerung des Speicher-Controllers 210 betrieben werden. Die nichtflüchtige Speichervorrichtung NVM11 kann zum Beispiel die Daten DATAa entsprechend dem Befehl CMDa, der Adresse ADDRa und den Daten DATAa, die dem ersten Kanal CH1 bereitgestellt werden, programmieren. Die nichtflüchtige Speichervorrichtung NVM21 kann zum Beispiel die Daten DATAb entsprechend dem Befehl CMDb und der Adresse ADDRb, lesen, die dem zweiten Kanal CH2 bereitgestellt werden, und die gelesenen Daten DATAb an den Speicher-Controller 210 senden.
  • Obwohl 2 zeigt, dass der nichtflüchtige Speicher 220 mit dem Speicher-Controller 210 durch m Kanäle kommuniziert und der nichtflüchtige Speicher 220 n nichtflüchtige Speichervorrichtungen umfasst, die jedem Kanal entsprechen, können die Anzahl an Kanälen und die Anzahl an nichtflüchtigen Speichervorrichtungen, die mit einem Kanal verbunden sind, unterschiedlich verändert werden.
  • 3 ist ein Schema eines Speicher-Controllers, einer Speicherschnittstelle und eines nichtflüchtigen Speichers gemäß einigen beispielhaften Ausführungsformen. Der Speicher-Controller, die Speicherschnittstelle und der nichtflüchtige Speicher aus 1 können zum Beispiel anders konfiguriert sein. Die Speicherschnittstelle 212 kann eine Controller-Schnittstellenschaltung 212a umfassen.
  • Der nichtflüchtige Speicher 220 kann einen ersten bis achten Pin P11 bis P18, eine Speicherschnittstellenschaltung 212b, eine Steuerlogikschaltung 510 und ein Speicherzell-Array 520 umfassen.
  • Die Speicherschnittstellenschaltung 212b kann ein Chip-Freigabesignal nCE von dem Speicher-Controller 210 durch den ersten Pin P11 empfangen. Die Speicherschnittstellenschaltung 212b kann durch den zweiten bis achten Pin P12 bis P18 Signale entsprechend dem Chip-Freigabesignal nCE an den Speicher-Controller 210 senden und von diesem empfangen. Zum Beispiel wenn das Chip-Freigabesignal nCE in einem Freigabezustand ist (z. B. einem Low-Pegel), kann die Speicherschnittstellenschaltung 212b Signale durch den zweiten bis achten Pin P12 bis P18 an den Speicher-Controller 210 senden und von diesem empfangen.
  • Die Speicherschnittstellenschaltung 212b kann ein Befehls-Latch-Freigabesignal CLE, ein Adress-Latch-Freigabesignal ALE und ein Schreibfreigabesignal nWE von dem Speicher-Controller 210 durch den zweiten bis vierten Pin P12 bis P14 empfangen. Die Speicherschnittstellenschaltung 212b kann ein Datensignal DQ von dem Speicher-Controller 210 durch den siebten Pin P17 empfangen oder das Datensignal DQ an den Speicher-Controller 210 senden. Der Befehl CMD, die Adresse ADDR und die Daten DATA können durch das Datensignal DQ übertragen werden. Das Datensignal DQ kann zum Beispiel durch eine Mehrzahl von Datensignalleitungen übertragen werden. In diesem Fall kann der siebte Pin P17 eine Mehrzahl von Pins umfassen, die der Mehrzahl von Datensignalen entsprechen.
  • Die Speicherschnittstellenschaltung 212b kann den Befehl CMD aus dem Datensignal DQ, das in einem Freigabebereich (z. B. einem High-Pegel-Zustand) des Befehls-Latch-Freigabesignals CLE empfangen wird, basierend auf den Umschaltzeiten des Schreibfreigabesignals nWE erhalten. Die Speicherschnittstellenschaltung 212b kann die Adresse ADDR aus dem Datensignal DQ, das in dem Freigabebereich (z. B. einem High-Pegel-Zustand) des Adress-Latch-Freigabesignals ALE empfangen wird, basierend auf den Umschaltzeiten des Schreibfreigabesignals nWE erhalten.
  • Bei einigen beispielhaften Ausführungsformen hält das Schreibfreigabesignal nWE einen statischen Zustand (z. B. einen High-Pegel oder einen Low-Pegel) und kann dann zwischen dem High-Pegel und dem Low-Pegel umgeschaltet werden. Das Schreibfreigabesignal nWE kann zum Beispiel bei dem Bereich umgeschaltet werden, in dem der Befehl CMD oder die Adresse ADDR übertragen werden. Entsprechend kann die Speicherschnittstellenschaltung 212b den Befehl CMD oder die Adresse ADDR basierend auf den Umschaltzeiten des Schreibfreigabesignals nWE erhalten.
  • Die Speicherschnittstellenschaltung 212b kann über den fünften Pin P15 ein Lesefreigabesignal nRE von dem Speicher-Controller 210 empfangen. Die Speicherschnittstellenschaltung 212b kann das Daten-Strobe-Signal DQS von dem Speicher-Controller 210 durch einen sechsten PinP16 empfangen oder das Daten-Strobe-Signal DQS an den Speicher-Controller 210 senden.
  • In dem Ausgabevorgang der Daten DATA des nichtflüchtigen Speichers 220 kann die Speicherschnittstellenschaltung 212b das umgeschaltete Lesefreigabesignal nRE durch den fünften Pin P15 empfangen, bevor die Daten DATA ausgegeben werden. Die Speicherschnittstellenschaltung 212b kann das umschaltende Daten-Strobe-Signal DQS basierend auf dem Umschalten des Lesefreigabesignals nRE erzeugen. Die Speicherschnittstellenschaltung 212b kann zum Beispiel das Daten-Strobe-Signal DQS erzeugen, das nach einer vorgegebenen Verzögerung (z. B. tDQSRE) basierend auf der Umschaltstartzeit des Lesefreigabesignals nRE beginnt, umzuschalten. Die Speicherschnittstellenschaltung 212b kann ein Datensignal DQ, das die Daten DATA umfasst, basierend auf der Umschaltzeit des Daten-Strobe-Signals DQS übertragen. Folglich können die Daten DATA zur Umschaltzeit des Daten-Strobe-Signals DQS geordnet werden und an den Speicher-Controller 210 gesendet werden.
  • Bei dem Eingabevorgang der Daten DATA des nichtflüchtigen Speichers 220, wenn das Datensignal DQ, das die Daten DATA umfasst, von dem Speicher-Controller 210 empfangen wird, kann die Speicherschnittstellenschaltung 212b das umgeschaltete Daten-Strobe-Signal DQS zusammen mit den Daten DATA von dem Speicher-Controller 210 empfangen. Die Speicherschnittstellenschaltung 212b kann die Daten DATA aus dem Datensignal DQ basierend auf der Umschaltzeit des Daten-Strobe-Signals DQS beziehen. Die Speicherschnittstellenschaltung 212b kann zum Beispiel die Daten DATA erhalten, indem sie das Datensignal DQ an einer steigenden Flanke und einer fallenden Flanke des Daten-Strobe-Signals DQS sampelt.
  • Die Speicherschnittstellenschaltung 212b kann durch einen achten Pin P18 ein Ready-/Busy-Ausgabesignal nR/B an den Speicher-Controller 210 senden. Die Speicherschnittstellenschaltung 212b kann durch das Ready-/Busy-Ausgabesignal nR/B eine Zustandsinformation des nichtflüchtigen Speichers 220 an den Speicher-Controller 210 senden. Wenn der nichtflüchtige Speicher 220 in dem Busy-Zustand ist (das heißt, wenn die internen Vorgänge des nichtflüchtigen Speichers 220 durchgeführt werden), kann die Speicherschnittstellenschaltung 212b das Ready-/Busy-Ausgabesignal nR/B, das den Busy-Zustand angibt, an den Speicher-Controller 210 senden. Wenn der nichtflüchtige Speicher 220 in dem Ready-Zustand ist (d. h., wenn die internen Vorgänge des nichtflüchtigen Speichers 220 nicht durchgeführt werden oder abgeschlossen sind), kann die Speicherschnittstellenschaltung 212b das Ready-/Busy-Ausgabesignal nR/B, das den Ready-Zustand angibt, an den Speicher-Controller 210 senden.
  • Zum Beispiel während der nichtflüchtige Speicher 220 die Daten DATA aus dem Speicherzell-Array 520 gemäß einem Seitenlesebefehl liest, kann die Speicherschnittstellenschaltung 212b das Ready-/Busy-Ausgabesignal nR/B, das den Busy-Zustand (z. B. einen Low-Pegel) angibt, an den Speicher-Controller 210 senden. Zum Beispiel während der nichtflüchtige Speicher 220 die Daten DATA in das Speicherzell-Array 520 gemäß der Programmieranweisung programmiert, kann die Speicherschnittstellenschaltung 212b das Ready-/Busy-Ausgabesignal nR/B, das den Busy-Zustand angibt, an den Speicher-Controller 210 senden.
  • Die Steuerlogikschaltung 510 kann allgemein verschiedene Vorgänge des nichtflüchtigen Speichers 220 steuern. Die Steuerlogikschaltung 510 kann den Befehl/die Adresse CMD/ADDR, die von der Speicherschnittstellenschaltung 212b erhalten werden, empfangen. Die Steuerlogikschaltung 510 kann Steuersignale zum Steuern anderer Komponenten des nichtflüchtigen Speichers 220 gemäß dem empfangenen Befehl/der empfangenen Adresse CMD/ADDR erzeugen. Beispielsweise kann die Steuerlogikschaltung 510 verschiedene Steuersignale zum Programmieren der Daten DATA in das Speicherzell-Array 520 oder zum Lesen der Daten DATA aus dem Speicherzell-Array 520 erzeugen.
  • Das Speicherzell-Array 520 kann die Daten DATA, die von der Speicherschnittstellenschaltung 212b erhalten wurden, entsprechend der Steuerung der Steuerlogikschaltung 510 speichern. Das Speicherzell-Array 520 kann die gespeicherten Daten DATA an die Speicherschnittstellenschaltung 212b entsprechend der Steuerung der Steuerlogikschaltung 510 ausgeben.
  • Das Speicherzell-Array 520 kann eine Mehrzahl an Speicherzellen umfassen. Eine Mehrzahl von Speicherzellen kann zum Beispiel Flash-Speicherzellen sein. Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt und die Speicherzellen können eine Zelle eines resistiven Direktzugriffsspeichers (RRAM), eine Zelle eines ferroelektrischen Direktzugriffsspeichers (FRAM), eine Phasenänderungs-Direktzugriffsspeicher(PRAM)-Zelle, eine Thyristor-Direktzugriffsspeicher(TRAM)-Zelle und eine Zelle eines magnetischen Direktzugriffsspeichers (MRAM) sein. Nachfolgend werden beispielhafte Ausführungsformen der vorliegenden Offenbarung mit Fokus auf eine beispielhafte Ausführungsform beschrieben, bei der die Speicherzellen NAND-Flash-Speicherzellen sind.
  • Der Speicher-Controller 210 kann einen ersten bis achten Pin P21 bis P28 und eine Controller-Schnittstellenschaltung 212a umfassen. Die ersten bis achten Stifte P21 bis P28 können dem ersten bis achten Pin P11 bis P18 des nichtflüchtigen Speichers 220 entsprechen.
  • Die Controller-Schnittstellenschaltung 212a kann ein Chip-Freigabesignal nCE durch einen ersten Pin P21 an den nichtflüchtigen Speicher 220 senden. Die Controller-Schnittstellenschaltung 212a kann Signale an den nichtflüchtigen Speicher 220, der durch das Chip-Freigabesignal nCE ausgewählt wird, durch den zweiten bis achten Pin P22 bis P28 senden und von diesem empfangen.
  • Die Controller-Schnittstellenschaltung 212a kann das Befehls-Latch-Freigabesignal CLE, das Adress-Latch-Freigabesignal ALE und das Schreibfreigabesignal nWE durch den zweiten bis vierten Pin P22 bis P24 an den nichtflüchtigen Speicher 220 senden. Die Controller-Schnittstellenschaltung 212a kann durch einen siebten Pin P27 das Datensignal DQ an den nichtflüchtigen Speicher 220 senden oder das Datensignal DQ von dem nichtflüchtigen Speicher 220 empfangen.
  • Die Controller-Schnittstellenschaltung 212a kann das Datensignal DQ, das den Befehl CMD oder die Adresse ADDR umfasst, an den nichtflüchtigen Speicher 220 zusammen mit dem umgeschalteten Freigabesignal nWE senden. Die Controller-Schnittstellenschaltung 212a kann das Datensignal DQ, das den Befehl CMD umfasst, an den nichtflüchtigen Speicher 220 übertragen, indem das Befehls-Latch-Freigabesignal CLE, das einen Freigabezustand aufweist, übertragen wird, und kann das Datensignal DQ, das die Adresse ADDR umfasst, an den nichtflüchtigen Speicher 220 senden, indem das Adress-Latch-Freigabesignal ALE, das einen Freigabezustand aufweist, übertragen wird.
  • Die Controller-Schnittstellenschaltung 212a kann ein Lesefreigabesignal nRE durch den fünften Pin P25 an den nichtflüchtigen Speicher 220 senden. Die Controller-Schnittstellenschaltung 212a kann durch den sechsten Pin P26 das Daten-Strobe-Signal DQS von dem nichtflüchtigen Speicher 220 empfangen oder das Daten-Strobe-Signal DQS an den nichtflüchtigen Speicher 220 senden.
  • Bei dem Ausgabevorgang der Daten DATA des nichtflüchtigen Speichers 220 kann die Controller-Schnittstellenschaltung 212a ein umschaltendes Lesefreigabesignal nRE erzeugen und das Lesefreigabesignal nRE an den nichtflüchtigen Speicher 220 senden. Die Controller-Schnittstellenschaltung 212a kann zum Beispiel das Lesefreigabesignal nRE erzeugen, das von einem statischen Zustand (z. B. einem High-Pegel oder einem Low-Pegel) in den Umschaltzustand umschaltet, bevor die Daten DATA ausgegeben werden. Folglich kann das Daten-Strobe-Signal DQS, das basierend auf dem Lesefreigabesignal nRE umgeschaltet wird, in dem nichtflüchtigen Speicher 220 erzeugt werden. Die Controller-Schnittstellenschaltung 212a kann das Datensignal DQ, das die Daten DATA umfasst, zusammen mit dem umgeschalteten Daten-Strobe-Signal DQS von dem nichtflüchtigen Speicher 220 empfangen. Die Controller-Schnittstellenschaltung 212a kann die Daten DATA aus dem Datensignal DQ basierend auf der Umschaltzeit des Daten-Strobe-Signals DQS beziehen.
  • Bei dem Eingabevorgang der Daten DATA des nichtflüchtigen Speichers 220 kann die Controller-Schnittstellenschaltung 212a ein umgeschaltetes Daten-Strobe-Signal DQS erzeugen. Die Controller-Schnittstellenschaltung 212a kann zum Beispiel ein Daten-Strobe-Signal DQS erzeugen, das von einem statischen Zustand (z. B. einem High-Pegel oder einem Low-Pegel) in den Umschaltzustand umschaltet, bevor die Daten DATA gesendet werden. Die Controller-Schnittstellenschaltung 212a kann das Datensignal DQ, das die Daten DATA umfasst, an den nichtflüchtigen Speicher 220 basierend auf den Umschaltzeiten des Daten-Strobe-Signals DQS senden.
  • Die Controller-Schnittstellenschaltung 212a kann ein Ready-/Busy-Ausgabesignal nR/B von dem nichtflüchtigen Speicher 220 durch den achten Pin P28 empfangen. Die Controller-Schnittstellenschaltung 212a kann die Zustandsinformation des nichtflüchtigen Speichers 220 basierend auf dem Ready-/Busy-Ausgabesignal nR/B identifizieren.
  • Im Nachfolgenden wird der Vorgang des Speichersystems gemäß einigen beispielhaften Ausführungsformen Bezug nehmend auf 4 bis 12 beschrieben.
  • 4 ist ein Flussdiagramm, das einen Vorgang eines Speichersystems gemäß einigen beispielhaften Ausführungsformen zeigt. 5 ist ein Flussdiagramm zur Erläuterung eines Rechnerausführvorgangs, der in einer Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen durchgeführt wird. 6 bis 10 sind Flussdiagramme zur Erläuterung eines Rechnerausführvorgangs, der in einer Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen durchgeführt wird. 11 und 12 sind Schemata zur Erläuterung des Vorgangs des Speichersystems gemäß einigen beispielhaften Ausführungsformen.
  • Zuerst, Bezug nehmend auf 4, wird ein Rechnerausführvorgang bei der Speichervorrichtung 200 durchgeführt (S100).
  • Obwohl 4 eine Sequenz zeigt, bei der der maschinelle Lernvorgang (S100) bei der Speichervorrichtung 200 durchgeführt wird und dann der Befehl zum Anfordern der Fehlermöglichkeitsinformation über die Speichervorrichtung 200 von der Host-Vorrichtung 100 empfangen wird (S200), sind beispielhafte Ausführungsformen nicht auf die gezeigte Betriebsabfolge beschränkt.
  • Ein Ausführzeitpunkt des maschinellen Lernvorgangs (S100), der durch die Speichervorrichtung 200 durchgeführt wird, kann mit verschiedenen Abwandlungen abweichend von dem gezeigten Beispiel durchgeführt werden. Auch kann in einigen beispielhaften Ausführungsformen die Speichervorrichtung 200 den maschinellen Lernvorgang (S100) entsprechend einem Empfang eines Befehls durchführen, um die Ausführung des Rechnerausführvorgangs von der Host-Vorrichtung 100 anzuweisen.
  • Der maschinelle Lernvorgang, der in der Speichervorrichtung 200 durchgeführt wird, kann zum Beispiel Log-Daten-Sammelvorgänge (S110, S120), die in 5 gezeigt sind, und einen Durchführungsvorgang für maschinelles Lernen (S130) unter Verwendung der Log-Daten umfassen.
  • Nachfolgend wird eine genauere Beschreibung Bezug nehmend auf 5-10 gegeben.
  • Bezug nehmend auf 5 werden Log-Daten gesammelt (S110).
  • Bezug nehmend auf 6 ist ein Log-Monitor 240 der Speichervorrichtung 200 in der Speichervorrichtung 200 umfasst und kann die Log-Daten von verschiedenen Komponenten 216, 220, 233 und 250 sammeln, welche die Speichervorrichtung 200 bilden.
  • 6 zeigt einen Pufferspeicher 216, der einen DRAM 216a umfasst, einen nichtflüchtigen Speicher 220, der einen NAND 226 und einen PRAM 227 umfasst, verschiedene Hardware 233, welche die Speichervorrichtung 200 ausbildet, wie beispielsweise einen Temperatursensor 230, einen Kondensator 231 und ein Cyclic-Redundancy-Code(CRC)-Modul 232 und eine Firmware 250, die in der Speichervorrichtung 200 installiert ist, als Beispiele für die Komponenten, die in der Speichervorrichtung 200 umfasst sind. Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt.
  • Bei einigen beispielhaften Ausführungsformen kann der Log-Monitor 240 als Teil des Moduls (219 in 1) für maschinelles Lernen implementiert sein. Auch kann bei einigen anderen beispielhaften Ausführungsformen der Log-Monitor 240 als separates Modul implementiert sein, das sich von dem Moduls (219 in 1) für maschinelles Lernen unterscheidet.
  • Bei einigen beispielhaften Ausführungsformen kann der Log-Monitor 240 als Software implementiert sein und auf der Speichervorrichtung 200 betrieben werden und der Log-Monitor 240 kann als Hardware implementiert sein und auf der Speichervorrichtung 200 betrieben werden.
  • Der Log-Monitor 240 kann die Log-Daten von den Vorgängen des Pufferspeichers 216, dem nichtflüchtigen Speicher 220, der Hardware 233 und der Firmware 250 sammeln, die in der Speichervorrichtung 200 umfasst sind. Insbesondere kann der Log-Monitor 240 die Log-Daten sammeln, um die Fehlermöglichkeit des Pufferspeichers 216, des nichtflüchtigen Speichers 220, der Hardware 233 und der Firmware 250 aufgrund des Betriebs bzw. der Vorgänge des Pufferspeichers 216, des nichtflüchtigen Speichers 220, der Hardware 233 und der Firmware 250, die in der Speichervorrichtung 200 umfasst sind, zu prädizieren.
  • Ein Beispiel für die Log-Daten ist in 7 gezeigt.
  • Bezug nehmend auf 6 und 7 kann der Log-Monitor 240 die Log-Daten zur Prädiktion der Fehlermöglichkeit des NAND 226 aufgrund des Vorgangs bzw. Betriebs des NAND 226 sammeln.
  • Die Log-Daten zur Prädiktion der Fehlermöglichkeit des NAND 226 können einen Reclaim-Zählwert des NAND 226, ein Leselatenzhistogramm des NAND 226, eine Anzahl erneuter Leseversuche des NAND 226, die Anzahl an Run Time Bad Block (RTBB) pro Die des NAND 226, die Anzahl verfügbarer Die des NAND 226, eine Anzahl Uncorrectable Error CorreCtion (UECC) des NAND 226 und dergleichen umfassen.
  • Der Reclaim-Vorgang des NAND 226 ist ein Vorgang, der die Daten, die in dem NAND 226 gespeichert sind, durch den erneuten Leseversuchsvorgang erfolgreich liest, aber viele in den gelesenen Daten umfasste Fehler-Bits findet und die Daten, die in der Leseseite gespeichert sind, auf die neue Seite des NAND 226 verschiebt.
  • Eine hohe Auftritthäufigkeit des Reclaim-Vorgangs des NAND 226 gibt an, dass die Fehlermöglichkeit des NAND 226 steigt, der Log-Monitor 240 sammelt den Reclaim-Zählwert des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Ein Anstieg der Leselatenz des NAND 226 kann angeben, dass der erneute Leseversuch oder der Reclaim-Vorgangs in dem NAND 226 durchgeführt wird, und die Leselatenz steigt. So kann der Anstieg der Leselatenz des NAND 226 angeben, dass die Fehlermöglichkeit des NAND 226 steigt. Entsprechend sammelt der Log-Monitor 240 das Leselatenzhistogramm des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Der erneute Leseversuchsvorgang des NAND 226 ist ein Vorgang, bei dem ein Fehler bei dem Leseprozess auftritt und der Lesevorgang erneut durchgeführt wird, um die gleichen Daten zu lesen.
  • Da die hohe Auftrittshäufigkeit des erneuten Leseversuchsvorgangs des NAND 226 angibt, dass die Fehlermöglichkeit des NAND 226 steigt, sammelt der Log-Monitor 240 die Anzahl erneuter Leseversuche des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Der Run Time Bad Block (RTBB) des NAND 226 gibt einen Block an, in dem ein Fehler während eines Vorgangs des NAND 226 auftritt.
  • Ein Anstieg des RTBB des NAND 226 gibt an, dass die Fehlermöglichkeit des NAND 226 steigt. Daher sammelt der Log-Monitor 240 die Anzahl an RTBB pro Die des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Die Anzahl verfügbarer Dies des NAND 226 gibt die Anzahl der NAND-Chips an, die in dem NAND 226 tatsächlich verwendet werden, und die Anzahl verfügbarer Dies des NAND 226 sinkt, sowie die Anzahl defekter NAND-Chips steigt.
  • Da das Abnehmen der Anzahl verfügbarer Dies des NAND 226 angibt, dass die Fehlermöglichkeit des NAND 226 steigt, sammelt der Log-Monitor 240 die Anzahl verfügbarer Dies des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Die UECC-Anzahl des NAND 226 gibt die Auftrittshäufigkeit eines nicht korrigierbaren Fehles an, der im NAND 226 auftritt.
  • Da ein Anstieg der UECC-Anzahl des NAND 226 angibt, dass die Fehlermöglichkeit des NAND 226 steigt, sammelt der Log-Monitor 240 die UECC-Anzahl des NAND 226 als Log-Daten, um die Fehlermöglichkeit des NAND 226 zu prädizieren.
  • Zudem kann der Log-Monitor 240 Log-Daten sammeln, um die Fehlermöglichkeit des DRAM 216a aufgrund des Vorgangs des DRAM 216a zu prädizieren.
  • Die Log-Daten, um die Fehlermöglichkeit des DRAM 216a zu prädizieren, kann eine Anzahl Correctable Error CorreCtion (CECC) des DRAM 216a, den Temperaturverlauf des DRAM 216a und dergleichen umfassen.
  • Die CECC-Anzahl des DRAM 216a ist eine Anzahl eines Auftretens von einem 1-Bit-Flip während eines Vorgangs des DRAM 216a.
  • Da ein Anstieg der CECC-Anzahl des DRAM 216a angibt, dass die Fehlermöglichkeit des DRAM 216a steigt, sammelt der Log-Monitor 240 die CECC-Anzahl des DRAM 216a als Log-Daten, um die Fehlermöglichkeit des DRAM 216a zu prädizieren.
  • Der Temperaturverlauf des DRAM 216a entspricht Daten, welche die Betriebstemperatur angeben, bei welcher der DRAM 216a im Laufe der Zeit betrieben wird.
  • Da die Betriebstemperatur des DRAM 216a die Fehlermöglichkeit des DRAM 216a beeinflussen kann, sammelt der Log-Monitor 240 den Temperaturverlauf des DRAM 216a als Log-Daten, um die Fehlermöglichkeit des DRAM 216a zu prädizieren.
  • Ferner kann der Log-Monitor 240 Log-Daten sammeln, um die Fehlermöglichkeit des Kondensators 231 anhand des Vorgangs des Kondensators 231 zu prädizieren.
  • Die Log-Daten zur Prädiktion der Fehlermöglichkeit des Kondensators 231 können den Zustand (die Kondensatorintegrität) des Kondensators 231 oder dergleichen umfassen.
  • Der Zustand (die Kondensatorintegrität) des Kondensators 231 ist eine Information, die den Zustand des Kondensators 231 angibt, indem der Ladezustand des Kondensators 231, der in der Speichervorrichtung 200 vorhanden ist, numerisch ausgedrückt wird. Falls zum Beispiel ein Anfangswert des Kondensators 231 100 ist (d. h., wenn der Kondensator 231 neu ist), sinkt die Ladekapazität mit Verwendung des Kondensators 231. So sinkt der Wert des Zustands (der Kondensatorintegrität) des Kondensators 231 allmählich.
  • Da der Zustand (die Kondensatorintegrität) des Kondensators 231 die Fehlermöglichkeit des Kondensators 231 beeinflussen kann, sammelt der Log-Monitor 240 den Zustand (die Kondensatorintegrität) des Kondensators 231 als Log-Daten, um die Fehlermöglichkeit des Kondensators 231 zu prädizieren.
  • Ferner kann der Log-Monitor 240 Log-Daten sammeln, um die Fehlermöglichkeit des Temperatursensors 230 aufgrund des Vorgangs des Temperatursensors 230 zu prädizieren.
  • Die Log-Daten zur Prädiktion der Fehlermöglichkeit des Temperatursensors 230 kann die Anzahl erneuter Versuche des Temperatursensors 230 oder dergleichen umfassen.
  • Die Anzahl erneuter Versuche des Temperatursensors 230 gibt eine Anzahl erneuter Versuche an, die auftreten, wenn der Wert gelesen wird, der von dem Temperatursensor 230 erfasst wird.
  • Da ein Anstieg der Anzahl erneuter Versuche des Temperatursensors 230 angibt, dass die Fehlermöglichkeit des Temperatursensors 230 steigt, sammelt der Log-Monitor 240 die Anzahl erneuter Versuche des Temperatursensors 230 als Log-Daten, um die Fehlermöglichkeit des Temperatursensors 230 zu prädizieren.
  • Ferner kann der Log-Monitor 240 Log-Daten sammeln, um die Fehlermöglichkeit des CRC-Moduls 232 aufgrund des Vorgangs des CRC-Moduls 232 zu prädizieren.
  • Die Log-Daten zum Prädizieren der Fehlermöglichkeit des CRC-Moduls 232 können den Fehlerverlauf des CRC-Moduls 232 oder dergleichen umfassen.
  • Der Fehlerverlauf des CRC-Moduls 232 kann den Signalintegritätszustand des internen Datenpfads der Speichervorrichtung 200 angeben.
  • Da eine hohe CRC-Fehleranzahl angibt, dass die Vorgangsanzahl des CRC-Moduls 232 steigt und der Signalintegritätszustand des internen Datenpfads der Speichervorrichtung 200 nicht gut ist, sammelt der Log-Monitor 240 den Fehlerverlauf des CRC-Moduls 232 als Log-Daten zur Prädiktion der Fehlermöglichkeit des CRC-Moduls 232 oder der Speichervorrichtung 200.
  • Ferner kann der Log-Monitor 240 Log-Daten sammeln, um die Fehlermöglichkeit der Firmware 250 anhand des Vorgangs der Firmware 250 zu prädizieren.
  • Die Log-Daten zur Prädiktion der Fehlermöglichkeit der Firmware 250 können eine Anzahl an Ausnahmen und eine Anzahl an Zurücksetzungen umfassen, die in der Firmware 250 oder dergleichen auftreten.
  • Eine Erhöhung der Anzahl an Ausnahmen und der Anzahl an Zurücksetzungen der Firmware 250 kann angeben, dass die Firmware 250 aufgrund eines häufigen Auftretens eines Bugs oder weil der Steuervorgang der Speichervorrichtung 200 nicht störungsfrei durchgeführt wird, gewechselt werden muss. Daher sammelt der Log-Monitor 240 die Anzahl an Ausnahmen und die Anzahl an Zurücksetzungen der Firmware 250 als Log-Daten, um die Fehlermöglichkeit der Firmware 250 oder die Speichervorrichtung 200 zu prädizieren.
  • Wieder Bezug nehmend auf 5 kann eine Bestimmung darüber getroffen werden, ob die Anzahl an gesammelten Log-Daten größer ist als die vorbestimmte Anzahl (S120). Falls die Anzahl an gesammelten Log-Daten kleiner ist als die vorbestimmte Anzahl (S120-N) wird die Sammlung von Log-Daten fortgesetzt (S110).
  • Bei einigen beispielhaften Ausführungsformen kann der Log-Daten-Sammelvorgang (S110) fortgesetzt werden, bis die Anzahl an Log-Daten, die ein später beschriebenes Zeitfenster erfüllen, gesammelt wurde.
  • Bezug nehmend auf 6 kann bei einigen beispielhaften Ausführungsformen der Log-Monitor 240 die gesammelten Log-Daten in dem nichtflüchtigen Speicher 220 in Form einer DB 228 speichern. Das heißt, auf einem der Mehrzahl von NAND-Chips, die in dem nichtflüchtigen Speicher 220 umfasst sind, können Log-Daten gespeichert sein, die durch den Log-Monitor 240 gesammelt werden.
  • Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt und der Log-Monitor 240 kann auch die gesammelten Log-Daten in einer anderen Region als dem nichtflüchtigen Speicher 220 speichern. Der Log-Monitor 240 kann die gesammelten Log-Daten zum Beispiel auch in einer anderen Speicherregion speichern, die mit der Speichervorrichtung 200 durch ein Netzwerk verbunden ist.
  • Bezug nehmend auf 6 und 8 kann die Anzahl an Log-Daten, die erforderlich ist, damit der Log-Monitor 240 Log-Daten von dem Vorgang bzw. Betrieb des NAND 226 in Einheiten von 10 Sekunden sammelt und die Fehlermöglichkeit des NAND 226 prädiziert, zum Beispiel 5 betragen (d. h. p=5 aus 8). In diesem Fall kann der Log-Monitor 240 die oben erwähnten Log-Daten aus dem Vorgang des NAND 226 für mindestens 50 Sekunden sammeln. Das heißt, der Fehlermöglichkeitsprädiktionsvorgang des NAND 226 des Moduls 219 für maschinelles Lernen kann durchgeführt werden, nachdem mindestens 50 Sekunden verstrichen sind.
  • Erneut Bezug nehmend auf 5 wird der maschinelle Lernvorgang durchgeführt (S130), wenn die Anzahl an gesammelten Log-Daten größer ist als die vorbestimmte Anzahl (S120-Y).
  • Bezug nehmend auf 1 und 8 kann jede Komponente k (k ist eine natürliche Zahl) Log-Daten umfassen, die bis zu einem aktuellen Zeitpunkt angesammelt wurden, und das Modul 219 für maschinelles Lernen kann die Fehlermöglichkeit von jeder Komponente prädizieren, wobei p (p ist eine natürlich Zahl kleiner als k) Log-Daten, die innerhalb eines vorbestimmten Zeitfensters umfasst sind, aus den k Log-Daten für jede Komponente, die entsprechend einem Zeitverlauf gesammelt wurden, verwendet werden. Im Laufe der Zeit kann die Menge an k Log-Daten steigen.
  • Wie in 8 gezeigt, kann, wenn angenommen wird, dass der aktuelle Zeitpunkt t ist, das Modul 219 für maschinelles Lernen eine Fehlermöglichkeit (FP(t+1), FP(t+2) und FP(t+n)) bis zu einem zukünftigen n (n ist eine natürliche Zahl) Zeitpunkt einer ersten Komponente (Komponente 1) unter Verwendung der p Log-Daten, die in dem Zeitfenster umfasst sind, aus k Log-Daten prädizieren, die von dem vergangenen bis zum aktuellen Zeitpunkt anhand des Vorgangs der ersten Komponente (Komponente 1) gesammelt wurden.
  • Ferner kann das Modul 219 für maschinelles Lernen die Fehlermöglichkeit (FP(t+1), FP(t+2) und FP(t+n)) bis zu einem zukünftigen n Zeitpunkt einer zweiten Komponente (Komponente 2) unter Verwendung der p Log-Daten, die in dem Zeitfenster umfasst sind, von den k Log-Daten prädizieren, die von dem vergangenen bis zum aktuellen Zeitpunkt ausgehend von dem Vorgang der zweiten Komponente (Komponente 2) gesammelt wurden.
  • Ein solcher Vorgang des Moduls 219 für maschinelles Lernen kann bei m (m ist eine natürliche Zahl) Komponenten durchgeführt werden, die in der Speichervorrichtung 200 umfasst sind.
  • Als nächstes, Bezug nehmend auf 1 und 9, kann das Modul 219 für maschinelles Lernen eine Fehlermöglichkeit der Speichervorrichtung 200 (SSD-Zustand(t+1), SSD-Zustand(t+2) und SSD-Zustand(t+n)) zu unterschiedlichen Zeitpunkten bis zu dem zukünftigen n Zeitpunkt der Speichervorrichtung 200 auf Basis der Fehlermöglichkeit (FP(t+1), FP(t+2) und FP(t+n)) für jede Komponente, die bis zu dem zukünftigen n Zeitpunkt prädiziert wurde, prädizieren.
  • Bezug nehmend auf 10 kann das Modul 219 für maschinelles Lernen zum Beispiel eine Matrix auf Basis der Fehlermöglichkeit (FP(t+1), FP(t+2) und FP(t+n)) für jede Komponente bilden, die zu unterschiedlichen Zeitpunkten bis zum zukünftigen n Zeitpunkt prädiziert wurde, und die gebildete Matrix um einen gewichteten Vektor für jede Komponente multiplizieren, um die Fehlermöglichkeit der Speichervorrichtung 200 (SSD-Zustand(t+1), SSD-Zustand(t+2) und SSD-Zustand(t+n)) für unterschiedliche Zeitpunkte bis zu dem zukünftigen n Zeitpunkt zu prädizieren.
  • Hier kann der gewichtete Vektor für jede Komponente durch verschiedene Verfahren bestimmt werden. Bei einigen beispielhaften Ausführungsformen kann eine vergangene Fehlerrate für jede Komponente als gewichteter Vektor für jede Komponente betrachtet werden. Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt.
  • Erneut Bezug nehmend auf 4 sendet die Host-Vorrichtung 100 einen Befehl, um die Fehlermöglichkeitsinformation bezüglich der Speichervorrichtung 200 anzufordern, an die Speichervorrichtung 200 (S200).
  • Bei beispielhaften Ausführungsformen kann der Befehl zum Anfordern der Fehlermöglichkeitsinformation bezüglich der Speichervorrichtung 200 einen Get-Log-Page-Befehl umfassen.
  • Ein Log-Identifikator des Get-Log-Page-Befehls kann zum Beispiel ein beliebiger von C0 bis FF sein (wobei C0 und FF Basis 16 sind), wie in 11 gezeigt. Das heißt, wenn die Host-Vorrichtung 100 den Log-Identifikator als einen von C0 bis FF spezifiziert und den Get-Log-Page-Befehl an die Speichervorrichtung 200 sendet, kann die Host-Vorrichtung 100 die Fehlermöglichkeitsinformation über die Speichervorrichtung 200 von der Speichervorrichtung 200 beantragen.
  • Bezug nehmend auf 4 antwortet die Speichervorrichtung 200, die den Get-Log-Page-Befehl empfangen hat, der Host-Vorrichtung 100 mit der Fehlermöglichkeitsinformation über die Speichervorrichtung 200 (S300).
  • Bei einigen beispielhaften Ausführungsformen kann die Antwort der Speichervorrichtung 200 eine Zustandsinformation für mehrere Prädiktionszeitpunkte umfassen, wie in 12 gezeigt.
  • Bezug nehmend auf 12 kann die Speichervorrichtung 200 insbesondere der Host-Vorrichtung 100 mit einer Bewertung antworten, die erhalten wird, indem die Fehlermöglichkeit der Speichervorrichtung 200 bewertet wird, und einer Zustandsinformation (Zustand), die erhalten wird, indem die Fehlermöglichkeit der Speichervorrichtung 200 bei jedem Prädiktionszeitpunkt als Zustand ausgedrückt wird.
  • Bei einigen beispielhaften Ausführungsformen kann die Zustandsinformation (Zustand) einen dringenden Zustand umfassen, der eine sofortige Maßnahme erfordert, einen niedrigen Zustand, der ein nicht dringender Zustand ist und eine relativ geringe Fehlermöglichkeit hat, einen mittlerer Zustand, der ein nicht dringender Zustand ist und eine höhere Fehlermöglichkeit hat als der niedrige Zustand, und einen hohen Zustand, der ein nicht dringender Zustand ist und eine Fehlermöglichkeit hat, die höher ist als der mittlere Zustand und niedriger ist als der dringende Zustand. Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt und die Zustandsinformation kann auf unterschiedliche Art und Weise nach Bedarf klassifiziert und ausgedrückt werden.
  • Bei einigen anderen beispielhaften Ausführungsformen kann zusätzlich zu dem Get-Log-Page-Befehl, der oben erläutert ist, der Befehl, in dem die Host-Vorrichtung 100 die Fehlermöglichkeitsinformation über die Speichervorrichtung 200 anfordert, einen Befehl eines Administratorbefehlssatzes umfassen, wie beispielsweise einen Get-Feature-Befehl, der in dem NVMe-Standard umfasst ist.
  • In diesem Fall, wenn die Host-Vorrichtung 100 Daten einer spezifischen Merkmals-ID der Speichervorrichtung 200 durch den Get-Feature-Befehl anfordert, kann die Speichervorrichtung 200 eine Fehlermöglichkeitsinformation in dem Merkmalsidentifikator (FID) definieren und der Host-Vorrichtung 100 die Fehlermöglichkeitsinformation basierend auf der spezifischen Merkmals-ID bereitstellen.
  • Ferner kann bei einigen anderen beispielhaften Ausführungsformen der Befehl, in dem die Host-Vorrichtung 100 die Fehlermöglichkeitsinformation über die Speichervorrichtung 200 anfordert, den Security-Send-Befehl umfassen, der in dem NVMe-Standard umfasst ist.
  • In diesem Fall, wenn die Host-Vorrichtung 100 die Fehlermöglichkeitsinformation von der Speichervorrichtung 200 durch den Security-Send-Befehl anfordert, verschlüsselt die Speichervorrichtung 200 die Fehlermöglichkeitsinformation mit dem Sicherheitsprotokoll und kann der Host-Vorrichtung 100 die Fehlermöglichkeitsinformation basierend auf dem Security-Receive-Befehl bereitstellen.
  • Bezug nehmend auf 4 bestimmt die Host-Vorrichtung 100 eine RAID-Neuerstellungs-Steuerzeit der Speichervorrichtung 200 auf Basis der Fehlermöglichkeitsinformation, die von der Speichervorrichtung 200 empfangen wurde (S400).
  • Zum Beispiel wenn die Fehlermöglichkeit der Speichervorrichtung 200 an dem nahen zukünftigen Zeitpunkt dem dringenden Zustand entspricht, kann die Host-Vorrichtung 100 sofort die RAID-Neuerstellung der Speichervorrichtung 200 durchführen. Wenn die Fehlermöglichkeit der Speichervorrichtung 200 zu dem nahen zukünftigen Zeitpunkt dem niedrigen Zustand entspricht, kann die Host-Vorrichtung 100 die RAID-Neuerstellung zu einem späteren Zeitpunkt durchführen, nachdem der E/A-Vorgang mit der Speichervorrichtung 200 ausreichend durchgeführt wurde.
  • Auf diese Weise wird die prädizierte Fehlermöglichkeitsinformation über die Speichervorrichtung der Host-Vorrichtung bereitgestellt und die Host-Vorrichtung kann nötige Maßnahmen im Voraus ergreifen, bevor der Fehler tatsächlich in der Speichervorrichtung auftritt. Entsprechend kann die Zuverlässigkeit des Speichersystems verbessert werden.
  • Im Nachfolgenden wird der Vorgang des Speichersystems gemäß einigen anderen beispielhaften Ausführungsformen Bezug nehmend auf 13 beschrieben.
  • 13 ist ein Schema zur Erläuterung des Vorgangs des Speichersystems gemäß einigen anderen beispielhaften Ausführungsformen. Nachfolgend wird keine wiederholte Erläuterung der vorstehenden beispielhaften Ausführungsformen gegeben und es werden ausschließlich Unterschiede erläutert.
  • Bezug nehmend auf 13 kann bei dieser beispielhaften Ausführungsform die Speichervorrichtung 200 der Host-Vorrichtung 100 mit der Fehlermöglichkeitsinformation für jede Komponente, die in der Speichervorrichtung 200 umfasst ist, sowie der Fehlermöglichkeitsinformation über die Speichervorrichtung 200 antworten.
  • Bezug nehmend auf 13 kann die Speichervorrichtung 200 insbesondere der Host-Vorrichtung 100 mit der Zustandsinformation (Zustand) antworten, welche die Fehlermöglichkeit der Speichervorrichtung 200 (d. h. SSD) ausdrückt, und einer Zustandsinformation (Zustand), welche die Fehlermöglichkeit jeder Komponente, die in der Speichervorrichtung 200 umfasst ist (d. h. Komponente 1 und Komponente 2) bei jedem Prädiktionszeitpunkt (d. h. t+1, t+2, ... t+n) ausdrückt.
  • Obwohl die Zustandsinformation (Zustand) in diesem Fall das gleiche Klassifikationsverfahren verwenden kann, wie jenes aus oben beschriebenen beispielhaften Ausführungsformen, sind beispielhafte Ausführungsformen nicht darauf beschränkt.
  • Da die Host-Vorrichtung 100 eine Fehlermöglichkeitsinformation für die Speichervorrichtung 200 als Ganzes und jede Komponente in der Speichervorrichtung 200 empfangen kann, kann die Speichervorrichtung 200 in dem Fall dieser beispielhaften Ausführungsform präziser verwaltet werden.
  • 14 ist ein Schema, das ein Rechenzentrum zeigt, bei dem die Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen eingesetzt wird.
  • Bezug nehmend auf 14 ist ein Rechenzentrum 3000 eine Einrichtung, die verschiedene Arten von Daten sammelt und Dienste bietet, und kann als Datenspeicherzentrum bezeichnet werden. Das Rechenzentrum 3000 kann ein System sein, um Suchmaschinen und Datenbankvorgänge bereitzustellen und kann ein Rechensystem sein, das von Unternehmen verwendet wird, wie Banken und Regierungsinstitutionen. Das Rechenzentrum 3000 kann Anwendungs-Server 3100 bis 3100n und Speicher-Server 3200 bis 3200m umfassen. Die Anzahl an Anwendungs-Servern 3100 bis 3100n und die Anzahl an Speicher-Servern 3200 bis 3200m kann unterschiedlich ausgewählt werden und die Anzahl an Anwendungs-Servern 3100 bis 3100n und die Anzahl an Speicher-Servern 3200 bis 3200m kann sich voneinander unterscheiden.
  • Der Anwendungs-Server 3100 oder der Speicher-Server 3200 kann mindestens einen der Prozessoren 3110 und 3210 und der Speicher 3120 und 3220 umfassen. Wenn der Speicherserver 3200 als Beispiel genommen wird, kann der Prozessor 3210 den Gesamtbetrieb des Speicher-Servers 3200 steuern, auf den Speicher 3220 zugreifen, und Befehle und/oder Daten ausführen, die in dem Speicher 3220 geladen sind. Der Speicher 3220 kann ein Synchron-DRAM mit doppelter Datenrate (DDR SDRAM), ein Speicher mit hoher Bandbreite (High Bandwidth Memory, HBM), ein Hybrid Memory Cube (HMC), ein Dual In-Line Memory Module (DIMM), ein Optane DIMM oder ein nichtflüchtiger DIMM (NVMDIMM) sein. Gemäß einer beispielhaften Ausführungsform kann die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220, die in dem Speicher-Server 3200 umfasst sind, unterschiedlich ausgewählt werden.
  • Bei einer beispielhaften Ausführungsform können der Prozessor 3210 und der Speicher 3220 ein Prozessor-Speicher-Paar schaffen. Bei einer beispielhaften Ausführungsform können sich die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220 voneinander unterscheiden. Der Prozessor 3210 kann einen Prozessor mit einem Kern oder mehreren Kernen umfassen. Die zuvor genannte Erläuterung des Speicher-Servers 3200 kann auf ähnliche Weise auch auf den Anwendungs-Server 3100 angewendet werden. Gemäß beispielhaften Ausführungsformen umfasst der Anwendungs-Server 3100 möglicherweise keine Speichervorrichtung 3150. Der Speicher-Server 3200 kann mindestens eine oder mehrere Speichervorrichtungen 3250 umfassen. Die Anzahl an Speichervorrichtungen 3250, die in dem Speicher-Server 3200 umfasst ist, kann abhängig von beispielhaften Ausführungsformen unterschiedlich ausgewählt werden.
  • Die Anwendungs-Server 3100 bis 3100n und die Speicher-Server 3200 bis 3200m können miteinander durch ein Netzwerk 3300 kommunizieren. Das Netzwerk 3300 kann unter Verwendung von Fiber Channel (FC), Ethernet oder dergleichen implementiert sein. In diesem Fall ist FC ein Medium, das für eine Datenübertragung mit relativ hoher Geschwindigkeit verwendet wird, und es kann ein optischer Schalter verwendet werden, der eine hohe Leistung/hohe Verfügbarkeit bereitstellt. Die Speicher-Server 3200 bis 3200m können abhängig von einem Zugriffsverfahren des Netzwerks 3300 als Dateispeicher, Blockspeicher oder Objektspeicher vorgesehen sein.
  • Bei einer beispielhaften Ausführungsform kann das Netzwerk 3300 ein reines Speichernetzwerk sein, wie beispielsweise ein Storage Area Network (SAN). Das SAN kann zum Beispiel ein FC-SAN sein, das ein FC-Netzwerk verwendet, und ist entsprechend dem FC-Protokoll (FCP) implementiert. Bei einem anderen Beispiel kann das SAN ein IP-SAN sein, das ein TCP/IP-Netzwerk verwendet, und ist gemäß einem SCSI-over-TCP/IP- oder Internet-SCSI(iSCSI)-Protokoll implementiert. Bei einer anderen beispielhaften Ausführungsform kann das Netzwerk 1300 ein Allzwecknetzwerk sein, wie beispielsweise ein TCP/IP-Netzwerk. Das Netzwerk 1300 kann zum Beispiel gemäß Protokollen wie FC over Ethernet (FCoE), Network Attached Storage (NAS) und NVMe over Fabrics (NVMe-oF) realisiert werden.
  • Im Nachfolgenden werden hauptsächlich der Anwendungs-Server 3100 und der Speicher-Server 3200 beschrieben. Die Beschreibung des Anwendungs-Servers 3100 kann auch für einen anderen Anwendungs-Server 3100n gelten und die Beschreibung des Speicher-Servers 3200 kann für einen anderen Speicher-Server 3200m gelten.
  • Der Anwendungs-Server 3100 kann Daten, bei denen ein Nutzer oder ein Client angefordert hat, sie zu speichern, über das Netzwerk 3300 in einem der Speicher-Server 3200 bis 3200m speichern. Der Anwendungs-Server 3100 kann ferner die Daten, von denen der Nutzer oder der Client angefordert hat, dass sie gelesen werden, über das Netzwerk 3300 von einem der Speicher-Server 3200 bis 3200m erhalten. Der Anwendungs-Server 3100 kann zum Beispiel durch einen Webserver oder ein Datenbankverwaltungssystem (DBMS) implementiert sein.
  • Der Anwendungs-Server 3100 kann über das Netzwerk 3300 auf den Speicher 3120n oder die in einem anderen Anwendungs-Server 3100n umfasste Speichervorrichtung 3150n zugreifen oder kann über das Netzwerk 3300 auf die Speicher 3220 bis 3220m oder die Speicherungsvorrichtungen 3250 bis 3250m zugreifen, die in den Speicher-Servern 3200 bis 3200m umfasst sind. Folglich kann der Anwendungs-Server 3100 verschiedene Vorgänge bei den Daten durchführen, die in den Anwendungs-Servern 3100 bis 3100n und/oder den Speicher-Servern 3200 bis 3200m gespeichert sind. Beispielsweise kann der Anwendungs-Server 3100 Befehle ausführen, um die Daten zwischen den Anwendungs-Servern 3100 bis 3100n und/oder den Speicher-Servern 3200 bis 3200m zu verschieben oder zu kopieren. Zu diesem Zeitpunkt können die Daten von den Speichervorrichtungen 3250 bis 3250m der Speicher-Server 3200 bis 3200m über die Speicher 3220 bis 3220m der Speicher-Server 3200 bis 3200m oder direkt zu den Speichern 3120 bis 3120n der Anwendungs-Server 3100 bis 3100n bewegt werden. Daten, die durch das Netzwerk 3300 bewegt werden, können Daten sein, die zu Sicherheits- und Datenschutzzwecken verschlüsselt sind.
  • Wenn der Speicher-Server 3200 als Beispiel genommen wird, kann eine Schnittstelle 3254 eine physische Verbindung zwischen dem Prozessor 3210 und einem Controller 3251 und eine physische Verbindung zwischen der NIC 3240 und dem Controller 3251 schaffen. Die Schnittstelle 3254 kann zum Beispiel durch ein Direct Attached Storage (DAS) implementiert sein, bei dem die Speichervorrichtung 3250 direkt mit einem dedizierten Kabel verbunden ist. Die Schnittstelle 3254 kann zum Beispiel durch verschiedene Schnittstellenmethoden implementiert sein, wie beispielsweise eine Schnittstelle vom Typ Advanced Technology Attachment (ATA), Serial ATA (SATA), External SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI express (PCIe), NVM Express (NVMe), IEEE 1394, universeller serieller Bus (USB), Secure-Digital(SD)-Karte, Multi-Media Card (MMC), Embedded Multi-Media Card (eMMC), Universal Flash Storage (UFS), Embedded Universal Flash Storage (eUFS) und Compact-Flash(CF)Karte.
  • Der Speicher-Server 3200 kann ferner einen Schalter 3230 und eine NIC 3240 umfassen. Der Schalter 3230 kann selektiv den Prozessor 3210 und die Speichervorrichtung 3250 verbinden oder kann selektiv die NIC 3240 und die Speichervorrichtung 3250 entsprechend der Steuerung des Prozessors 3210 verbinden.
  • Bei einer beispielhaften Ausführungsform kann die NIC 3240 eine Netzwerkschnittstellenkarte, einen Netzwerkadapter und dergleichen umfassen. Die NIC 3240 kann durch eine verdrahtete Schnittstelle, eine drahtlose Schnittstelle (d. h. eine Bluetooth-Schnittstelle), eine optische Schnittstelle oder dergleichen mit dem Netzwerk 3300 verbunden sein. Die NIC 3240 kann einen internen Speicher, einen DSP, eine Host-Bus-Schnittstelle oder dergleichen umfassen und kann mit dem Prozessor 3210 und/oder dem Schalter 3230 oder dergleichen durch die Host-Bus-Schnittstelle verbunden sein. Die Host-Bus-Schnittstelle kann auch als eine der Beispiele der Schnittstelle 3254 implementiert sein, die oben beschrieben sind. Bei einer beispielhaften Ausführungsform kann die NIC 3240 auch mit dem Prozessor 3210, dem Schalter 3230 und/oder der Speicherungsvorrichtung 3250 integriert sein.
  • In den Speicher-Servern 3200 bis 3200m oder den Anwendungs-Servern 3100 bis 3100n überträgt der Prozessor die Befehle an die Speichervorrichtungen 3130 bis 3130n und 3250 bis 3250m oder die Speicher 3120 bis 3120n und 3220 bis 3220m, um die Daten zu programmieren oder zu lesen. In diesem Fall können die Daten Daten sein, bei denen ein Fehler durch eine ECC-Engine korrigiert wurde. Die Daten sind Daten, die einem Data-Bus-Inversion(DBI)- oder Datenmaskierungs(DM)-Prozess unterzogen werden, und können CRC-Information umfassen. Die Daten können Daten sein, die zu Sicherheits- und Datenschutzzwecken verschlüsselt sind.
  • Die Speichervorrichtungen 3150 bis 3150m und 3250 bis 3250m können gemäß dem Lesebefehl, der von dem Prozessor empfangen wird, das Steuersignal und ein Befehls-/Adresssignal an die NAND-Flash-Speichervorrichtungen 3252 bis 3252m senden. Folglich wird, wenn Daten aus den NAND-Flash-Speichervorrichtungen 3252 bis 3252m ausgelesen werden, das Lesefreigabe(RE)-Signal als Datenausgabesteuersignal eingegeben und kann dazu dienen, die Daten an den DQ-Bus auszugeben. Das Daten-Strobe (DQS) kann unter Verwendung des RE-Signals erzeugt werden. Befehls- und Adresssignale können in dem Seitenpuffer abhängig von einer steigenden Flanke oder fallenden Flanke eines Schreibfreigabe(WE)-Signals zwischengespeichert werden.
  • Der Controller 3251 kann den Betrieb der Speichervorrichtung 3250 insgesamt steuern. Bei einer beispielhaften Ausführungsform kann der Controller 3251 einen statischen Direktzugriffsspeicher (SRAM) umfassen. Der Controller 3251 kann Daten in den NAND-Flash 3252 gemäß einem Schreibbefehl schreiben oder kann die Daten aus dem NAND-Flash 3252 gemäß einem Lesebefehl lesen. Der Schreibbefehl und/oder der Lesebefehl können zum Beispiel von dem Prozessor 3210 in dem Speicher-Server 3200, dem Prozessor 3210m in einem anderen Speicher-Server 3200m oder den Prozessoren 3110 und 3110n in den Anwendungs-Servern 3100 und 3100n bereitgestellt werden. Ein DRAM 3253 kann vorübergehend die Daten speichern (puffern), die in den NAND-Flash 3252 geschrieben werden sollen, oder die Daten, die aus dem NAND-Flash 3252 ausgelesen werden. Der DRAM 3253 kann auch Metadaten speichern. Hier können die Metadaten Daten sein, die durch den Controller 3251 erzeugt werden, um die Nutzerdaten oder den NAND-Flash 3252 zu verwalten. Die Speichervorrichtung 3250 kann ein Secure Element (SE) zu Sicherheits- oder Datenschutzzwecken umfassen.
  • Bei einigen beispielhaften Ausführungsformen können die Speichervorrichtungen 3150 und 3250 die zuvor genannten Vorgänge durchführen. Das heißt, die Speichervorrichtungen 3150 und 3250 sammeln Log-Daten für jede Komponente, die in den Speichervorrichtungen 3150 und 3250 umfasst ist, und kann die Fehlermöglichkeit für jede Komponente auf Basis der gesammelten Log-Daten prädizieren.
  • Die Log-Daten, die durch jede der Speichervorrichtungen 3150 und 3250 gesammelt werden, können in jeder der Speichervorrichtungen 3150 und 3250 gespeichert sein, und die Log-Daten können in einer einzelnen dedizierten Speichervorrichtung gespeichert sein, die durch das Netzwerk 3300 verbunden ist.
  • Mindestens ein Element von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element, die in 1-3, 6 und 14 durch einen Block dargestellt sind, können als Hardware-, Software- und/oder Firmware-Strukturen unterschiedlicher Anzahl verkörpert sein, die jeweilige Funktionen, die oben beschrieben sind, gemäß beispielhaften Ausführungsformen ausführen. Zum Beispiel kann mindestens ein Element von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element eine direkte Schaltungsstruktur verwenden, wie beispielsweise einen Speicher, einen Prozessor, eine Logikschaltung, eine Look-Up-Tabelle usw., welche die jeweiligen Funktionen durch Steuerung einer oder mehrerer Mikroprozessoren oder anderer Steuereinrichtungen ausführen kann. Auch kann mindestens ein Element von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element konkret durch ein Modul, ein Programm oder einen Teil eines Codes verkörpert sein, der bzw. das eine oder mehrere ausführbare Anweisungen enthält, um spezifische Logikfunktionen durchzuführen, und durch einen oder mehrere Mikroprozessoren oder andere Steuereinrichtungen ausgeführt wird. Auch können mindestens ein Element von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element ferner einen Prozessor umfassen oder durch diesen implementiert sein, wie beispielsweise eine zentrale Verarbeitungseinheit (CPU), welche die jeweiligen Funktionen durchführt, einen Mikroprozessor oder dergleichen. Zwei Elemente oder mehr von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element können in einer einzelnen Komponente, einem Element, einem Modul oder einer Einheit kombiniert sein, die bzw. das alle Vorgänge oder Funktionen der kombinierten zwei oder mehr Elemente von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element durchführt. Auch kann mindestens ein Teil der Funktionen des mindestens einen Elements von den Controllern, Schnittstellen, Modulen, Managern, Engines, Steuerlogiken, Monitoren, Prozessoren, Schaltern oder einem anderen Element durch eine andere dieser Komponenten durchgeführt werden. Obwohl ein Bus nicht notwendigerweise in jedem der obigen Blockschaltbildern dargestellt ist, kann eine Kommunikation zwischen den Komponenten ferner durch den Bus durchgeführt werden. Funktionale Aspekte der obigen beispielhaften Ausführungsformen können in Algorithmen implementiert sein, die auf einem oder mehreren Prozessoren ausgeführt werden. Ferner können die Controller, Schnittstellen, Module, Manager, Engines, Steuerlogiken, Monitore, Prozessoren, Schalter oder ein anderes Element, die durch einen Block dargestellt sind, oder Verarbeitungsschritte eine beliebige Anzahl an Techniken aus dem Stand der Technik für die Konfiguration von Elektronik, eine Signalverarbeitung und/oder -steuerung, eine Datenverarbeitung und dergleichen verwenden.
  • Während beispielhafte Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen beschrieben wurden, wird es für den Fachmann ersichtlich sein, dass Abwandlungen und Variationen vorgenommen werden könnten, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • 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 1020200170198 [0001]

Claims (10)

  1. Verfahren aufweisend: Bereitstellen einer Speichervorrichtung, die eine erste Komponente und eine zweite Komponente aufweist; Empfangen, über eine Host-Schnittstelle der Speichervorrichtung, eines Befehls zum Anfordern der Fehlermöglichkeitsinformation über die Speichervorrichtung von einer externen Vorrichtung; und Bereitstellen, über die Host-Schnittstelle, der Fehlermöglichkeitsinformation über die Speichervorrichtung an die externe Vorrichtung ansprechend auf den Befehl.
  2. Verfahren nach Anspruch 1, wobei der Befehl einen Get-Log-Page-Befehl umfasst, der von einer Host-Vorrichtung bereitgestellt wird.
  3. Verfahren nach Anspruch 1, wobei die Fehlermöglichkeitsinformation eine Information über einen ersten Zustand oder einen zweiten Zustand der Speichervorrichtung aufweist.
  4. Verfahren nach Anspruch 1, wobei die Bereitstellung der Fehlermöglichkeitsinformation über die Speichervorrichtung aufweist: Erzeugen einer ersten Fehlermöglichkeitsinformation über die erste Komponente; Erzeugen einer zweiten Fehlermöglichkeitsinformation über die zweite Komponente; und Erzeugen der Fehlermöglichkeitsinformation über die Speichervorrichtung basierend auf der ersten Fehlermöglichkeitsinformation und der zweiten Fehlermöglichkeitsinformation.
  5. Verfahren zum Betreiben einer Host-Vorrichtung, wobei das Verfahren aufweist: Übertragen eines Befehls, der Fehlermöglichkeitsinformation über eine Speichervorrichtung anfordert, an die Speichervorrichtung, wobei die Speichervorrichtung eine erste Komponente und eine zweite Komponente aufweist; Empfangen der Fehlermöglichkeitsinformation über die Speichervorrichtung von der Speichervorrichtung ansprechend auf den Befehl.
  6. Verfahren zum Betreiben der Host-Vorrichtung nach Anspruch 5, wobei der Befehl einen Get-Log-Page-Befehl umfasst.
  7. Verfahren zum Betreiben der Host-Vorrichtung nach Anspruch 5, wobei die Fehlermöglichkeitsinformation Informationen über einen ersten Zustand, einen zweiten Zustand, einen dritten Zustand oder einen vierten Zustand der Speichervorrichtung aufweist.
  8. Speichervorrichtung, aufweisend: einen Pufferspeicher, der eingerichtet ist, Daten vorübergehend zu speichern, die von einer Host-Vorrichtung bereitgestellt werden; einen nichtflüchtigen Speicher, der eingerichtet ist, die Daten zu speichern, die von der Host-Vorrichtung bereitgestellt werden; einen Log-Monitor, der eingerichtet ist, Log-Daten von dem Pufferspeicher und dem nichtflüchtigen Speicher zu sammeln; und einen Prozessor, der eingerichtet ist, ein Modul für maschinelles Lernen zu implementieren, das eine Fehlermöglichkeit über die Speichervorrichtung basierend auf den Log-Daten identifiziert.
  9. Speichervorrichtung nach Anspruch 8, wobei der Prozessor ferner eingerichtet ist: eine erste Fehlermöglichkeit, die dem Pufferspeicher entspricht, basierend auf den Log-Daten zu identifizieren; eine zweite Fehlermöglichkeit, die dem nichtflüchtigen Speicher entspricht, basierend auf den Log-Daten zu identifizieren; und die Fehlermöglichkeit der Speichervorrichtung basierend auf der ersten Fehlermöglichkeit und der zweiten Fehlermöglichkeit zu identifizieren.
  10. Speichervorrichtung nach Anspruch 8, wobei die Log-Daten, die von dem nichtflüchtigen Speicher gesammelt wurden, einen Reclaim-Zählwert angeben, der in dem nichtflüchtigen Speicher durchgeführt wird.
DE102021119267.6A 2020-12-08 2021-07-26 Verfahren zum Betreiben einer Speichervorrichtung und einer Host-Vorrichtung sowie Speichervorrichtung Pending DE102021119267A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0170198 2020-12-08
KR1020200170198A KR20220080915A (ko) 2020-12-08 2020-12-08 스토리지 장치와 호스트 장치의 구동 방법 및 스토리지 장치

Publications (1)

Publication Number Publication Date
DE102021119267A1 true DE102021119267A1 (de) 2022-06-09

Family

ID=81655179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021119267.6A Pending DE102021119267A1 (de) 2020-12-08 2021-07-26 Verfahren zum Betreiben einer Speichervorrichtung und einer Host-Vorrichtung sowie Speichervorrichtung

Country Status (4)

Country Link
US (1) US20220179724A1 (de)
KR (1) KR20220080915A (de)
CN (1) CN114610522A (de)
DE (1) DE102021119267A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733892B2 (en) * 2021-06-29 2023-08-22 Micron Technology, Inc. Partial superblock memory management

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934673B2 (en) * 2001-05-25 2005-08-23 Hewlett-Packard Development Company, L.P. Method and apparatus for predicting multi-part performability
US7155641B2 (en) * 2003-05-15 2006-12-26 Microsoft Corporation System and method for monitoring the performance of a server
US7539907B1 (en) * 2006-05-05 2009-05-26 Sun Microsystems, Inc. Method and apparatus for determining a predicted failure rate
US7730364B2 (en) * 2007-04-05 2010-06-01 International Business Machines Corporation Systems and methods for predictive failure management
US10726930B2 (en) * 2017-10-06 2020-07-28 Western Digital Technologies, Inc. Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data
KR20190067370A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN110463142B (zh) * 2018-01-22 2022-03-01 松下电器(美国)知识产权公司 车辆异常检测服务器、车辆异常检测系统及车辆异常检测方法
US10719267B2 (en) * 2018-05-30 2020-07-21 Western Digital Technologies, Inc. Partial reset of memory controller
CN114125807A (zh) * 2019-04-25 2022-03-01 瑞典爱立信有限公司 用于跟踪用户设备的方法和网络节点
CN112148204B (zh) * 2019-06-27 2024-02-02 伊姆西Ip控股有限责任公司 用于管理独立冗余盘阵列的方法、设备和介质
US11669423B2 (en) * 2020-07-10 2023-06-06 The Toronto-Dominion Bank Systems and methods for monitoring application health in a distributed architecture
US11533217B2 (en) * 2020-07-31 2022-12-20 Hewlett Packard Enterprise Development Lp Systems and methods for predictive assurance
US11493548B2 (en) * 2020-08-31 2022-11-08 Uchicago Argonne, Llc Predicting failure parameters of semiconductor devices subjected to stress conditions
WO2022060598A1 (en) * 2020-09-15 2022-03-24 Arris Enterprises Llc Method and system for log based issue prediction using svm+rnn artificial intelligence model on customer-premises equipment
US11734223B2 (en) * 2020-09-17 2023-08-22 Dell Products L.P. NVMe-over-fabrics gateway system
KR20220058127A (ko) * 2020-10-30 2022-05-09 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그 동작 방법
US20220139541A1 (en) * 2020-11-03 2022-05-05 Koninklijke Philips N.V. Part replacement registration tool
US11556409B2 (en) * 2021-01-20 2023-01-17 Dell Products L.P. Firmware failure reason prediction using machine learning techniques
KR20230134288A (ko) * 2022-03-14 2023-09-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Also Published As

Publication number Publication date
CN114610522A (zh) 2022-06-10
KR20220080915A (ko) 2022-06-15
US20220179724A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE112015005211T5 (de) Systeme und verfahren für die speicherfehler-verwaltung
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE112017005637T5 (de) Verfahren und System zur Schreibverstärkungsanalyse
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE112015005102T5 (de) Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112018000839T5 (de) Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE102021119267A1 (de) Verfahren zum Betreiben einer Speichervorrichtung und einer Host-Vorrichtung sowie Speichervorrichtung
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE102021127814A1 (de) Ablagespeichersteuerung, operationsverfahren dafür
DE112019000158T5 (de) Bereichskollisions-crawler für logische blockadressierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed