DE102019119753A1 - Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität - Google Patents

Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität Download PDF

Info

Publication number
DE102019119753A1
DE102019119753A1 DE102019119753.8A DE102019119753A DE102019119753A1 DE 102019119753 A1 DE102019119753 A1 DE 102019119753A1 DE 102019119753 A DE102019119753 A DE 102019119753A DE 102019119753 A1 DE102019119753 A1 DE 102019119753A1
Authority
DE
Germany
Prior art keywords
code words
code
data
sub
word
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
DE102019119753.8A
Other languages
English (en)
Other versions
DE102019119753A9 (de
Inventor
Amit Berman
Ariel Doubchak
Avner Dor
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 DE102019119753A1 publication Critical patent/DE102019119753A1/de
Publication of DE102019119753A9 publication Critical patent/DE102019119753A9/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • H03M13/2915Product codes with an error detection code in one dimension
    • 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
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Ein Verfahren zum Speichern von Daten innerhalb einer Speichervorrichtung weist ein Empfangen (S31) von Daten, welche zu speichern sind auf. Die empfangenen Daten werden codiert (S32). Die codierten Daten werden innerhalb der Speichervorrichtung (410) gespeichert. Das Codieren (S32) der empfangenen Daten weist ein Codieren der Daten in zwei oder mehr Unter-Codeworte (13) auf. Jedes der zwei oder mehr Unter-Codeworte (13) weist eine Mehrzahl von äußeren Codeworten auf. Zwei oder mehr der Mehrzahl von äußeren Codeworten werden gruppiert, um ein größeres Codewort zu bilden, welches größer ist als jedes der Mehrzahl von äußeren Codeworten, und das größere Codewort wird konstruiert, um Fehler und/oder Löschungen zu korrigieren, welche durch die Mehrzahl von äußeren Codeworten individuell nicht korrigierbar sind.

Description

  • Diese Anmeldung beansprucht den Vorzug der am 25. Juni 2019 beim Patent- und Markenamt der Vereinigten Staaten eingereichten US-Patentanmeldung Nummer 16/452240, deren Offenbarung hierin in ihrer Gesamtheit durch Verweis miteingebunden ist.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich auf eine Fehlerkorrektur-Codierung und genauer auf ein generalisiertes verkettetes Fehlerkorrektur-Codierschema, welches Lokalität hat.
  • DISKUSSION DES STANDES DER TECHNIK
  • Fehlerkorrektur-Codierschemata wurden als ein Weg entwickelt, um eine genaue digitale Kommunikation über einen rauschigen Kanal sicherzustellen. Demnach kann, wenn der rauschige Kanal verursachen kann, dass übertragene Daten fehlen oder während der Übertragung geändert werden, eine Fehlerkorrektur-Codierung verwendet werden, um eine genaue Decodierung sicherzustellen, auch wo einige Daten fehlen oder geändert sind.
  • In jüngerer Zeit wurde eine Fehlerkorrektur-Codierung verwendet, um Daten innerhalb einer Speichervorrichtung zu speichern. Wenn es ebenso eine Wahrscheinlichkeit gibt, dass Daten, welche innerhalb Speicherzellen gespeichert sind, fehlen oder vor einem Gelesen-werden geändert werden können, kann eine Fehlerkorrektur-Codierung verwendet werden, um eine genaue Speicherung von Daten von innerhalb einer Speichervorrichtung sicherzustellen.
  • Ein gebräuchliches Schema für eine Fehlerkorrektur-Codierung sind Reed-Solomon(RC)-Codes. Gemäß dieser Herangehensweise wird ein Block von Daten als ein Satz von Elementen, welche als Symbol bekannt sind, repräsentiert. Eine Anzahl von Prüfsymbolen wird den Daten hinzugefügt, sodass unkorrekte oder fehlende Symbole bei einem Decodieren der Daten korrigiert werden können.
  • Ein anderes gebräuchliches Schema für eine Fehlerkorrektur-Codierung sind Low-Density Parity-Check(LDPC)-Codes. Gemäß dieser Herangehensweise werden Paritätsprüfsymbole zu den Daten hinzugefügt. Diese Paritätsprüfsymbole können unter Verwendung eines dünn besetzten bipartiten Graphen (engl. sparse bipartite graph) konstruiert werden.
  • In Fehlerkorrektur-Codeschemata wie den obigen werden die Daten- und Prüfsymbole zusammen in Ketten beziehungsweise Zeichenketten gruppiert, welche als Codeworte bekannt sind. Beim Decodieren muss im Allgemeinen ein gesamtes Codewort empfangen werden bevor irgendwelche der Daten darin decodiert werden können. Dies erzeugt zwei Kompromisse. Gemäß dem ersten Kompromiss kann ein Verwenden einer größeren Anzahl von Prüfsymbolen eine genaue Decodierung auch in dem Fall von mehreren Fehlern erlauben, ein Verwenden einer kleineren Anzahl von Prüfsymbolen aber kann weniger Aufwand erlauben und es demnach erlauben, mehr codierte Daten innerhalb einer Speichervorrichtung einer festen Größe zu speichern und kann ebenso eine schnellere Decodierung erlauben. Gemäß dem zweiten Kompromiss müssen, während längere Codeworte weniger Aufwand benötigen können, wodurch es erlaubt wird, dass mehr codierte Daten innerhalb einer Speichervorrichtung gespeichert werden, mehr Daten empfangen werden, bevor Daten decodiert werden können, was zu einer erhöhten Latenz beim Lesen von Daten von Speichervorrichtungen führt. Im Gegensatz dazu kann ein Verwenden kürzerer Codeworte die Latenz verringern, kann aber ebenso den Aufwand erhöhen, wodurch erlaubt wird, dass weniger Daten in eine Speichervorrichtung gespeichert werden und/oder mehr Berechnungsressourcen benötigt werden, um die Decodierung durchzuführen.
  • KURZFASSUNG
  • Ein Verfahren zum Speichern von Daten innerhalb einer Speichervorrichtung weist ein Empfangen von Daten, welche zu speichern sind, auf. Die empfangenen Daten werden codiert. Die codierten Daten werden innerhalb der Speichervorrichtung gespeichert. Ein Codieren der empfangenen Daten weist ein Codieren der Daten in zwei oder mehr Unter-Codeworte auf. Jedes der zwei oder mehreren Unter-Codeworte weist eine Mehrzahl von äußeren Codeworten auf. Zwei oder mehr der Mehrzahl von äußeren Codeworten werden gruppiert, um ein größeres Codewort zu bilden, welches größer ist als jedes der Mehrzahl von äußeren Codeworten, und das größere Codewort wird konstruiert, um Fehler und/oder Löschungen zu korrigieren, welche durch die Mehrzahl von äußeren Codeworten individuell nicht korrigierbar sind.
  • Ein Verfahren zum Abrufen von Daten innerhalb einer Speichervorrichtung weist ein Lesen von gespeicherten Daten aus einer Speichervorrichtung auf. Die gelesenen Daten werden decodiert. Das Decodieren der gelesenen Daten weist ein individuelles Decodieren von Unter-Codeworten der gelesenen Daten auf. Wenn ein Unter-Codewort der gelesenen Daten nicht decodiert werden kann, weist ein Decodieren der gelesenen Daten ein Decodieren einer Mehrzahl von äußeren Codeworten auf, von welchen jedes zwei oder mehr Unter-Codeworte aufweist, welche das Unter-Codewort aufweisen, welches nicht individuell codiert werden konnte.
  • Ein Verfahren zum Speichern von Daten innerhalb einer Speichervorrichtung weist ein Empfangen von Daten, welche zu speichern sind auf. Die empfangenen Daten werden codiert. Die codierten Daten werden innerhalb der Speichervorrichtung gespeichert. Ein Codieren der empfangenen Daten weist ein Codieren der Daten in eine Mehrzahl von Unter-Codeworten innerhalb einer ersten Schicht des Codierens auf, ein Gruppieren der Mehrzahl von Unter-Codeworten in eine Mehrzahl von äußeren Codeworten innerhalb einer zweiten Schicht des Codierens, und ein Gruppieren der Mehrzahl von äußeren Codeworten in wenigstens ein größeres Codewort, welches größer ist als jedes der Mehrzahl von äußeren Codeworten.
  • Figurenliste
  • Eine vollständigere Anerkennung der vorliegenden Offenbarung und vieler der dazugehörigen Aspekte davon wird leicht erhalten werden, wenn dieselbe besser durch eine Bezugnahme auf die folgende detaillierte Beschreibung verstanden wird, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet wird, in welchen:
    • 1 ein schematisches Diagramm ist, welches Datengruppierungen in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 2 ein schematisches Diagramm ist, welches eine Herangehensweise für Datengruppierungen in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 3 ein Flussdiagramm ist, welches eine Herangehensweise zum Codieren und Decodieren von Daten in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 4 ein Blockschaltbild eines Speichersystems ist, auf welches ein Speicher gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts angewandt wird; und
    • 5 ein Beispiel eines Computersystems zeigt, welches in der Lage ist, das Verfahren und die Vorrichtung gemäß Ausführungsformen der vorliegenden Offenbarung zu implementieren.
  • DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
  • Beim Beschreiben beispielhafter Ausführungsformen der vorliegenden Offenbarung, welche in den Zeichnungen veranschaulicht sind, wird eine spezifische Terminologie zum Zweck der Klarheit eingesetzt. Die vorliegende Offenbarung ist jedoch nicht beabsichtigt, auf die spezifische Terminologie, welche so ausgewählt ist, beschränkt zu sein und es muss verstanden werden, dass jedes spezifische Element alle technischen Äquivalente, welche in einer ähnlichen Art und Weise arbeiten, einschließt.
  • Beispielhafte Ausführungsformen der vorliegenden Erfindung sehen Herangehensweisen zum Codieren von Daten für eine Übertragung über einen rauschigen Kanal oder zur Speicherung und zum Abrufen zu und von einer Speichervorrichtung vor, welche zu derselben Zeit die Vorteile eines Codierens kürzerer Codeworte unter Verwendung wenigerer Prüfsymbole wie beispielsweise eine geringere Latenz erlaubt, aber ebenso die Vorteile des Codierens größerer Codeworte unter Verwendung mehrerer Prüfsymbole wie beispielsweise eine höhere Datengenauigkeit und die Fähigkeit, mehr Fehlern Rechnung zu tragen, erlaubt. Gemäß diesen Herangehensweisen können Daten in kürzere Codeworte oder Unter-Codeworte mit relativ wenigeren Prüfcodeworten codiert werden und Gruppen dieser kürzeren Codeworte oder Unter-Codeworte können in ein größeres Codewort oder eine Codewortgruppe kombiniert werden, welche(s) zusätzliche Prüfsymbole aufweist. Ein Decodieren kann dann auf den kürzeren Codeworten oder Unter-Codeworten, welche weniger Prüfsymbole haben, im größten Ausmaß, welches möglich ist, durchgeführt werden, und wo ein Decodieren nicht erfolgreich ist, beispielsweise aufgrund übermäßiger Fehler, für welche es unzureichend Prüfsymbole zur Korrektur gibt, kann ein Decodieren wiederum auf dem größeren Codewort oder der Codewortgruppe bei seinem/ihrem vollständigen Empfang durchgeführt werden.
  • Wenn hierin verwendet kann auf die Gruppierungen von Symbolen in kleineren Codeworten hierin Bezug genommen werden als Unter-Codeworte, während auf die Gruppierungen von Symbolen in größeren Codeworten hierin Bezug genommen werden kann als gruppierte Codeworte. Demnach können Daten in Unter-Codeworte, welche lokal durch den Empfang des gesamten Unter-Codeworts decodiert werden können, codiert werden und dann kann eine Gruppe von Unter-Codeworten als gruppierte Codeworte kombiniert werden, deren Daten bei dem Empfang der gesamten gruppierten Codeworte decodiert werden können, sollte es nicht möglich sein, die Daten nur basierend auf den Unter-Codeworten zu decodieren, wie es der Fall sein kann, wo es zu viele Fehler in dem Unter-Codewort für ein genaues Decodieren gibt. Demnach können am häufigsten Daten decodiert werden, wenn jedes Unter-Codewort in seiner Gesamtheit empfangen wird, wodurch die Latenz verringert wird. Wo aber Daten eines bestimmten Unter-Codeworts nicht decodiert werden können, können die Daten bei dem Empfang des gesamten gruppierten Codewortes decodiert werden, wo durch eine hinzugefügte Ebene von Datengenauigkeit vorgesehen wird.
  • Darüber hinaus können beispielhafte Ausführungsformen der vorliegenden Erfindung ferner Sätze von gruppierten Codeworten in Codewort-Supergruppen gruppieren. Demnach können, wenn Daten von entweder dem Unter-Codewort oder dem gruppierten Codewort nicht genau decodiert werden können, diese Daten bei dem Empfang der Codewort-Supergruppe decodiert werden. Auf jeder Ebene können mehrere Prüfsymbole gegenwärtig sein, sodass die Chancen zum genauen Decodieren der Daten auf jeder Ebene zunehmen. Es muss ferner verstanden werden, dass die Codewort-Supergruppen selbst in eine Gruppierung der nächsten Ebene mit zusätzlichen Prüfsymbolen gruppiert werden können, wenn erwünscht, sodass in dem Fall, dass die Daten der Codewort-Supergruppe nicht genau decodiert werden können, die Daten von der nächsten Ebene der Gruppierung decodiert werden können. In der Theorie kann eine beliebige Anzahl von Gruppierungen der nächsten Ebene verwendet werden. Beispielsweise können zwei, drei, vier, fünf, sechs oder mehr Ebenen von Gruppierungen verwendet werden. Für den Zweck des Vorsehens einer vereinfachten Erklärung werden jedoch beispielhafte Ausführungsformen der vorliegenden Erfindung hierin in Einheiten von Daten, welche als Unter-Codeworte codiert sind, Unter-Codeworte, welche als gruppierte Codeworte gruppiert sind und gruppierte Codeworte, welche als Codewort-Supergruppen codiert sind, beschrieben werden, wobei ein oder mehrere Prüfsymbole bei jeder Gruppierung hinzugefügt werden. Dieses Konzept ist in 1 gezeigt, welche ein schematisches Diagramm ist, welches Datengruppierungen in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht.
  • Wie durch 1 gesehen werden kann, können die Daten als Datensymbole 11 codiert werden und es kann mehrere Datensymbole 11 zusammen mit einer Anzahl von Prüfsymbolen 12 innerhalb eines Unter-Codeworts 13 geben. Es kann eine Anzahl von Unter-Codeworten 13 zusammen mit einer Anzahl von Prüfsymbolen 12 innerhalb eines gruppierten Codeworts 14 geben. Demnach ist jedes Unter-Codewort ein Symbol innerhalb des gruppierten Codeworts 14.
  • Es kann auch eine Anzahl von gruppierten Codeworten 14 zusammen mit einer Anzahl von Prüfsymbolen 12 innerhalb einer Codewort-Supergruppe 15 geben. Demnach ist jedes gruppierte Codewort 14 ein Symbol innerhalb der Codewort-Supergruppe 15. Demnach kann es eine beliebige Anzahl von Codewort-Supergruppen 15 geben, die so konfiguriert sind.
  • Jedes beliebige geeignete Codierschema kann verwendet werden, um die Daten in Datensymbole zu codieren. Beispielsweise kann Reed-Solomon (RS) verwendet werden oder es kann Bose-Chaudhuri-Hocquenghem (BCH) verwendet werden. Demnach kann, da eine BCH-Codierung verwendet werden kann, um die Daten in Unter-Codeworte zu codieren, BCH ebenso wieder verwendet werden, um die Unter-Codewort in gruppierte Codeworte zu Codieren und um die gruppierten Codeworte in Codewort-Supergruppen zu codieren.
  • Gemäß einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung können Daten mit der Fähigkeit codiert werden, entweder lokal oder generell zu decodieren, wie obenstehend beschrieben ist, durch ein Codieren von Daten in Übereinstimmung mit einer Reed-Solomon (RS)-Codierung oder einigen anderen ähnlichen Codiertechniken und dann ein Gruppieren mehrerer RS-Codes von Daten zusammen mit einem oder mehreren zusätzlichen RS-Codes zur Redundanz und dann ein Konstruieren einer einzelnen Paritätsprüfmatrix für den Satz von Daten-RS-Codes und redundanten RS-Codes. Diese Herangehensweise kann aus 2 gesehen werden, welche ein schematisches Diagramm ist, welches eine Herangehensweise für Datengruppierungen in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht.
  • Wie aus 2 gesehen werden kann, können die Daten als ein Satz von primären Daten-RS-Codes 21 codiert werden, und ein oder mehrere redundante RS-Codes 22 können zusammen mit diesen primären Daten-RS-Codes 21 gruppiert werden, sodass eine einzelne Paritätsprüfmatrix 23 davon konstruiert werden kann. Auf diesem Wege können die Daten auf der RS-Code-Ebene, welche eine lokale Ebene ist, decodiert werden, und wenn Daten davon nicht genau decodiert werden können, können, bei dem Empfang des gesamten Satzes von RS-Codes (primäre Daten und redundante Daten) zusammen mit der Paritätsprüfmatrix die Daten, welche auf der lokalen Ebene nicht decodierbar sein konnten, unter Verwendung der redundanten Daten-RS-Codes und der Paritätsprüfmatrix decodiert werden.
  • 3 ist ein Flussdiagramm, welches eine Herangehensweise zum Codieren und Decodieren von Daten in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung veranschaulicht. Daten können zuerst empfangen werden (Schritt S31). Die empfangenen Daten können dann in Übereinstimmung mit den verschachtelten Arten und weisen, welche obenstehend beschrieben sind, codiert werden (Schritt S32). Die codierten Daten können dann in einer Speichervorrichtung gespeichert werden (Schritt S33). Zu einem späteren Punkt kann der Abruf der Daten, welche in der Speichervorrichtung gespeichert sind, beginnen. Als Teil dieses Abrufs kann ein erster Satz von Symbolen abgerufen werden (Schritt S34). Wenn der erste Satz von Symbolen ausschließlich basierend auf der Information des ersten Satzes von Symbolen decodiert werden kann (Ja, Schritt S35), dann können die Daten davon decodiert werden, ohne darauf zu warten, dass die gesamte Gruppe von Sätzen von Symbolen abgerufen wird (Schritt S36) und dann kann der nächste Satz von Symbolen in einer ähnlichen Art und Weise abgerufen und decodiert werden. Wenn jedoch der erste Satz von Symbolen nicht ausschließlich basierend auf der Information des ersten Satzes von Symbolen decodiert werden kann (Nein, Schritt S35), dann kann eine Gruppe von Symbolsätzen einschließlich des ersten Satzes von Symbolen abgerufen werden (Schritt S37). Dann können der erste Satz von Symbolen und die anderen Sätze von Symbolen der Gruppe von Symbolen basierend auf der Information der Gruppe von Symbolen decodiert werden, nachdem die gesamte Gruppe von Symbolen abgerufen wurde (Schritt S38). Danach können zusätzliche Daten in derselben Art und Weise abgerufen und decodiert werden.
  • Wie obenstehend beschrieben ist, können beispielhafte Ausführungsformen der vorliegenden Offenbarung Daten, welche in einem Speichersystem zu speichern sind, codieren und können dann Daten, welche von dem Speichersystem abgerufen werden, decodieren. 4 ist ein Blockschaltbild eines Speichersystems, auf welches ein Speicher gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts angewandt wird. Bezug nehmend auf 4 weist das Speichersystem den Speichercontroller 400 und eine nichtflüchtige Speichervorrichtung 410 auf.
  • Die nichtflüchtige Speichervorrichtung 410 kann sein, ist jedoch nicht beschränkt auf eine Flashspeichervorrichtung, eine NAND-Flashspeichervorrichtung, ein Phasenübergangs-RAM (PRAM), ein ferroelektrischer RAM (FRAM), ein magnetischer RAM (MRAM) etc. Gemäß wenigstens einer beispielhaften Ausführungsform der erfinderischen Konzepte kann die nichtflüchtige Speichervorrichtung 410 eine Mehrzahl von NAND-Flashspeichervorrichtungen aufweisen. Die nichtflüchtige Speichervorrichtung 410 kann eine planare Struktur oder eine dreidimensionale (3D)-Speicherzellstruktur mit einem Stapel von Speicherzellen haben.
  • Die nichtflüchtige Speichervorrichtung 410 kann eine Speicherzellanordnung 415, einen X-Decoder 420, einen Spannungserzeuger 414, einen I/O-Puffer 417, einen Seitenpuffer 416 und eine Steuerlogik 412 haben, von welchen jedes als eine oder mehrere Schaltungen implementiert sein kann. Die nichtflüchtige Speichervorrichtung 410 kann ebenso eine Eingabe-/Ausgabe (I/O)-Kontaktstelle 411 aufweisen.
  • Die Speicherzellanordnung 415 weist eine Mehrzahl von Wortleitungen und eine Mehrzahl von Bitleitungen auf. Jede Speicherzelle der Speicherzellanordnung 415 kann als eine nicht flüchtige Speicherzelle implementiert sein. Beispielsweise kann jede Speicherzelle der Speicherzellanordnung 415 beispielsweise ein Floating Gate oder eine Ladungsspeicherschicht wie beispielsweise eine Ladungseinfangschicht haben.
  • Die Speicherzellanordnung 415 kann eine Mehrzahl von Blöcken und eine Mehrzahl von Seiten aufweisen. Jeder Block weist eine Mehrzahl von Seiten auf. Beispielsweise kann ein erster Block 418 eine erste Mehrzahl von Seiten 1-N aufweisen, während ein zweiter Block 419 eine zweite Mehrzahl von Seiten 1-N aufweisen kann, wobei N eine ganze Zahl größer als 1 ist. Eine Seite kann eine Einheit von Programmier- und Leseoperationen sein, und ein Block kann eine Einheit einer Löschoperation sein.
  • Die Steuerlogik 412 steuert den Gesamtbetrieb der nichtflüchtigen Speichervorrichtung 410. Wenn sie einen Befehl CMD von dem Speichercontroller 400 empfängt, interpretiert die Steuerlogik 412 den Befehl CMD und steuert die nichtflüchtige Speichervorrichtung 410, um eine Operation (beispielsweise eine Programmieroperation, eine Leseoperation, eine Lesewiederversuchsoperation oder eine Löschoperation) gemäß dem interpretierten Befehl CMD durchzuführen.
  • Der X-Decoder 420 wird durch die Steuerlogik 412 gesteuert und treibt wenigstens eine der Wortleitungen in der Speicherzellanordnung 415 gemäß einer Zeilenadresse.
  • Der Spannungserzeuger 414 wird durch die Steuerlogik 412 gesteuert, um eine oder mehrere Spannungen, welche für eine Programmieroperation, eine Leseoperation oder eine Löschoperation benötigt werden, zu erzeugen, und um die erzeugten Spannungen für eine oder mehrere Zeilen, welche durch den X-Decoder 420 ausgewählt sind, vorzusehen.
  • Der Seitenpuffer 416 wird durch die Steuerlogik 412 gesteuert und arbeitet als ein Leseverstärker oder ein Schreibtreiber gemäß einem Betriebsmodus (beispielsweise eine Leseoperation oder eine Programmieroperation).
  • Die I/O-Kontaktstelle 411 und der I/O-Puffer 417 können als I/O-Pfade von Daten, welche zwischen einer externen Vorrichtung, beispielsweise dem Speichercontroller 400 oder einem Host und der nichtflüchtigen Speichervorrichtung 410 ausgetauscht werden, dienen.
  • Der Speichercontroller 400 kann einen Mikroprozessor 401, einen Nur-Lese-Speicher (ROM) 403, einen Direktzugriffsspeicher (RAM) 402, einen Codierer 404, einen Decoder 405, eine Speicherschnittstelle 406 und einen Bus 407 aufweisen. Die Elemente 401 bis 406 des Speichercontrollers 400 können elektrisch miteinander über den Bus 407 verbunden sein.
  • Der Mikroprozessor 401 steuert den Gesamtbetrieb des Speichersystems, welches den Speichercontroller 400 aufweist. Der Mikroprozessor 401 ist eine Schaltung, welche andere Elemente durch ein Erzeugen von Steuersignalen steuert. Wenn dem Speichersystem Leistung zugeführt wird, betreibt beziehungsweise treibt der Mikroprozessor 401 Firmware (beispielsweise in dem ROM 403 gespeichert) zum Betreiben des Speichersystems auf dem RAM 402, wodurch der Gesamtbetrieb des Speichersystems gesteuert wird. Gemäß wenigstens einer beispielhaften Ausführungsform der erfinderischen Konzepte kann der Mikroprozessor 401 ebenso Instruktionen zum Steuern von Operationen anderer Elemente des Speichercontrollers 400 einschließlich beispielsweise einiger oder aller des ROM 403, des RAM 402, des Codierers 404, des Decoders 405, der Speicherschnittstelle 406 und eines Busses 407 ausgeben. Gemäß wenigstens einer beispielhaften Ausführungsform des erfinderischen Konzepts können beliebige Operationen, welche hierin als durch den Speichercontroller 400 durchgeführt beschrieben werden, durch oder unter der Steuerung des Mikroprozessors 401 durchgeführt werden. Gemäß wenigstens einer beispielhaften Ausführungsform des erfinderischen Konzepts können beliebige Operationen, welche hierin als durch den Speichercontroller 410 durchgeführt beschrieben werden, durch oder unter der Steuerung des Mikroprozessors 401 durchgeführt werden, welcher Instruktionen ausführt, welche den Operationen entsprechen und in Programmcode (beispielsweise in dem ROM 403 gespeichert) enthalten sind.
  • Während ein Treiber-Firmwarecode des Speichersystems in dem ROM 403 gespeichert ist, ist eine oder sind mehrere beispielhafte Ausführungsformen der erfinderischen Konzepte nicht darauf beschränkt. Der Firmwarecode kann ebenso in einem Abschnitt der nichtflüchtigen Speichervorrichtung 410 gespeichert werden. Demnach kann die Steuerung oder Intervention des Mikroprozessors 401 nicht nur die direkte Steuerung des Mikroprozessors 401, sondern auch die Intervention von Firmware, welche Software ist, die durch den Mikroprozessor 401 betrieben wird, umfassen.
  • Der RAM 402, welcher ein Speicher ist, welcher als ein Puffer dient, kann einen anfänglichen Befehl, Daten und verschiedene Variablen, welche von einem Host oder dem Mikroprozessor 401 zugeführt werden, oder Daten, welche von der nichtflüchtigen Speichervorrichtung 410 ausgegeben werden, speichern. Der RAM 402 kann Daten und verschiedene Parameter und Variablen, welche eingegeben werden zu und ausgegeben werden von der nichtflüchtigen Speichervorrichtung 410 speichern.
  • Die Speicherschnittstelle 116 kann als eine Schnittstelle zwischen dem Speichercontroller 1000 und der nichtflüchtigen Speichervorrichtung 2000 dienen. Die Speicherschnittstelle 116 ist mit der I/O-Kontaktstelle 127 der nichtflüchtigen Speichervorrichtung 2000 verbunden und kann Daten mit der I/O-Kontaktstelle 127 austauschen. Zusätzlich kann die Speicherschnittstelle 116 einen Befehl, welcher für die nichtflüchtige Speichervorrichtung 2000 geeignet ist, erzeugen und den erzeugten Befehl für die I/O-Kontaktstelle 127 der nichtflüchtigen Speichervorrichtung 2000 vorsehen. Die Speicherschnittstelle 116 sieht einen Befehl, welcher durch die nichtflüchtige Speichervorrichtung 2000 auszuführen ist, und eine Adresse ADD der nichtflüchtigen Speichervorrichtung 2000 vor.
  • Gemäß wenigstens einer beispielhaften Ausführungsform des erfinderischen Konzepts kann der Decoder 405 ein Fehler korrigierender Code (ECC = Error Correcting Code = Fehler korrigierender Code)-Decoder sein, welcher konfiguriert ist, um Daten in der Art und Weise, welche obenstehend beschrieben ist, zu decodieren, und der Codierer 404 kann ein ECC-Codierer sein, welcher konfiguriert ist, um Daten in der Art und Weise, welche obenstehend beschrieben ist, zu codieren. Gemäß wenigstens einer beispielhaften Ausführungsform des erfinderischen Konzepts führen der Decoder 405 und der Codierer 404 Fehlerbitkorrekturen in der Art und Weise, welche obenstehend beschrieben ist, durch. Der Codierer 404 kann Daten, welche mit einem oder mehreren Paritäts- und/oder Redundanzbits hinzugefügt werden, durch ein Durchführen von Fehlerkorrektur-Codierung auf Daten bevor die Daten für die nichtflüchtige Speichervorrichtung 410 vorgesehen werden, erzeugen. Das eine oder die mehreren Paritäts- und/oder Redundanzbits kann (können) in der nichtflüchtigen Speichervorrichtung 410 gespeichert werden.
  • Der Decoder 405 kann eine Fehlerkorrektur-Decodierung auf Ausgabedaten durchführen, bestimmen, ob die Fehlerkorrektur-Decodierung erfolgreich ist, basierend auf dem Ergebnis der Fehlerkorrektur-Decodierung und ein Instruktionssignal basierend auf dem Bestimmungsergebnis ausgeben. Gelesene Daten können zu dem Decoder 405 übertragen werden, und der Decoder 405 kann Fehlerbits der Daten unter Verwendung des einen oder der mehreren Paritäts- und/oder Redundanzbits korrigieren. Wenn die Anzahl von Fehlerbits eine Grenze von Fehlerbits überschreitet, welche korrigiert werden kann, kann der Decoder 405 gemäß einer höheren Ebene von Datenorganisation wie im Detail obenstehend beschrieben, decodieren. In einer beispielhaften Ausführungsform können der Codierer 404 und der Decoder 405 eine Fehlerkorrektur unter Verwendung einer Variation von Bose-Chaudhuri-Hocquenghem (BCH) durchführen, welche angepasst wurde, um zu arbeiten wie im Detail obenstehend beschrieben ist.
  • Beispielhafte Ausführungsformen der vorliegenden Erfindung können auf eine Variation von BCH, bekannt als Super-Bose-Chaudhuri-Hocquenghem (SBCH), angewandt werden. SBCH ist ein algebraischer Multiebenen-Code, welcher aus einigen kurzen binären Bose-Chaudhuri-Hocquenghem(BCH)-Codes und nichtbinären Reed- Solomon (RS)-Codes besteht. Wie entgegengesetzt zu dem Nachrichten passierenden Decodieralgorithmus von Low-Density Parity-Check (LDPC)-Codes, welcher ein iteratives Austauschen großer Mengen von weicher Information beziehungsweise Softinformation zwischen Variable und Prüfknoten benötigt, ist der Decodieralgorithmus für SBCH vollständig algebraisch unter Verwendung von algebraischen Standarddecodiermodi für die kurze Komponente BCH und RS-Codes. Aus diesem Grund ist der Leistungsverbrauch eines SBCH-Decoders beträchtlich kleiner als derjenige des entsprechenden LDPC-Decoders.
  • Gemäß SBCH-Schemata:
    • ■ CL ⊂ CL-1 ⊂ ... ⊂ C0 - binäre Codes der Länge n
    • ■ RS1 ⊂ RS2 ⊂ ... ⊂ RSL- Reed-Solomon (RS)-Codes der Länge nrows
    • ■ Der SBCH-Code verbunden mit den obigen Codes:
      • alle binären Matrizen ( c i j ) i = 1,..., n r o w s : j = 1,..., n
        Figure DE102019119753A1_0001
        derart, dass:
        • • Für alle i , c i : = ( c i j ) j C 0
          Figure DE102019119753A1_0002
        • • Für alle j = 1,   ...   , L : ( Δ s y n j j ( c 1 ) ,   ...   ,   Δ s y n j 1 j ( c n r o w s ) ) RS j
          Figure DE102019119753A1_0003
      (hier sind Δ s y n j 1 j ( )
      Figure DE102019119753A1_0004
      die sogenannten „Delta-Syndromes“)
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung „kleben“ die RS-Codes die Zeilen eines Codeworts. Um die RS-Codes geeignet in dem Decodierprozess zu verwenden, wird auf das gesamte empfangene Wort zugegriffen. Wie jedoch obenstehend diskutiert ist, können beispielhafte Ausführungsformen der vorliegenden Erfindung ein teilweises Decodieren ermöglichen. Hier nimmt die Framefehlerrate (FER) ab, wenn auf zunehmend große Datenblöcke des empfangenen Worts zugegriffen wird.
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung kann ein teilweises Decodieren mit Lokalität ermöglicht werden. Beispielsweise kann, wenn eine Blocklänge gleich 4 KBytes ist, das Folgende ermöglicht werden:
    • - Decodieren jedes 1 KByte („¼-Block“) mit FER ≈ 10-3.
    • - Decodieren des vollständigen 4 KByte-Blocks mit der gewöhnlichen FER ≈ 1-11.
    • - Im Falle, dass das Dekodieren eines ¼-Blocks fehlschlägt: Lies den gesamten Block (4 KByte).
  • Auf diesem Wege kann die Latenz mit hoher Wahrscheinlichkeit wesentlich verringert werden. Dies kann, wie obenstehend beschrieben ist durch ein zusammen-„kleben“ der Zeilen eines SBCH-Wortes durch den externen RS-Code implementiert werden. Um Lokalität zu erlauben, können die RS-Codes durch Codes mit Lokalität ersetzt werden. Lokalität kann ermöglichen, dass jede Gruppe von Zeilen „lokal geklebt“ wird. Demnach können die verschiedenen Worte in einer Gruppe von Zeilen ohne ein Verwenden von Zeilen, die nicht in der Gruppe sind, unter Verwendung der Lokalitätseigenschaft der lokalen Codes, welche die RS-Codes ersetzen, „einander helfen“. Getrennte Gruppen von Zeilen sind jedoch nach wie vor durch die globalen Abhängigkeiten der lokalen Codes verbunden. Demnach kann, in dem Fall, in dem eine lokale Gruppe fehlschlägt, ein erfolgreiches Decodieren durch ein Zugreifen auf alle Zeilen durchgeführt werden.
  • Die beispielhaften Ausführungsformen der vorliegenden Erfindung, welche im Detail obenstehend beschrieben sind, können als in verschiedene mögliche Ausführungsformen fallend angesehen werden. Ausführungsformen A1 und A2 zwei sind hierin als Beispiele vorgesehen. Diese zwei Herangehensweisen zeigen beispielhaft zwei optionale Algorithmen, welche verwendet werden können, um die vorliegende Erfindung zu implementieren.
  • Gemäß der A1-Herangehensweise, seien q hier eine Primzahlpotenz und α12, ... ,αn distinkte Nicht-Null-Elemente von F = GF(q) und seien v1, v2, ... , vn Nicht-Null-Elemente von K (welche nicht distinkt sein müssen). Ein generalisierter Read-Solomon (kurz GRS)-Code über F ist ein linearer [n, k, d]-Code C über F mit einer Paritätsprüfmatrix H grs = H V
    Figure DE102019119753A1_0005
    wobei V=diag(v1,......,vn) und H wie in RS obenstehend definiert ist: H = 1        1................................1 α 1       α 2 ............................ α n α 1 2     α 2 2 ........................... α n 2                           
    Figure DE102019119753A1_0006
                                α 1 n k 1 α 2 n k 1 α n n k 1
    Figure DE102019119753A1_0007
  • Der resultierende Code ist MDS mit einem minimalen Abstand d = n - k + 1. Nimm die ganze Zahl r und setze vjr j, ist der resultierende GRS-Code bezeichnet durch GRSn,k,r. Er hat die folgende Prüfmatrix Η [ α 1 , α 2 , , α n ]              α 1 r              α 2 r .............................. α n r              α 1 r+1                               α 2 r+1 ............................ α n r+1                                                                                                  α 1 n k + r 1   α 2 n k + r 1 ...................... α n n k + r 1
    Figure DE102019119753A1_0008
  • Code-Definition: Als Nächstes wird ein linearer Code C* durch ein Bestimmen positiver ganzzahliger Parameter q, s≥1, n1,....,ns, b, c, bestimmt derart, dass N= n1+....+ns<q und durch α12, ... ,αN distinkte Nicht-Null-Elemente von F. Setze N0=0 und für 1≤i≤s stelle ein:: Ni=n1+....+ni. Nimm zur Kenntnis, dass Ns=N. die Elemente von C* sind in FN. Definiere für 1≤i≤s: H i = H b ,0 [ α N ( i 1 ) + 1,    α N ( i 1 ) + 2, ........., α N ( i ) ] H ( 1 ) = H b ,0 [ α N ( i 1 ) + 1,    α N ( i 1 ) + 2, ........., α N ( i ) ]
    Figure DE102019119753A1_0009
    und definiere: H ( 2 ) = H c ,b [ α 1 , α 2 ,..........., α N ] , H = H b + c ,0 [ α 1 , α 2 ,..........., α N ] = [ H ( 1 ) H ( 2 ) ] .
    Figure DE102019119753A1_0010
  • Nimm zur Kenntnis H* ist die Prüfmatrix von RS auf FN, welche a+b-Fehler korrigieren kann.
  • Definiere als Näcstes für x=[x1,.....,xN] T∈FN: x [ i ] = [ x N ( i 1 ) + 1, x N ( i 1 ) + 2 ,..........., x N ( i ) ] .
    Figure DE102019119753A1_0011
    Hier ist C* wie folgt definiert, für x=[x1,.....,xN] T∈FN gilt, dass x∈C*, falls für 1≤i≤s H i x [ i ] = 0  and H ( 2 ) x .
    Figure DE102019119753A1_0012
  • Nimm zur Kenntnis, dass für v=[v1,.....,vN]T∈FN gilt, dass: H ( 1 ) v = [ H 1 , H 2 ,...., H s ] v = H 1 v [ 1 ] + H 2 v [ 2 ] ... + H s v [ s ] .
    Figure DE102019119753A1_0013
  • Es folgt, dass, wenn x∈C* dann H(1)·x=0 und H(2)·x=0 und demnach H*·x=0◆
  • Decodieren: Es sei x=[x1,.....,xN] T∈C* das übertragene Wort und y=[y1,.......,yN] T∈FN das empfangene Wort. Der Decoder startet durch ein Anwenden des Standard-RS-Decodierverfahrens auf jedes Unter-Intervall y[i]. Er kann eine beliebige Kombination von i Fehlern und j Löschungen korrigieren derart, dass 2i+j≤b bei jedem Unter-Intervall y[i]. Wenn dies getan ist, werden einige der Unter-Intervalle von allen Fehlern befreit sein. Nenne das resultierende Wort z=[z1,.....,zN] T∈FN. Da H*·x=0, gilt es, dass der RS-Decoder nun auf z angewandt werden kann, um eine beliebige Kombination von i verbleibenden Fehlern und j verbleibenden Löschungen zu korrigieren derart, dass 2i+j≤b+c. Dies ist beispielsweise effektiv wenn alle bis auf ein Unter-Wort in der ersten Runde decodiert werden und in dem einen undecodierten Wort die Anzahl von Fehlern b+c nicht überschreitet.
  • Wie obenstehend erwähnt ist, wird in der A2-Ausführungsform die Gruppierung von RSt ein GCCRS-Codewort. Das Folgende ist eine Beschreibung der GCCRS-Familie von Codes. In dieser Familie von Codes wird RS sowohl als innerer als auch als äußerer Code benutzt.
  • Hier ist GCCRS ein linearer Code C über F=GF(q), bestimmt durch die folgenden Parameter: q ein Primzahlpotenz, positive ganze Zahlen T, J, m und eine Ganzzahlsequenz J=R(1)≥R(2)≥.....≥R(T)=0 und T Prüfmatrizen H1,....,HT∈Fm×N. C entwickelt sich aus internen Codes CJ⊆CJ-1⊆....⊆C1, wobei C t = { x = 0  f u ¨ 1 j t } ,  t [ T ] .
    Figure DE102019119753A1_0014
  • Alternativ wird die Bedingung von in Ct befindlich derart angegeben, dass die ersten t Syndrome von x w.r.t. (H1,....,HT) gleich Null sind. Oftmals ist in der Praxis Ct BCH, welcher t Fehler korrigieren kann oder RS, welcher t/2 Fehler korrigieren kann. Ein Codewort c∈C is gegeben durch c=[c1 T,....,cJ T]T, wobei cj∈C1 und wt= [c1·Ht,.....,cJ·Ht] in RS(qm,J,J-R(t)) ist. Das heißt, dass wt ein RS-Wort über das Erstreckungsfeld K=GF(qm) der Länge J und der Dimension J-R(t) ist. Dieser RS-Code kann eine beliebige Kombination von i Fehlern und J Löschungen korrigieren derart, dass 2i+j≤R(t). Anmerkend, dass wt gleich R(t) K-Symbole der Redundanz hat, was typischerweise m.R(t) Redundanzsymbole des Codes C benötigt. Demnach ist die Gesamtredundanz m·∑1≤t≤TR(t) Symbole von F.
  • Demnach gruppieren beispielhafte Ausführungsformen der vorliegenden Erfindung einige GCCRS-Worte C'1,.....,C'L derart zusammen, dass jedes von diesen in einer hohen Wahrscheinlichkeit in einer Stand-Alone-Art und Weise decodiert werden kann. Durch Hinzufügen einiger zusätzlicher Redundanz zu der gesamten Gruppe wird jedoch ein größeres Codewort, welches C'1,.....,C'L aufweist, mit einer höheren Wahrscheinlichkeit des Decodiererfolgs gebildet. Die hinzugefügte Redundanz kann einige Informationssymbole der besagten Komponenten-Codeworte ersetzen.
  • Das vorliegende Decodierschema startet mit einem separaten Decodieren jedes individuellen GCC-Codeworts C'i. In dem Fall, dass einige der GCC-Worte in der Gruppe nicht decodiert werden können, wird für t=1:T der Standard-RS-Decoder auf das oben erwähnte t RS-Codewort jedes C'i, hier wt,i genannt (siehe wt obenstehend) angewandt. In dem Fall, dass das Dekodieren für ein beliebiges wt,i (für i∈[L]) fehlschlägt, wird ein Decodierschema, welches durch den lokalen RS unterstützt wird, verwendet. Beispielsweise kann jede der obigen zwei Herangehensweisen wie obenstehend erläutert in einem Versuch, das Decodieren der Gruppe von RS-Worten {wt,i}1≤1≤L zu vollenden, verwendet werden.
  • In einer anderen Ausführungsform tragen, wenn das Decodieren einiger der Komponenten-GCC-Worte in der ersten Runde fehlgeschlagen ist, dann die decodierten Worte mit der Hilfe der hinzugefügten Redundanz, welche durch die Erfindung vorgeschrieben ist, zu einer zweiten Runde des separaten Decodierens jedes Komponenten-Codeworts von der Gruppe C'1,.....,C'L bei, welche in der ersten Runde nicht decodiert wurden, bei.
  • Die vorliegende Erfindung ist auf Fehlerkorrektur-Codes (ECC) basiert. In der Technologie von ECC gibt es eine betonende finite ganze Zahl r = 2,3, ... und ein finites algebraisches Feld F derart, dass jedes Symbol F gleich r Bits aufweist. Ein [n k] linearer Code C ist mit einer k'n Paritätsprüfmatrix verbunden, deren Einträge in F sind. Hier sind n und k positive ganze Zahlen (n größer als k), welche Parameter des Codes C sind, n ist die Codelänge in Symbolen und k ist die Codedimension. Ein Codewort in C ist ein Vektor von n Symbolen von F, deren Produkt mit der zugeordneten Paritätsprüfmatrix Null ist.
  • Zum Zweck der Einfachheit würde ein Wort hier einen beliebigen Vektor von n Symbolen von F bedeuten. Ein Syndrome eines gegebenen Wortes bedeutet ein Skalarprodukt des besagten Wortes mit einer Zeile der Paritätsprüfmatrix. Das erste Syndrome eines gegebenen Wortes ist ein Skalarprodukt des Wortes mit der ersten Zeile der Paritätsprüfmatrix. Das zweite Syndrome eines gegebenen Wortes ist ein Skalarprodukt des Wortes mit der zweiten Zeile etc. Wenn der Decoder mehrere Syndrome kennt, kann er mehrere Fehler korrigieren.
  • Die essenzielle Idee von GCC-Codes ist, dass einige kleine Codeworte (beispielsweise aus BCH-Code), welche die gleiche Paritätsprüfmatrix gemeinsam verwenden, zusammen gruppiert werden, wobei jedes ebenso ein Unter-Wort genannt wird. Sie werden in einer solchen Art und Weise gruppiert, dass, wenn das erste Syndrome von jedem Unter-Wort gesammelt wird, ein Codewort in RS gebildet wird. Das Codewort kann RS1 genannt werden. Dasselbe gilt, wenn das zweite Syndrome von jedem dieser Worte gesammelt wird - diese Sammlung wird RS2 genannt, etc. In der Praxis ist RS1 normalerweise das Nullwort und die Coderate dieser RS-Worte nimmt zu.
  • (i) Der GCC-Codierprozess wird durch die Tatsache ermöglicht, dass jedes Syndrome jedes kleinen Wortes dazu gemacht werden kann, gleich einem willkürlichen vorgeschriebenen Symbol zu sein, und zwar durch ein Investieren von r Bits von Redundanz für es.
  • (ii) Wie hierin beschrieben ist die GCC-Idee einen Schritt weiter verbessert. Einige GCC-Worte werden zusammen gruppiert und nutzen (i) zum Bilden einer zusätzlichen Struktur: für t = 1, 2, 3, ... ergibt ein Kaskadieren der RSt-Worte von jedem der GCC-Codeworte ein größeres Codewort. Dieses Verfahren hat den Vorteil, dass in dem unwahrscheinlichen Ereignis des undecodierbaren individuellen GCC-Wortes seine Kollaboration mit den anderen GCC-Worten in der Gruppe in den meisten Fälle eine erfolgreiche zweite Runde des Decodierens ermöglicht.
  • Beispiel für (ii). In dem folgenden vereinfachten Beispiel gibt es zwei GCC-Worte, von welchen jedes drei kleine Unter-Codeworte und drei Ebenen von Syndromen aufweist.
    • (1) Syndrome verbunden mit GCC_Wort_1: ( s y n d r o m e ( 1,1,1 ) s y n d r o m e ( 1,1,2 ) s y n d r o m e ( 1,1,3 ) s y n d r o m e ( 1,2,1 ) s y n d r o m e ( 1,2,2 ) s y n d r o m e ( 1,2,3 ) s y n d r o m e ( 1,3,1 ) s y n d r o m e ( 1,3,2 ) s y n d r o m e ( 1,3,3 ) )
      Figure DE102019119753A1_0015
    • (2) Syndrome verbunden mit GCC_Wort_2: ( s y n d r o m e ( 2,1,1 ) s y n d r o m e ( 2,1,2 ) s y n d r o m e ( 2,1,3 ) s y n d r o m e ( 2,2,1 ) s y n d r o m e ( 2,2,2 ) s y n d r o m e ( 2,2,3 ) s y n d r o m e ( 2,3,1 ) s y n d r o m e ( 2,3,2 ) s y n d r o m e ( 2,3,3 ) )
      Figure DE102019119753A1_0016
  • In diesem Beispiel: s y n d r o m e ( 1,1,1 ) = s y n d r o m e ( 1,1,2 ) = s y n d r o m e ( 1,1,3 ) = 0 s y n d r o m e ( 2,1,1 ) = s y n d r o m e ( 2,1,2 ) = s y n d r o m e ( 2,1,2 ) = 0
    Figure DE102019119753A1_0017
    Und [ s y n d r o m e ( 1,2,1 ) s y n d r o m e ( 1,2,2 ) , s y n d r o m e ( 1,2,3 ) ]   ist ein RS-Wort ( RS 2 ) [ s y n d r o m e ( 2,2,1 ) s y n d r o m e ( 2,2,2 ) , s y n d r o m e ( 2,2,3 ) ]   ist ein RS-Wort ( RS 2 )
    Figure DE102019119753A1_0018
    und zusätzlich kann das Ergebnis, wenn diese zwei RS-Worte kaskadiert werden, sein: [ s y n d r o m e ( 1,2,1 ) s y n d r o m e ( 1,2,2 ) , s y n d r o m e ( 1,2,3 ) , s y n d r o m e ( 2,2,3 ) ]
    Figure DE102019119753A1_0019
    welches ebenso ein Codewort ist. Ähnlich [ s y n d r o m e ( 1,3,1 ) s y n d r o m e ( 1,3,2 ) , s y n d r o m e ( 1,3,3 ) ]   ist ein RS-Wort ( RS 3 ) [ s y n d r o m e ( 2,3,1 ) s y n d r o m e ( 2,3,2 ) , s y n d r o m e ( 2,3,2 ) ]   ist ein RS-Wort ( RS 3 )
    Figure DE102019119753A1_0020
    und wenn diese zwei RS-Worte kaskadiert werden, kann das Ergebnis sein: [ s y n d r o m e ( 1,3,1 ) , s y n d r o m e ( 1,3,2 ) , s y n d r o m e ( 1,3,3 ) . s y n d r o m e ( 2,3,2 ) , s y n d r o m e ( 2,3,3 ) ]
    Figure DE102019119753A1_0021
    welches ebenso ein Codewort ist.
  • Es sei erwähnt, dass herkömmlicherweise in technologischen Implementierungen jedes GCC-Wort eine größere Anzahl von Unter-Codeworten und Syndromen aufweist. Demnach ist hinsichtlich aller Parameter dieses simplifizierende Beispiel nur zur Veranschaulichung.
  • Teil (ii) kapselt den Hauptanspruch der Erfindung. Zwei Ausführungsformen A1 & A2 werden untenstehend beschrieben.
  • (iii) In A1 wird die obige Gruppierung von RSt ein größeres RS-Wort und in A2 wird die Gruppierung von RSt ein GCCRS-Codewort, dessen Idee hierin beschrieben ist.
  • 5 zeigt ein Beispiel eines Computersystems, welches ein Verfahren und ein System der vorliegenden Offenbarung implementieren kann. Das System und das Verfahren der vorliegenden Offenbarung können in der Form einer Softwareanwendung implementiert sein, welche auf einem Computersystem läuft, beispielsweise einem Mainframe, einem Personalcomputer (PC), einem handgeführten Computer, einem Server etc. Die Softwareanwendung kann auf Aufzeichnungsmedien lokal zugreifbar durch das Computersystem und zugreifbar über eine festverdrahtete oder drahtlose Verbindung mit einem Netzwerk, beispielsweise einem Lokalbereichsnetzwerk oder dem Internet gespeichert sein.
  • Das Computersystem, auf welches allgemein als System 1000 Bezug genommen wird, kann beispielsweise eine zentrale Verarbeitungseinheit (CPU) 1001, einen Direktzugriffsspeicher (RAM) 1004, eine Druckerschnittstelle 1010, eine Anzeigeeinheit 1011, einen Lokalbereichsnetzwerk (LAN)-Datenübertragungscontroller 1005, eine LAN-Schnittstelle 1006, einen Netzwerkcontroller 1003, einen internen Bus 1002 und eine oder mehrere Eingabevorrichtungen 1009, beispielsweise eine Tastatur, Maus etc. haben. Wie gezeigt kann das System 1000 in einer Datenspeichervorrichtung, beispielsweise einer Festplatte 1008 über eine Verbindung (Link) 1007 verbunden sein.
  • Beispielhafte Ausführungsformen, welche hierin beschrieben sind, sind veranschaulichend und viele Variationen können eingeführt werden, ohne von dem Gedanken der Offenbarung oder von dem Umfang der beigefügten Ansprüche abzuweichen. Beispielsweise können Elemente und/oder Merkmale von unterschiedlichen beispielhaften Ausführungsformen miteinander kombiniert werden und/oder füreinander innerhalb des Umfangs dieser Offenbarung und der beigefügten Ansprüche ersetzt werden.

Claims (20)

  1. Verfahren zum Speichern von Daten innerhalb einer Speichervorrichtung, das Folgendes aufweist: ein Empfangen (S31) von Daten, welche zu speichern sind; ein Codieren (S32) der empfangenen Daten; und ein Speichern (S33) der codierten Daten innerhalb der Speichervorrichtung (410), wobei das Codieren (S32) der empfangenen Daten ein Codieren der Daten in zwei oder mehr Unter-Codeworte (13) aufweist, wobei jedes der zwei oder mehr Unter-Codeworte (13) eine Mehrzahl von äußeren Codeworten aufweist, wobei zwei oder mehr der Mehrzahl von äußeren Codeworten gruppiert werden, um ein größeres Codewort zu bilden, welches größer ist als jedes der Mehrzahl von äußeren Codeworten, und das größere Codewort konstruiert ist, um Fehler und/oder Löschungen zu korrigieren, welche durch die Mehrzahl von äußeren Codeworten individuell nicht korrigierbar sind.
  2. Verfahren nach Anspruch 1, wobei das größere Codewort mehr Redundanz der Daten aufweist als es die Mehrzahl von äußeren Codeworten individuell tut.
  3. Verfahren nach Anspruch 1, wobei das größere Codewort, welches die zwei oder mehr der Mehrzahl von äußeren Codeworten aufweist, ein generalisiertes konkateniertes Code (GCC)-Codewort ist.
  4. Verfahren nach Anspruch 1, wobei jedes der zwei oder mehr Unter-Codeworte (13) ein generalisiertes konkateniertes Code (GCC)-Codewort ist und jedes der Mehrzahl von äußeren Codeworten und das größere Codewort ein Reed-Solomon-Codewort ist.
  5. Verfahren nach Anspruch 1, wobei jedes der zwei oder mehr Unter-Codeworte (13) eine erste Ebene des Codierens repräsentiert, jedes der Mehrzahl von äußeren Codeworten eine zweite Ebene des Codierens repräsentiert und das größere Codewort eine dritte Ebene des Codierens repräsentiert.
  6. Verfahren nach Anspruch 5, wobei eine Matrix, welche aus ersten einigen Zeilen einer Paritätsprüfmatrix (23) des größeren Codewortes besteht, durch ein Kaskadieren von Paritätsprüfmatrizen jedes der Mehrzahl von Codeworten gebildet wird.
  7. Verfahren nach Anspruch 1, wobei jedes der zwei oder mehr Unter-Codeworte (13) mehrere Ebenen von äußeren Codeworten der Mehrzahl von äußeren Codeworten aufweist und bei jeder der mehreren Ebenen ein Zusammengruppieren entsprechender äußerer Codeworte der Mehrzahl von äußeren Codeworten ein generalisiertes konkateniertes Code (GCC)-Codewort bildet.
  8. Verfahren zum Abrufen von Daten innerhalb einer Speichervorrichtung, das Folgendes aufweist: ein Lesen gespeicherter Daten aus einer Speichervorrichtung (410); und ein Decodieren der gelesenen Daten, wobei das Decodieren der gelesenen Daten ein individuelles Decodieren von Unter-Codeworten (13) der gelesenen Daten aufweist, wobei, wenn ein Unter-Codewort (13) der gelesenen Daten nicht decodiert werden kann, ein Decodieren der gelesenen Daten ein Decodieren einer Mehrzahl von äußeren Codeworten aufweist, von welchen jedes zwei oder mehr Unter-Codeworte (13) aufweist, welche das Unter-Codewort (13) aufweisen, welches nicht individuell decodiert werden konnte.
  9. Verfahren nach Anspruch 8, wobei die Mehrzahl von äußeren Codeworten ein größeres Codewort bildet, welches größer ist als jedes der Mehrzahl von äußeren Codeworten.
  10. Verfahren Anspruch 9, wobei das größere Codewort mehr Redundanz der gespeicherten Daten aufweist als es die Mehrzahl von äußeren Codeworten individuell tut.
  11. Verfahren nach Anspruch 9, wobei das größere Codewort, welches die Mehrzahl von äußeren Codeworten aufweist, ein generalisiertes konkateniertes Code(GCC)-Codewort ist.
  12. Verfahren nach Anspruch 9, wobei jedes der zwei oder mehr Unter-Codeworte (13) ein generalisiertes konkateniertes Code(GCC)-Codewort ist, und jedes der Mehrzahl von äußeren Codeworten und das größere Codewort ein Reed-Solomon-Codewort ist.
  13. Verfahren nach Anspruch 9, wobei jedes der zwei oder mehr Unter-Codeworte (13) eine erste Ebene des Codierens repräsentiert, jedes der Mehrzahl von äußeren Codeworten eine zweite Ebene des Codierens repräsentiert und das größere Codewort eine dritte Ebene des Codierens repräsentiert.
  14. Verfahren nach Anspruch 13, wobei eine Matrix, welche aus ersten einigen Zeilen einer Paritätsprüfmatrix (23) des größeren Codeworts besteht, durch ein Kaskadieren von Paritätsprüfmatrizen jedes der Mehrzahl von Codeworten gebildet wird.
  15. Verfahren nach Anspruch 9, wobei jedes der zwei oder mehr Unter-Codeworte (13) mehrere Ebenen von äußeren Codeworten der Mehrzahl von äußeren Codeworten aufweist und bei jeder der mehreren Ebenen ein Zusammengruppieren entsprechender äußerer Codeworte der Mehrzahl von äußeren Codeworten ein generalisiertes konkateniertes Code (GCC)-Codewort bildet.
  16. Verfahren zum Speichern von Daten innerhalb einer Speichervorrichtung, das Folgendes aufweist: ein Empfangen (S31) von Daten, welche zu speichern sind; ein Codieren der empfangenen Daten; und ein Speichern der codierten Daten innerhalb der Speichervorrichtung (410), wobei das Codieren der empfangenen Daten Folgendes aufweist: ein Codieren der Daten in eine Mehrzahl von Unter-Codeworten (13) innerhalb einer ersten Ebene des Codierens; ein Gruppieren der Mehrzahl von Unter-Codeworten (13) in eine Mehrzahl von äußeren Codeworten innerhalb einer zweiten Ebene des Codierens; und ein Gruppieren der Mehrzahl von äußeren Codeworten in wenigstens ein größeres Codewort, welches größer ist als jedes der Mehrzahl von äußeren Codeworten.
  17. Verfahren nach Anspruch 16, wobei das wenigstens eine größere Codewort mehr Redundanz der Daten aufweist, als es die Mehrzahl von äußeren Codeworten individuell tut.
  18. Verfahren nach Anspruch 16, wobei eine Matrix, welche aus ersten einigen Zeilen einer Paritätsprüfmatrix (23) des größeren Codeworts besteht, durch ein Kaskadieren von Paritätsprüfmatrizen jedes der Mehrzahl von Codeworten gebildet wird.
  19. Verfahren nach Anspruch 16, wobei jedes der Unter-Codeworte (13) mehrere Ebenen der äußeren Codeworte aufweist und bei jeder der mehreren Ebenen entsprechende äußere Codeworte als ein generalisiertes konkateniertes Code (GCC)-Codewort zusammengruppiert werden.
  20. Verfahren nach Anspruch 16, ferner aufweisend: ein Lesen der gespeicherten Daten aus der Speichervorrichtung (410); und ein Decodieren der gelesenen Daten, wobei das Decodieren der gelesenen Daten ein individuelles Decodieren der Unter-Codeworte (13) der gelesenen Daten aufweist, wobei, wenn eines der Unter-Codeworte (13) der gelesenen Daten nicht decodiert werden kann, das Decodieren der gelesenen Daten ein Decodieren der Mehrzahl von äußeren Codeworten aufweist, welche das Unter-Codewort (13) aufweisen, welches nicht individuell decodiert werden konnte.
DE102019119753.8A 2019-06-25 2019-07-22 Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität Pending DE102019119753A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/452,240 2019-06-25
US16/452,240 US11031956B2 (en) 2019-06-25 2019-06-25 Generalized concatenated error correction coding scheme with locality

Publications (2)

Publication Number Publication Date
DE102019119753A1 true DE102019119753A1 (de) 2020-12-31
DE102019119753A9 DE102019119753A9 (de) 2021-09-09

Family

ID=73747190

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019119753.8A Pending DE102019119753A1 (de) 2019-06-25 2019-07-22 Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität

Country Status (4)

Country Link
US (1) US11031956B2 (de)
KR (1) KR20210001927A (de)
CN (1) CN112134573B (de)
DE (1) DE102019119753A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11387848B1 (en) * 2021-03-11 2022-07-12 Samsung Electronics Co., Ltd. Hierarchical error correction code
CN114142871B (zh) * 2021-12-03 2022-06-24 北京得瑞领新科技有限公司 一种可提前终止迭代的增量计算的ldpc校验方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE408931T1 (de) * 2002-04-05 2008-10-15 Koninkl Philips Electronics Nv Verfahren und vorrichtung zur einbettung einer zusätzlichen schicht der fehlerkorrektur in einen fehlerkorrekturcode
US7177658B2 (en) * 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US8605905B2 (en) * 2010-08-30 2013-12-10 Futurewei Technologies, Inc. System and method for securing wireless transmissions
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US8954822B2 (en) * 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US9734009B2 (en) * 2015-10-08 2017-08-15 Sandisk Technologies Llc Data encoding techniques for a device
US10404280B2 (en) * 2015-11-19 2019-09-03 Westhold Corporation Error correction using cyclic code-based LDPC codes
US10340950B2 (en) * 2017-08-21 2019-07-02 Qualcomm Incorporated Reducing the search space of maximum-likelihood decoding for polar codes

Also Published As

Publication number Publication date
CN112134573A (zh) 2020-12-25
US20200412386A1 (en) 2020-12-31
CN112134573B (zh) 2024-02-23
KR20210001927A (ko) 2021-01-06
US11031956B2 (en) 2021-06-08
DE102019119753A9 (de) 2021-09-09

Similar Documents

Publication Publication Date Title
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE112010004863B4 (de) Datenverwaltung in Festkörperspeichersystemen
DE112012000385B4 (de) Korrigieren von Auslöschungen in Speicher-Arrays
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102019124438B4 (de) Multi-state-programmierung für speichervorrichtungen
DE102017001420B4 (de) Redundanz von fehlerkorrekturcodierten daten in einem speichersystem
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE10233642B4 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102011054181A1 (de) Nichtflüchtige Speichervorrichtung und Ausleseverfahren davon
DE102017110389B4 (de) Verfahren und Decoder zur Softinput Decodierung von verallgemeinerten verketteten Codes
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
DE102018105434A1 (de) Verfahren und System zum Abtasten von gelöschten Flashspeicherseiten mit Querverweis auf verwandte Anwendungen
DE102017128999A1 (de) Lesebetrieb und weiches Dekodierungs-Timing
DE112020003489T5 (de) Speichersteuerung und verfahren zum decodieren von speichervorrichtungen mit vorzeitigem hartdecodierabbruch
DE102020110856A1 (de) Komprimierung von fehlervektoren zur dekodierung von logik zum komprimierten speichern in einem dekodiererspeicher, verwendet von der dekodierungs-logik
DE102021115858A1 (de) Tlc-datenprogrammierung mit hybrid-parität
DE102019127089A1 (de) LDPC Decoder, semiconductor memory system, and operating method thereof
DE102017130591A1 (de) Verfahren und Vorrichtung zur Fehlerkorrekturkodierung auf Basis einer Datenkomprimierung
DE102019119753A1 (de) Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität
DE102021107436A1 (de) Speichersystem und Verfahren zum direkten Quad-Level-Cell-Programmieren (QLC-Programmieren)
DE102017120789A1 (de) Abgestufter Variablenknotenspeicher
DE112020005001T5 (de) Qlc-programmierverfahren mit zurückspeichern von feindaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed