DE102020119694A1 - Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem - Google Patents

Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem Download PDF

Info

Publication number
DE102020119694A1
DE102020119694A1 DE102020119694.6A DE102020119694A DE102020119694A1 DE 102020119694 A1 DE102020119694 A1 DE 102020119694A1 DE 102020119694 A DE102020119694 A DE 102020119694A DE 102020119694 A1 DE102020119694 A1 DE 102020119694A1
Authority
DE
Germany
Prior art keywords
read
machine learning
memory device
training data
data
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
DE102020119694.6A
Other languages
English (en)
Inventor
Seonghyeog Choi
Hongrak Son
Taehyun SONG
Hyunsang 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 DE102020119694A1 publication Critical patent/DE102020119694A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Nach einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen werden Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells bestimmt. Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, werden gesammelt, wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben. Das Maschinenlernmodell wird durch Durchführen einer Lernoperation basierend auf den Trainingsdaten aktualisiert. Optimierte Operationsbedingungen für individuelle Benutzerumgebungen werden durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten vorgesehen.

Description

  • Querverweis auf ähnliche Anmeldungen
  • Diese nicht vorläufige US-Anmeldung beansprucht die Priorität der am 26. Dezember 2019 beim Koreanischen Amt für Geistiges Eigentum (KIPO) eingereichten koreanischen Patentanmeldung Nr. 10-2019-0175273 , deren Offenbarung durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
  • Hintergrund
  • Technisches Gebiet
  • Ausführungsbeispiele beziehen sich allgemein auf integrierte Halbleiterschaltungen und insbesondere auf ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und ein Speichersystem, das eine nichtflüchtige Speichervorrichtung enthält.
  • Beschreibung der verwandten Technik
  • Eine nichtflüchtige Speichervorrichtung, wie eine Flash-Speichervorrichtung, eine resistive Speichervorrichtung etc., kann Daten in Bezug auf eine Mehrzahl an Schwellenspannungsverteilungen, eine Mehrzahl an Widerstandsverteilungen etc. speichern. Jede jeweilige „Verteilung“ stellt einen entsprechenden Logikzustand für gespeicherte Daten dar. Die gespeicherten Daten können, sobald sie in eine nichtflüchtige Speicherzelle geschrieben (oder programmiert) sind, durch Anlegen von vorbestimmten Lesespannungen gelesen werden. Während oder nach der Programmierung einer Speicherzelle kann deren beabsichtigte Verteilung durch eine Anzahl an Ereignissen oder Bedingungen, die zum Beispiel eine Ladungs-Leckage, Programmierstörungen, Lesestörungen, eine Wort- und/oder Bitleitungskopplung, eine Temperaturveränderung, eine Spannungsveränderung, eine Degeneration der Speicherzelle etc. enthalten, verändert oder verfälscht werden. In extremen Fällen kann eine beabsichtigte Verteilung derart verschoben und/oder erweitert werden, dass ein „Lesefehler“ auftritt.
  • Wenn ein Lesefehler auftritt, können gewisse nichtflüchtige Speichervorrichtungen eine andere Art von Leseoperation (d.h. eine mit einer anderen Lesesequenz) als die eine, die den Lesefehler verursacht, ausführen. Allerdings ist es nicht einfach, eine Lesesequenz einzustellen, welche die vielen Ereignisse und Bedingungen, welche die Verteilungen, die gelesen werden, verändert haben können, angemessen berücksichtigt. Dementsprechend kann sich eine „Leselatenz“ (d.h. der zum Lesen von gespeicherten Daten benötigte Zeitraum) erhöhen, wenn Veränderungen der gegenwärtigen Operationsbedingungen in Bezug auf eine akzeptable Lesesequenz beurteilt oder identifiziert werden, und eine Performance der nichtflüchtigen Speichervorrichtung kann mit einer Erweiterung ihrer Leselatenzen verschlechtert werden.
  • Kurzfassung
  • Einige Ausführungsbeispiele können ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und ein Speichersystem, welches das Verfahren, das zur effizienten Steuerung von Operationsbedingungen der nichtflüchtigen Speichervorrichtung imstande ist, durchführt, vorsehen.
  • Nach Ausführungsbeispielen enthält ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen das Bestimmen von Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells, das Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Fehlerinformationen Ergebnisse einer Fehler-korrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, und das Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten.
  • Nach Ausführungsbeispielen enthält ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen das Vorsehen einer Mehrzahl an Lesepegelsätzen, wobei jeder Lesepegelsatz einer Kombination aus Pegeln von Lesespannungen für eine Leseoperation der nichtflüchtigen Speichervorrichtung entspricht, das Bestimmen eines optimalen Lesepegelsatzes, der gegenwärtigen Merkmalsinformationen entspricht, aus der Mehrzahl an Lesepegelsätzen durch Durchführen einer Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells, das Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Merkmalsinformationen physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten, und wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, das Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten, und das Bestimmen eines Durchführungszeitplans der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation und einer Ausfallwahrscheinlichkeit der ECC-Dekodierung.
  • Nach Ausführungsbeispielen enthält ein Speichersystem eine nichtflüchtige Speichervorrichtung und einen Speichercontroller, der konfiguriert ist, die nichtflüchtige Speichervorrichtung zu steuern. Der Speichercontroller enthält einen Datensammler, der konfiguriert ist, Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, zu sammeln, wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, einen Pufferspeicher, der konfiguriert ist, die Trainingsdaten zu speichern, und eine Maschinenlern-Engine, die konfiguriert ist, Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells zu bestimmen und das Maschinenlernmodell durch Durchführen einer Lernoperation basierend auf den Trainingsdaten zu aktualisieren.
  • Das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen können durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte oder verbesserte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
  • Figurenliste
  • Für ein deutlicheres Verständnis der Ausführungsbeispiele der vorliegenden Offenbarung sorgt die folgende, detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen.
    • 1 ist ein Blockdiagramm, das eine in einer nichtflüchtigen Speichervorrichtung enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellt.
    • 2 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 3 ist ein Blockdiagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
    • 4 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 5 ist ein Blockdiagramm, das ein in der nichtflüchtigen Speichervorrichtung aus 4 enthaltenes Speicherzellenarray darstellt.
    • 6 ist ein Schaltbild, das eine äquivalente Schaltung eines mit Bezug auf 5 beschriebenen Speicherblocks darstellt.
    • 7 ist ein Diagramm, das Zustände von in einer nichtflüchtigen Speichervorrichtung enthaltenen Multipegelzellen nach Ausführungsbeispielen darstellt.
    • 8 ist ein Diagramm, das ein Lesesequenzbeispiel nach Ausführungsbeispielen darstellt.
    • 9 ist ein Flussdiagramm, das ein Verfahren zum Lesen von Daten gemäß der Lesesequenz aus 8 darstellt.
    • 10 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 11 ist ein Diagramm, das Lesesequenzsatzbeispiele zum Bestimmen von Operationsbedingungen aus 10 darstellt.
    • 12 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 13 ist ein Diagramm, das Zuverlässigkeitspegel gemäß einer Bestimmung von Operationsbedingungen aus 12 darstellt.
    • 14 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 15 ist ein Diagramm zum Beschreiben einer vorbestimmten Lesespannung und einer optimalen Lesespannung.
    • 16, 17, und 18 sind Diagramme, die Lesesequenzen nach einem Ausführungsbeispiel darstellen.
    • 19 ist ein Diagramm, das ein Beispiel für eine 2-Bit-Soft-Decision-Leseoperation darstellt.
    • 20 ist ein Diagramm, das ein Beispiel für eine 3-Bit-Soft-Decision-Leseoperation darstellt.
    • 21 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
    • 22 ist eine Maschinenlern-Engine nach Ausführungsbeispielen.
    • 23 und 24 sind Blockdiagramme, die eine in einem Speichersystem enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellen.
    • 25 und 26 sind Diagramme zur Beschreibung von Beispielen für eine neuronale Deep-Learning-Netzwerkstruktur, die durch eine Maschinenlernvorrichtung nach Ausführungsbeispielen angetrieben wird.
    • 27 ist ein Diagramm, das ein Beispiel für einen in einem neuronalen Netzwerk enthaltenen Knoten darstellt.
    • 28 ist ein Diagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
  • Detaillierte Beschreibung der Ausführungsformen
  • Verschiedene Ausführungsbeispiele werden nachfolgend mit Bezug auf die beigefügten Zeichnungen, in denen einige Ausführungsbeispiele gezeigt sind, ausführlicher beschrieben. In den Zeichnungen bezeichnen gleiche Bezugszeichen durchgehend gleiche Elemente. Wiederholte Beschreibungen können weggelassen sein.
  • 1 ist ein Blockdiagramm, das eine in einer nichtflüchtigen Speichervorrichtung enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellt und 2 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 1 kann eine Maschinenlernvorrichtung 10 eine Maschinenlern-Engine 20, einen Datensammler DCLL 30 und einen Pufferspeicher BUFF 40 enthalten.
  • Die Maschinenlern-Engine 20 kann einen Controller CTRL und ein Maschinenlernmodul MLMDL enthalten. Der Controller CTRL kann das Maschinenlernmodul MLMDL antreiben, um eine Mehrzahl an Maschinenlernmodellen MD1-MD3 zu aktualisieren.
  • In einigen Ausführungsbeispielen kann das Aktualisieren des Maschinenlernmodells das Aktualisieren von Gewichtungswerten, die dem Maschinenlernmodell entsprechen, enthalten. Die Gewichtungswerte werden unten mit Bezug auf 25 bis 27 beschrieben.
  • Wie unten beschrieben, kann jedes der Mehrzahl an Maschinenlernmodellen MD1-MD3 einer Operationsbedingung, wie einem Lesepegelsatz, einem Zuverlässigkeitspegel, einer Lesesequenz etc., entsprechen.
  • Der Pufferspeicher 40 kann Daten und/oder Informationen, wie Trainingsdaten RD, eine Einstellungstabelle STTBL etc., speichern.
  • 1 stellt die drei Maschinenlernmodelle MD1-MD3 zur Erleichterung der Darstellung dar, die Ausführungsbeispiele sind jedoch nicht darauf beschränkt. Die Anzahl der Maschinenlernmodelle kann verschiedenartig umgesetzt sein.
  • Bezugnehmend auf 1 und 2 kann die Maschinenlern-Engine 20 Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells MDi (i=1, 2, 3) bestimmen (S100). Die Maschinenlern-Engine 20 kann die Ableitungsoperation basierend auf gegenwärtigen Merkmalsinformationen FTRINF_C als eine Eingabe der Maschinenlern-Engine 20 durchführen.
  • Der Datensammler 30 kann Trainingsdaten TRD, die basierend auf Merkmalsinformationen FTRINF und Fehlerinformationen ERRINF erzeugt werden, sammeln, wobei die Fehlerinformationen ERRINF Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben (S200). Die Maschinenlern-Engine 20 kann das Maschinenlernmodell MDi durch Durchführen einer Lernoperation basierend auf den Trainingsdaten TRD aktualisieren (S300).
  • Die Merkmalsinformationen FTRINF können physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten. Die Fehlerinformationen ERRINF können mindestens eine Ausfallwahrscheinlichkeit der ECC-Dekodierung und eine durch die ECC-Dekodierung bestimmte Fehleranzahl enthalten.
  • Die Trainingsdaten TRD können die Merkmalsinformationen FTRINF und Ergebnisse der Ableitungsoperation, die erfolgreich abgeschlossen ist, enthalten. Zusätzlich können die Trainingsdaten TRD eine Betriebstemperatur, eine Betriebsspannung, einen Programmier- und Lösch(P/E)-Zyklus, eine Anzahl an Leseoperationen, Latenzen von Lese-, Schreib- (d.h. Programmier-) und Löschoperationen etc. enthalten.
  • Der Controller CTRL kann Daten, die dem Maschinenlernmodell MDi entsprechen, aus den Merkmalsinformationen FTRINF extrahieren und die extrahierten Daten als eine Eingabe eines durch das Maschinenlernmodul MLMDL umgesetzten neuronalen Netzwerks vorsehen. Zusätzlich kann der Controller CTRL die Gewichtungswerte des neuronalen Netzwerks, die dem Maschinenlernmodel MDi entsprechen, optimieren. Das neuronale Netzwerk und die Gewichtungswerte werden mit Bezug auf 25 bis 27 beschrieben.
  • In einem Speichersystem, das eine nichtflüchtige Speichervorrichtung, wie eine Flash-Speichervorrichtung, enthält, können eine Performance und Zuverlässigkeit der nichtflüchtigen Speichervorrichtung durch einen Vorhersagealgorithmus zum Bestimmen verschiedener Operationsbedingungen verbessert werden, allerdings reflektiert der Vorhersagealgorithmus womöglich keine verschiedenen Benutzerumgebungen und Eigenschaftsvariationen der nichtflüchtigen Speichervorrichtung. Nach Ausführungsbeispielen kann Maschinenlernen verwendet werden, um eine Verringerung einer Genauigkeit des Vorhersagealgorithmus aufgrund der Benutzerumgebungen und einer Variation von Arbeitslasten der nichtflüchtigen Speichervorrichtungen zu verhindern.
  • Somit können das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
  • 3 ist ein Blockdiagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 3 enthält ein Speichersystem 1000 mehrere nichtflüchtige Speichervorrichtungen 1100 und einen Speichercontroller 1200. Das Speichersystem 1000 kann eine Speicherkarte, ein Festkörperlaufwerk (SSD), ein Universal-Flash-Speicher (UFS) etc. sein.
  • Die nichtflüchtige Speichervorrichtung 1100 enthält ein Speicherzellenarray, das eine Mehrzahl an Speicherzellen, die Daten speichern, enthält. Die nichtflüchtigen Speichervorrichtungen 1100 können optional konfiguriert sein, eine hohe Spannung VPP zu empfangen. Beispiele für die nichtflüchtige Speichervorrichtung 1100 werden mit Bezug auf 4 bis 6 mit einigen zusätzlichen Details beschrieben.
  • Der Speichercontroller 1200 kann den Gesamtbetrieb der nichtflüchtigen Speichervorrichtung 1100 steuern. Der Speichercontroller 1200 kann eine Datenübertragung zwischen einem externen Host und der nichtflüchtigen Speichervorrichtung 1100 steuern. Der Speichercontroller 1200 kann einen Prozessor 1210, wie eine zentrale Verarbeitungseinheit (CPU), einen Pufferspeicher 1220, eine Host-Schnittstelle 1250, eine Speicher(z.B. NVM-)-Schnittstelle 1260, einen ECC-Block 1230, eine Maschinenlern-Engine MLD 20 und einen Datensammler DCLL 30 enthalten. Der Prozessor 1210 kann Operationen für die Datenübertragung durchführen.
  • In einigen Ausführungsbeispielen kann der Pufferspeicher 1220 durch einen statischen Direktzugriffsspeicher (SRAM) umgesetzt sein. In anderen Ausführungsbeispielen kann der Pufferspeicher 1220 durch einen dynamischen Direktzugriffsspeicher (DRAM), einen Phasenübergangs-Direktzugriffsspeicher (PRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM), einen resistiven Direktzugriffsspeicher (RRAM), einen magnetischen Direktzugriffsspeicher (MRAM) etc. umgesetzt sein. Nach Ausführungsbeispielen kann der Pufferspeicher 1220 innerhalb oder außerhalb des Speichercontrollers 1200 positioniert sein.
  • Die Host-Schnittstelle 1250 kann mit dem Host gekoppelt sein und die Speicherschnittstelle 1260 kann durch mehrere Kanäle CH1, CH2, CH3, ..., Chi mit der nichtflüchtigen Speichervorrichtung 1100 gekoppelt sein. Der Prozessor 1210 kann über die Host-Schnittstelle 1250 mit dem Host kommunizieren. Zum Beispiel kann die Host-Schnittstelle 1250 konfiguriert sein, unter Verwendung von mindestens einem von verschiedenen Schnittstellenprotokollen, wie einem Universal Serial Bus (USB), einer Multimediakarte (MMC), einem Peripheral Component Interconnect-Express (PCI-E), einer kleinen Computersystemschnittstelle (SCSI), einer Serial-Attached-SCSI (SAS), einem Serial Advanced Technology Attachment (SATA), einem Parallel Advanced Technology Attachment (PATA), einer Enhanced Small Disk Interface (ESDI), einer integrierten Antriebselektronik etc., mit dem Host zu kommunizieren. Ferner kann der Prozessor 1210 über die Speicherschnittstelle 1260 mit der nichtflüchtigen Speichervorrichtung 1100 kommunizieren.
  • In einigen Ausführungsbeispielen kann der ECC-Block 1230 eine ECC-Kodierung und eine ECC-Dekodierung durch Verwenden eines Bose-Chaudhuri-Hocqueng-hem(BCH)-Codes durchführen. In anderen Ausführungsbeispielen kann der ECC-Block 1230 die ECC-Kodierung und die ECC-Dekodierung durch Verwenden eines Low-Density-Parity-Check(LDPC)-Codes durchführen. In anderen Ausführungsbeispielen kann der ECC-Block 1230 die ECC-Kodierung und die ECC-Dekodierung durch Verwenden eines Turbocodes, eines Reed-Solomon-Codes, eines Convolution-Codes, eines Recursive-Systematic-Codes, einer kodierten Modulation, wie einer Trellis-kodierten Modulation (TCM), einer Block-kodierten Modulation (BCM) etc., oder anderer Fehlerkorrekturcodes durchführen.
  • Nach Ausführungsbeispielen kann der Speichercontroller 1200 in der nichtflüchtigen Speichervorrichtung 1100 eingebaut sein oder der Speichercontroller 1200 und die nichtflüchtige Speichervorrichtung 1100 können als separate Chips umgesetzt sein. Nach Ausführungsbeispielen kann der ECC-Block 1230 in der nichtflüchtigen Speichervorrichtung 1100 enthalten sein, um die Datenübertragungsmenge zwischen dem Speichercontroller 1200 und der nichtflüchtigen Speichervorrichtung 1100 zu reduzieren. In diesem Fall kann die nichtflüchtige Speichervorrichtung 1100 in den Lesefehlern lediglich die Informationen zum Lesefehler und die Fehlerbits an den Speichercontroller 1200 übertragen. Die nichtflüchtige Speichervorrichtung 1100 kann die gültigen Lesedaten, welche durch die ECC-Dekodierung erhalten werden können, in den Leseerfolgsfällen an den Speichercontroller 1200 übermitteln.
  • Die Maschinenlern-Engine 20 und der Datensammler 30 können umgesetzt werden, um ein Verfahren zur Steuerung der Operation der nichtflüchtigen Speichervorrichtung durchzuführen, wie mit Bezug auf 1 und 2 beschrieben. Der Pufferspeicher 40 aus 1 kann dem Pufferspeicher 1220 aus 3 entsprechen. Mindestens ein Abschnitt der Maschinenlern-Engine 20 kann als ein Programmiercode, der durch den Prozessor 1210 ausgeführt wird, umgesetzt sein.
  • 4 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 4 enthält die nichtflüchtige Speichervorrichtung NVM ein Speicherzellenarray 100, eine Seitenpufferschaltung 410, eine Daten-Eingabe/Ausgabe-Schaltung 420, einen Adressendekodierer 430, eine Steuerschaltung 450 und einen Spannungsgenerator 460.
  • Das Speicherzellenarray 100 kann durch eine Mehrzahl an Kettenauswahlleitungen SSL, eine Mehrzahl an Wortleitungen WL und eine Mehrzahl an Masseauswahlleitungen GSL mit dem Adressendekodierer 430 gekoppelt sein. Zusätzlich kann das Speicherzellenarray 100 durch eine Mehrzahl an Bitleitungen BL mit der Seitenpufferschaltung 410 gekoppelt sein.
  • Das Speicherzellenarray 100 kann eine Mehrzahl an Speicherzellen, die mit der Mehrzahl an Wortleitungen WL und der Mehrzahl an Bitleitungen BL gekoppelt ist, enthalten. In einigen Ausführungsbeispielen kann das Speicherzellenarray 100 ein dreidimensionales Speicherzellenarray sein, das auf einem Substrat in einer dreidimensionalen Struktur (oder einer vertikalen Struktur) ausgebildet ist. In diesem Fall kann das Speicherzellenarray 100 eine Mehrzahl an NAND-Ketten enthalten, die derart vertikal ausgerichtet sind, dass mindestens eine Speicherzelle über einer anderen Speicherzelle positioniert ist.
  • Die Steuerschaltung 450 kann einen Befehl (ein Befehlssignal) CMD und eine Adresse (ein Adresssignal) ADDR vom Speichercontroller 20 empfangen und eine Lösch-, Programmier- und Leseoperationen der nichtflüchtigen Speichervorrichtung basierend auf dem Befehlssignal CMD und dem Adresssignal ADDR steuern. Eine Löschoperation kann das Durchführen einer Löschschleifensequenz aufweisen und eine Programmieroperation kann das Durchführen von einer Programmierschleifensequenz enthalten. Jede Programmierschleife kann einen Programmierzeitraum und einen Programmverifizierungszeitraum enthalten. Jede Löschschleife kann einen Löschzeitraum und einen Löschverifizierungszeitraum enthalten. Die Leseoperation kann eine normale Leseoperation und eine Datenwiederherstellungs-Leseoperation enthalten.
  • Zum Beispiel kann die Steuerschaltung 450 die Steuersignale, die zur Steuerung des Spannungsgenerators 460 verwendet werden, erzeugen und kann das Seitenpuffersteuersignal PBC zur Steuerung der Seitenpufferschaltung erzeugen, basierend auf dem Befehlssignal CMD, und kann die Reihenadresse R_ADDR und die Spaltenadresse C_ADDR basierend auf dem Adresssignal ADDR erzeugen. Die Steuerschaltung 450 kann die Reihenadresse R ADDR an den Adressendekodierer 430 übermitteln und die Spaltenadresse C_ADDR an die Daten-Eingabe/Ausgabe-Schaltung 420 übermitteln.
  • Der Adressendekodierer 430 kann durch die Mehrzahl an Kettenauswahlleitungen SSL, die Mehrzahl an Wortleitungen WL und die Mehrzahl an Masseauswahlleitungen GSL mit dem Speicherzellenarray 100 gekoppelt sein. Während der Programmieroperation oder der Leseoperation kann der Adressendekodierer 430 basierend auf der Reihenadresse R_ADDR eine der Mehrzahl an Wortleitungen WL als eine ausgewählte Wortleitung bestimmen und den Rest der Mehrzahl an Wortleitungen WL, mit Ausnahme der ausgewählten Wortleitung, als unausgewählte Wortleitungen bestimmen.
  • Zusätzlich kann der Adressendekodierer 40 während der Programmieroperation oder der Leseoperation basierend auf der Reihenadresse R_ADDR eine der Mehrzahl an Kettenauswahlleitungen SSL als eine ausgewählte Kettenauswahlleitung bestimmen und den Rest der Mehrzahl an Kettenauswahlleitungen SSL, mit Ausnahme der ausgewählten Kettenauswahlleitung, als unausgewählte Kettenauswahlleitungen bestimmen.
  • Der Spannungsgenerator 460 kann Wortleitungsspannungen VWL, welche für den Betrieb des Speicherzellenarrays 100 der nichtflüchtigen Speichervorrichtung NVM benötigt werden, basierend auf den Steuersignalen CTL erzeugen. Der Spannungsgenerator 460 kann eine Leistung PWR vom Speichercontroller 20 empfangen. Die Wortleitungsspannungen VWL können durch den Adressendekodierer 430 an die Mehrzahl an Wortleitungen WL angelegt werden.
  • Zum Beispiel kann der Spannungsgenerator 460 während der Programmieroperation eine Programmierspannung an die ausgewählte Wortleitung anlegen und kann eine Programmierdurchgangsspannung an die unausgewählten Wortleitungen anlegen. Zusätzlich kann der Spannungsgenerator 460 während der Programmverifizierungsoperation eine Programmverifizierungsspannung an die ausgewählte Wortleitung anlegen und kann eine Verifizierungsdurchgangsspannung an die unausgewählten Wortleitungen anlegen.
  • Zusätzlich kann der Spannungsgenerator 460 während der normalen Leseoperation eine Lesespannung an die ausgewählte Wortleitung anlegen und kann eine Lesedurchgangsspannung an die unausgewählten Wortleitungen anlegen. Während der Datenwiederherstellungs-Leseoperation kann der Spannungsgenerator 460 die Lesespannung an eine Wortleitung benachbart zu der ausgewählten Wortleitung anlegen und kann eine Wiederherstellungslesespannung an die ausgewählte Wortleitung anlegen.
  • Die Seitenpufferschaltung 410 kann durch die Mehrzahl an Bitleitungen BL mit dem Speicherzellenarray 100 gekoppelt sein. Die Seitenpufferschaltung 410 kann eine Mehrzahl an Puffern enthalten. In einigen Ausführungsbeispielen kann jeder Puffer mit lediglich einer Bitleitung verbunden sein. In anderen Ausführungsbeispielen kann jeder Puffer mit zwei oder mehr Bitleitungen verbunden sein.
  • Die Seitenpufferschaltung 410 kann in eine ausgewählte Seite zu programmierende Daten oder aus der ausgewählten Seite des Speicherzellenarrays 100 ausgelesene Daten vorübergehend speichern.
  • Die Daten-Eingabe/Ausgabe-Schaltung 420 kann durch Datenleitungen DL mit der Seitenpufferschaltung 410 gekoppelt sein. Während der Programmieroperation kann die Daten-Eingabe/Ausgabe-Schaltung 420 vom Speichercontroller 20 empfangene Programmierdaten DATA empfangen und die Programmierdaten DATA basierend auf der von der Steuerschaltung 450 empfangenen Spaltenadresse C_ADDR an die Seitenpufferschaltung 410 übermitteln. Während der Leseoperation kann die Daten-Eingabe/Ausgabe-Schaltung 420 gelesene Daten DATA, die aus dem Speicherzellenarray 100 gelesen und in der Seitenpufferschaltung 410 gespeichert worden sind, basierend auf der von der Steuerschaltung 450 empfangenen Spaltenadresse C_ADDR an den Speichercontroller 20 übermitteln.
  • Zusätzlich können die Seitenpufferschaltung 410 und die Daten-Eingabe/Ausgabe-Schaltung 420 Daten aus einem ersten Bereich des Speicherzellenarrays 100 lesen und diese gelesenen Daten in einen zweiten Bereich des Speicherzellenarrays 100 schreiben (z.B. ohne die Daten an eine Quelle, die extern zur nichtflüchtigen Speichervorrichtung NVM ist, wie dem Speichercontroller 20, zu übertragen). Das heißt, die Seitenpufferschaltung 410 und die Daten-Eingabe/Ausgabe-Schaltung 420 können eine Zurückkopieroperation durchführen.
  • Nachfolgend gibt eine erste Richtung D1 eine Richtung senkrecht zu einer oberen Oberfläche eines Halbleitersubstrats an und eine zweite Richtung D2 und eine dritte Richtung D3 geben zwei Richtungen parallel zu der oberen Oberfläche des Halbleitersubstrats an. Zum Beispiel können die zweite Richtung D2 und die dritte Richtung D3 senkrecht zueinander sein. Die erste Richtung D1 kann als eine vertikale Richtung bezeichnet werden, die zweite Richtung D2 kann als eine Reihenrichtung bezeichnet werden und die dritte Richtung D3 kann als eine Spaltenrichtung bezeichnet werden. Die in den Figuren durch einen Pfeil angegebene Richtung und die Gegenrichtung können als dieselbe Richtung betrachtet werden.
  • 5 ist ein Blockdiagramm, das ein in der nichtflüchtigen Speichervorrichtung aus 4 enthaltenes Speicherzellenarray darstellt und 6 ist ein Schaltbild, das eine äquivalente Schaltung eines mit Bezug auf 5 beschriebenen Speicherblocks darstellt.
  • Bezugnehmend auf 5 kann das Speicherzellenarray 100 eine Mehrzahl an Speicherblöcken BLK1 bis BLKz enthalten. In einem Ausführungsbeispiel werden die Speicherblöcke BLK1 bis BLKz durch den Adressendekodierer 430 aus 4 ausgewählt. Zum Beispiel kann der Adressendekodierer 430 einen speziellen Speicherblock BLK, der einer Blockadresse entspricht, unter den Speicherblöcken BLK1 bis BLKz auswählen.
  • Der Speicherblock BLKi aus 6 kann auf einem Substrat in einer dreidimensionalen Struktur (oder einer vertikalen Struktur) ausgebildet sein. Zum Beispiel kann eine Mehrzahl an NAND-Ketten oder Zellenketten, die im Speicherblock BLKi enthalten sind, in der ersten Richtung D1 senkrecht zu der oberen Oberfläche des Substrats ausgebildet sein.
  • Bezugnehmend auf 6 kann der Speicherblock BLKi NAND-Ketten NS11 bis NS33 enthalten, die zwischen Bitleitungen BL1, BL2 und BL3 und einer gemeinsamen Source-Leitung CSL gekoppelt sind. Jede der NAND-Ketten NS11 bis NS33 kann einen Kettenauswahltransistor SST, eine Mehrzahl an Speicherzellen MCI bis MC8 und einen Masseauswahltransistor GST enthalten. In 6 ist jede der NAND-Ketten NS11 bis NS33 derart dargestellt, dass sie acht Speicherzellen MC1 bis MC8 enthält. Allerdings sind die Ausführungsbeispiele nicht darauf beschränkt. In einigen Ausführungsbeispielen kann jede der NAND-Ketten NS11 bis NS33 jegliche Anzahl an Speicherzellen enthalten.
  • Jeder Kettenauswahltransistor SST kann mit einer entsprechenden Kettenauswahlleitung (einer von SSL1 bis SSL3) verbunden sein. Die Mehrzahl an Speicherzellen MC1 bis MC8 kann jeweils mit entsprechenden Gate-Leitungen GTL1 bis GTL8 verbunden sein. Die Gate-Leitungen GTL1 bis GTL8 können Wortleitungen sein und einige der Gate-Leitungen GTL1 bis GTL8 können Dummy-Wortleitungen sein. Jeder Masseauswahltransistor GST kann mit einer entsprechenden Masseauswahlleitung (einer von GSL1 bis GSL3) verbunden sein. Jeder Kettenauswahltransistor SST kann mit einer entsprechenden Bitleitung (z.B. einer von BL1, BL2 und BL3) verbunden sein und jeder Masseauswahltransistor GST kann mit der gemeinsamen Source-Leitung CSL verbunden sein.
  • Wortleitungen (z.B. WL1) mit derselben Höhe können gemeinsam verbunden sein und die Masseauswahlleitungen GSL1 bis GSL3 und die Kettenauswahlleitungen SSL1 bis SSL3 können getrennt sein. Obwohl nicht dargestellt, können die Gate-Leitungen, die den Zwischenschaltleitungen entsprechen, getrennt sein, wie unten beschrieben wird. In 6 ist der Speicherblock BLKi derart dargestellt, dass er mit acht Gate-Leitungen GTL1 bis GTL8 und drei Bitleitungen BL1 bis BL3 gekoppelt ist. Allerdings sind die Ausführungsbeispiele nicht darauf beschränkt. Jeder Speicherblock im Speicherzellenarray 100 kann mit jeglicher Anzahl an Wortleitungen und jeglicher Anzahl an Bitleitungen gekoppelt sein.
  • Die dreidimensionale NAND-Flash-Speichervorrichtung oder der vertikale NAND-Flash-Speicher sind mit Bezug auf 6 als eine nichtflüchtige Speichervorrichtung, auf die das Ausführungsbeispiel angewandt worden ist, beschrieben worden, die Ausführungsbeispiele sind jedoch nicht auf spezifische Speichertypen beschränkt. Zum Beispiel können die Ausführungsbeispiele auf verschiedene nichtflüchtige Speichervorrichtungen angewandt werden, wie einen Phasenübergangs-Direktzugriffsspeicher (PRAM), einen magnetischen Direktzugriffsspeicher (MRAM), einen resistiven Direktzugriffsspeicher (RRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM) etc.
  • 7 ist ein Diagramm, das Zustände von in einer nichtflüchtigen Speichervorrichtung enthaltenen Multipegelzellen nach Ausführungsbeispielen darstellt.
  • 7 stellt einen ersten bis achten Zustand S1-S8 von Dreifachpegelzellen (TLCs) dar, wobei jede TLC drei Datenbits speichern kann. In 7 stellt die horizontale Achse eine Schwellenspannung VTH von Speicherzellen dar und die vertikale Achse stellt die Anzahl an Speicherzellen, die der Schwellenspannung VTH entsprechen, dar. Während der Programmieroperation kann der Programmiererfolg des ersten bis achten Zustands S1-S8 durch sequenzielles Anlegen einer ersten bis siebten Verifizierungslesespannung VVR1-VVR7 an die ausgewählte Wortleitung unterschieden werden. Zusätzlich können der erste bis achte Zustand S1-S8 während der normalen Leseoperation durch Anlegen von mindestens einem Teil von einer ersten bis siebten normalen Lesespannung VR1-VR7 an die ausgewählte Wortleitung unterschieden werden, wie unten mit Bezug auf 12 und 13 beschrieben wird.
  • Die Schwellenspannungsverteilungen der Speicherzellen können aufgrund einer Degeneration einer Aufbewahrungseigenschaft, die einer Datenaufbewahrungsfähigkeit der Speicherzellen zugeordnet ist, und/oder einer Degeneration einer Lesestörungseigenschaft, die der Leseoperation zugeordnet ist, verschoben werden. Die Fehler können durch Verfälschen der Schwellenspannungsverteilungen in den Lesedaten verursacht werden und somit müssen die vorbestimmten Lesespannungen gemäß Veränderungen der Operationsbedingungen eingestellt werden. Nach Ausführungsbeispielen können optimierte Operationsbedingungen für individuelle Benutzerumgebungen durch Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten vorgesehen werden.
  • 8 ist ein Diagramm, das ein Lesesequenzbeispiel nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 8 kann jede Lesesequenz RSEQ eine Mehrzahl an Leseoperationen ROP1-ROPk mit jeweiligen Lesezeiten tRD1-tRDk, die sich voneinander unterscheiden, enthalten.
  • Es gibt einen Ausgleich zwischen einer Länge der Lesezeit und der Genauigkeit der entsprechenden Leseoperation. Mit anderen Worten weisen Leseoperationen mit kürzeren Lesezeiten außerdem eine höhere Wahrscheinlichkeit eines Lesefehlerresultats auf, während Leseoperationen mit längeren Lesezeiten eine höhere Wahrscheinlichkeit eines erfolgreichen Leseoperationsresultats aufweisen. Dementsprechend kann jede Lesesequenz RSEQ derart eingestellt sein, dass eine Leseoperation mit der kürzeren Lesezeit vor eine Leseoperation mit der längeren Lesezeit durchgeführt wird, wie zum Beispiel in 8 dargestellt. Hier wird zuerst die erste Leseoperation ROP1 mit einer kürzesten Lesezeit tRD1 durchgeführt, dann wird nach der ersten Leseoperation ROP1 eine zweite Leseoperation ROP2 mit einer zweiten Lesezeit tRD2, welche länger ist als die erste Lesezeit tRD1, durchgeführt, und dann wird nach der zweiten Leseoperation ROP2 eine dritte Leseoperation ROP3 mit der dritten Lesezeit tRD3, welche länger ist als die zweite Lesezeit tRD2, durchgeführt, und so weiter bis zu einer k-ten Leseoperation ROPk mit der längsten Lesezeit tRDk.
  • Jede der Leseoperationen ROP1-ROPk kann unter Verwendung einer Fehlerprüfung und einer Korrektur(ECC)-Dekodierung durchgeführt werden. Die Leseoperationen ROP1-ROPk in der ausgewählten Lesesequenz RSEQ können sequenziell durchgeführt werden bis gültige Daten erhalten werden, wie durch die ECC-Dekodierung angemessen angegeben. Sobald gültige Daten erhalten werden, werden spätere Leseoperationen nicht durchgeführt und die Lesesequenz RSEQ wird beendet.
  • Infolgedessen entspricht die der ausgewählten Lesesequenz zugeordnete Leselatenz einer Summe der Lesezeiten der Leseoperationen, die durchgeführt werden, bis die gültigen Daten erhalten werden. In dem dargestellten Beispiel aus 8 entspricht die Leselatenz tLAT1 der ersten Lesezeit tRD1, wenn gültige Daten durch die erste Leseoperation ROP1 erhalten werden, die Leselatenz tLAT2 entspricht einer Summe tRD1+tRD2 für die erste Lesezeit TRD1 und die zweite Lesezeit tRD2, wenn gültige Daten durch die zweite Leseoperation ROP2 erhalten werden, die Leselatenz tLAT3 entspricht einer Summe tRD1+tRD2+tRD3 für die erste Lesezeit tRD1, die zweite Lesezeit tRD2 und die dritte Lesezeit tRD3, wenn gültige Daten durch die dritte Leseoperation ROP3 erhalten werden, und die Leselatenz tLATk entspricht einer Summe tRD1+tRD2+...+tRDk aller Lesezeiten tRD1-tRDk, wenn gültigen Daten durch die letzte Leseoperation ROPk erhalten werden.
  • 9 ist ein Flussdiagramm, das ein Verfahren zum Lesen von Daten gemäß der Lesesequenz aus 8 darstellt.
  • Bezugnehmend auf 9 wird gemäß der Lesesequenz RSEQ die erste Leseoperation ROP1 mit der höchsten Priorität durchgeführt (S11). Hier, so wie mit dem Beispiel aus 8, wird angenommen, dass jede Leseoperation in Verbindung mit einer ECC-Dekodierung durchgeführt wird. Somit wird die erste Lesezeit tRDI der ersten Leseoperation ROP1 als die Leselatenz tLAT1 bestimmt (S13), wenn der Fehler (die Fehler) in den Lesedaten als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S12: JA). Somit, da der Fehler (die Fehler), wenn überhaupt, korrigierbar ist (sind), werden gültige Daten erhalten und die Lesesequenz RSEQ wird beendet.
  • Wenn (ein) Fehler allerdings nicht korrigierbar ist/sind (S12: NEIN) wird die zweite Leseoperation ROP2 mit der nächsten Priorität durchgeführt (S21). Erneut, wenn der (die) daraus resultierende(n) Fehler, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S22: JA), wird die Summe tRD1+tRD2 der Lesezeiten der ersten und zweiten Leseoperation ROP1 und ROP2 als die Leselatenz tLAT2 bestimmt (S23).
  • Wenn der (die) Fehler allerdings nicht korrigierbar ist (sind) (S22: NEIN) wird die dritte Leseoperation ROP3 mit der nächsten Priorität durchgeführt (S31). Erneut, wenn der (die) daraus resultierende(n) Fehler, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S32: JA), wird die Summe tRD1+tRD2+tRD3 der Lesezeiten der ersten, zweiten und dritten Leseoperation ROP1, ROP2 und ROP3 als die Leselatenz tLAT3 bestimmt (S33).
  • Auf diese Weise werden verschiedenartig eingestellte Leseoperationen, solange gültige Daten nicht durch die Ausführung von Leseoperationen mit den höheren Prioritäten erhalten werden, sequenziell durchgeführt bis eine letzte Leseoperation ROPk durchgeführt wird (S41). Letztendlich also, wenn der (die) Fehler in den Lesedaten, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S42: JA), dann wird eine Summe tRD1+tRD2+...+tRDk der Lesezeiten aller Leseoperationen ROP1-ROPk als die Leselatenz tLATk (S43) bestimmt.
  • Wenn jedoch gültige Daten nicht durch die letzte Leseoperation ROPk erhalten werden, wird bestimmt, dass die gegenwärtige Leseoperation nicht umsetzbar ist (S50) (z.B. wenn ein Lesefehler auftritt), und die Lesesequenz RSEQ wird beendet.
  • Wenn die Operationsbedingungen nicht zu widrig sind, werden gültige Daten in vielen Fällen durch die erste Leseoperation ROP1 erhalten. Somit kann die Leselatenz durch Verwenden der dargestellten Lesesequenz derart minimiert werden, dass eine Ausführung der Gesamtleseoperation mit einer minimalen praktischen Leselatenz durchgeführt wird. Wenn sich die Operationsbedingungen allerdings verschlechtern, werden gültige Daten wahrscheinlich nicht durch Verwenden von lediglich der ersten Leseoperation erhalten. Somit können eine Zweite und möglicherweise nachfolgende Leseoperationen mit jeweiligen Prioritäten durchgeführt werden. Die Notwendigkeit erweitert selbstverständlich die Leselatenz der Gesamtleseoperation. Somit kann die Performance einer nichtflüchtigen Speichervorrichtung durch Einstellen einer Mehrzahl an Lesesequenzen, die jeweils unterschiedlichen Operationsbedingungen entsprechen, verbessert werden, wobei die Verwendung einer speziellen Lesesequenz unter der Mehrzahl an Lesesequenzen adaptiv ausgewählt werden kann.
  • Wie unten mit Bezug auf 10 bis 20 beschrieben wird, können Operationsbedingungen, wie ein Lesepegelsatz, ein Zuverlässigkeitspegel, eine Lesesequenz etc., für Veränderungen der Operationsbedingungen nach den Ausführungsbeispielen optimiert werden.
  • 10 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt und 11 ist ein Diagramm, das Lesesequenzsatzbeispiele zum Bestimmen von Operationsbedingungen aus 10 darstellt.
  • Bezugnehmend auf 1, 10 und 11 ist eine Mehrzahl an Lesepegelsätzen RLS1-RLS3 derart vorgesehen, dass jeder Lesepegelsatz RLSi (i=1, 2, 3) einer Kombination aus Pegeln VLij (j=1-m) von Lesespannungen VR1-VRm für eine Leseoperationen der nichtflüchtigen Speichervorrichtung entsprechen kann (S111). Die Mehrzahl an Lesepegelsätzen RLS1-RLS3 kann als eine Form der Einstellungstabelle STTBL im Pufferspeicher 40 aus 1 gespeichert werden.
  • Ein optimaler Lesepegelsatz, der den gegenwärtigen Merkmalsinformationen FTRINF_C entspricht, kann aus der Mehrzahl an Lesepegelsätzen RLS1-RLS3 durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C als eine Eingabe des Maschinenlernmodells bestimmt werden (S112).
  • In einigen Ausführungsbeispielen kann der optimale Lesepegelsatz jeweils in Bezug auf jede einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherebenen oder in Bezug auf jeden einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherblöcken bestimmt werden.
  • 12 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt und 13 ist ein Diagramm, das Zuverlässigkeitspegel gemäß einer Bestimmung von Operationsbedingungen aus 12 darstellt.
  • Bezugnehmend auf 11 und 12 können gegenwärtige Zellzählungsdaten, die eine Schwellenspannungsverteilung von Speicherzellen in einem Speicherblock angeben, in Bezug auf jeden einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherblöcken überwacht werden (S121).
  • Eine Mehrzahl an Zuverlässigkeitspegeln, die der Mehrzahl an Speicherblöcken entsprechen, kann durch Durchführen der Ableitungsoperation basierend auf der gegenwärtigen Zellzählung als eine Eingabe des Maschinenlernmodels derart bestimmt werden, dass jeder Zuverlässigkeitspegel eine Lebensdauer von in jedem Speicherblock gespeicherten Daten angibt (S122).
  • In einigen Ausführungsbeispielen können die Operation zur Überwachung der gegenwärtigen Zellzählungsdaten und die Operation zum Bestimmen der Mehrzahl an Zuverlässigkeitspegeln periodisch durchgeführt werden. 13 stellt ein Beispiel für die Zuverlässigkeitspegel RL1-RL4 für jeweilige Speicherblöcke BLK1-BLK4, die zu Zeitpunkten T1-T4 bestimmt werden, dar. In 13 gibt RLi den höheren Zuverlässigkeitspegel als RLi+1 an, das heißt, R1 ist der höchste Zuverlässigkeitspegel und R4 ist der niedrigste Zuverlässigkeitspegel. Infolgedessen stellt 13 dar, dass die Zuverlässigkeitspegel der Speicherblöcke BLK1-BLK4, in denen Daten gespeichert sind, mit der Zeit schrittweise verringert werden können.
  • Eine Umschreiboperation kann in Bezug auf in der Mehrzahl an Speicherblöcken gespeicherte Daten basierend auf der Mehrzahl an Zuverlässigkeitspegeln durchgeführt werden. Wenn zum Beispiel der Zuverlässigkeitspegel RL4 des Speicherblocks BLK3 niedriger ist als ein vorbestimmter Referenzpegel, kann die Umschreiboperation in Bezug auf den Speicherblock BLK3 durchgeführt werden und der Speicherblock BLK3 kann initialisiert werden, um den höchsten Zuverlässigkeitspegel RL1 aufzuweisen.
  • 14 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 14 kann eine Mehrzahl an Lesesequenzen der nichtflüchtigen Speichervorrichtung eingestellt werden (S131). Die Mehrzahl an Lesesequenzen, die mit Bezug auf 16 bis 18 beschrieben werden, kann als eine Form der Einstellungstabelle STTBL im Pufferspeicher 40 aus 1 gespeichert werden.
  • Eine optimale Lesesequenz, die gegenwärtigen Merkmalsinformationen entspricht, kann aus der Mehrzahl an Lesesequenzen durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells bestimmt werden (S132).
  • 15 ist ein Diagramm zum Beschreiben einer vorbestimmten Lesespannung und einer optimalen Lesespannung.
  • Schwellenspannungsverteilungen für zwei benachbarte Zustände Si und Si+1 werden in 15 unter der Annahme, dass eine Flash-Speichervorrichtung in einer Ausführungsform der Offenbarung verwendet wird, gezeigt. Allerdings wird der Fachmann erkennen, dass die folgende Beschreibung in einem Fall, in dem eine resistive Speichervorrichtung angenommen wird, auf benachbarte Widerstandsverteilungen angewandt werden kann.
  • Eine optimale Lesespannung Vop ist eine Lesespannung, die zu einer minimalen Anzahl an Fehlerbits unter Datenbits, die gleichzeitig ausgelesen werden, führt. Die optimale Lesespannung Vop entspricht einem Tal, das heißt, einem Schnittpunkt der Schwellenspannungsverteilungen der zwei Zustände Si und Si+1. Wenn die Verteilungen gemäß einer Veränderung der Operationsbedingung verschoben und/oder erweitert werden, erhöht sich der Unterschied zwischen der vorbestimmten Lesespannung und der optimalen Lesespannung. Mit der Erhöhung dieses Unterschieds erhöhen sich auch die BER oder die Wahrscheinlichkeit des Lesefehlers.
  • Wenn die vorbestimmte Spannung in einem ersten Spannungsbereich R1 enthalten ist, kann der Fehler in den Lesedaten durch die ECC-Dekodierung mit einer Hard-Decision (HD) korrigiert werden. Wenn die vorbestimmte Spannung in einem zweiten Spannungsbereich R2 enthalten ist, kann der Fehler in den Lesedaten durch die ECC-Dekodierung mit einer Soft-Decision (SD) korrigiert werden. Beispiele für eine gewisse HD und SD werden mit Bezug auf 19 und 20 mit einigen zusätzlichen Details beschrieben.
  • Wenn Bitfehler in den Lesedaten zu zahlreich sind und die vorbestimmte Lesespannung außerhalb des zweiten Bereichs R2 ist, werden gültige Daten nicht unter Verwendung einer anwendbaren ECC-Dekodierung erhalten. Wenn gültige Daten nicht durch Ausführen vorheriger Leseoperationen basierend auf der vorbestimmten Lesespannung erhalten werden, kann eine Talsuchoperation durchgeführt werden, um die optimale Lesespannung Vop zu bestimmen. Somit kann eine Leseoperation unter Verwendung der optimalen Lesespannung durchgeführt werden. Solche Talsuchoperationen und Leseoperationen basierend auf einer optimalen Leseoperation können als eine „Spannungskompensations-Leseoperation“ bezeichnet werden. In einigen Ausführungsformen kann jede der Lesesequenzen eine Leseoperation basierend auf der vorbestimmten Lesespannung mit der höheren Priorität und die mindestens eine Spannungskompensations-Leseoperation mit der niedrigen Priorität enthalten, wie in 16, 17 und 18 dargestellt. Die Talsuchoperationen benötigen zu viel Zeit und verschlechtern die Performance der nichtflüchtigen Speichervorrichtung und des Speichersystems, das die nichtflüchtige Speichervorrichtung enthält. Nach Ausführungsbeispielen können der Lesepegelsatz und die Lesesequenz durch Durchführen der Lernoperation und der Ableitungsoperation unter Verwendung von Maschinenlernen für Benutzerumgebungen optimiert werden.
  • 16, 17 und 18 sind Diagramme, die Lesesequenzen nach einem Ausführungsbeispiel darstellen.
  • Die Lesesequenzen in 16, 17 und 18 sind nichtbeschränkende Beispiele zur Beschreibung der Offenbarung.
  • Bezugnehmend auf 16 kann die erste Lesesequenz RSEQ1 eine erste bis sechste Leseoperation ROP11-ROP16 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste, zweite und dritte Leseoperation ROP11, ROP12 und ROP13 können auf der vorbestimmten Lesespannung basieren und die vierte, fünfte und sechste Leseoperation ROP14, ROP15 und ROP16 können die Spannungskompensations-Leseoperationen sein.
  • Wie oben beschrieben, kann eine Leseoperation mit der kürzeren Lesezeit vor einer Leseoperation mit der längeren Lesezeit durchgeführt werden. Mit anderen Worten kann die Priorität der Leseoperationen höher sein, wenn die Lesezeit kürzer ist. Die erste Leseoperation ROP11 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD11, kann zuerst durchgeführt werden, die zweite Leseoperation ROP12 mit der zweiten Lesezeit tRD12, die länger ist als die erste Lesezeit tRD11, wird nach der ersten Leseoperation ROP11 durchgeführt, und die sechste Leseoperation ROP16 mit der längsten Lesezeit tRD 16 wird wahrscheinlich zuletzt durchgeführt.
  • Sowohl die erste als auch die zweite Leseoperation ROP11 und ROP12 können eine Hard-Decision(HD)-Leseoperation sein, die Hard-Decision-Daten unter Verwendung der vorbestimmten Lesespannung ausliest und die ECC-Dekodierung basierend auf den Hard-Decision-Daten durchführt. Die erste Leseoperation ROP11 kann eine schnelle Leseoperation DEF(F) basierend auf der vorbestimmten Lesespannung sein und die zweite Leseoperation ROP12 kann eine normale Leseoperation DEF(N) basierend auf der vorbestimmten Lesespannung sein.
  • Die dritte Leseoperation ROP13 kann eine Soft-Decision(SD)-Leseoperation sein, die Hard-Decision-Daten unter Verwendung einer normalen Leseoperation DEF(N) basierend auf der vorbestimmten Lesespannung ausliest, Zuverlässigkeitsinformationen der Hard-Decision-Daten unter Verwendung einer Mehrzahl an Lesespannungen um die vorbestimmte Lesespannung vorsieht und die ECC-Dekodierung basierend auf den Hard-Decision-Daten und den Zuverlässigkeitsinformationen durchführt.
  • Die vierte, fünfte und sechste Leseoperation ROP14, ROP15 und ROP16 können eine Soft-Decision (SD) basierend auf den erfassten optimalen Lesespannungen jeweils mit den Spannungskompensations-Leseoperationen, welche die Talsuchoperationen VS1, VS2 und VS3 und die Leseoperationen enthalten, kombinieren. Die Talsuchoperationen VS1, VS2 und VS3 können verschiedenartig umgesetzt werden, um unterschiedliche Suchzeiten und unterschiedliche Lesegenauigkeiten aufzuweisen.
  • Bezugnehmend auf 17 kann die zweite Lesesequenz RSEQ2 eine erste bis vierte Leseoperation ROP21-ROP24 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste und zweite Lesespannung ROP21 und ROP22 können auf der vorbestimmten Lesespannung basieren und die dritte und vierte Leseoperation ROP23 und ROP24 können die Spannungskompensations-Leseoperationen sein.
  • Wie oben beschrieben, kann die Leseoperation mit der kürzeren Lesezeit vor der Leseoperation mit der längeren Lesezeit durchgeführt werden. Die erste Leseoperation ROP21 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD21, kann zuerst durchgeführt werden, die zweite Leseoperation ROP22 mit der zweiten Lesezeit tRD22, die länger ist als die erste Lesezeit tRD21, wird nach der ersten Leseoperation ROP21 durchgeführt, und die vierte Leseoperation ROP24 mit der längsten Lesezeit tRD24 wird wahrscheinlich zuletzt durchgeführt. Die Bezugszeichen DEF(N), HD, SD, VS2 und VS3 sind dieselben wie jene, die mit Bezug auf 16 beschrieben worden sind.
  • Bezugnehmend auf 18 kann die dritte Lesesequenz RSEQ3 eine erste, zweite und dritte Leseoperation ROP31, ROP32 und ROP33 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste Leseoperation ROP31 kann auf der vorbestimmten Lesespannung basieren und die zweite und dritte Leseoperation ROP32 und ROP33 können die Spannungskompensations-Leseoperationen sein.
  • Wie oben beschrieben, kann die Leseoperation mit der kürzeren Lesezeit vor der Leseoperation mit der längeren Lesezeit durchgeführt werden. Die erste Leseoperation ROP31 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD31, kann zuerst durchgeführt werden, die zweite Leseoperation ROP32 mit der zweiten Lesezeit tRD32, die länger ist als die erste Lesezeit tRD31, wird nach der ersten Leseoperation ROP31 durchgeführt, und die letzte Leseoperation ROP33 mit der längsten Lesezeit tRD33 wird zuletzt durchgeführt. Die Bezugszeichen DEF(N), HD, SD, VS2 und VS3 sind dieselben wie jene, die mit Bezug auf 16 beschrieben worden sind.
  • Zum Beispiel kann die erste Lesesequenz RSEQ1 aus 16 für die Operationsbedingung des relativ niedrigeren Bereichs des BER eingestellt sein, die zweite Lesesequenz RSEQ2 aus 17 kann für die Operationsbedingung des Zwischenbereichs des BER eingestellt sein und die dritte Lesesequenz RSEQ3 aus 18 kann für die Operationsbedingung des relativ höheren Bereichs des BER eingestellt sein. Somit kann die Performance der nichtflüchtigen Speichervorrichtung durch Einstellen einer Mehrzahl an Lesesequenzen, die jeweils den unterschiedlichen Operationsbedingungen entsprechen, und adaptives Steuern der Lesesequenzen verbessern.
  • 19 ist ein Diagramm, das ein Beispiel für eine 2-Bit-Soft-Decision-Leseoperation darstellt und 20 ist ein Diagramm, das ein Beispiel für eine 3-Bit-Soft-Decision-Leseoperation darstellt.
  • Wie in 19 dargestellt, kann die nichtflüchtige Speichervorrichtung eine 2-Bit-Soft-Decision-Leseoperation durchführen. Die 2-Bit-Soft-Decision-Leseoperation kann drei Leseoperationen unter Verwendung von drei Spannungen V1, V2 und V3 mit regelmäßigen Intervallen enthalten. Zum Beispiel können die drei Spannungen V1, V2 und V3 eine erste Spannung VI mit einem vorbestimmten Referenzpegel zum Unterscheiden zwischen einem ersten Zustand Si, der Daten „1“ entspricht, und einem zweiten Zustand Si+1, der Daten „0“ entspricht, , eine zweite Spannung V2, die um einen vorbestimmten Pegel niedriger ist als die erste Spannung VI, und eine dritte Spannung V3, die um den vorbestimmten Pegel höher ist als die erste Spannung V1, enthalten. In einigen Ausführungsformen können Daten 710, die durch Verwenden der ersten Spannung VI mit dem Referenzpegel gelesen werden, Hard-Decision-Daten 710 sein, die durch eine Hard-Decision-Leseoperation gelesen werden, und die 2-Bit-Soft-Decision-Leseoperation kann die Hard-Decision-Daten 710, welche durch die Hard-Decision-Leseoperation ohne Anlegen der ersten Spannung V1 mit dem Referenzpegel gelesen werden, verwenden. Die 2-Bit-Soft-Decision-Leseoperation kann Soft-Decision-Daten 720 mit Zuverlässigkeitsinformationen für die Hard-Decision-Daten 710 durch Durchführen einer vorbestimmten Logikoperation (z.B. einer XNOR-Operation 730) an Daten, die durch Verwenden der zweiten Spannung V2 gelesen werden, und Daten, die durch Verwenden der dritten Spannung V3 gelesen werden, erzeugen. Jedes Bit der Soft-Decision-Daten 720 kann einen Zuverlässigkeitsgrad eines entsprechenden Bits der Hard-Decision-Daten 710 darstellen. Zum Beispiel kann ein Bit der Soft-Decision-Daten 720 mit einem Wert von „1“ darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine starke (S) Zuverlässigkeit aufweist, und ein Bit der Soft-Decision-Daten 720 mit einem Wert von „0“ kann darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine schwache (W) Zuverlässigkeit aufweist.
  • Wie in 20 dargestellt, kann die nichtflüchtige Speichervorrichtung eine 3-Bit-Soft-Decision-Leseoperation durchführen. Die 3-Bit-Soft-Decision-Leseoperation kann sieben Leseoperationen unter Verwendung von sieben Spannungen V1, V2, V3, V4, V5, V6 und V7 mit regelmäßigen Intervallen enthalten. Zum Beispiel können die sieben Spannungen V1, V2, V3, V4, V5, V6 und V7 die in der 2-Bit-Soft-Decision-Leseoperation enthaltenen drei Spannungen V1, V2 und V3 enthalten und können ferner eine vierte Spannung V4, die niedriger ist als die zweite Spannung V2, eine fünfte Spannung V5 zwischen der zweiten Spannung V2 und der ersten Spannung VI, eine sechste Spannung V6 zwischen der ersten Spannung V1 und der dritten Spannung V3 und eine siebte Spannung V7, die höher ist als die dritte Spannung V3, enthalten. In einigen Ausführungsbeispielen können die durch Verwenden der ersten Spannung V1 gelesenen Daten 710 durch die Hard-Decision-Leseoperation gelesene Hard-Decision-Daten 710 sein. Die durch Verwenden der zweiten und dritten Spannung V2 und V3 gelesenen Daten 720 können höchstwertige Bit(MSB)-Soft-Decision-Daten 720 sein, die den durch die 2-Bit-Soft-Decision-Leseoperation gelesenen Soft-Decision-Daten 720 entsprechen. Die 3-Bit-Soft-Decision-Leseoperation kann niedrigstwertige Bit(LSB)-Soft-Decision-Daten 740 durch Durchführen einer vorbestimmten Logikoperation (z.B. einer XNOR-Operation 750) (oder einer Kodierung) an durch Verwenden der vierten Spannung V4, der fünften Spannung V5, der sechsten Spannung V6 und der siebten Spannung V7 gelesenen Daten erzeugen. Alle Soft-Decision-Daten 720 und 740 mit zwei Bits können einen Zuverlässigkeitsgrad eines entsprechenden Bits der Hard-Decision-Daten 710 darstellen. Zum Beispiel können alle Soft-Decision-Daten 720 und 740 mit einem Wert von „11“ darstellen, das ein entsprechendes Bit der Hard-Decision-Daten 710 eine sehr starke (VS) Zuverlässigkeit aufweist, alle Soft-Decision-Daten 720 und 740 mit einem Wert von „10“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine starke (S) Zuverlässigkeit aufweist, alle Soft-Decision-Daten 720 und 740 mit einem Wert von „00“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine schwache (W) Zuverlässigkeit aufweist, und alle Soft-Decision-Daten 720 und 740 mit einem Wert von „01“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine sehr schwache (VW) Zuverlässigkeit aufweist.
  • Obwohl 19 und 20 zwei benachbarte Zustände Si und Si+1 darstellen, können die 2-Bit-Soft-Decision-Leseoperation und die 3-Bit-Soft-Decision-Leseoperation, die in 19 und 20 dargestellt sind, durchgeführt werden, um zwischen jeglichen zwei benachbarten Zuständen einer Mehrzahl an Zuständen zu unterscheiden. Die Speicherzelle der nichtflüchtigen Speichervorrichtung kann eine Multipegelzelle (MLC) sein, die in einem von 2N-Zuständen programmiert ist, um N-Bit-Daten zu speichern. Obwohl 19 und 20 darstellen, dass die MLC zwei oder drei Bits speichert, können die Ausführungsbeispiele auf die MLC, die vier oder mehr Bits speichert, angewandt werden.
  • 21 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 21 kann die Lesesequenz RSEQ, die wie mit Bezug auf 14 bis 20 beschrieben bestimmt wird, durchgeführt werden (S10). Die Trainingsdaten TRD können basierend auf der Lesesequenz RSEQ und den Ergebnissen der ECC-Dekodierung gesammelt werden (S20). Die Fehlerinformationen ERRINF, welche die Ergebnisse der ECC-Dekodierung angeben, können akkumuliert werden (S30) und eine Ausfallwahrscheinlichkeit der ECC-Dekodierung kann basierend auf den akkumulierten Fehlerinformationen ERRINF berechnet werden (S40). Wenn die Wahrscheinlichkeit PRFL höher ist als ein Referenzwert TH (S50: JA), kann das Maschinenlernmodell MD durch Durchführen der Lernoperation aktualisiert werden (S60). Wenn die Wahrscheinlichkeit PRFL nicht höher ist als ein Referenzwert TH (S50: NEIN), kann das Maschinenlernmodell MD aufrechterhalten werden.
  • Somit kann der Durchführungszeitplan der Lernoperation basierend auf der Ausfallwahrscheinlichkeit PRFL der ECC-Dekodierung bestimmt werden. In einigen Ausführungsbeispielen kann die Ausfallwahrscheinlichkeit PRFL jene der Hard-Decision-Leseoperation sein. In einigen Ausführungsbeispielen kann die Leselatenz wie mit Bezug auf 8 und 9 beschrieben überwacht werden und die Wahrscheinlichkeit PRFL zum Bestimmen des Durchführungszeitplans der Lernoperation kann basierend auf der überwachten Leselatenz bestimmt werden. In einigen Ausführungsbeispielen kann der Durchführungszeitplan der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation bestimmt werden.
  • 22 ist eine Maschinenlern-Engine nach Ausführungsbeispielen.
  • Bezugnehmend auf 22 kann eine Maschinenlern-Engine 21 einen Controller CTRL, ein erstes Maschinenlernmodul MLMDL1 und ein zweites Maschinenlernmodul MLMDL2 enthalten. Der Controller kann das Maschinenlernmodul MLMDL antreiben, um ein Maschinenlernmodell MD zu aktualisieren.
  • Das erste Maschinenlernmodul MLMDL1 kann eine erste Performance PFM1 aufweisen und die Lernoperation basierend auf den Trainingsdaten TRD durchführen. Das zweite Maschinenlernmodul MLMDL2 kann eine zweite Performance PFM2, die höher ist als die erste Performance PFM1, aufweisen und die Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen. Durch solch eine duale Strukturierung wird die Ableitungsoperation, die eine hohe Geschwindigkeit benötigt, womöglich nicht verzögert, selbst wenn eine Latenz während der Lernoperation auftritt.
  • In einigen Ausführungsbeispielen kann eine erste Anzahl an Knoten, die gleichzeitig Knotenoperationen im ersten Maschinenlernmodell MLMDL1 durchführen, kleiner sein als eine zweite Anzahl an Knoten, die gleichzeitig Knotenoperationen im zweiten Maschinenlernmodell MLMDL2 durchführen. In einigen Ausführungsbeispielen kann eine erste Hardware-Performance (z.B. eine Frequenz eines Betriebstaktsignals) des ersten Maschinenlernmodells MLMDL1 niedriger sein als eine zweite Hardware-Performance des zweiten Maschinenlernmodells MLMDL2.
  • 23 und 24 sind Blockdiagramme, die eine in einem Speichersystem enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellen.
  • Wie in 23 und 24 dargestellt, kann eine Größe der Trainingsdaten TRD reduziert werden und größenreduzierte Trainingsdaten können in einem Pufferspeicher gespeichert werden. Nachfolgend können Beschreibungen, die mit 1 wiederholt werden, weggelassen sein.
  • In einigen Ausführungsbeispielen können die Trainingsdaten TRD komprimiert sein und die größenreduzierten Trainingsdaten TRD' können im Pufferspeicher BUFF gespeichert sein. Das Kompressionsschema kann ein verlustfreies Kompressionsschema oder ein verlustbehaftetes Kompressionsschema sein. In einigen Ausführungsbeispielen können die Trainingsdaten TRD normalisiert sein und die größenreduzierten Trainingsdaten TRD' können im Pufferspeicher BUFF gespeichert sein. Hier stellt eine „Normalisierung“ dar, dass Werte von Daten proportional derart reduziert werden, dass der Bereich der Werte verschmälert werden kann. Somit kann die Speicherkapazität des Pufferspeichers BUFF reduziert oder durch Reduzieren der Trainingsdaten TRD und Speichern der größenreduzierten Trainingsdaten TRD' effizient verwendet werden.
  • Bezugnehmend auf 23 kann eine Maschinenlernvorrichtung 11 eine Maschinenlern-Engine MLD, einen Datensammler DCLL, einen Pufferspeicher BUFF, eine Verkleinerungseinheit DNSZ und eine Vergrößerungseinheit UPSZ enthalten. Die Verkleinerungseinheit DNSZ kann die Trainingsdaten TRD komprimieren oder normalisieren, um die größenreduzierten Trainingsdaten TRD' im Pufferspeicher BUFF zu speichern. Die Vergrößerungseinheit UPSZ kann die Trainingsdaten TRD basierend auf den im Pufferspeicher BUFF gespeicherten größenreduzierten Trainingsdaten TRD' wiederherstellen und die Trainingsdaten TRD an die Maschinenlern-Engine MLD übermitteln. Die Maschinenlern-Engine MLD kann die Lernoperation basierend auf den Trainingsdaten TRD durchführen und die Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen.
  • Im Vergleich zu der Maschinenlernvorrichtung 11 aus 23 ist die Vergrößerungseinheit UPSZ in einer Maschinenlernvorrichtung 12 aus 24 weggelassen. In diesem Fall kann die Maschinenlern-Engine MLD die Lernoperation basierend auf den größenreduzierten Trainingsdaten TRD' durchführen. Die Verkleinerungseinheit DNSZ kann größenreduzierte gegenwärtige Merkmalsinformationen FTRINF_C' während der Ableitungsoperation vorsehen und die Maschinenlern-Engine MLD kann die Ableitungsoperation basierend auf größenreduzierten gegenwärtigen Merkmalsinformationen FTRINF_C' durchführen.
  • 25 und 26 sind Diagramme zur Beschreibung von Beispielen für eine neuronale Deep-Learning-Netzwerkstruktur, die durch eine Maschinenlernvorrichtung nach Ausführungsbeispielen angetrieben wird.
  • Bezugnehmend auf 25 kann ein allgemeines neuronales Netzwerk eine Eingabeschicht IL, eine Mehrzahl an verborgenen Schichten HL1, HL2, ..., HLn und eine Ausgabeschicht OL enthalten.
  • Die Eingabeschicht IL kann i Eingabeknoten x1, x2, ..., xi enthalten, wobei i eine natürliche Zahl ist. Merkmalsinformationen FTRINF (z.B. Vektoreingabedaten), deren Länge i ist, können in die Eingabeknoten x1, x2, ..., xi derart eingegeben werden, dass jedes Element der Merkmalsinformationen FTRINF in einen jeweiligen der Eingabeknoten x1, x2, ..., xi eingegeben wird.
  • Die Mehrzahl an verborgenen Schichten HL1, HL2, ..., HLn kann n verborgene Schichten enthalten, wobei n eine natürliche Zahl ist, und kann eine Mehrzahl an verborgenen Knoten h1 1, h1 2, h1 3, ... h1 m, h2 1, h2 2, h2 3, ..., h2 m, hn 1, hn 2, hn 3, ..., hn m enthalten. Zum Beispiel kann die verborgene Schicht HL1 m verborgene Knoten h1 1, h1 2, h1 3, ... h1 m enthalten, die verborgene Schicht HL2 kann m verborgene Knoten h2 1, h2 2, h2 3, ..., h2 m, enthalten und die verborgene Schicht HLn kann m verborgene Knoten hn 1, hn 2, hn 3, ..., hn m enthalten, wobei m eine natürliche Zahl ist.
  • Die Ausgabeschicht OL kann j Ausgabeknoten y1, y2, ..., yj enthalten, wobei j eine natürliche Zahl ist. Jeder der Ausgabeknoten y1, y2, ..., yj kann einer jeweiligen zu kategorisierenden Klasse entsprechen. Die Ausgabeschicht OL kann die den Merkmalsinformationen FTRINF zugeordneten Ausgabewerte (z.B. Klassen-Scores oder einfach Scores) ODAT für jede der Klassen ausgeben. Die Ausgabeschicht OL kann als eine vollständig verbundene Schicht bezeichnet werden und kann zum Beispiel eine Wahrscheinlichkeit, dass die Merkmalsinformationen FTRINF jeder Operationsbedingung entsprechen, angeben.
  • Eine in 25 dargestellte Struktur des neuronalen Netzwerks kann durch Informationen auf Zweigen (oder Verbindungen) zwischen als Linien dargestellten Knoten und einem jeden Zweig zugewiesenen gewichteten Wert dargestellt sein. Knoten innerhalb einer Schicht sind womöglich nicht miteinander verbunden, aber Knoten unterschiedlicher Schichten können vollständig oder teilweise miteinander verbunden sein.
  • Jeder Knoten (z.B. der Knoten h1 1) kann eine Ausgabe eines vorherigen Knotens (z.B. des Knotens x1) empfangen und kann ein Ergebnis der Errechnungsoperation, einer Errechnung oder einer Berechnung als eine Ausgabe an einen nächsten Knoten (z.B. den Knoten h2 1) ausgeben. Jeder Knoten kann einen auszugebenden Wert durch Anwenden der Eingabe auf eine spezifische Funktion, z.B. eine nichtlineare Funktion, berechnen.
  • Im Allgemeinen kann die Struktur des neuronalen Netzwerks im Voraus eingestellt werden und die gewichteten Werte für die Verbindungen zwischen den Knoten werden unter Verwendung von Daten mit einer bereits bekannten Antwort bezüglich welcher Klasse die Daten angehören angemessen eingestellt. Die Daten mit der bereits bekannten Antwort werden als „Trainingsdaten“ bezeichnet und ein Prozess zum Bestimmen der gewichteten Werte wird als „Training“ bezeichnet. Das neuronale Netzwerk „lernt“ während des Trainingsprozesses. Eine Gruppe einer unabhängigen trainierbaren Struktur und des gewichteten Werts wird als ein „Modell“ bezeichnet und ein Prozess zum Vorhersagen, durch das Modell mit dem bestimmten gewichteten Wert, welcher Klasse die Eingabedaten angehören, und dann zum Ausgeben des vorhergesagten Werts wird als ein „Test“-Prozess bezeichnet.
  • Bezugnehmend auf 26 kann ein neuronales Faltungsnetzwerk eine Mehrzahl an Schichten CONV1, RELU1, CONV2, RELU2, POOL1, CONV3, RELU3, CONV4, RELU4, POOL2, CONV5, RELU5, CONV6, RELU6, POOL3 und FC enthalten.
  • Anders als beim allgemeinen neuronalen Netzwerk kann jede Schicht des neuronales Faltungsnetzwerks drei Dimensionen einer Breite, Höhe und Tiefe aufweisen und somit können Daten, die in jede Schicht eingegeben werden, Volumendaten mit drei Dimensionen einer Breite, Höhe und Tiefe sein.
  • Jede Faltungsschicht CONV1, CONV2, CONV3, CONV4, CONV5 und CONV6 kann eine Faltungsoperation an den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen. Die Faltungsoperation stellt eine Operation dar, in der Daten basierend auf einer Maske mit gewichteten Werten verarbeitet werden und ein Ausgabewert durch Multiplizieren von Eingabewerten mit den gewichteten Werten und Aufsummieren der gesamten multiplizierten Werte erhalten wird. Die Maske kann als ein Filter, Fenster oder Kernel bezeichnet werden.
  • Jede RELU-Schicht RELU1, RELU2, RELU3, RELU4, RELU5 und RELU6 kann eine Rectified Linear Unit Operation an Eingaben durchführen. Jede Pooling-Schicht POOL1, POOL2 und POOL3 kann eine Downsampling-Operation an eingegebenen Volumendaten entlang räumlichen Dimensionen einer Breite und Höhe durchführen. Normalerweise können eine Faltungsschicht (z.B. CONV1) und eine RELU-Schicht (z.B. RELU1) ein Paar an CONV/RELU-Schichten im neuronalen Faltungsnetzwerk ausbilden, Paare der CONV/RELU-Schichten können wiederholt im neuronalen Faltungsnetzwerk angeordnet sein und die Pooling-Schicht kann periodisch in das neuronale Faltungsnetzwerk eingesetzt werden, wodurch eine Datengröße reduziert wird und eine Dateneigenschaft extrahiert wird.
  • Eine Ausgabeschicht oder eine vollständig verbundene Schicht FC kann Ergebnisse (z.B. Klassen-Scores) der gegenwärtigen Merkmalsinformationen FTRINF_C für jede der Klassen ausgeben. Zum Beispiel können die eingegebenen Volumendaten, die den gegenwärtigen Merkmalsinformationen FTRINF_C entsprechen, in eine eindimensionale Matrix oder einen Vektor umgewandelt werden, wenn die Faltungsoperation und die Downsampling-Operation wiederholt werden. Zum Beispiel kann die vollständig verbundene Schicht FC Wahrscheinlichkeiten, dass die gegenwärtigen Merkmalsinformationen FTRINF_C jeweils einer Mehrzahl an Lesepegelsätzen RLS1-RLS5 entsprechen, darstellen. Somit kann der Lesepegelsatz, welcher der höchsten Wahrscheinlichkeit entspricht, als der optimale Lesepegelsatz unter einer Mehrzahl an Lesepegelsätzen RLS1-RLS5 bestimmt werden.
  • 27 ist ein Diagramm, das ein Beispiel für einen in einem neuronalen Netzwerk enthaltenen Knoten und ein durch einen Knoten ND in einem neuronalen Netzwerk durchgeführtes Knotenoperationsbeispiel darstellt.
  • Wenn n Eingaben a1-an an den Knoten ND übermittelt werden, kann der Knoten ND die n Eingaben a1-an und entsprechenden n Gewichtungen wl-wn jeweils multiplizieren, kann n durch die Multiplikation erhaltene Werte summieren, kann ein Offset „b“ zu einem summierten Wert addieren und kann einen Ausgabewert durch Anwenden eines Werts, zu dem das Offset „b“ addiert wird, auf eine spezifische Funktion „(7“ erzeugen. Die Lernoperation kann basierend auf den Trainingsdaten TRD durchgeführt werden, um alle Knoten im neuronalen Netzwerk zu aktualisieren.
  • 28 ist ein Diagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
  • Bezugnehmend auf 28 enthält ein Errechnungssystem 2600 einen Prozessor 2610, eine Speichervorrichtung 2620, eine Benutzerschnittstelle 2630, einen Bus 2650 und ein Speichersystem 2660. In einigen Ausführungsformen kann das Errechnungssystem 2600 ferner ein Modem 2640 enthalten, wie einen Basisband-Chipsatz.
  • Der Prozessor 2610 kann spezifische Berechnungen oder Aufgaben durchführen. Zum Beispiel kann der Prozessor 2610 ein Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein Digitalsignalprozessor oder Ähnliches sein. Der Prozessor 2610 kann über einen Bus 2650, wie einen Adressenbus, einen Steuerbus und/oder einen Datenbus, mit der Speichervorrichtung 2620 gekoppelt sein. Ferner kann der Prozessor 2610 mit einem Erweiterungsbus, wie einem Peripheral Component Interconnect (PCI) Bus, gekoppelt sein und kann die Benutzerschnittstelle 2630, die mindestens eine Eingabevorrichtung, wie eine Tastatur, eine Maus, einen Touchscreen etc., und mindestens eine Ausgabevorrichtung, wie einen Drucker, eine Anzeigevorrichtung etc., enthält, steuern. Das Modem 2640 kann eine drahtgebundene oder drahtlose Kommunikation mit einer externen Vorrichtung durchführen.
  • Das Speichersystem 2660 kann einen Speichercontroller 2670 und eine nichtflüchtige Speichervorrichtung NVM 2680 enthalten. Der Speichercontroller 2670 kann eine Maschinenlernvorrichtung ML, wie oben beschrieben, zum Durchführen eines Verfahrens zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen enthalten.
  • Wie oben beschrieben, können das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
  • Die Offenbarung kann auf jegliche elektronische Vorrichtung und jegliches System, das eine nichtflüchtige Speichervorrichtung enthält, angewandt werden. Zum Beispiel kann die Offenbarung auf folgende Systeme angewandt werden: eine Speicherkarte, ein Festkörperlaufwerk (SSD), eine eingebettete Multimediakarte (eMMC), einen Universal-Flash-Speicher (UFS), ein Mobiltelefon, ein Smartphone, einen Personal Digital Assistant (PDA), einen tragbaren Multimediaplayer (PMP), eine Digitalkamera, eine Videokamera, einen Computer (PC), einen Servercomputer, eine Workstation, einen Laptop, einen digitalen TV, eine Set-Top-Box, eine tragbare Spielekonsole, ein Navigationssystem, eine tragbare Vorrichtung, eine Internet-der-Dinge(IoT)-Vorrichtung, eine Inter-net-aller-Dinge(IoE)-Vorrichtung, ein E-Book, eine Vorrichtung für virtuelle Realität (VR), eine Vorrichtung für erweiterte Realität (AR) etc.
  • Wie üblich in diesem Gebiet, können Ausführungsformen in Bezug auf Blöcke, welche eine beschriebene Funktion oder Funktionen ausführen, beschrieben und dargestellt werden. Diese Blöcke, die hierin als Einheiten oder Modelle oder Ähnliches bezeichnet werden können, werden durch analoge und/oder digitale Schaltungen, wie Logik-Gates, integrierte Schaltungen, Mikroprozessoren, Mikrocontroller, Speicherschaltungen, passive Elektronikkomponenten, aktive Elektronikkomponenten, optische Komponenten, festverdrahtete Schaltungen und Ähnliches, physikalisch umgesetzt und können optional durch Firmware und/oder Software angetrieben werden. Die Schaltungen können zum Beispiel in einem oder mehreren Halbleiterchips oder auf Substratträgern, wie einer Leiterplatte und Ähnlichem, ausgebildet sein. Die Schaltungen, die einen Block bilden, können durch dedizierte Hardware oder durch einen Prozessor (z.B. einen oder mehrere programmierte Mikroprozessoren und zugeordnete Schaltkreise) oder durch eine Kombination aus dedizierter Hardware zum Durchführen einiger Funktionen des Blocks und einem Prozessor zum Durchführen anderer Funktionen des Blocks umgesetzt sein. Jeder Block der Ausführungsformen kann physikalisch in zwei oder mehr interagierende und diskrete Blöcke unterteilt werden, ohne dabei vom Umfang der Offenbarung abzuweichen. Gleichermaßen können die Blöcke der Ausführungsformen physikalisch zu zwei komplexen Blöcken kombiniert werden, ohne dabei vom Umfang der Offenbarung abzuweichen. Ein Aspekt einer Ausführungsform kann durch innerhalb eines dauerhaften Speichermediums gespeicherte Anweisungen erzielt und von einem Prozessor ausgeführt werden.
  • Das Vorangegangene stellt Ausführungsbeispiele dar und soll nicht als darauf beschränkt ausgelegt werden. Obwohl einige Ausführungsbeispiele beschrieben worden sind, wird ein Fachmann begrüßen, dass viele Modifikationen in den Ausführungsbeispielen möglich sind, ohne dabei erheblich von 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 1020190175273 [0001]

Claims (20)

  1. Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen, wobei das Verfahren aufweist: Bestimmen von Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells; Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben; und Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten.
  2. Verfahren nach Anspruch 1, wobei die Merkmalsinformationen physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthält.
  3. Verfahren nach Anspruch 1, wobei die Fehlerinformationen mindestens eine Ausfallwahrscheinlichkeit der ECC-Dekodierung und eine durch die ECC-Dekodierung bestimmte Fehleranzahl enthalten.
  4. Verfahren nach Anspruch 1, wobei das Bestimmen der Operationsbedingungen aufweist: Vorsehen einer Mehrzahl an Lesepegelsätzen, wobei jeder Lesepegelsatz einer Kombination aus Pegeln von Lesespannungen für eine Leseoperation der nichtflüchtigen Speichervorrichtung entspricht; und Bestimmen eines optimalen Lesepegelsatzes, der gegenwärtigen Merkmalsinformationen entspricht, aus der Mehrzahl an Lesepegelsätzen durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells.
  5. Verfahren nach Anspruch 4, wobei der optimale Lesepegelsatz jeweils in Bezug auf jede einer Mehrzahl an in der nichtflüchtigen Speichervorrichtung enthaltenen Speicherebenen oder in Bezug auf jeden einer Mehrzahl an in der nichtflüchtigen Speichervorrichtung enthaltenen Speicherblöcken bestimmt wird.
  6. Verfahren nach Anspruch 1, wobei das Bestimmen der Operationsbedingungen aufweist: Überwachen gegenwärtiger Zellzählungsdaten, die eine Schwellenspannungsverteilung von Speicherzellen in einem Speicherblock angeben, in Bezug auf jeden einer Mehrzahl an in der nichtflüchtigen Speichervorrichtung enthaltenen Speicherblöcken; und Bestimmen einer Mehrzahl an Zuverlässigkeitspegeln, die der Mehrzahl an Speicherblöcken entsprechen, durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Zellzählungsdaten als eine Eingabe des Maschinenlernmodells, wobei jeder Zuverlässigkeitspegel eine Lebensdauer von in jedem Speicherblock gespeicherten Daten angibt.
  7. Verfahren nach Anspruch 6, ferner aufweisend das Durchführen einer Umschreiboperation in Bezug auf in der Mehrzahl an Speicherblöcken gespeicherten Daten basierend auf der Mehrzahl an Zuverlässigkeitspegeln.
  8. Verfahren nach Anspruch 6, wobei das Überwachen der gegenwärtigen Zellzählungsdaten und das Bestimmen der Mehrzahl an Zuverlässigkeitspegeln periodisch durchgeführt werden.
  9. Verfahren nach Anspruch 1, wobei das Bestimmen der Operationsbedingungen aufweist: Einstellen einer Mehrzahl an Lesesequenzen der nichtflüchtigen Speichervorrichtung; und Bestimmen einer optimalen Lesesequenz, die gegenwärtigen Merkmalsinformationen entspricht, aus der Mehrzahl an Lesesequenzen durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells.
  10. Verfahren nach Anspruch 1, wobei die Lernoperation durch ein erstes Maschinenlernmodul mit einer ersten Performance durchgeführt wird und die Ableitungsoperation durch ein zweites Maschinenlernmodul mit einer zweiten Performance, die höher ist als die erste Performance, durchgeführt wird.
  11. Verfahren nach Anspruch 10, wobei eine erste Anzahl an Knoten, die Knotenoperationen gleichzeitig durchführen, im ersten Maschinenlernmodell kleiner ist als eine zweite Anzahl an Knoten, die Knotenoperationen gleichzeitig durchführen, im zweiten Maschinenlernmodell.
  12. Verfahren nach Anspruch 1, wobei das Sammeln der Trainingsdaten das Reduzieren einer Größe der Trainingsdaten aufweist, um größenreduzierte Trainingsdaten in einem Pufferspeicher zu speichern.
  13. Verfahren nach Anspruch 12, wobei das Reduzieren der Größe der Trainingsdaten das Komprimieren der Trainingsdaten aufweist.
  14. Verfahren nach Anspruch 12, wobei das Reduzieren der Größe der Trainingsdaten das Normalisieren der Trainingsdaten aufweist.
  15. Verfahren nach Anspruch 1, ferner aufweisend das Bestimmen eines Durchführungszeitplans der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation und einer Ausfallwahrscheinlichkeit der ECC-Dekodierung.
  16. Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen, wobei das Verfahren aufweist: Vorsehen einer Mehrzahl an Lesepegelsätzen, wobei jeder Lesepegelsatz einer Kombination aus Pegeln von Lesespannungen für eine Leseoperation der nichtflüchtigen Speichervorrichtung entspricht; Bestimmen eines optimalen Lesepegelsatzes, der gegenwärtigen Merkmalsinformationen entspricht, aus der Mehrzahl an Lesepegelsätzen durch Durchführen einer Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells; Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Merkmalsinformationen physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten, und wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben; Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten; und Bestimmen eines Durchführungszeitplans der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation und einer Ausfallwahrscheinlichkeit der ECC-Dekodierung.
  17. Speichersystem, aufweisend: eine nichtflüchtige Speichervorrichtung; und einen Speichercontroller, der konfiguriert ist, die nichtflüchtige Speichervorrichtung zu steuern, wobei der Speichercontroller aufweist: einen Datensammler, der konfiguriert ist, Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, zu sammeln, wobei die Fehlerinformationen Ergebnisse einer Fehler-korrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben; einen Pufferspeicher, der konfiguriert ist, die Trainingsdaten zu speichern; und eine Maschinenlern-Engine, die konfiguriert ist, Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells zu bestimmen und das Maschinenlernmodell durch Durchführen einer Lernoperation basierend auf den Trainingsdaten zu aktualisieren.
  18. Nichtflüchtige Speichervorrichtung nach Anspruch 17, wobei: die Merkmalsinformationen physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten, und die Fehlerinformationen mindestens eine Ausfallwahrscheinlichkeit der ECC-Dekodierung und eine durch die ECC-Dekodierung bestimmte Fehleranzahl enthalten.
  19. Nichtflüchtige Speichervorrichtung nach Anspruch 17, wobei die Maschinenlern-Engine einen optimalen Lesepegelsatz, der gegenwärtigen Merkmalsinformationen entspricht, aus einer Mehrzahl an Lesepegelsätzen durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells bestimmt.
  20. Nichtflüchtige Speichervorrichtung nach Anspruch 17, wobei die Maschinenlern-Engine aufweist: ein erstes Maschinenlernmodul, das konfiguriert ist, die Lernoperation mit einer ersten Performance durchzuführen; und ein zweites Maschinenlernmodul, das konfiguriert ist, die Ableitungsoperation mit einer zweiten Performance, die höher ist als die erste Performance, durchzuführen.
DE102020119694.6A 2019-12-26 2020-07-27 Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem Pending DE102020119694A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190175273A KR20210082875A (ko) 2019-12-26 2019-12-26 머신 러닝을 이용한 비휘발성 메모리 장치의 동작 제어 방법 및 스토리지 시스템
KR10-2019-0175273 2019-12-26

Publications (1)

Publication Number Publication Date
DE102020119694A1 true DE102020119694A1 (de) 2021-07-01

Family

ID=76310506

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020119694.6A Pending DE102020119694A1 (de) 2019-12-26 2020-07-27 Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem

Country Status (4)

Country Link
US (1) US11189358B2 (de)
KR (1) KR20210082875A (de)
CN (1) CN113051098A (de)
DE (1) DE102020119694A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021149995A (ja) * 2020-03-23 2021-09-27 キオクシア株式会社 メモリシステム
US11217320B1 (en) * 2020-08-13 2022-01-04 Micron Technology, Inc. Bin placement according to program-erase cycles
KR20220058278A (ko) * 2020-10-30 2022-05-09 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
KR102460717B1 (ko) * 2021-08-17 2022-10-31 삼성전자주식회사 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR102491652B1 (ko) * 2021-09-17 2023-01-27 삼성전자주식회사 산포 타입을 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
EP4160603A1 (de) * 2021-10-01 2023-04-05 Samsung Electronics Co., Ltd. Speichersteuerung zum bestimmen der fehlerzahl, verfahren zum betreiben derselben und verfahren zum betreiben einer speichervorrichtung damit
KR102491655B1 (ko) 2021-10-01 2023-01-27 삼성전자주식회사 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
TWI510916B (zh) 2015-02-05 2015-12-01 緯創資通股份有限公司 儲存裝置壽命監控系統以及其儲存裝置壽命監控方法
KR102643916B1 (ko) * 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
JP6386523B2 (ja) 2016-12-15 2018-09-05 ファナック株式会社 Nandフラッシュメモリの寿命を予測する機械学習装置、寿命予測装置、数値制御装置、生産システム、及び機械学習方法
US11049009B2 (en) 2017-06-12 2021-06-29 Western Digital Technologies, Inc. Identifying memory block write endurance using machine learning
US10289341B2 (en) 2017-06-30 2019-05-14 Western Digital Technologies, Inc. Operating parameter offsets in solid state memory devices
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
KR102353405B1 (ko) 2017-09-19 2022-01-19 삼성전자주식회사 특성 데이터 전처리 시스템, 장치, 방법 및 이를 이용한 메모리 제어 시스템
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US11610116B2 (en) * 2018-12-31 2023-03-21 SK Hynix Inc. Storage device performance optimization using deep learning
US10977125B2 (en) * 2019-06-06 2021-04-13 Western Digital Technologies, Inc. Adaptive usage of irregular code schemas based on specific system level triggers and policies

Also Published As

Publication number Publication date
CN113051098A (zh) 2021-06-29
KR20210082875A (ko) 2021-07-06
US20210202028A1 (en) 2021-07-01
US11189358B2 (en) 2021-11-30

Similar Documents

Publication Publication Date Title
DE102020119694A1 (de) Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem
US10671524B2 (en) Data storage device including nonvolatile memory device and operating method thereof
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102013103391B4 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102011055714B4 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102018123194A1 (de) Nichtflüchtige Speichervorrichtungen, Speichersysteme und Verfahren zum Betreiben nichtflüchtiger Speichervorrichtungen
DE102013107626A1 (de) Speichervorrichtung, Speichersystem und Verfahren zum Steuern einer Lesespannung der Speichervorrichtung
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE102008030264A1 (de) Verfahren zum Lesen eines Flashspeichers und Speichersystem
DE102019135863B4 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
US11749354B2 (en) Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation
US11514999B2 (en) Systems and methods for parametric PV-level modeling and read threshold voltage estimation
DE112020004922T5 (de) Speicherungsvorrichtung mit erhöhter beständigkeit
EP3893116A1 (de) Speichervorrichtung und verfahren zum betrieb davon
DE102019127089A1 (de) LDPC Decoder, semiconductor memory system, and operating method thereof
DE102011054918A1 (de) Nichtflüchtige Speichervorrichtung, Verfahren zum Betreiben derselben und elektronische Vorrichtung mit derselben
US11769556B2 (en) Systems and methods for modeless read threshold voltage estimation
US11393539B2 (en) Systems and methods for determining change of read threshold voltage
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE102008032235A1 (de) Nichtflüchtiges Speicherbauelement, Löschverfahren und Löschtestverfahren
DE112021002290T5 (de) Partitionierbares neuronales netz für festkörperlaufwerke
CN112582004A (zh) 存储器系统、执行噪声消除的方法和计算机程序产品

Legal Events

Date Code Title Description
R012 Request for examination validly filed