DE102020120211A1 - Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen - Google Patents

Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen Download PDF

Info

Publication number
DE102020120211A1
DE102020120211A1 DE102020120211.3A DE102020120211A DE102020120211A1 DE 102020120211 A1 DE102020120211 A1 DE 102020120211A1 DE 102020120211 A DE102020120211 A DE 102020120211A DE 102020120211 A1 DE102020120211 A1 DE 102020120211A1
Authority
DE
Germany
Prior art keywords
information bits
memory
neural network
procedure according
regime
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
DE102020120211.3A
Other languages
English (en)
Inventor
Amit Berman
Evgeny BLAICHMAN
Ron Golan
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 DE102020120211A1 publication Critical patent/DE102020120211A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K7/00Modulating pulses with a continuously-variable modulating signal
    • H03K7/02Amplitude modulation, i.e. PAM
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Read Only Memory (AREA)

Abstract

Es werden ein Verfahren, eine Vorrichtung, ein nicht-transitorisches computerlesbares Medium und ein System zur Verwendung eines Fehlerkorrekturcodes in einer Speichervorrichtung mit einem neuronalen Netz werden beschrieben. Ausführungsformen des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems können ein Signal von einem physischen Kanal empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert sind, Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die von dem physischen Kanal erfasst wurden, und die Informationsbits mit einem neuronalen Netzwerk-Decodierer decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden.

Description

  • HINTERGRUND
  • Die folgenden Ausführungen betreffen allgemein die Decodierung eines Fehlerkorrekturcodes mit einem neuronalen Netz und betreffen insbesondere die Decodierung eines Fehlerkorrekturcodes mit einem neuronalen Netz in Speichervorrichtungen.
  • Speichervorrichtungen sind häufig verwendete elektronische Komponenten zum Speichern von Daten. NAND-Flash-Speichervorrichtungen erlauben das Speichern mehrerer Datenbits in jeder Speicherzelle, was zu Verbesserungen bei den Herstellungskosten und der Leistung führt. Eine Speicherzelle, in der mehrere Datenbits gespeichert sind, kann als Mehrebenen-Speicherzelle bezeichnet werden. Eine Mehrebenen-Speicherzelle unterteilt einen Schwellenspannungsbereich einer Speicherzelle in mehrere Spannungszustände, und die in die Speicherzelle geschriebenen Datenwerte werden unter Verwendung der Spannungspegel der Speicherzelle extrahiert.
  • In einigen Fällen können Daten vor der Programmierung in eine Speichervorrichtung codiert werden, um die Fähigkeit zur Korrektur von Lesefehlern bereitzustellen. Ein polares Codierregime ist ein Beispiel für ein effizientes Fehlerkorrekturcode (Error Correction Code, ECC)-Regime. Viele Decodierer gehen jedoch von einem additiven weißen gaußschen Rausch (Additive White Gaussian Noise, AWGN)-Modell aus, jedoch ist das durch Flash-Speicherzellen verursachte Rauschen mit einem AWGN-Modell möglicherweise nicht vereinbar. Darüber hinaus kann die Decodierung eines polaren Decodierregimes rechenintensiv sein. Daher besteht auf diesem technischen Gebiet Bedarf an verbesserten Systemen und Verfahren zum Decodieren von Informationen, die in einer Speichervorrichtung gespeichert sind.
  • KURZDARSTELLUNG
  • Es werden ein Verfahren, eine Vorrichtung, ein nicht-transitorisches computerlesbares Medium und ein System zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Ausführungsformen des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems können ein Signal von einem physischen Kanal empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert sind, Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die von dem physischen Kanal erfasst wurden, und die Informationsbits mit einem neuronalen Netzwerk-Decodierer decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden.
  • Es werden ein Verfahren, eine Vorrichtung, ein nicht-transitorisches computerlesbares Medium und ein System zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Ausführungsformen des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems können Folgendes ausführen: Erstellen eines markierten Trainingssatzes, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren, Identifizieren mehrerer bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt, Lesen eines Spannungspegels aus einer Speichervorrichtung, Extrahieren von Merkmalen aus den Spannungspegeln mindestens teilweise auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen, Anwenden eines neuronalen Netzwerk-Decodierers auf die Merkmale, um vorhergesagte Informationsbits zu erzeugen, Vergleichen der vorhergesagten Informationsbits mit den Grundwahrheits-Informationsbits und Aktualisieren des neuronalen Netzwerk-Decodierers auf der Grundlage des Vergleichs.
  • Es werden eine Speichervorrichtung und ein Verfahren zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Ausführungsformen der Speichervorrichtung und des Verfahrens können umfassen: mehrere Speicherzellen, die dafür eingerichtet sind, codierte Informationsbits zu speichern, einen Merkmalsextrahierer, der dafür eingerichtet ist, Merkmale aus gelesenen Spannungspegeln auf der Grundlage von für die Speichervorrichtung erfassten Wahrscheinlichkeitsdaten zu extrahieren, und einen neuronalen Netzwerk-Decodierer, der dafür eingerichtet ist, die codierten Informationen unter Verwendung der extrahierten Merkmale als Eingabe zu decodieren.
  • Figurenliste
  • Merkmale des vorliegenden erfinderischen Konzepts werden durch die detaillierte Beschreibung beispielhafter Ausführungsformen unter Bezug auf die beigefügten Zeichnungen besser verständlich.
    • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenverarbeitungssystems, das ein Speichersystem umfasst, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 2 ist ein Blockdiagramm, welches das Speichersystem von 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht.
    • 3 ist ein detailliertes Blockdiagramm einer nicht-flüchtigen Speichervorrichtung von 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
    • 4 ist ein Blockdiagramm des Speicherzellenarrays von 2 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
    • 5 ist ein Schaltplan eines Speicherblocks des Speicherzellenarrays von 4 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
    • 6 zeigt ein Beispiel einer Speichervorrichtung mit einem neuronalen Netzwerk-Decodierer gemäß Aspekten der vorliegenden Offenbarung.
    • 7 zeigt ein Beispiel eines Prozesses zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz gemäß Aspekten der vorliegenden Offenbarung.
    • 8 zeigt ein Beispiel eines Prozesses zum Trainieren eines neuronalen Netzes zum Decodieren eines Fehlerkorrekturcodes gemäß Aspekten der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • Die vorliegende Offenbarung beschreibt Systeme und Verfahren zur Fehlerkorrektur und insbesondere zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz.
  • Die vorliegende Offenbarung beschreibt Systeme und Verfahren zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz und insbesondere in Speichervorrichtungen.
  • Die NAND-Programmierung ist ein komplexer Prozess, der auf dem Anlegen einer Spannung an eine Speicherzelle basiert. Die Zellenspannung kann jedoch durch Variablen wie zum Beispiel dem momentanen Spannungspegel, der Impulsleistung und Interferenzen zwischen den Zellen beeinflusst werden. Die Zellenspannung kann auch durch gehemmte Zellenunterbrechung, Kopplung zwischen Wortleitungen (WL) und Zellenretention beeinflusst werden. Zusätzlich ist das Ergebnis des Schreibens in eine NAND-Vorrichtung stochastisch. Zum Beispiel können Daten auch verrauscht sein, was zu Problemen bei der Beobachtung führt.
  • Ein Decodierer ist ein Logikschaltkreis, der dazu dient, binäre Informationen von codierten Eingaben in eindeutige Ausgaben zu konvertieren. Es können mehrere Eingaben und mehrere Ausgaben verwendet werden. Die Kanalcodierung führt Codierungs- und Decodierungsoperationen an einem Daten-Stream durch, um Kommunikationsfehler wie zum Beispiel Interferenzen oder Rauschen zu korrigieren. Eine Kanalcodierung wird an einem ersten Daten-Stream mit einem ersten Satz von Operationen in einer Sendevorrichtung und einem zweiten Daten-Stream mit einem zweiten Satz von Operationen in einer Empfangsvorrichtung durchgeführt. Eine Kanalcodierung kann ein Blockcode oder ein Faltungscode sein.
  • Polare Codes sind eine Teilmenge der Kanalcodierung. Polare Codierung ist ein Blockcodeverfahren, bei dem ein Block von Daten und Bits eine festgelegte Größe hat. Im Sender und im Empfänger wird eine Bearbeitung des Blocks durchgeführt. Es werden Operationen durchgeführt, die als Kanalkombinieren (Channel Combining) und Kanalteilen (Channel Splitting) bezeichnet werden. Zuerst werden beim Kanalkombinieren Kombinationen von Symbolen Kanälen zugewiesen und/oder auf sie abgebildet. Dann führt das Kanalteilen eine Transformationsoperation durch, bei der Symbolkombinationen in Zeitbereichsvektoren übersetzt werden, die in dem Decodierer verwendet werden. Die Decodieroperation schätzt mit der Codieroperation Zeitbereichs-Bit-Streams. Dadurch wird der Block von Bits und Kanälen in einen polarisierten Bit-Stream im Empfänger umgewandelt.
  • Es hat sich gezeigt, dass polare Codes Kapazität für Additive White Gaussian Noise (AWGN)-Kanäle schaffen und für Codes mit endlicher Länge unter Verwendung eines Successive Cancelation List (SCL)-Decodierers mit zyklischen Redundanzprüfungen (Cyclic Redundancy Checks, CRC) eine vergleichbare Leistung wie Low-Density-Parity-Check (LDPC)-Codes erzielen. Der SCL-Decodierer hat eine große Latenz, da jedes Bit nacheinander decodiert wird. Ein neuronaler Netzwerk (NN)-Decodierer kann in polaren Codes verwendet werden. Ein neuronaler Netzwerk-Decodierer verhält sich bei relativ kurzen Codes ähnlich wie der SCL-Decodierer. Die Decodierung des neuronalen Netzwerk-Decodierers erfolgt mit sehr geringer Latenz, da alle Bits parallel decodiert werden.
  • Der neuronale Netzwerk-Decodierer der vorliegenden Offenbarung kann für AWGN-Kanäle mit Binary Phase Shift Keying (BPSK)-Modulation verwendet werden. Viele Flash-Speicher-Kanäle verwenden jedoch keine AWGN-Kanäle, und Ausführungsformen der Offenbarung gehen nicht unbedingt von AWGN-Kanälen aus. Es können mehrere Bits pro Zelle gespeichert werden, so dass die Modulation eine Impulsamplitudenmodulation (Pulse Amplitude Modulation, PAM) sein kann. Zum Beispiel kann 4 PAM für 2 Bits pro Zelle verwendet werden, und 8 PAM wird für 3 Bits pro Zelle verwendet.
  • Beispielhafte Ausführungsformen des vorliegenden erfinderischen Konzepts werden im Folgenden unter Bezug auf die begleitenden Zeichnungen ausführlicher beschrieben. Gleiche Bezugszeichen können sich in den beiliegenden Zeichnungen durchweg auf gleiche Elemente beziehen.
  • Es versteht sich, dass die Begriffe „erster“, „zweiter“, „dritter“ usw. im vorliegenden Text verwendet werden, um ein Element von einem anderen zu unterscheiden, und die Elemente werden durch diese Begriffe nicht eingeschränkt. So kann ein „erstes“ Element in einer beispielhaften Ausführungsform in einer anderen beispielhaften Ausführungsform als ein „zweites“ Element beschrieben werden.
  • Es versteht sich, dass Beschreibungen von Merkmalen oder Aspekten innerhalb jeder beispielhaften Ausführungsform in der Regel auch als für andere ähnliche Merkmale oder Aspekte in anderen beispielhaften Ausführungsformen verfügbar anzusehen sind, sofern der Kontext nicht eindeutig ein anderes Verständnis verlangt.
  • Im Sinne des vorliegenden Textes sollen die Einzahlformen „ein/einer/eine“ und „der/die/das“ auch die Mehrzahlformen enthalten, sofern der Kontext nicht eindeutig etwas anderes verlangt.
  • Wenn im vorliegenden Text ein einzelner Wert als „ungefähr gleich“ einem anderen Wert oder „im Wesentlichen gleich“ einem anderen Wert beschrieben wird, so bedeutet das, dass die Werte innerhalb eines Messfehlers einander gleich sind oder, wenn sie messbar ungleich sind, in ihrem Wert nahe genug beieinander liegen, um einander funktional gleich zu sein, so wie es dem Verständnis des Durchschnittsfachmanns entspricht. Zum Beispiel enthält der Begriff „ungefähr“ im Sinne des vorliegenden Textes den angegebenen Wert und meint „innerhalb eines akzeptablen Abweichungsbereichs für den bestimmten Wert“, so wie es der Durchschnittsfachmann unter Berücksichtigung der betreffenden Messung und des mit der Messung der bestimmten Größe verbundenen Fehlers (das heißt der Grenzen des Messsystems) bestimmt. Zum Beispiel kann „ungefähr“ „innerhalb einer oder mehrerer Standardabweichungen“ bedeuten, so wie es dem Verständnis des Durchschnittsfachmanns entspricht. Des Weiteren versteht es sich, dass zwar im vorliegenden Text Parameter als „ungefähr“ von einem bestimmten Wert beschrieben sein können, dass aber gemäß beispielhaften Ausführungsformen der Parameter auch genau der bestimmte Wert oder ungefähr der bestimmte Wert - innerhalb eines Messfehlers - sein kann, so wie es dem Verständnis des Durchschnittsfachmanns entspricht.
  • Beispielhaftes Speichersystem
  • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenverarbeitungssystems, das ein Speichersystem umfasst, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht.
  • Wie in 1 zu sehen, kann das Datenverarbeitungssystem 10 einen Host 100 und ein Speichersystem 200 umfassen. Das in 1 gezeigte Speichersystem 200 kann in verschiedenen Systemen verwendet werden, die eine Datenverarbeitungsfunktion umfassen. Die verschiedenen Systeme können verschiedene Vorrichtungen sein, einschließlich beispielsweise mobile Vorrichtungen, wie zum Beispiel ein Smartphone oder ein Tablet-Computer. Die verschiedenen Vorrichtungen sind jedoch nicht darauf beschränkt.
  • Das Speichersystem 200 kann verschiedene Arten von Speichervorrichtungen umfassen. Im vorliegenden Text werden beispielhafte Ausführungsformen des erfinderischen Konzepts so beschrieben, dass sie eine Speichervorrichtung umfassen, die ein nicht-flüchtiger Speicher ist. Die beispielhaften Ausführungsformen sind jedoch nicht darauf beschränkt. Zum Beispiel kann das Speichersystem 200 eine Speichervorrichtung umfassen, die ein flüchtiger Speicher ist.
  • Gemäß beispielhaften Ausführungsformen kann das Speichersystem 200 eine nicht-flüchtige Speichervorrichtung umfassen, wie zum Beispiel einen Nurlesespeicher (ROM), eine Magnet-Disk, eine optische Disk, einen Flash-Speicher usw. Der Flash-Speicher kann ein Speicher sein, der Daten entsprechend einer Änderung der Schwellenspannung eines Metall-Oxid-Halbleiter-Feldeffekttransistors (MOSFET) speichert, und kann zum Beispiel NAND- und NOR-Flash-Speicher umfassen. Das Speichersystem 200 kann unter Verwendung einer Speicherkarte implementiert werden, die eine nicht-flüchtige Speichervorrichtung umfasst, wie zum Beispiel eine eingebettete Multimediakarte (eMMC), eine Secure-Digital (SD)-Karte, eine Micro-SD-Karte oder einen Universal-Flash-Speicher (UFS), oder das Speichersystem 200 kann zum Beispiel unter Verwendung einer SSD implementiert werden, die eine nicht-flüchtige Speichervorrichtung umfasst. Im Folgenden werden die Ausgestaltung und der Betrieb des Speichersystems 200 unter der Annahme beschrieben, dass das Speichersystem 200 ein nicht-flüchtiges Speichersystem ist. Das Speichersystem 200 ist jedoch nicht darauf beschränkt. Der Host 100 kann zum Beispiel ein System-on-Chip (SoC)-Anwendungsprozessor (AP) sein, der zum Beispiel in einer mobilen Vorrichtung montiert ist, oder kann eine zentrale Verarbeitungseinheit (CPU) sein, die in einem Computersystem enthalten ist.
  • Wie oben beschrieben, kann der Host 100 einen AP 110 umfassen. Der AP 110 kann verschiedene Blöcke mit geistigem Eigentum (Intellectual Property, IP) umfassen. Zum Beispiel kann der AP 110 einen Speichervorrichtungstreiber 111 umfassen, der das Speichersystem 200 steuert. Der Host 100 kann mit dem Speichersystem 200 kommunizieren, um einen auf eine Speicheroperation bezogenen Befehl zu senden und einen Bestätigungsbefehl als Antwort auf den gesendeten Befehl zu empfangen.
  • Das Speichersystem 200 kann zum Beispiel einen Speicher-Controller 210 und eine Speichervorrichtung 220 umfassen. Der Speicher-Controller 210 kann einen Befehl in Bezug auf eine Speicheroperation von dem Host 100 empfangen, einen internen Befehl und ein internes Taktsignal unter Verwendung des empfangenen Befehls generieren und den internen Befehl und das interne Taktsignal in die Speichervorrichtung 220 einspeisen. Die Speichervorrichtung 220 kann in Reaktion auf den internen Befehl Schreibdaten in einem Speicherzellenarray speichern oder kann in Reaktion auf den internen Befehl Lesedaten in den Speicher-Controller 210 einspeisen.
  • Die Speichervorrichtung 220 umfasst ein Speicherzellenarray, in dem Daten gespeichert bleiben, selbst wenn die Speichervorrichtung 220 nicht eingeschaltet ist. Das Speicherzellenarray kann als Speicherzellen zum Beispiel einen NAND- oder NOR-Flash-Speicher, einen magnetoresistiven Direktzugriffsspeicher (MRAM), einen resistiven Direktzugriffsspeicher (RRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM) oder einen Phasenwechselspeicher (PCM) umfassen. Wenn zum Beispiel das Speicherzellenarray einen NAND-Flash-Speicher umfasst, so kann das Speicherzellenarray mehrere Blöcke und mehrere Seiten umfassen. Daten können in Einheiten von Seiten programmiert und gelesen werden, und Daten können in Einheiten von Blöcken gelöscht werden. Ein Beispiel für Speicherblöcke, die in einem Speicherzellenarray enthalten sind, ist in 4 gezeigt.
  • 2 ist ein Blockdiagramm, welches das Speichersystem 200 von 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht.
  • Wie in 2 zu sehen, umfasst das Speichersystem 200 die Speichervorrichtung 220 und den Speicher-Controller 210. Der Speicher-Controller 210 kann hier auch als Controller-Schaltung bezeichnet werden. Die Speichervorrichtung 220 kann unter der Steuerung des Speicher-Controllers 210 eine Schreiboperation, eine Leseoperation oder eine Löschoperation durchführen.
  • Der Speicher-Controller 210 kann die Speichervorrichtung 220 in Abhängigkeit von einer von dem Host 100 empfangenen Anforderung oder einem intern festgelegten Zeitplan steuern. Der Speicher-Controller 210 kann einen Controller-Kern 211, einen internen Speicher 214, einen Hostschnittstellenblock 215 und einen Speicherschnittstellenblock 216 umfassen.
  • Der Controller-Kern 211 kann einen Speichersteuerungskern 212 und einen Maschinenlernkern 213 umfassen, und jeder dieser Kerne kann durch einen oder mehrere Prozessoren implementiert werden. Der Speichersteuerungskern 212 kann die Speichervorrichtung 220 in Abhängigkeit von einer von dem Host 100 empfangenen Anforderung oder einem intern festgelegten Zeitplan steuern und darauf zugreifen. Der Speichersteuerungskern 212 kann verschiedene Metadaten und Codes verwalten und ausführen, die zur Verwalten oder Betreiben des Speichersystems 200 verwendet werden.
  • Der Maschinenlernkern 213 kann verwendet werden, um Trainieren und Inferenzieren eines neuronalen Netzwerks durchzuführen, das für die Durchführung von Rauschunterdrückung in der Speichervorrichtung 220 ausgelegt ist, wie weiter unten noch näher beschrieben wird.
  • Der interne Speicher 214 kann zum Beispiel genutzt werden als: ein Systemspeicher, der durch den Controller-Kern 211 genutzt wird, ein Cache-Speicher, der Daten der Speichervorrichtung 220 speichert, oder ein Pufferspeicher, der Daten zwischen dem Host 100 und der Speichervorrichtung 220 zwischenspeichert. Der interne Speicher 214 kann eine Abbildungstabelle (Mapping Table) MT speichern, die eine Beziehung zwischen logischen Adressen, die dem Speichersystem 200 zugewiesen sind, und physischen Adressen der Speichervorrichtung 220 angibt. Der interne Speicher 214 kann zum Beispiel ein DRAM oder ein SRAM sein.
  • In einer beispielhaften Ausführungsform kann ein neuronales Netz, wie zum Beispiel das mit Bezug auf 9 beschriebene neuronale Netz, in einem Computerprogramm enthalten sein, das in dem internen Speicher 214 des Speicher-Controllers 210 oder in der Speichervorrichtung 220 gespeichert ist. Das Computerprogramm, welches das neuronale Netz umfasst, kann durch den Maschinenlernkern 213 ausgeführt werden, um die in der Speichervorrichtung 220 gespeicherten Daten zu entrauschen. Somit kann das Speichersystem 200 gemäß beispielhaften Ausführungsformen die in der Speichervorrichtung 220 gespeicherten Daten während einer normalen Leseoperation der Speichervorrichtung 220 entrauschen. Das heißt, nachdem die Herstellung des Speichersystems 200 abgeschlossen ist, während des normalen Betriebes des Speichersystems 200, und insbesondere während einer normalen Leseoperation des Speichersystems 200, bei der Daten aus der Speichervorrichtung 220 gelesen werden, können die in der Speichervorrichtung 220 gespeicherten Daten, die gelesen werden, unter Verwendung des neuronalen Netzes, das lokal in dem Speichersystem 200 gespeichert und ausgeführt wird, entrauscht werden, und die entrauschten Daten können aus der Speichervorrichtung 220 ausgelesen werden.
  • Der Hostschnittstellenblock 215 kann eine Komponente für die Kommunikation mit dem Host 100 umfassen, wie zum Beispiel einen physischen Block. Der Speicherschnittstellenblock 216 kann eine Komponente für die Kommunikation mit der Speichervorrichtung 220 umfassen, wie zum Beispiel einen physischen Block.
  • Im Folgenden wird der Betrieb des Speichersystems 200 im zeitlichen Verlauf beschrieben. Wenn das Speichersystem 200 mit Strom versorgt wird, so kann das Speichersystem 200 eine Initialisierung mit dem Host 100 durchführen.
  • Der Hostschnittstellenblock 215 kann an den Speichersteuerungskern 212 eine erste von dem Host 100 empfangene Anforderung REQ1 übermitteln. Die erste Anforderung REQ1 kann einen Befehl (zum Beispiel einen Lesebefehl oder einen Schreibbefehl) und eine logische Adresse umfassen. Der Speichersteuerungskern 212 kann die erste Anforderung REQ1 in eine zweite Anforderung REQ2 übersetzen, die für die Speichervorrichtung 220 geeignet ist.
  • Zum Beispiel kann der Speichersteuerungskern 212 ein Format des Befehls übersetzen. Der Speichersteuerungskern 212 kann Adressinformationen AI unter Bezug auf die in dem internen Speicher 214 gespeicherte Abbildungstabelle MT erhalten. Der Speichersteuerungskern 212 kann eine logische Adresse unter Verwendung der Adressinformationen AI in eine physische Adresse der Speichervorrichtung 220 übersetzen. Der Speichersteuerungskern 212 kann die zweite Anforderung REQ2, die für die Speichervorrichtung 220 geeignet ist, an den Speicherschnittstellenblock 216 übermitteln.
  • Der Speicherschnittstellenblock 216 kann die zweite Anforderung REQ2 von dem Speichersteuerungskern 212 in einer Warteschlange registrieren. Der Speicherschnittstellenblock 216 kann eine Anforderung, die zuerst in der Warteschlange registriert wird, als eine dritte Anforderung REQ3 an die Speichervorrichtung 220 senden.
  • Wenn die erste Anforderung REQ1 eine Schreibanforderung ist, so kann der Hostschnittstellenblock 215 von dem Host 100 empfangene Daten in den internen Speicher 214 schreiben. Wenn die dritte Anforderung REQ3 eine Schreibanforderung ist, so kann der Speicherschnittstellenblock 216 Daten, die in dem internen Speicher 214 gespeichert sind, an die Speichervorrichtung 220 senden.
  • Wenn die Daten vollständig geschrieben wurden, kann die Speichervorrichtung 220 eine dritte Antwort RESP3 an den Speicherschnittstellenblock 216 senden. In Reaktion auf die dritte Antwort RESP3 kann der Speicherschnittstellenblock 216 an den Speichersteuerungskern 212 eine zweite Antwort RESP2 übermitteln, die anzeigt, dass die Daten vollständig geschrieben wurden.
  • Nachdem die Daten in dem internen Speicher 214 gespeichert wurden, oder nachdem die zweite Antwort RESP2 empfangen wurde, kann der Speichersteuerungskern 212 eine erste Antwort RESP1, die anzeigt, dass die Anforderung abgeschlossen ist, über den Hostschnittstellenblock 215 an den Host 100 senden.
  • Wenn die erste Anforderung REQ1 eine Leseanforderung ist, so kann die Leseanforderung durch die zweite Anforderung REQ2 und die dritte Anforderung REQ3 an die Speichervorrichtung 220 gesendet werden. Der Speicherschnittstellenblock 216 kann die von der Speichervorrichtung 220 empfangenen Daten in dem internen Speicher 214 speichern. Wenn die Daten vollständig gesendet wurden, so kann die Speichervorrichtung 220 die dritte Antwort RESP3 an den Speicherschnittstellenblock 216 senden.
  • Wenn die dritte Antwort RESP3 empfangen wird, so kann der Speicherschnittstellenblock 216 an den Speichersteuerungskern 212 die zweite Antwort RESP2 übermitteln, die anzeigt, dass die Daten vollständig gespeichert wurden. Wenn die zweite Antwort RESP2 empfangen wird, so kann der Speichersteuerungskern 212 die erste Antwort RESP1 über den Hostschnittstellenblock 215 an den Host 100 senden.
  • Der Hostschnittstellenblock 215 kann die in dem internen Speicher 214 gespeicherten Daten an den Host 100 senden. In einer beispielhaften Ausführungsform kann in dem Fall, in dem Daten, die der ersten Anforderung REQ1 entsprechen, in dem internen Speicher 214 gespeichert sind, das Senden der zweiten Anforderung REQ2 und der dritten Anforderung REQ3 entfallen.
  • 3 ist ein detailliertes Blockdiagramm der nicht-flüchtigen Speichervorrichtung 220 von 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Wie in 2 gezeigt, kann die Speichervorrichtung 220 zum Beispiel ein Speicherzellenarray 221, eine Steuerungslogik 222, eine Spannungsgenerierungseinheit 223, einen Zeilendecodierer 224 und einen Seitenpuffer 225 umfassen.
  • Das Speicherzellenarray 221 kann mit einer oder mehreren String-Auswahlleitungen (String Select Lines) SSL, mehreren Wortleitungen WL, einer oder mehreren Erdungsauswahlleitungen (Ground Select Lines) GSL und mehreren Bitleitungen BL verbunden sein. Das Speicherzellenarray 221 kann mehrere Speicherzellen umfassen, die an Schnittpunkten zwischen den mehreren Wortleitungen WL und den mehreren Bitleitungen BL angeordnet sind.
  • Die Steuerungslogik 222 kann einen Befehl CMD (zum Beispiel einen internen Befehl) und eine Adresse ADD von dem Speicher-Controller 210 empfangen und ein Steuersignal CTRL zum Steuern verschiedener Funktionsblöcke innerhalb der Speichervorrichtung 220 von dem Speicher-Controller 210 empfangen. Die Steuerungslogik 222 kann auf der Grundlage des Befehls CMD, der Adresse ADD und des Steuersignals CTRL verschiedene Steuersignale zum Schreiben von Daten in das Speicherzellenarray 221 oder zum Lesen von Daten aus dem Speicherzellenarray 221 ausgeben. Auf diese Weise kann die Steuerungslogik 222 den Gesamtbetrieb der Speichervorrichtung 220 steuern.
  • Die verschiedenen durch die Steuerungslogik 222 ausgegebenen Steuersignale können in die Spannungsgenerierungseinheit 223, den Zeilendecodierer 224 und den Seitenpuffer 225 eingespeist werden. Zum Beispiel kann die Steuerungslogik 222 an die Spannungsgenerierungseinheit 223 ein Spannungssteuersignal CTRL_vol übermitteln, an den Zeilendecodierer 224 eine Zeilenadresse X-ADD übermitteln, und an den Seitenpuffer 225 eine Spaltenadresse Y-ADD übermitteln.
  • Die Spannungsgenerierungseinheit 223 kann auf der Basis des Spannungssteuerungssignals CTRL_vol verschiedene Spannungen für die Durchführung von Programmierungs-, Lese- und Löschoperationen in der Speicherzellenanordnung 221 generieren. Zum Beispiel kann die Spannungsgenerierungseinheit 223 eine erste Ansteuerspannung VWL zum Ansteuern der mehreren Wortleitungen WL, eine zweite Ansteuerspannung VSSL zum Ansteuern der mehreren String-Auswahlleitungen SSL und eine dritte Ansteuerspannung VGSL zum Ansteuern der mehreren Erdungsauswahlleitungen GSL generieren. In diesem Fall kann die erste Ansteuerspannung VWL eine Programmierspannung (zum Beispiel eine Schreibspannung), eine Lesespannung, eine Löschspannung, eine Durchlassspannung oder eine Programmierverifizierungsspannung sein. Darüber hinaus kann die zweite Ansteuerspannung VSSL eine String-Auswahlspannung sein (zum Beispiel eine Ein-Spannung oder eine Aus-Spannung). Des Weiteren kann die dritte Ansteuerspannung VGSL eine Erdungsauswahlspannung sein (zum Beispiel eine Ein-Spannung oder eine Aus-Spannung).
  • Der Zeilendecodierer 224 kann über die mehreren Wortleitungen WL mit dem Speicherzellenarray 221 verbunden sein und kann einen Teil der mehreren Wortleitungen WL in Reaktion auf die von der Steuerungslogik 222 empfangene Zeilenadresse X-ADD aktivieren. Zum Beispiel kann der Zeilendecodierer 224 bei einer Leseoperation eine Lesespannung an eine ausgewählte Wortleitung und eine Durchlassspannung an nicht-ausgewählte Wortleitungen anlegen.
  • In einer Programmieroperation kann der Zeilendecodierer 224 eine Programmierspannung an eine ausgewählte Wortleitung und eine Durchlassspannung an nicht-ausgewählte Wortleitungen anlegen. In einer beispielhaften Ausführungsform kann der Zeilendecodierer 224 in mindestens einer von mehreren Programmierschleifen die Programmierspannung an die ausgewählte Wortleitung und eine zusätzlich ausgewählte Wortleitung anlegen.
  • Der Seitenpuffer 225 kann über die mehreren Bitleitungen BL mit dem Speicherzellenarray 221 verbunden sein. Zum Beispiel kann in einer Leseoperation der Seitenpuffer 225 als ein Leseverstärker arbeiten, der Daten ausgibt, die in dem Speicherzellenarray 221 gespeichert sind. Alternativ kann in einer Programmieroperation der Seitenpuffer 225 als ein Schreibtreiber arbeiten, der gewünschte Daten in das Speicherzellenarray 221 schreibt.
  • 4 und 5 veranschaulichen ein Beispiel, bei dem das Speichersystem 200 unter Verwendung eines dreidimensionalen Flash-Speichers implementiert ist. Der dreidimensionale Flash-Speicher kann dreidimensionale (zum Beispiel vertikale) NAND (zum Beispiel VNAND)-Speicherzellen umfassen. Eine Implementierung des Speicherzellenarrays 221, das dreidimensionale Speicherzellen umfasst, wird im Folgenden beschrieben. Jede der unten beschriebenen Speicherzellen kann eine NAND-Speicherzelle sein.
  • 4 ist ein Blockdiagramm des Speicherzellenarrays 221 von 2 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Wie in 4 gezeigt, umfasst das Speicherzellenarray 221 gemäß einer beispielhaften Ausführungsform mehrere Speicherblöcke BLK1 bis BLKz. Jeder der Speicherblöcke BLK1 bis BLKz hat eine dreidimensionale Struktur (zum Beispiel eine vertikale Struktur). Zum Beispiel kann jeder der Speicherblöcke BLK1 bis BLKz Strukturen umfassen, die sich in ersten bis dritten Richtungen erstrecken. Zum Beispiel kann jeder der Speicherblöcke BLK1 bis BLKz mehrere NAND-Strings umfassen, die sich in der zweiten Richtung erstrecken. Die mehreren NAND-Strings kann zum Beispiel in der ersten bis dritten Richtung angeordnet sein.
  • Jeder der NAND-Strings ist mit einer Bitleitung BL, einer String-Auswahlleitung SSL, einer Erdungsauswahlleitung GSL, Wortleitungen WL und einer gemeinsamen Source-Leitung (Common Source Line) CSL verbunden. Das heißt, jeder der Speicherblöcke BLK1 bis BLKz kann mit mehreren Bitleitungen BL, mehreren String-Auswahlleitungen SSL, mehreren Erdungsauswahlleitungen GSL, mehreren Wortleitungen WL und einer gemeinsamen Source-Leitung CSL verbunden sein. Die Speicherblöcke BLK1 bis BLKz werden im Folgenden unter Bezug auf 5 näher beschrieben.
  • 5 ist ein Schaltplan eines Speicherblocks BLKi gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. 5 veranschaulicht ein Beispiel eines der Speicherblöcke BLK1 bis BLKz in dem Speicherzellenarray 221 von 4. Obgleich 5 ein Beispiel mit 6 Wortleitungen und Speicherzellen veranschaulicht, ist dies nur eine Veranschaulichung, und es kann eine beliebige Anzahl von Wortleitungen und Speicherzellen verwendet werden.
  • Der Speicherblock BLKi kann mehrere Zellen-Strings CS11 bis CS41 und CS12 bis CS42 umfassen. Die mehreren Zellen-Strings CS11 bis CS41 und CS12 bis CS42 können in Spalten- und Zeilenrichtung angeordnet sein, um Spalten und Zeilen zu bilden. Jeder der Zellen-Strings CS11 bis CS41 und CS12 bis CS42 kann einen Erdungsauswahltransistor (Ground Select Transistor) GST, Speicherzellen MC1 bis MC6 und einen String-Auswahltransistor (String Select Transistor) SST umfassen. Der Erdungsauswahltransistor GST, die Speicherzellen MC1 bis MC6 und der String-Auswahltransistor SST, die in jedem der Zellen-Strings CS11 bis CS41 und CS12 bis CS42 enthalten sind, können in einer Höhenrichtung im Wesentlichen senkrecht zu einem Substrat gestapelt sein.
  • Die Spalten der mehreren Zellen-Strings CS11 bis CS41 und CS12 bis CS42 können jeweils mit verschiedenen String-Auswahlleitungen SSL1 bis SSL4 verbunden sein. Zum Beispiel können die String-Auswahltransistoren SST der Zellen-Strings CS11 und CS12 gemeinsam mit der String-Auswahlleitung SSL1 verbunden sein. Die String-Auswahltransistoren SST der Zellen-Strings CS21 und CS22 können gemeinsam mit der String-Auswahlleitung SSL2 verbunden sein. Die String-Auswahltransistoren SST der Zellen-Strings CS31 und CS32 können gemeinsam mit der String-Auswahlleitung SSL3 verbunden sein. Die String-Auswahltransistoren SST der Zellen-Strings CS41 und CS42 können gemeinsam mit der String-Auswahlleitung SSL4 verbunden sein.
  • Die Zeilen der mehreren Zellen-Strings CS11 bis CS41 und CS12 bis CS42 können mit verschiedenen Bitleitungen BL1 bzw. BL2 verbunden sein. Zum Beispiel können die String-Auswahltransistoren SST der Zellen-Strings CS11 bis CS41 gemeinsam mit der Bitleitung BL1 verbunden sein. Die String-Auswahltransistoren SST der Zellen-Strings CS12 bis CS42 können gemeinsam mit der Bitleitung BL2 verbunden sein.
  • Die Spalten der mehreren Zellen-Strings CS11 bis CS41 und CS12 bis CS42 können jeweils mit verschiedenen Erdungsauswahlleitungen GSL1 bis GSL4 verbunden sein. Zum Beispiel können die Erdungsauswahltransistoren GST der Zellen-Strings CS11 und CS12 gemeinsam mit der Erdungsauswahlleitung GSL1 verbunden sein. Die Erdungsauswahltransistoren GST der Zellen-Strings CS21 und CS22 können gemeinsam mit der Erdungsauswahlleitung GSL2 verbunden sein. Die Erdungsauswahltransistoren GST der Zellen-Strings CS31 und CS32 können gemeinsam mit der Erdungsauswahlleitung GSL3 verbunden sein. Die Erdungsauswahltransistoren GST der Zellen-Strings CS41 und CS42 können gemeinsam mit der Erdungsauswahlleitung GSL4 verbunden sein.
  • Die Speicherzellen, die auf derselben Höhe von dem Substrat (oder den Erdungsauswahltransistoren GST) angeordnet sind, können gemeinsam mit einer einzelnen Wortleitung verbunden sein, und die Speicherzellen, die auf verschiedenen Höhen von dem Substrat angeordnet sind, können jeweils mit verschiedenen Wortleitungen WL1 bis WL6 verbunden sein. Zum Beispiel können die Speicherzellen MC1 gemeinsam mit der Wortleitung WL1 verbunden sein. Die Speicherzellen MC2 können gemeinsam mit der Wortleitung WL2 verbunden sein. Die Speicherzellen MC3 können gemeinsam mit der Wortleitung WL3 verbunden sein. Die Speicherzellen MC4 können gemeinsam mit der Wortleitung WL4 verbunden sein. Die Speicherzellen MC5 können gemeinsam mit der Wortleitung WL5 verbunden sein. Die Speicherzellen MC6 können gemeinsam mit der Wortleitung WL6 verbunden sein. Die Erdungsauswahltransistoren GST der Zellen-Strings CS11 bis CS41 und CS12 bis CS42 können gemeinsam mit der gemeinsame Source-Leitung CSL verbunden sein.
  • Neuronaler Netzwerk-Decodierer
  • 6 zeigt ein Beispiel einer Speichervorrichtung 600 mit einem neuronalen Netzwerk-Decodierer 625 gemäß Aspekten der vorliegenden Offenbarung. Ausführungsformen der vorliegenden Offenbarung verwenden einen polaren Flashneuronalen Netzwerk-Decodierer.
  • Die Speichervorrichtung 600 kann Informationen für verschiedene Programme und Anwendungen auf einer Computervorrichtung speichern. Zum Beispiel kann der Speicher Daten zum Betreiben eines Betriebssystems umfassen. Der Speicher kann sowohl flüchtigen Speicher als auch nicht-flüchtigen Speicher umfassen. Der flüchtige Speicher kann Direktzugriffsspeicher (RAM) umfassen, und der nicht-flüchtige Speicher kann Nurlesespeicher (ROM), Flash-Speicher, elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM), digitales Band, ein Festplattenlaufwerk (Hard Disk Drive, HDD) und ein Festkörperlaufwerk (Solid State Drive, SSD) umfassen. Der Speicher kann eine beliebige Kombination von lesbaren und/oder beschreibbaren flüchtigen Speichern und/oder nicht-flüchtigen Speichern sowie andere mögliche Speichervorrichtungen umfassen.
  • Gemäß einer Ausführungsform umfasst der neuronale Netzwerk-Decodierer 625 ein Mehrschicht-Perzeptron (Multi-Layer Perceptron, MLP). Ein MLP ist ein vorwärts gekoppeltes neuronales Netz (Feed Forward Neural Network), das in der Regel aus mehreren Schichten von Perzeptronen besteht. Jede einzelne Perzeptronenschicht kann eine Eingabeschicht, eine oder mehrere verborgene Schichten und eine Ausgabeschicht umfassen. Jeder Knoten kann eine nichtlineare Aktivierungsfunktion umfassen. Ein MLP kann mit Rückausbreitung (Backpropagation) trainiert werden (das heißt Berechnung des Gradienten der Verlustfunktion in Bezug auf die Parameter).
  • Gemäß verschiedenen Ausführungsformen kann die Speichervorrichtung 600 ein Signal von einem physischen Kanal empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert wurden. In einigen Beispielen umfasst der physische Kanal eine NAND-Speichervorrichtung 600. Die Speichervorrichtung 600 kann auch Spannungspegel aus der NAND-Speichervorrichtung 600 detektieren, wobei die detektierten Spannungspegel eine verrauschte Realisierung des modulierten Symbols umfassen.
  • In einigen Beispielen umfasst das modulierte Symbol eine Kanaleingabe in die NAND-Speichervorrichtung 600, und das Signal umfasst eine Kanalausgabe aus der NAND-Speichervorrichtung 600. Die Speichervorrichtung 600 kann auch Testsymbole in den NAND-Speicher programmieren und Spannungspegel des NAND-Speichers detektieren, wobei die Wahrscheinlichkeitsdaten auf einer bedingten Wahrscheinlichkeit des Detektierens der Spannungspegel vor dem Hintergrund jedes der Testsymbole beruhen.
  • Somit kann die Speichervorrichtung 600 einen Spannungspegel aus der Speichervorrichtung 600 lesen. In einigen Beispielen entspricht der aus der Speichervorrichtung 600 gelesene Spannungspegel einer verrauschten Version eines Symbols aus dem Satz modulierter Symbole. Die Speichervorrichtung 600 kann einen Codierer 605, eine Modulationskomponente 610, eine Skalierungskomponente 615, Speicherzellen 620 und einen Decodierer 625 umfassen.
  • Der Codierer 605 kann die Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes codieren. Während des Trainings kann der Codierer 605 die Grundwahrheits-Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes codieren. In einigen Beispielen umfasst das Fehlerkorrekturcodierregime ein polares Codierregime. Der Codierer 605 kann eine Codierkomponente umfassen, die zum Codieren von Informationsbits eingerichtet ist, um die codierten Informationsbits zu erzeugen.
  • Die Fehlerkorrekturcodierungs (ECC)- und Decodieroperationen können an einem Daten-Stream durchgeführt werden, um Kommunikationsfehler wie zum Beispiel Interferenzen oder Rauschen zu korrigieren. Ein polarer Code ist ein linearer Blockfehlerkorrekturcode, der auf einer mehrfach rekursiven Verkettung eines kurzen Kernel-Codes basiert, der den physischen Kanal in mehrere virtuelle äußere Kanäle transformiert. Die virtuellen Kanäle haben allgemein entweder eine hohe Zuverlässigkeit oder eine geringe Zuverlässigkeit (das heißt, sie polarisieren). Datenbits werden den zuverlässigsten Kanälen zugewiesen, und unzuverlässige Kanäle werden „eingefroren“ oder auf 0 gesetzt.
  • Die Modulationskomponente 610 kann ein Modulationsregime auf die codierten Informationsbits anwenden, um das modulierte Symbol zu erzeugen. Zum Beispiel kann das Auswählen der Programmierspannung einer Zelle durch einen Impulsamplitudenmodulations (Pulse Amplitude Modulation, PAM)-Algorithmus erfolgen, wobei codierte Bits in Gruppen mit einer Anzahl von Bits pro Zelle aufgeteilt werden. Zum Beispiel beträgt bei Triple-Level-Zellen (Triple Level Cells, TLC) die Anzahl der Bits pro Zelle 3. Jede Gruppe von Zellen wird als ein Symbol bezeichnet. Zum Beispiel ist ein Symbol mit Bits 010 gleich 2. Für N-Bits pro Zelle wird der V-te Dynamikbereich in 2N Zielspannungen aufgeteilt. Für 3-Bits pro Zelle wird der V-te Dynamikbereich in 8 Zielspannungen aufgeteilt. Jede Zielspannung wird mit Hilfe von Grey-Code auf ein Symbol abgebildet, wobei sich nur ein einziges Bit zwischen benachbarten Zielspannungen ändert. Wenn der Dynamikbereich zwischen -3 V und 4 V liegt, so kann zum Beispiel eine Modulation von -3 V gleich 111, -2 V gleich 110, -1 V gleich 100, 0 V gleich 101, 1 V gleich 001, 2 V gleich 000, 3 V gleich 010 und 4 V gleich 011 verwendet werden.
  • Die Skalierungskomponente 615 kann dafür eingerichtet sein, die Ausgabe der Modulationskomponente 610 auf der Grundlage eines dynamischen Spannungsbereichs der Speicherzellen 620 zu skalieren. Die Speicherzellen 620 können dafür eingerichtet sein, codierte Informationsbits zu speichern, wie oben unter Bezug auf die 1-5 beschrieben.
  • Der Decodierer 625 kann die Informationsbits mit einem neuronalen Netzwerk-Decodierer 625 decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden. In einigen Beispielen umfasst das Fehlerkorrekturcodierregime ein polares Codierregime. In einigen Beispielen basiert das modulierte Symbol auf einem Phase-Amplitude Modulation (PAM)-Regime oder einem Binary Phase Shift Keying (BPSK)-Modulationsregime.
  • Der Decodierer 625 kann Wahrscheinlichkeitsinformationen 630, einen Merkmalsextrahierer 635 und ein ANN 640 umfassen. Der Merkmalsextrahierer 635 kann Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers 635 extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die aus dem physischen Kanal erfasst wurden. In einigen Beispielen umfassen die aus dem physischen Kanal erfassten Wahrscheinlichkeitsdaten eine oder mehrere Wahrscheinlichkeitsmassefunktionen. In einigen Beispielen gehen die Wahrscheinlichkeitsdaten nicht von einem Additive White Gaussian Noise (AWGN)-Modell aus.
  • Der Merkmalsextrahierer 635 kann einen Satz bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes identifizieren, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt. Der Merkmalsextrahierer 635 kann auch Merkmale aus den Spannungspegeln auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen extrahieren. Somit kann der Merkmalsextrahierer 635 dafür eingerichtet sein, Merkmale aus gelesenen Spannungspegeln auf der Grundlage von Wahrscheinlichkeitsdaten zu extrahieren, die für die Speichervorrichtung 600 erfasst wurden.
  • Ausführungsformen des neuronalen Netzwerk-Decodierers 625 umfassen ein künstliches neuronales Netz (Artificial Neural Network, ANN). Ein ANN ist eine Hardware- oder eine Softwarekomponente, die eine Anzahl verbundener Knoten (auch als künstliche Neuronen bekannt) umfasst, die in etwa den Neuronen im menschlichen Gehirn entsprechen können. Jede Verbindung, oder Rand, kann ein Signal von einem Knoten zu einem anderen übertragen (wie die physischen Synapsen in einem Gehirn). Wenn ein Knoten ein Signal empfängt, so kann er das Signal verarbeiten und dann das verarbeitete Signal an andere verbundene Knoten übertragen. In einigen Fällen umfassen die Signale zwischen Knoten reelle Zahlen, und die Ausgabe jedes Knotens kann durch eine Funktion der gewichteten Summe seiner Eingaben berechnet werden. Jedem Knoten und jedem Rand können eine oder mehrere Knotengewichte zugeordnet sein, die bestimmen, wie das Signal verarbeitet und übertragen wird.
  • Während des Trainingsprozesses können diese Gewichte eingestellt werden, um die Genauigkeit des Ergebnisses zu verbessern (das heißt durch Minimierung einer Verlustfunktion, die in gewisser Weise der Differenz zwischen dem momentanen Ergebnis und dem Zielergebnis entspricht). Die Gewichtung eines Randes kann die Stärke des zwischen Knoten übertragenen Signals erhöhen oder verringern. In einigen Fällen können Knoten eine Schwelle haben, unterhalb der ein Signal überhaupt nicht übertragen wird. Die Knoten können auch zu Schichten aggregiert werden. Verschiedene Schichten können unterschiedliche Transformationen an ihren Eingaben durchführen. Die anfängliche Schicht kann als die Eingabeschicht bezeichnet werden, und die letzte Schicht kann als die Ausgabeschicht bezeichnet werden. In einigen Fällen können Signale bestimmte Schichten mehrfach durchlaufen.
  • Decodierprozess
  • 7 zeigt ein Beispiel eines Prozesses zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz gemäß Aspekten der vorliegenden Offenbarung. In einigen Beispielen können diese Operationen durch ein System ausgeführt werden, das einen Prozessor umfasst, der einen Satz Codes zum Steuern von Funktionselementen einer Vorrichtung ausführt. Zusätzlich oder alternativ können die Prozesse unter Verwendung von Spezial-Hardware ausgeführt werden. Allgemein können diese Operationen gemäß den beschriebenen Verfahren und Prozessen gemäß Aspekten der vorliegenden Offenbarung durchgeführt werden. Zum Beispiel können die Operationen aus verschiedenen Teilschritten bestehen oder können in Verbindung mit anderen im vorliegenden Text beschriebenen Operationen ausgeführt werden.
  • In Operation 700 empfängt das System ein Signal von einem physischen Kanal, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert wurden. In einigen Fällen können sich die Operationen dieses Schrittes auf eine Speichervorrichtung beziehen oder durch eine Speichervorrichtung ausgeführt werden, wie mit Bezug auf 6 beschrieben.
  • Für n-Bits pro Zelle (nbpc) Speichervorrichtung und Codelänge n wird ein Codewort in n c e l l s = c e i l ( n n b p c )
    Figure DE102020120211A1_0001
    Speicherzellen gespeichert. Jede Zelle j hat einen Spannungsablesewert Vj. Für jede Zelle2n_bpc werden Histogramme P(Vj|Li) offline erstellt und online ausgewertet, wobei Li der i-te Pegel i∈{0,1,... 2^ n_bpc - 1}, j∈{1,2,... ncells} ist. Hier und in der gesamten vorliegenden Offenbarung kann der Begriff „Pegel“ in einem allgemeinen Sinne als Beispiel für ein Symbol verwendet werden. Die Pegel kann sich zum Beispiel auf eine Kombination von Spannungspegeln über eine oder mehrere Zellen hinweg beziehen.
  • Der Merkmalsextrahierer berechnet n_cells * 2n_bpc Wahrscheinlichkeiten {P(Vj |Li)} j = 1: n_cells ; i = 0: 2^n_bpc - 1. Zusätzlich berechnet der Merkmalsextrahierer einen Wortleitungsindex, einen P/E-Zyklus-Index, eine Retentionszeit und einen Pfeilerindex. Die Wahrscheinlichkeiten können mit Hilfe von Histogrammen ausgewertet werden, wobei die Histogramme offline berechnet werden.
  • In Operation 705 extrahiert das System Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die aus dem physischen Kanal erfasst wurden. In einigen Fällen können sich die Operationen dieses Schrittes auf einen Merkmalsextrahierer beziehen oder durch einen Merkmalsextrahierer ausgeführt werden, wie mit Bezug auf 6 beschrieben.
  • Die Merkmalsextraktion kann ein Online-Prozess sein (das heißt, er wird durchgeführt, wenn Daten aus dem Speicher gelesen werden sollen), wobei Vj angesichts einer neuen Messung Vj gemäß dem Spannungswert auf ein Spannungsbin Bm quantisiert wird, wobei m∈{1,2,...M}. Jedes Bin repräsentiert alle Spannungsmessungen zwischen gewissen Unter- und Obergrenzen: Bm-1 ≤ Vj < Bm. Die Anzahl von Bins, M, ist konfigurierbar und definiert die Spannungsauflösung. Die Spannung Vj wird in 2n_bpc Wahrscheinlichkeitsmassefunktionen ausgewertet, und ein Vektor von 2n_bpc Elementen [ P ( V j B m | L 0 ) , P ( V j B m | L 1 ) , P ( V j B m | L { 2 n _ b p c 1 } ) ]
    Figure DE102020120211A1_0002
    wird erzeugt. Jedes Element ist eine skalare Zahl. Der Merkmalsvektor ist die Eingabe in das Vorhersagemodell (neuronales Netz).
  • Histogrammwerte können vor der Verwendung so normalisiert werden, dass jedes Bin keine einfache Zählung darstellt (das heißt, wie viele Sampels in dem Verband angesichts eines bestimmten Symbols in dieses Bin fielen). Vielmehr repräsentiert es ein Verhältnis zwischen dieser Zählung und der Gesamtzählung (das heißt eine Anzahl von Sampels, die ein gegebenes Symbol erhalten haben). Durch diese Normalisierung wird ein Wahrscheinlichkeitsvektor mit M Elementen erzeugt, dessen Summe 1 ist.
  • Die Prozesse des Erfassens der Verbände und des Erstellens der Wahrscheinlichkeitsmassefunktion werden einmalig und offline durchgeführt; die Merkmalsextraktion wird wiederholt online durchgeführt. Die Rohspannungsmessung Vj und der Wahrscheinlichkeitsmassefunktionsvektor können verwendet werden, um einen neuen 2n_bpc + 1 Elemente-Merkmalsvektor zu erzeugen.
  • In Operation 710 decodiert das System die Informationsbits mit einem neuronalen Netzwerk-Decodierer, wobei die extrahierten Merkmale als Eingabe verwendet werden. In einigen Fällen können sich die Operationen dieses Schrittes auf einen Decodierer beziehen oder durch diesen durchgeführt werden, wie mit Bezug auf 6 beschrieben.
  • Decodierer-Training
  • 8 zeigt ein Beispiel eines Prozesses zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz gemäß Aspekten der vorliegenden Offenbarung. In einigen Beispielen können diese Operationen durch ein System ausgeführt werden, das einen Prozessor umfasst, der einen Satz Codes zum Steuern von Funktionselementen einer Vorrichtung ausführt. Zusätzlich oder alternativ können die Prozesse unter Verwendung von Spezial-Hardware ausgeführt werden. Allgemein können diese Operationen gemäß den beschriebenen Verfahren und Prozessen gemäß Aspekten der vorliegenden Offenbarung durchgeführt werden. Zum Beispiel können die Operationen aus verschiedenen Teilschritten bestehen oder können in Verbindung mit anderen im vorliegenden Text beschriebenen Operationen ausgeführt werden.
  • Das Training eines Decodierers kann gemäß dem folgenden Algorithmus beschrieben werden:
    Figure DE102020120211A1_0003
  • Somit erstellt das System in Operation 800 einen markierten Trainingssatz, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren. In einigen Fällen können sich die Operationen dieses Schritts auf eine Trainingskomponente beziehen oder durch diese ausgeführt werden.
  • In Operation 805 identifiziert das System einen Satz bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt. In einigen Fällen können sich die Operationen dieses Schrittes auf einen Merkmalsextrahierer beziehen oder durch einen Merkmalsextrahierer ausgeführt werden, wie mit Bezug auf 6 beschrieben.
  • In Operation 810 liest das System einen Spannungspegel aus einer Speichervorrichtung. In einigen Fällen können sich die Operationen dieses Schrittes auf eine Speichervorrichtung beziehen oder durch eine Speichervorrichtung ausgeführt werden, wie mit Bezug auf 6 beschrieben.
  • In Operation 815 extrahiert das System Merkmale aus den Spannungspegeln auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen. In einigen Fällen können sich die Operationen dieses Schrittes auf einen Merkmalsextrahierer beziehen oder durch einen Merkmalsextrahierer ausgeführt werden, wie mit Bezug auf 6 beschrieben.
  • In Operation 820 wendet das System einen neuronalen Netzwerk-Decodierer auf die Merkmale an, um vorhergesagte Informationsbits zu erzeugen, In einigen Fällen können sich die Operationen dieses Schrittes auf einen Decodierer beziehen oder durch diesen durchgeführt werden, wie mit Bezug auf 6 beschrieben.
  • In Operation 825 vergleicht das System die vorhergesagten Informationsbits mit den Grundwahrheit-Informationsbits. In einigen Fällen können sich die Operationen dieses Schritts auf eine Trainingskomponente beziehen oder durch diese ausgeführt werden.
  • In Operation 830 aktualisiert das System den neuronalen Netzwerk-Decodierer auf der Grundlage des Vergleichs. In einigen Fällen können sich die Operationen dieses Schritts auf eine Trainingskomponente beziehen oder durch diese ausgeführt werden.
  • Für das Training des Erfassens der Sätze, das ein Offline-Prozess sein kann, werden Informationsbits {bj} generiert. Die Informationsbits werden dann zu Codewörtern {cj} codiert. Die Codewörter werden dann gruppiert und zu einem Symbol {Sj} moduliert. Das Symbol wird dann in eine NAND-Zelle programmiert, und dann wird die Spannung {Vj} der Zelle gelesen. Für jede Zelle wird ein Paar (Vj, Sj) protokolliert, wobei Vj die gelesene Spannung ist und Sj das in die Spannung programmierte Symbol ist.
  • Um eine Wahrscheinlichkeitsmassefunktion zu erzeugen, was auch ein Offline-Prozess sein kann, wird der Spannungsdynamikbereich der Verbandspaare (Vj, Sj) in Bins aufgeteilt. Jedes Bin repräsentiert alle Spannungsmessungen zwischen gewissen Unter- und Obergrenzen: Bm-1 ≤ Vj < Bm, wobei j ein Sampel-Index ist und m der Bin-Index ist. 1 ≤ m ≤ M. Die Anzahl der Bins M ist konfigurierbar und stellt die Spannungsauflösung ein. Für S0 der Wahrscheinlichkeitsmassefunktion werden Verbandpaare mit Si = 0 erfasst, um die bedingte Wahrscheinlichkeitsmassefunktion (Histogramm) von P(V|S0) zu erzeugen. Dies bezeichnet eine Anzahl von Spannungsmessungen in einem spezifischen Bin Bm für jedes Bin unter der Maßgabe, dass eine Zelle auf S0 programmiert wurde. Die Länge des Wahrscheinlichkeitsmassefunktionsvektors wird durch die Anzahl von Spannungsbins, M, dargestellt.
  • Für S1 der Wahrscheinlichkeitsmassefunktion werden Verbandpaare mit Si = 1 erfasst, um die bedingte Wahrscheinlichkeitsmassefunktion (Histogramm) von P(V|S1) zu erzeugen. Dies bezeichnet die Anzahl von Spannungsmessungen in einem spezifischen Bin Bj für jedes Bin unter der Maßgabe, dass die Zelle auf S1 programmiert wurde.
  • Der Prozess wird fortgesetzt, bis S { 2 n _ b p c 1 } ,
    Figure DE102020120211A1_0004
    wobei n_bpc die Anzahl der Bits pro Zelle. ist. Infolge dessen gibt es 2n_bpc Wahrscheinlichkeitsmassefunktionen, von denen jede ein Vektor der Größe M ist.
  • Anstatt also Rohspannungen zu verwenden, die in den Decodierer eingespeist werden, kann eine schnellere und genauere Konvergenz erreicht werden, indem Likelihood-Wahrscheinlichkeiten der Spannungsmessung bereitgestellt werden, wobei jeder mögliche logische Pegel gegeben ist.
  • Zum Beispiel wird ein (7,8)-Code mit 3 Bits/Zelle verwendet. Bei Verwendung eines Vanilla-Spannungsdecodierers (Vanilla Voltage, VV-Decodierers) wird jedes Codewort in 3 Zellen gespeichert; daher werden in den Vanilla-Decodierer 3 Spannungen eingespeist. Alternativ dazu wird ein Wahrscheinlichkeitsspannungsdecodierer (Likelihood Voltage, LV-Decodierer) durch 24 Werte bereitgestellt, wodurch die Spannungsverteilung in jedem Pegel verwendet wird. Die Histogramme werden offline erstellt und exakt auf die Spannungsmessungen während der Verband-/Testzeit ausgewertet.
  • Die Histogramme berücksichtigen zusätzliche Daten wie zum Beispiel Wortleitungsindex, P/E-Zyklusindex, Retentionszeit und Pfeilerindex. Einige zusätzliche Daten sind in der Praxis möglicherweise nicht verfügbar. Daher können die Histogramme als Teil einer Offline-Vorverarbeitungsstufe vor der Trainings- und Testzeit erstellt werden. Diese Informationen können bereits durch den LLR-Decodierer erstellt werden, um die LLR pro Bit zu berechnen, damit beide Decodierer dieselben Statistiken nutzen können. Eine andere Variante dieses Merkmalsvektors, ein sogenannter Log-Likelihood-Voltage-Decodierer (LLV-Decodierer), kann die Log-Likelihood-Wahrscheinlichkeiten in Betracht ziehen.
  • Dementsprechend stellt die vorliegende Offenbarung einen neuronalen Netzwerk-Decodierer vor, der für ein Flash-Speicher-Szenario verwendet werden kann. Das Merkmalsextrahierermodul reduziert die Konvergenzzeit im Vergleich zu einer Roheingabe eines verrauschten Signals. Beispielhafte Architekturen des neuronalen Netzwerk-Decodierers verwenden PAM-Modulation oder können für BPSK-Modulation ausgelegt sein. Die Histogramm-Wahrscheinlichkeiten erhöhen die Decodierer-Reichweite für einen NAND-Kanal oder für einen AWGN-Kanal.
  • Die vorliegende Offenbarung enthält die folgenden Ausführungsformen.
  • Es wird ein Verfahren zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Ausführungsformen des Verfahrens können ein Signal von einem physischen Kanal empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert sind, Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die von dem physischen Kanal erfasst wurden, und die Informationsbits mit einem neuronalen Netzwerk-Decodierer decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden.
  • Es wird eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Die Vorrichtung kann einen Prozessor, einen Speicher in elektronischer Kommunikation mit dem Prozessor, und in dem Speicher gespeicherte Instruktionen umfassen. Die Instruktionen können geeignet sein, den Prozessor zu veranlassen, ein Signal von einem physischen Kanal empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert sind, Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die von dem physischen Kanal erfasst wurden, und die Informationsbits mit einem neuronalen Netzwerk-Decodierer decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden.
  • Es wird ein nicht-transitorisches computerlesbares Medium zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. In einigen Beispielen umfasst der Code Instruktionen, die durch einen Prozessor ausgeführt werden können, um: ein Signal von einem physischen Kanal zu empfangen, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert sind, Merkmale aus dem Signal unter Verwendung eines Merkmalsextrahierers zu extrahieren, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die von dem physischen Kanal erfasst wurden, und die Informationsbits mit einem neuronalen Netzwerk-Decodierer zu decodieren, wobei die extrahierten Merkmale als Eingabe verwendet werden.
  • In einigen Beispielen umfasst der physische Kanal eine NAND-Speichervorrichtung.
  • Einige Beispiele des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems, die oben beschrieben wurden, können des Weiteren das Detektieren von Spannungspegeln von der NAND-Speichervorrichtung umfassen, wobei die detektierten Spannungspegel eine verrauschte Realisierung des modulierten Symbols umfassen.
  • In einigen Beispielen umfasst das modulierte Symbol eine Kanaleingabe in die NAND-Speichervorrichtung, und das Signal umfasst eine Kanalausgabe aus der NAND-Speichervorrichtung.
  • In einigen Beispielen umfassen die aus dem physischen Kanal erfassten Wahrscheinlichkeitsdaten eine oder mehrere Wahrscheinlichkeitsmassefunktionen.
  • In einigen Beispielen gehen die Wahrscheinlichkeitsdaten nicht von einem Additive White Gaussian Noise (AWGN)-Modell aus.
  • Einige Beispiele des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems, die oben beschrieben wurden, können des Weiteren das Programmieren von Testsymbolen in die NAND-Speichervorrichtung umfassen Einige Beispiele können des Weiteren das Detektieren von Spannungspegeln der NAND-Speichervorrichtung umfassen, wobei die Wahrscheinlichkeitsdaten auf einer bedingten Wahrscheinlichkeit des Detektierens der Spannungspegel vor dem Hintergrund jedes der Testsymbole beruhen.
  • Einige Beispiele des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems, die oben beschrieben wurden, können des Weiteren das Codieren der Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes umfassen. Einige Beispiele können des Weiteren das Anwenden eines Modulationsregimes auf die codierten Informationsbits umfassen, um das modulierte Symbol zu erzeugen.
  • In einigen Beispielen umfasst das Fehlerkorrekturcodierregime ein polares Codierregime.
  • In einigen Beispielen basiert das modulierte Symbol auf einem Pulse-Amplitude Modulation (PAM)-Regime.
  • In einigen Beispielen basiert das modulierte Symbol auf einem Binary Phase Shift Keying (BPSK)-Modulationsregime.
  • Es wird ein Verfahren zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Ausführungsformen des Verfahrens können umfassen: Erstellen eines markierten Trainingssatzes, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren, Identifizieren mehrerer bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt, Lesen eines Spannungspegels aus einer Speichervorrichtung, Extrahieren von Merkmalen aus den Spannungspegeln mindestens teilweise auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen, Anwenden eines neuronalen Netzwerk-Decodierers auf die Merkmale, um vorhergesagte Informationsbits zu erzeugen, Vergleichen der vorhergesagten Informationsbits mit den Grundwahrheits-Informationsbits und Aktualisieren des neuronalen Netzwerk-Decodierers auf der Grundlage des Vergleichs.
  • Es wird eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. Die Vorrichtung kann einen Prozessor, einen Speicher in elektronischer Kommunikation mit dem Prozessor, und in dem Speicher gespeicherte Instruktionen umfassen. Die Instruktionen können geeignet sein, den Prozessor zu Folgendem zu veranlassen: Erstellen eines markierten Trainingssatzes, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren, Identifizieren mehrerer bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt, Lesen eines Spannungspegels aus einer Speichervorrichtung, Extrahieren von Merkmalen aus den Spannungspegeln mindestens teilweise auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen, Anwenden eines neuronalen Netzwerk-Decodierers auf die Merkmale, um vorhergesagte Informationsbits zu erzeugen, Vergleichen der vorhergesagten Informationsbits mit den Grundwahrheits-Informationsbits und Aktualisieren des neuronalen Netzwerk-Decodierers auf der Grundlage des Vergleichs.
  • Es wird ein nicht-transitorisches computerlesbares Medium zum Decodieren eines Fehlerkorrekturcodes mit einem neuronalen Netz beschrieben. In einigen Beispielen umfasst der Code Instruktionen, die durch einen Prozessor ausgeführt werden können zum: Erstellen eines markierten Trainingssatzes, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren, Identifizieren mehrerer bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt, Lesen eines Spannungspegels aus einer Speichervorrichtung, Extrahieren von Merkmalen aus den Spannungspegeln mindestens teilweise auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen, Anwenden eines neuronalen Netzwerk-Decodierers auf die Merkmale, um vorhergesagte Informationsbits zu erzeugen, Vergleichen der vorhergesagten Informationsbits mit den Grundwahrheits-Informationsbits und Aktualisieren des neuronalen Netzwerk-Decodierers auf der Grundlage des Vergleichs.
  • Einige Beispiele des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems, die oben beschrieben wurden, können des Weiteren das Berechnen eines Gradienten einer Kreuzentropie der vorhergesagten Informationsbits und der Grundwahrheits-Informationsbits umfassen, wobei der Vergleich auf dem Gradienten der Kreuzentropie basiert.
  • In einigen Beispielen entspricht der aus der Speichervorrichtung gelesene Spannungspegel einer verrauschten Version eines Symbols aus dem Satz modulierter Symbole.
  • Einige Beispiele des Verfahrens, der Vorrichtung, des nicht-transitorischen computerlesbaren Mediums und des Systems, die oben beschrieben wurden, können des Weiteren das Codieren der Grundwahrheits-Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes umfassen. Einige Beispiele können des Weiteren das Anwenden eines Modulationsregimes auf die codierten Grundwahrheits-Informationsbits umfassen, um modulierte Symbole zu erzeugen, wobei die Spannungspegel auf den modulierten Symbolen basieren.
  • In einigen Beispielen umfasst das Fehlerkorrekturcodierregime ein polares Codierregime.
  • Einige Beispiele der Speichervorrichtung und des Verfahrens, die oben beschrieben wurden, können darüber hinaus eine Codierkomponente enthalten, die dafür eingerichtet ist, Informationsbits zu codieren, um die codierten Informationsbits zu erzeugen. Einige Beispiele können darüber hinaus eine Modulationskomponente umfassen, die dafür eingerichtet ist, die codierten Informationsbits zu modulieren.
  • Einige Beispiele der Speichervorrichtung und des Verfahrens, die oben beschrieben wurden, können darüber hinaus eine Skalierungskomponente umfassen, die dafür eingerichtet ist, die Ausgabe der Modulationskomponente auf der Grundlage eines dynamischen Spannungsbereich der Speicherzellen zu skalieren.
  • In einigen Beispielen umfasst der neuronale Netzwerk-Decodierer eine oder mehrere voll verbundene Mehrschicht-Perzeptronen-Schichten (Multi-Layer Perceptron, MLP-Schichten).
  • Die Beschreibung und die Zeichnungen, die im vorliegenden Text enthalten sind, stellen beispielhafte Ausgestaltungen dar und repräsentieren nicht alle Implementierungen innerhalb des Schutzumfangs der Ansprüche. Zum Beispiel können die Operationen und Schritte neu angeordnet, kombiniert oder anderweitig modifiziert werden. Außerdem können Strukturen und Vorrichtungen in Form von Blockdiagrammen dargestellt werden, um die Beziehung zwischen Komponenten darzustellen und zu vermeiden, dass wesentliche Punkte der beschriebenen Konzepte in den Hintergrund treten. Ähnliche Komponenten oder Merkmale können die gleichen Namen tragen, können aber verschiedene Bezugszeichen haben, die verschiedenen Figuren entsprechen.
  • Einige Modifizierungen der Offenbarung sind dem Fachmann sofort ersichtlich, und die im vorliegenden Text definierten Prinzipien können auch auf andere Variationen angewendet werden, ohne den Schutzumfang der Offenbarung zu verlassen. Somit ist die Offenbarung nicht auf die hier beschriebenen Beispiele und Designs beschränkt; vielmehr ist ihr der umfassendste Interpretationsumfang zuzugestehen, der unter die hier offenbarten Prinzipien und neuartigen Merkmale fällt.
  • Die beschriebenen Verfahren können durch Vorrichtungen implementiert oder ausgeführt werden, die einen Allzweckprozessor, einen digitalen Signalprozessor (DSP), einen anwendungsspezifischen integrierten Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine sonstige programmierbare Logikvorrichtung, diskrete Gatter- oder Transistorlogik, diskrete Hardwarekomponenten oder eine beliebige Kombination davon umfassen. Ein Allzweckprozessor kann ein Mikroprozessor, ein konventioneller Prozessor, ein Controller, ein Mikrocontroller oder eine Zustandsmaschine sein. Ein Prozessor kann auch als eine Kombination von Computervorrichtungen implementiert werden (zum Beispiel eine Kombination aus einem DSP und einem Mikroprozessor, mehreren Mikroprozessoren, einem oder mehreren Mikroprozessoren in Verbindung mit einem DSP-Kern, oder eine andere derartige Ausgestaltung). Somit können die hier beschriebenen Funktionen in Hardware oder Software implementiert werden und können durch einen Prozessor, Firmware oder eine beliebige Kombination davon ausgeführt werden. Wenn sie in Software implementiert werden, die durch einen Prozessor ausgeführt wird, so können die Funktionen in Form von Instruktionen oder Code auf einem computerlesbaren Medium gespeichert sein.
  • Zu den computerlesbaren Medien gehören sowohl nicht-transitorische Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, die das Übertragen von Code oder Daten ermöglichen. Ein nicht-transitorisches Speichermedium kann jedes beliebige verfügbare Medium sein, auf das ein Computer zugreifen kann. Nicht-transitorische computerlesbare Medien können zum Beispiel Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM), Compact Disk (CD) oder anderen optischen Diskspeicher, magnetischen Diskspeicher oder sonstige andere nicht-transitorische Medium zum Transportieren oder Speichern von Daten oder Code umfassen.
  • Es können auch Verbindungskomponenten zu Recht als computerlesbare Medien bezeichnet werden. Wenn zum Beispiel Code oder Daten von einer Website, einem Server oder einer anderen räumlich abgesetzten Quelle über ein Koaxialkabel, ein Lichtleitkabel, eine verdrillte Zwillingsleitung, eine digitale Teilnehmerleitung (DSL) oder eine drahtlose Technologie wie zum Beispiel Infrarot-, Funk- oder Mikrowellensignale gesendet werden, dann fallen das Koaxialkabel, das Lichtleitkabel, die verdrillte Zwillingsleitung, die DSL oder die drahtlose Technologie ebenfalls unter die Definition von „Medium“. Auch Kombinationen von Medien fallen unter die Deutung von „computerlesbaren Medien“.
  • In dieser Offenbarung und den folgenden Ansprüchen bezeichnet das Wort „oder“ eine inklusive Liste, dergestalt, dass zum Beispiel die Liste von X, Y oder Z X oder Y oder Z oder XY oder XZ oder YZ oder XYZ bedeutet. Auch die Formulierung „auf der Grundlage von“ wird nicht so verwendet, dass ein geschlossener Satz von Bedingungen gemeint wäre. Zum Beispiel kann ein Schritt, der als „auf der Grundlage von Bedingung A“ beschrieben wird, sowohl auf Bedingung A als auch auf Bedingung B basieren. Mit anderen Worten: Der Ausdruck „auf der Grundlage von“ ist so zu verstehen, dass er „mindestens teilweise auf der Grundlage von“ bedeutet. Des Weiteren meinen die Wörter „ein/einer/eine“ „mindestens eines“.

Claims (20)

  1. Verfahren zur Fehlerkorrektur, umfassend: Empfangen eines Signals von einem physischen Kanal, wobei das Signal auf einem modulierten Symbol basiert, das Informationsbits darstellt, die unter Verwendung eines Fehlerkorrekturcodierregimes codiert wurden; Extrahieren von Merkmalen aus dem Signal unter Verwendung eines Merkmalsextrahierers, der unter Verwendung von Wahrscheinlichkeitsdaten trainiert wurde, die aus dem physischen Kanal erfasst wurden; und Decodieren der Informationsbits mit einem neuronalen Netzwerk-Decodierer, wobei die extrahierten Merkmale als Eingabe verwendet werden.
  2. Verfahren nach Anspruch 1, wobei: der physische Kanal eine NAND-Speichereinheit umfasst.
  3. Verfahren nach Anspruch 2, des Weiteren umfassend: Detektieren von Spannungspegeln aus der NAND-Speichervorrichtung, wobei die detektierten Spannungspegel eine verrauschte Realisierung des modulierten Symbols umfassen.
  4. Verfahren nach Anspruch 2, wobei: das modulierte Symbol eine Kanaleingabe in die NAND-Speichervorrichtung umfasst und das Signal eine Kanalausgabe aus der NAND-Speichervorrichtung umfasst.
  5. Verfahren nach Anspruch 2, wobei: wobei die aus dem physischen Kanal erfassten Wahrscheinlichkeitsdaten eine oder mehrere Wahrscheinlichkeitsmassefunktionen umfassen.
  6. Verfahren nach Anspruch 2, wobei: die Wahrscheinlichkeitsdaten nicht von einem additiven weißen Rauschen Gauss (Additive White Gaussian Noise (AWGN))-Modell ausgehen.
  7. Verfahren nach Anspruch 1, des Weiteren umfassend: Programmieren von Testsymbolen in eine NAND-Speichervorrichtung; und Detektieren von Spannungspegeln der NAND-Speichervorrichtung, wobei die Wahrscheinlichkeitsdaten auf einer bedingten Wahrscheinlichkeit des Detektierens der Spannungspegel vor dem Hintergrund jedes der Testsymbole beruhen.
  8. Verfahren nach Anspruch 1, des Weiteren umfassend: Codieren der Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes; und Anwenden des Modulationsregimes auf die codierten Informationsbits, um das modulierte Symbol zu erzeugen.
  9. Verfahren nach Anspruch 1, wobei: das Fehlerkorrekturcodierregime ein polares Codierregime umfasst.
  10. Verfahren nach Anspruch 1, wobei: das modulierte Symbol auf einem Pulse-Amplitude Modulation (PAM)-Regime basiert.
  11. Verfahren nach Anspruch 1, wobei: das modulierte Symbol auf einem Binary Phase Shift Keying (BPSK)-Modulationsregime basiert.
  12. Verfahren zum Trainieren eines neuronalen Netzes zur Fehlerkorrektur, umfassend: Erstellen eines markierten Trainingssatzes, der Grundwahrheits-Informationsbits und Spannungspegel, die aus einer Speichervorrichtung gelesen wurden, umfasst, wobei die Spannungspegel auf einer Codierung der Grundwahrheits-Informationsbits und einer Programmierung der codierten Grundwahrheits-Informationsbits in die Speichervorrichtung unter Verwendung eines Satzes von Modulationssymbolen basieren; Identifizieren mehrerer bedingter Wahrscheinlichkeitsmassefunktionen auf der Grundlage des markierten Trainingssatzes, wobei jede der bedingten Wahrscheinlichkeitsmassefunktionen eine Spannungspegelwahrscheinlichkeit für eines des Satzes von Modulationssymbolen beschreibt; Lesen eines Spannungspegels aus der Speichervorrichtung; Extrahieren von Merkmalen aus den Spannungspegeln mindestens teilweise auf der Grundlage der bedingten Wahrscheinlichkeitsmassefunktionen; Anwenden eines neuronalen Netzwerk-Decodierers auf die Merkmale, um vorhergesagte Informationsbits zu erzeugen; Vergleichen der vorhergesagten Informationsbits mit den Grundwahrheits-Informationsbits; und Aktualisieren des neuronalen Netzwerk-Decodierers auf der Grundlage des Vergleichs.
  13. Verfahren nach Anspruch 12, des Weiteren umfassend: Berechnen eines Gradienten einer Kreuzentropie der vorhergesagten Informationsbits und der Grundwahrheits-Informationsbits, wobei der Vergleich auf dem Gradienten der Kreuzentropie basiert.
  14. Verfahren nach Anspruch 12, wobei: der aus der Speichervorrichtung gelesene Spannungspegel einer verrauschten Version eines Symbols aus dem Satz modulierter Symbole entspricht.
  15. Verfahren nach Anspruch 12, des Weiteren umfassend: Codieren der Grundwahrheits-Informationsbits unter Verwendung eines Fehlerkorrekturcodierregimes; und Anwenden eines Modulationsregimes auf die codierten Grundwahrheits-Informationsbits, um modulierte Symbole zu erzeugen, wobei die Spannungspegel auf den modulierten Symbolen basieren.
  16. Verfahren nach Anspruch 12, wobei: das Fehlerkorrekturcodierregime ein polares Codierregime umfasst.
  17. Speichervorrichtung, wobei die Speichervorrichtung umfasst: mehrere Speicherzellen, die dafür eingerichtet sind, codierte Informationsbits zu speichern; einen Merkmalsextrahierer, der dafür eingerichtet ist, Merkmale aus gelesenen Spannungspegeln auf der Grundlage von für die Speichervorrichtung erfassten Wahrscheinlichkeitsdaten zu extrahieren; und einen neuronalen Netzwerk-Decodierer, der dafür eingerichtet ist, die codierten Informationen unter Verwendung der extrahierten Merkmale als Eingabe zu decodieren.
  18. Speichervorrichtung nach Anspruch 17, des Weiteren umfassend: eine Codierkomponente, die zum Codieren von Informationsbits eingerichtet ist, um die codierten Informationsbits zu erzeugen; und eine Modulationskomponente, die dafür eingerichtet ist, die codierten Informationsbits zu modulieren.
  19. Speichervorrichtung nach Anspruch 18, des Weiteren umfassend: eine Skalierungskomponente, die dafür eingerichtet ist, die Ausgabe der Modulationskomponente auf der Grundlage eines dynamischen Spannungsbereichs der Speicherzellen zu skalieren.
  20. Verfahren nach Anspruch 17, wobei der Neuronennetz-Decodierer eine oder mehrere voll verbundene Mehrschicht-Perzeptronen-Schichten (Multi-Layer Perceptron, MLP-Schichten) umfasst.
DE102020120211.3A 2020-06-03 2020-07-31 Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen Pending DE102020120211A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/891,565 US11527299B2 (en) 2020-06-03 2020-06-03 Polar neural network decoder for memory devices
US16/891,565 2020-06-03

Publications (1)

Publication Number Publication Date
DE102020120211A1 true DE102020120211A1 (de) 2021-12-09

Family

ID=78604911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020120211.3A Pending DE102020120211A1 (de) 2020-06-03 2020-07-31 Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen

Country Status (4)

Country Link
US (1) US11527299B2 (de)
KR (1) KR20210150966A (de)
CN (1) CN113762457A (de)
DE (1) DE102020120211A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4329202A1 (de) * 2021-05-25 2024-02-28 Samsung Electronics Co., Ltd. Auf neuronalem netzwerk basierender selbstkorrigierender min-sum-decodierer und elektronische vorrichtung damit
CN115866253B (zh) * 2023-02-27 2023-06-06 鹏城实验室 一种基于自调制的通道间变换方法、装置、终端及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749089B2 (en) * 2015-11-04 2017-08-29 Mitsubishi Electric Research Laboratories, Inc. Fast log-likelihood ratio (LLR) computation for decoding high-order and high-dimensional modulation schemes
US10713113B2 (en) * 2018-09-06 2020-07-14 Sabrina Barbato Solid state drive implementing polar encoding and successive cancellation list decoding
CN112334787A (zh) * 2018-12-13 2021-02-05 松下电器(美国)知识产权公司 发送装置、控制系统、以及发送方法
US11182288B2 (en) * 2019-02-20 2021-11-23 Marvell Asia Pte, Ltd. Decoding of high-density memory cells in a solid-state drive

Also Published As

Publication number Publication date
KR20210150966A (ko) 2021-12-13
CN113762457A (zh) 2021-12-07
US11527299B2 (en) 2022-12-13
US20210383887A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
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
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102013020712B4 (de) Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleiben-auf-0-oder-1-Fehlern
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102020120212A1 (de) Netzwerk zur automatischen Programmierspannungsauswahl
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE112018005505T5 (de) Verfahren und vorrichtung zur spezifikation von lese-spannungsversetzungen für einen lesebefehl
DE102020119694A1 (de) Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem
DE102013016681B4 (de) Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE102018105623A1 (de) Zustandsabhängige Abtastschaltungen und Abtastoperationen für Speichervorrichtungen
DE102020120211A1 (de) Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen
DE112017004156T5 (de) Speicherzellenstruktur
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE112020004922T5 (de) Speicherungsvorrichtung mit erhöhter beständigkeit
DE102013108456A1 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
EP3944152A2 (de) Mobile elektronische vorrichtung und verfahren zum programmieren von daten und zum lesen von daten aus einer speichervorrichtung
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
CN112582004A (zh) 存储器系统、执行噪声消除的方法和计算机程序产品
DE112019005391T5 (de) Optimierte datenorganisation für neuronale netze
DE102019135863B4 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren