DE102017107431B4 - Methods and devices for error correction coding based on high rate generalized concatenated codes - Google Patents
Methods and devices for error correction coding based on high rate generalized concatenated codes Download PDFInfo
- Publication number
- DE102017107431B4 DE102017107431B4 DE102017107431.7A DE102017107431A DE102017107431B4 DE 102017107431 B4 DE102017107431 B4 DE 102017107431B4 DE 102017107431 A DE102017107431 A DE 102017107431A DE 102017107431 B4 DE102017107431 B4 DE 102017107431B4
- Authority
- DE
- Germany
- Prior art keywords
- matrix
- codes
- code
- dimension
- decoding
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/253—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with concatenated codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/1505—Golay Codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2927—Decoding strategies
- H03M13/293—Decoding strategies with erasure setting
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
Verfahren zur Fehlerkorrekturcodierung von in eine Speichervorrichtung (3) zu speichernden Daten, wobei das Verfahren durch eine Codierungsvorrichtung (2) ausgeführt wird und dabei auf die Daten eine Fehlerkorrekturcodierung zur Erzeugung von codierten Daten angewandt wird, die auf Verallgemeinerten Verketteten Codes, GCC, beruht, wobei:der GCC aus L inneren verschachtelten binären erweiterten BCH-Codes und L äußeren Codes, vorzugsweise RS-Codes konstruiert ist, wobei L ≥ 2 eine positive ganze Zahl ist;der erweiterte BCH-Code auf der niedrigsten Verschachtelungsebene der inneren verschachtelten BCH-Codes ein SPC-Code ist;der erweiterte BCH-Code wenigstens einer höheren Verschachtelungsebene der inneren verschachtelten BCH-Codes eine Fehlerkorrekturfähigkeit aufweist und ein Subcode des BCH-Codes der niedrigsten Verschachtelungsebene ist; und„BCH-Code“ einen Bose-Chaudhuri-Hocquenghem Code bezeichnet, „RS-Code“ einen Reed-Solomon-Code bezeichnet und „SPC-Code“ einen Einfachparitätsprüfungscode bezeichnet.Method for error correction coding of data to be stored in a storage device (3), the method being carried out by a coding device (2) and error correction coding being applied to the data to generate coded data which is based on generalized concatenated codes, GCC, where:the GCC is constructed from L inner interleaved binary extended BCH codes and L outer codes, preferably RS codes, where L ≥ 2 is a positive integer;the extended BCH code at the lowest nest level of the inner interleaved BCH codes is an SPC code;the extended BCH code of at least one higher nest level of the inner nested BCH codes has an error correction capability and is a subcode of the BCH code of the lowest nest level; and "BCH code" denotes a Bose-Chaudhuri-Hocquenghem code, "RS code" denotes a Reed-Solomon code, and "SPC code" denotes a single parity check code.
Description
GEBIET DER ERFINDUNGFIELD OF THE INVENTION
Die vorliegende Erfindung betrifft das Gebet der Fehlerkorrekturcodierung, insbesondere für Anwendungen im Bereich der nichtflüchtigen Flashspeicher. Genauer betrifft die Erfindung ein Verfahren zur Fehlerkorrektur Codierung von Daten, die in einer Speichervorrichtung zu speichern sind, ein korrespondierendes Verfahren zum Decodieren einer Codewort-Matrix, welche sich aus dem Codierungsverfahren ergibt, eine Codierungsvorrichtung, die eingerichtet ist, eine oder mehrere dieser Verfahren auszuführen, sowie ein korrespondierendes Computerprogram zur Ausführung dieser Verfahren auf der Codierungsvorrichtung.The present invention relates to error correction coding, particularly for non-volatile flash memory applications. More precisely, the invention relates to a method for error-correction coding of data to be stored in a storage device, a corresponding method for decoding a codeword matrix resulting from the coding method, a coding device set up to carry out one or more of these methods , and a corresponding computer program for executing these methods on the coding device.
HINTERGRUNDBACKGROUND
Auf Verallgemeinerten Verketteten Codes (engl. Generalized Concatenated Codes, GC-Codes) beruhende Fehlerkorrekturcodierung (engl. Error Correction Coding, ECC) weist ein hohes Potenzial für verschiedenste Anwendungen im Bereich der Datenkommunikation und Datenspeichersysteme auf, beispielsweise für digitale magnetische Speichersysteme, wie in [1] beschrieben (siehe unten angegebene Liste von Literaturquellen [...]), für nicht-flüchtige Flashspeicher (vgl. [2]), sowie für zweidimensionale Strichcodes (vgl. [3]). Insbesondere können GC-Codes zur Fehlerkorrekturbei Flashspeichern verwendet werden, wie in [2] und [4] vorgeschlagen.Error correction coding (ECC) based on generalized concatenated codes (GC codes) has a high potential for various applications in the field of data communication and data storage systems, for example for digital magnetic storage systems, as in [ 1] (see list of literature sources given below [...]), for non-volatile flash memory (cf. [2]), and for two-dimensional barcodes (cf. [3]). In particular, GC codes can be used for error correction in flash memories, as suggested in [2] and [4].
Derartige GCC-Codes können insbesondere aus inneren verschachtelten binären Bose-Chaudhuri-Hocquenghem (BCH) -Codes und äußeren Reed-Solomon (RS)-Codes konstruiert werden, wie beispielsweise allgemein in [5], [6], und [7] beschrieben, und sie sind gut geeignet für schnelle hardwarebasierte Decoderarchitekturen (vgl. [4]). In der Theorie der Codierungen, bilden die BCH-Codes eine Klasse von linearen, zyklischen Fehlerkorrekturcodes, die unter Verwendung von finiten Feldern (Galois-Feldern, GF) konstruiert werden, während die Reed-Solomon-Codes zur Klasse der nicht binären, zyklischen Fehlerkorrekturcodes gehören und auf univarianten Polynomen über finiten Feldern (GF) beruhen.In particular, such GCC codes can be constructed from inner nested binary Bose-Chaudhuri-Hocquenghem (BCH) codes and outer Reed-Solomon (RS) codes, such as generally described in [5], [6], and [7]. , and they are well suited for fast hardware-based decoder architectures (cf. [4]). In the theory of coding, the BCH codes form a class of linear cyclic error correction codes constructed using finite fields (Galois fields, GF), while the Reed-Solomon codes belong to the class of non-binary cyclic error correction codes belong and are based on univariant polynomials over finite fields (GF).
Flashspeicher, insbesondere NAND-Flashspeicher, stellen wichtige Komponenten von eingebetteten Systemen sowie in der Consumer-Elektronik dar. Flashspeicher benötigen ECC, um Datenintegrität und Zuverlässigkeit für die Nutzdaten sicherzustellen (vergleiche. [8]). Bei vielen Flashtechnologien kann man als statistisches Fehlermodell einen Binären Symmetrischen Kanal (engl. Binary Symmetric Channel, BSC) annehmen. Daher werden typischerweise BCH-Codes zur Fehlerkorrektur verwendet, wie beispielsweise in [9], [10], [11], [12] und [13] beschrieben. GC-Codes weisen eine geringere Decodierungskomplexität auf als lange BCH-Codes. Flashspeicher reservieren typischerweise einen Extra-Speicherbereich, der dazu verwendet wird, die für die ECC benötigten Redundanzen zu speichern. Dieser Extra-Speicherbereich bestimmt die Coderate für den Fehlerkorrekturcode.Flash memory, especially NAND flash memory, is an important component of embedded systems and consumer electronics. Flash memory requires ECC to ensure data integrity and reliability for the user data (see [8]). In many flash technologies, a binary symmetric channel (BSC) can be assumed as the statistical error model. Therefore, BCH codes are typically used for error correction, as described for example in [9], [10], [11], [12] and [13]. GC codes have lower decoding complexity than long BCH codes. Flash memory typically reserves an extra memory area that is used to store the redundancies needed for the ECC. This extra memory area determines the code rate for the error correction code.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Es ist eine Aufgabe der vorliegenden Erfindung, Verfahren und Vorrichtungen zur weiteren Verbesserung der Fehlerkorrekturcodierung, insbesondere zur Verbesserung von Coderaten, bereitzustellen. Speziell ist es wünschenswert, dass solche Verfahren und Vorrichtungen zur verbesserten ECC Codierung/Decodierung von Daten im Zusammenhang mit dem Speichern/ Lesen dieser Daten in/aus einem Speicher, wie etwa einem nichtflüchtigen Speicher, geeignet sind.It is an object of the present invention to provide methods and devices for further improving error correction coding, in particular for improving code rates. In particular, it is desirable that such methods and apparatus are capable of enhanced ECC encoding/decoding of data associated with storing/reading that data to/from a memory such as non-volatile memory.
Eine Lösung für dieses Problem wird durch die Lehre der unabhängigen Ansprüche erreicht. Verschiedene bevorzugte Ausführungsformen der vorliegenden Erfindung sind Gegenstand der abhängigen Ansprüche.A solution to this problem is achieved through the teaching of the independent claims. Various preferred embodiments of the present invention are subject of the dependent claims.
Ein erster Aspekt der Erfindung betrifft ein Verfahren zur Fehlerkorrekturcodierung von in eine Speichervorrichtung zu speichernden Daten, wobei das Verfahren durch eine Codierungsvorrichtung ausgeführt wird und dabei auf die Daten eine Fehlerkorrekturcodierung zur Erzeugung von codierten Daten angewandt wird, die auf Verallgemeinerten Verketteten Codes (GCC), beruht. Dabei (i) ist der GCC aus L inneren verschachtelten binären erweiterten Bose-Chaudhuri-Hocquenghem-Codes (BCH-Codes) und L äußeren Codes, vorzugsweise Reed-Solomon-Codes (RS-Codes) konstruiert, wobei L ≥ 2 eine positive ganze Zahl ist, (ii) der erweiterte BCH-Code auf der niedrigsten Verschachtelungsebene der inneren verschachtelten BCH-Codes ein Einfachparitätsprüfungs-Code (SPC-Code) ist, und (iii) der erweiterte BCH-Code wenigstens einer höheren Verschachtelungsebene der inneren verschachtelten BCH-Codes eine Fehlerkorrekturfähigkeit aufweist (im Gegensatz zu dem SPC-Code, der nur bestimmte Fehler erkennen kann) und ein Subcode des BCH-Codes der niedrigsten Verschachtelungsebene ist.A first aspect of the invention relates to a method for error correction coding of data to be stored in a storage device, the method being carried out by a coding device and error correction coding being applied to the data to generate coded data based on Generalized Concatenated Codes (GCC), based. Here (i) the GCC is constructed from L inner interleaved binary extended Bose-Chaudhuri-Hocquenghem codes (BCH codes) and L outer codes, preferably Reed-Solomon codes (RS codes), where L ≥ 2 a positive integer number is, (ii) the extended BCH code at the lowest nesting level of the inner nested BCH codes is a single parity check (SPC) code, and (iii) the extended BCH code of at least one higher nest level of the inner nested BCH codes has an error correction capability (in contrast to the SPC code, which can only detect certain errors) and is a subcode of the BCH code of the lowest nest level.
Der Begriff „erweiterter BCH-Code“, wie hier verwendet, bezieht sich auf einen Code, dessen Codeworte im Allgemeinen sowohl ein BCH-Codewort als auch ein zusätzliches einfaches Paritätsprüfungs- (SPC)-Symbol (d. h. ein Paritätsbit, falls das SPC-Symbol nur ein einziges Bit ist) aufweisen. Allerdings, ist bereits ein bloßer SPC-Code (ohne weitere BCH-Paritätssymbole) ein erweiterter BCH-Code und stellt sogar seine einfachste Form dar. Während ein BCH-Code (der nicht bloß ein SPC-Code ist) die Korrektur einer bestimmten Anzahl von Fehlern in einem Codeword beim Decodieren ermöglicht, erlaubt ein SPC-Code nur das Erkennen bestimmter Fehler, speziell dann, wenn in dem Codewort eine ungerade Anzahl von Fehlern vorliegt.The term "extended BCH code" as used herein refers to a code whose codewords generally include both a BCH codeword and an additional simple parity check (SPC) symbol (i.e., a parity bit if the SPC symbol is only a single bit). However, a mere SPC code (without further BCH parity symbols) is already an extended BCH code and represents even its simplest form. While a BCH code (which is not just an SPC code) requires the correction of a certain number of Allowing for errors in a codeword during decoding, an SPC code only allows certain errors to be detected, especially when there is an odd number of errors in the codeword.
Der Begriff „Subcode“ eines bestimmten (Mutter-)-BCH-Codes, wie hier verwendet, bezieht sich auf einen Code, der aus einer echten Untermenge der Codeworte des (Mutter-) BCH-Codes besteht. So ist ein BCH-Code B(n) eine Untermenge eines anderen BCH-Codes B(m), falls die Menge der Code Worte von B(n) eine echte Untermenge der Menge von Codeworten von B(m) ist. Speziell kann der Subcode der BCH-Code einer bestimmten Verschachtelungsebene der verschachtelten Struktur der inneren verschachtelten BCH-Codes sein, wobei dieser Subcode eine Untermenge eines BCH-Codes einer unteren Ebene der verschachtelten Struktur ist. Demgemäß ist in der verschachtelten Struktur B(L-1) ⊆ B(L-2) ⊆ .... ⊆ B(0) der BCH-Code B(L-q) mit L > q > 0 und der Ganzzahl q ein a Subcode zumindest des BCH-Codes B(0) der niedrigsten Verschachtelungsebene 0 und, falls q < L-1, auch von jedem höheren verschachtelten BCH -Code, der zwischen B(0) und B(L-q) in der verschachtelten Struktur definiert ist. Eine Verschachtelung der BCH-Codes mit verschiedenen Ebenen ist insbesondere in [2] und [4] beschrieben.The term "subcode" of a particular (parent) BCH code, as used herein, refers to a code that consists of a true subset of the codewords of the (parent) BCH code. So a BCH code B (n) is a subset of another BCH code B (m) if the set of code words of B (n) is a proper subset of the set of code words of B (m) . Specifically, the subcode may be the BCH code of a certain nesting level of the nested structure of the inner nested BCH codes, which subcode is a subset of a BCH code of a lower level of the nested structure. Accordingly, in the nested structure B (L-1) ⊆ B (L-2) ⊆ .... ⊆ B (0), the BCH code B (Lq) with L > q > 0 and the integer q is an a subcode at least the BCH code B (0) of the
Vorzugsweise sind die äußeren Codes Blockcodes und besonders bevorzugt RS-Codes.Preferably the outer codes are block codes and most preferably RS codes.
Während die Codekonstruktionen, die in den Fundstellen [2] und [4] beschrieben sind, auf Codes beschränkt sind, die eine Gesamtcoderate, aufweisen, die kleiner oder gleich 0,9 ist, was bei Flashspeicher an, die nur einen kleinen Extra-Speicherbereich zum Speichern der für die ECC benötigten Redundanz zu Verfügung stellen, nicht anwendbar ist, ermöglicht das Codierverfahren gemäß dem ersten Aspekt der vorliegenden Erfindung hochratige GC-Codes mit Coderaten oberhalb von 0,9. Dementsprechend können solche hochratigen GC-Codes dazu verwendet werden, Daten zu codieren, welche in Speichern, beispielsweise Flashspeichern, die nur einen kleinen Extra-Speicherbereich zur Verfügung stellen, zu speichern sind. Obwohl in der niedrigsten Verschachtelungsebene nur SPC statt höherer BCH-Codes verwendet wird, können vergleichbare ECC-Fehlerkorrekturniveaus erreicht werden und somit die Effizienz (Coderate) des Codes erhöht werden. In anderen Worten, die Effizienz derartiger Speicher im Hinblick auf ihre Speicherkapazität für Nutzdaten kann aufgrund der erhöhten Coderate verbessert werden.While the code constructions described in references [2] and [4] are limited to codes having an overall code rate less than or equal to 0.9, which is indicated by flash memory that only has a small extra storage area for storing the redundancy needed for the ECC is not applicable, the coding method according to the first aspect of the present invention enables high-rate GC codes with code rates above 0.9. Accordingly, such high-rate GC codes can be used to encode data to be stored in memories, such as flash memories, which provide only a small amount of extra storage space. Although in the lowest nesting level only SPC is used instead of higher BCH codes, comparable ECC error correction levels can be achieved and thus the efficiency (code rate) of the code can be increased. In other words, the efficiency of such memories in terms of their storage capacity for user data can be improved due to the increased code rate.
Nachfolgend werden bevorzugte Ausführungsformen des Codierverfahrens gemäß dem ersten Aspekt beschrieben, die beliebig miteinander oder mit den weiteren Aspekten der Erfindung kombiniert werden können, soweit eine solche Kombination nicht ausdrücklich ausgeschlossen oder technisch unmöglich ist.Preferred embodiments of the coding method according to the first aspect are described below, which can be combined with one another or with the other aspects of the invention as desired, unless such a combination is expressly excluded or technically impossible.
Gemäß einer ersten bevorzugten Ausführungsform weist das Anwenden der Fehlerkorrekturcodierung auf:
- (i) Anordnen der zu codierenden Daten in einer zweidimensionalen Datenmatrix mit einer ersten Dimension na, die der Länge der äußeren RS-Codes entspricht, und einer zweiten Dimension nb, die der Länge der inneren erweiterten BCH-Codes entspricht, wobei eine Linie der ersten Dimension einer Matrix eine Zeile der Matrix und eine Linie ihrer zweiten Dimension eine Spalte der Matrix ist, oder andersherum, und die äußeren RS-Codes über ein Galois-Feld GF(2m1) definiert sind, sodass m1 Elemente jeder Linie der zweiten Dimension ein Symbol des Galois-Feld GF(2m1) darstellen;
- (ii) Anwenden der L äußeren RS-Codes auf die entsprechenden L * m1 Linien der ersten Dimension der Datenmatrix, sodass jeder der L äußeren RS-Codes ein Codewort aus den entsprechenden m1 Linien der zweiten Dimension liefert und insgesamt L * m1 Linien der sich ergebenden Zwischenmatrix durch die äußeren RS-Codes geschützt sind, wobei m1 eine positive Ganzzahl ist, mit vorzugsweise m1 > 1; und
- (iii) nachfolgend Anwenden der inneren verschachtelten erweiterten BCH-Codes auf die Linien der zweiten Dimension der Zwischenmatrix, um eine Codewortmatrix zu erhalten, welche die codierten Daten enthält, sodass nb - L * m1 Linien der ersten Dimension der Codewortmatrix für die Codierungsredundanz der inneren verschachtelten erweiterten BCH-Codes verwendet werden, und jede Linie der zweiten Dimension der Codewortmatrix gleich der Summe der L Codeworte der einzelnen verschachtelten erweiterten BCH-Codes für diese Linie ist.
- (i) Arranging the data to be encoded in a two-dimensional data matrix with a first dimension na corresponding to the length of the outer RS codes and a second dimension n b corresponding to the length of the inner extended BCH codes, where a line the first dimension of a matrix is a row of the matrix and a line of its second dimension is a column of the matrix, or vice versa, and the outer RS codes are defined over a Galois field GF(2 m1 ) such that m 1 elements of each line of the second dimension represent a symbol of the Galois field GF(2 m1 );
- (ii) Applying the L outer RS codes to the corresponding L * m 1 lines of the first dimension of the data matrix, such that each of the L outer RS codes yields a codeword from the corresponding m 1 lines of the second dimension, and a total of L * m 1 Lines of the resulting intermediate matrix are protected by the outer RS codes, where m 1 is a positive integer, with preferably m 1 >1; and
- (iii) subsequently applying the inner interleaved extended BCH codes to the lines of the second dimension of the intermediate matrix to obtain a codeword matrix containing the encoded data such that n b - L * m 1 lines of the first dimension of the codeword matrix for the coding redundancy of the inner nested extended BCH codes are used, and each line of the second dimension of the codeword matrix is equal to the sum of the L codewords of the individual nested extended BCH codes for that line.
Diese Ausführungsform ermöglicht eine besonders effiziente und klar strukturierte Implementierung des Verfahrens gemäß dem ersten Aspekt der vorliegenden Erfindung.This embodiment enables a particularly efficient and clearly structured implementation of the method according to the first aspect of the present invention.
Gemäß einer verwandten weiteren bevorzugten Ausführungsform, ist das Codewort bj der j-ten Linie der zweiten Dimension der Codewortmatrix durch die folgende Formel bestimmt:
Gemäß einer weiteren bevorzugten Ausführungsform ist die Coderate des entlang der Richtung der zweiten Dimension der Zwischenmatrix definierten ersten RS-Codeworts (welches in der obigen Summe zu i = 0 korrespondiert), geringer als die Coderate des entlang dieser Richtung definierten L-ten RS-Codeworts (das zu i = L -1 in der obigen Summe korrespondiert). Dies kann dementsprechend verwendet werden, um die Gesamtcoderate des Codes weiter zu erhöhen, ohne sein Sicherheitsniveau zu beeinträchtigen. Eine solche Reduktion der Coderaten der RS-Codeworte entlang der Richtung der zweiten Dimension der Matrix ist möglich, weil auf der Decodierungsseite die Struktur des Gesamt-GCC-Codes, wie sie sich aus der Decodierung ergibt, eine Wiederverwendung der Decodierungsergebnisse einer gegebenen Ebene i zum Decodieren der nächsten Ebene i +1 erlaubt.According to a further preferred embodiment, the code rate of the first RS code word defined along the direction of the second dimension of the intermediate matrix (which corresponds to i=0 in the above sum) is lower than the code rate of the Lth RS code word defined along this direction (which corresponds to i = L -1 in the above sum). Accordingly, this can be used to further increase the overall code rate of the code without sacrificing its security level. Such a reduction of the code rates of the RS code words along the direction of the second dimension of the matrix is possible because on the decoding side the structure of the overall GCC code as it results from the decoding allows reuse of the decoding results of a given level i to Next level i+1 decoding allowed.
Gemäß einer weiteren bevorzugten Ausführungsform sind die inneren erweiterten BCH-Codes über ein Galois-Feld GF (2m2) definiert und m1 ist von m2 verschieden, wobei m2 eine positive ganze Zahl ist. In einer ersten bevorzugten Variante davon gilt m1 = 8 und m2 = 6. In einer zweiten bevorzugten Variante gilt m1 = 9 und m2 = 7. speziell in dieser zweiten Variante ist die Anzahl der Verschachtelungsebenen für die inneren erweiterten BCH-Codes vorzugsweise 13, sodass na = 152 und nb = 118. Des Weiteren können für jede der genannten Verschachtelungsebenen j die korrespondierende Codedimension des inneren erweiterten BCH-Codes kb,j und ihre minimale Hammingdistanz db,j sowie die korrespondierende Codedimension ka,j des äußeren RS-Codes und seine minimale Hammingdistanz da,j diejenigen aus der folgenden Tabelle sein:
Der GC-Code gemäß dieser Ausführungsform ist besonders zur Fehlerkorrektur bei der Datenspeicherung in Flashspeichern geeignet. Speziell ist dieser GC-Code für 2KB-Informationsblöcke angepasst, d. h. für einen Code, der verwendet werden kann, um 2 KB Daten und zusätzlich 4 Bytes Metainformationen zu speichern. Dies betrifft insbesondere die genannte zweite Variante, einschließlich dann, wenn sie gemäß der vorgenannten Tabelle implementiert wird.The GC code according to this embodiment is particularly suitable for error correction in data storage in flash memory. Specifically, this GC code is adapted for 2KB information blocks, i. H. for a code that can be used to store 2 KB of data and an additional 4 bytes of meta information. This applies in particular to the second variant mentioned, including when it is implemented according to the table mentioned above.
Gemäß einer weiteren bevorzugten Ausführungsform wird in dem Schritt zur Anwendung der inneren verschachtelten erweiterten BCH-Codes auf die Linien der zweiten Dimension der Zwischenmatrix zumindest in einer der Verschachtelungsebenen, bevorzugt in der niedrigsten Verschachtelungsebene, das einzelne Paritätsbit des entsprechenden erweiterten BCH-Codes dieser Verschachtelungsebene aus einer vordefinierten echten Untermenge der Bits der entsprechenden Linie der zweiten Dimension berechnet. Dies kann insbesondere zu einer gesteigerten Performanz der Codierung führen, weil weniger Bits in die Berechnung der Paritätssymbole bzw. Paritätsbits des zu dem bzw. den entsprechenden erweiterten BCH-Code(s) gehörenden SPC involviert werden müssen.According to a further preferred embodiment, in the step of applying the inner nested extended BCH codes to the lines of the second dimension of the intermediate matrix, at least in one of the nesting levels, preferably in the lowest nesting level, the single parity bit of the corresponding extended BCH code of this nesting level is off a predefined real subset of the bits of the corresponding line of the second dimension. In particular, this can lead to increased performance of the coding because fewer bits have to be involved in the calculation of the parity symbols or parity bits of the SPC belonging to the corresponding extended BCH code(s).
Gemäß einer weiteren bevorzugten Ausführungsform weist das Verfahren des Weiteren ein Übermitteln der erhaltenen codierten Daten in ein oder mehrere Speichervorrichtungen zum Speichern der Daten darin auf. Speziell dann, wenn - wie in den vorausgehend erläuterten bevorzugten Ausführungsformen beschrieben - die zu codierenden Daten in einer zweidimensionalen Datenmatrix angeordnet sind und somit die sich ergebenden codierten Daten in einer korrespondierenden zweidimensionalen Codewortmatrix angeordnet sind, enthalten die zu speichernden erhaltenen codierten Daten diese Codewortmatrix, jedenfalls zum Teil.According to a further preferred embodiment, the method further comprises transferring the obtained encoded data to one or more storage devices for storing the data therein. Especially when--as described in the preferred embodiments explained above--the data to be encoded are arranged in a two-dimensional data matrix and the resulting encoded data are thus arranged in a corresponding two-dimensional array Len code word matrix are arranged, the received encoded data to be stored contain this code word matrix, at least in part.
Ein zweiter Aspekt der vorliegenden Erfindung betrifft ein Verfahren zum iterativen Fehlerkorrektur decodieren einer auf verallgemeinerten verketteten Codes (GCC) beruhenden Codewortmatrix wobei: der GCC aus L inneren verschachtelten binären erweiterten Bose-Chaudhuri-Hocquenghem-Codes (BCH-Codes) und L äußeren Codes, vorzugsweise Reed-Solomon Codes (RS-Codes) konstruiert ist, wobei L ≥ 2 eine positive ganze Zahl ist; der erweiterte BCH-Code auf der niedrigsten Verschachtelungsebene der inneren verschachtelten BCH-Codes nur ein Einfachparitätsprüfungs-Code (SPC-Code) ist; und der erweiterte BCH-Code wenigstens einer höheren Verschachtelungsebene der inneren verschachtelten BCH-Codes eine Fehlerkorrekturfähigkeit aufweist und ein Subcode des BCH-Codes der niedrigsten Verschachtelungsebene ist.A second aspect of the present invention relates to a method for iterative error correction decoding of a codeword matrix based on generalized concatenated codes (GCC), where: the GCC consists of L inner interleaved binary extended Bose-Chaudhuri-Hocquenghem codes (BCH codes) and L outer codes, preferably constructed from Reed-Solomon codes (RS codes), where L ≥ 2 is a positive integer; the extended BCH code at the lowest nest level of the inner nested BCH codes is only a single parity check (SPC) code; and the extended BCH code of at least one higher nest level of the inner nested BCH codes has an error correction capability and is a subcode of the BCH code of the lowest nest level.
Das Decodierungsverfahren weist auf:
- (i) eine erste Iteration, die zu der niedrigsten Verschachtelungsebene der inneren erweiterten BCH-Codes der Codewortmatrix korrespondiert und die folgenden Schritte aufweist:
- - Anwenden einer SPC-Decodierung auf die Linien der zweiten Dimension der Codewortmatrix bezüglich der niedrigsten Verschachtelungsebene der inneren verschachtelten erweiterten BCH-Codes, in denen die Linien einer zweiten Dimension der Codewortmatrix codiert sind, um eine vorläufige Decodierdatenmatrix der ersten Iteration zu erhalten und Löschinformationen festzustellen, welche die Linien der zweiten Dimension der Codewortmatrix charakterisieren, in denen beruhend auf der SPC-Decodierung eine Löschung detektiert wurde;
- - Entnehmen der Informationsbits, die in den Linien der zweiten Dimension der vorläufigen Decodierdatenmatrix der ersten Iteration enthalten sind, um Codesymbole der äußeren RS-Codes wiederzugewinnen, in denen die Linien einer ersten Dimension der Codewortmatrix codiert sind;
- - Anwenden einer RS-Decodierung, die zu den entsprechenden RS-Codes korrespondiert, welche zur Erzeugung der ursprünglichen Codewortmatrix während des Codierens verwendet wurden, auf die wiedergewonnenen RS-Symbole in den Linien der ersten Dimension der vorläufigen Decodierdatenmatrix der ersten Iteration, um eine Teildecodierungsergebnismatrix der ersten Iteration zu erhalten, wobei die Löschinformationen während der RS-Decodierung verwendet werden, um fehlerhafte RS-Symbole in der vorläufigen Decodierdatenmatrix der ersten Iteration zu identifizieren;
- - Zurückcodieren der Teildecodierungsergebnismatrix der ersten Iteration durch Anwendung einer SPC-Codierung auf die zweite Dimension dieser Matrix, um eine zurückcodierte Matrix der ersten Iteration zu erhalten; und
- - Subtrahieren der zurückcodierten Matrix der ersten Iteration von der Codewortmatrix, um eine Startmatrix für eine nachfolgende weitere Iteration zu erhalten; und
- (ii) für jede der weiteren Verschachtelungsebenen der inneren erweiterten BCH-Codes der Codewortmatrix, eine entsprechende weitere Iteration mit den folgenden Schritten:
- - Anwenden der erweiterten BCH-Decodierung auf die Linien der zweiten Dimension der Start Matrix der aktuellen Iteration bezüglich der aktuellen Verschachtelungsebene der inneren verschachtelten erweiterten BCH-Codes, in denen die Linien einer zweiten Dimension der Startmatrix der aktuellen Iteration codiert sind, um eine vorläufige Decodierdatenmatrix der aktuellen Iteration zu erhalten;
- - Entnehmen der Informationsbits, die in den Linien der zweiten Dimension der vorläufigen Decodierdatenmatrix der aktuellen Iteration enthalten sind, um Codesymbole der äußeren RS-Codes wiederzugewinnen, in denen die Linien einer ersten Dimension der Codewortmatrix codiert sind;
- - Anwenden einer RS-Decodierung, die zu den entsprechenden RS-Codes korrespondiert, welche zur Erzeugung der ursprünglichen Codewortmatrix während des Codierens verwendet wurden, auf die wiedergewonnenen Code Symbole in den Linien der ersten Dimension der vorläufigen Decodierdatenmatrix der aktuellen Iteration, um eine Teildecodierungsergebnismatrix der aktuellen Iteration zu erhalten;
- - falls die aktuelle Iteration zu der höchsten Verschachtelungsebene der inneren verschachtelten erweiterten BCH-Codes in der Codewortmatrix korrespondiert, ausgeben der Teildecodierungsergebnismatrix der aktuellen Iteration als eine sich aus der Decodierung ergebende Datenmatrix, und
- - andernfalls, Zurückcodieren der Teildecodierungsergebnismatrix der aktuellen Iteration durch Anwendung einer erweiterten BCH Codierung, die zu der aktuellen Verschachtelungsebene korrespondiert, auf die zweite Dimension dieser Matrix, um eine zurückcodierte Matrix der aktuellen Iteration zu erhalten; und Subtrahieren der zurückcodierten Matrix der aktuellen Iteration von der Startmatrix der aktuellen Iteration, um eine Startmatrix für eine nachfolgende weitere Iteration zu erhalten.
- (i) a first iteration, corresponding to the lowest nesting level of the inner extended BCH codes of the codeword matrix, comprising the following steps:
- - Applying an SPC decoding to the lines of the second dimension of the codeword matrix with respect to the lowest nesting level of the inner nested extended BCH codes in which the lines of a second dimension of the codeword matrix are encoded to obtain a preliminary decoding data matrix of the first iteration and detect erasure information , which characterize the lines of the second dimension of the codeword matrix in which an erasure was detected based on the SPC decoding;
- - extracting the information bits contained in the lines of the second dimension of the preliminary decoding data matrix of the first iteration in order to recover code symbols of the outer RS codes in which the lines of a first dimension of the codeword matrix are encoded;
- - applying an RS decoding corresponding to the respective RS codes used to generate the original codeword matrix during encoding to the recovered RS symbols in the first dimension lines of the first iteration preliminary decoding data matrix to obtain a partial decoding result matrix the first iteration, wherein the erasure information is used during RS decoding to identify erroneous RS symbols in the preliminary first iteration decoding data matrix;
- - recoding the partial decoding result matrix of the first iteration by applying an SPC coding to the second dimension of this matrix to obtain a recoded matrix of the first iteration; and
- - subtracting the recoded matrix of the first iteration from the codeword matrix to obtain a starting matrix for a subsequent further iteration; and
- (ii) for each of the further nesting levels of the inner extended BCH codes of the codeword matrix, a corresponding further iteration with the following steps:
- - Applying extended BCH decoding to the lines of the second dimension of the current iteration's start matrix with respect to the current nesting level of the inner nested extended BCH codes in which the lines of a second dimension of the start matrix of the current iteration are encoded, by a preliminary decoding data matrix get the current iteration;
- - extracting the information bits contained in the lines of the second dimension of the preliminary decoding data matrix of the current iteration in order to recover code symbols of the outer RS codes in which the lines of a first dimension of the codeword matrix are encoded;
- - applying an RS decoding corresponding to the respective RS codes used to generate the original codeword matrix during encoding to the recovered code symbols in the first dimension lines of the current iteration's preliminary decoding data matrix to obtain a partial decoding result matrix of the get current iteration;
- - if the current iteration corresponds to the highest nesting level of the inner nested extended BCH codes in the codeword matrix, outputting the partial decoding result matrix of the current iteration as a decoding-resultant data matrix, and
- - otherwise, recoding the partial decoding result matrix of the current iteration by applying an extended BCH coding corresponding to the current nesting level to the second dimension of this matrix to obtain a recoded matrix of the current iteration; and subtracting the recoded matrix of the current iteration from the starting matrix of the current iteration to get a starting matrix for a subsequent further iteration.
Auf diese Weise ermöglicht dieses Verfahren das Decodieren von ECC-codierten Daten, die in einer Codewortmatrix angeordnet sind, welche durch Anwendung der matrixbasierten bevorzugten Ausführungsformen der hierin beschriebenen Codierverfahren erhältlich ist. Dieses Verfahren ermöglicht erhöhte Code raten, insbesondere sogar Coderaten oberhalb von 0,9. Dies wird erreichbar, weil aufgrund des Zusammenspiels der SPC-Decodierung und der BCH-Codierung in der ersten Iteration, wobei die Löschinformation während der RS-Decodierung verwendet wird, um fehlerhafte RS-Symbole in der vorläufigen Decodierdatenmatrix der ersten Iteration zu identifizieren, die Verringerung der Paritätssymbole, die sich nun nur auf eine SPC-Codierung anstelle einer BCH-Codierung für die niedrigste Verschachtelungsebene beziehen, zusätzlichen Platz für Daten innerhalb des Codes schafft, ohne dabei die Gesamtlänge des GCC-Codes zu vergrößern oder dessen Sicherheitsniveau, insbesondere dessen Fehlerkorrekturfähigkeit, zu beeinträchtigen. Darüber hinaus werden sogar Performanzverbesserungen ermöglicht, weil die Verarbeitung der SPC-basierten ersten Iteration eine geringere Komplexität aufweist, als die weiteren BCHbasierten Iterationen.In this way, this method enables the decoding of ECC encoded data arranged in a codeword matrix, which is obtainable by applying the matrix-based preferred embodiments of the coding methods described herein. This method enables increased code rates, in particular even code rates above 0.9. This becomes achievable because due to the interaction of the SPC decoding and the BCH coding in the first iteration, the erasure information during the RS decoding is used to identify erroneous RS symbols in the preliminary decoding data matrix of the first iteration, the reduction of the parity symbols, which now only refer to an SPC coding instead of a BCH coding for the lowest interleaving level, creates additional space for data within the code without increasing the overall length of the GCC code or its security level, in particular its error correction ability, to affect. In addition, performance improvements are even made possible because the processing of the SPC-based first iteration is less complex than the other BCH-based iterations.
Gemäß einer bevorzugten Ausführungsform dieses Decodierverfahrens gilt für zumindest eine der weiteren Iterationen: (i) der Schritt zum Anwenden der erweiterten BCH-Decodierung weist des Weiteren ein Feststellen von Löschinformationen auf, die Linien der zweiten Dimension der Startmatrix der aktuellen Iteration charakterisieren, in denen basierend auf der SPC-Decodierung eines in dem erweiterten BCH-Code der aktuellen Iteration enthaltenen SPC-Paritätsbits eine Löschung detektiert wurde; und (ii) in dem Schritt zur Anwendung der RS-Decodierung diese Löschinformationen der aktuellen Iteration während der RS-Decodierung verwendet werden, um fehlerhafte RS-Symbole in der vorläufigen Decodierdatenmatrix der aktuellen Interaktion zu identifizieren. Auf diese Weise kann das Konzept des Zusammenspiels zwischen der SPC-Decodierung und der BCH-Decodierung noch zusätzlich erweitert werden. Insbesondere kann dies zu weiteren Verbesserungen der Performanz und/oder der Coderate führen, indem die Verwendung von erweiterten BCH-Codes einer höheren Codedimension k, d. h. mit einem geringeren Redundanz-Overhead, ermöglicht wird.According to a preferred embodiment of this decoding method, for at least one of the further iterations: (i) the step of applying the extended BCH decoding further comprises detecting erasure information characterizing lines of the second dimension of the starting matrix of the current iteration in which based an erasure was detected on SPC decoding of an SPC parity bit contained in the extended BCH code of the current iteration; and (ii) in the step of applying RS decoding, said current iteration erasure information is used during RS decoding to identify erroneous RS symbols in the preliminary decoding data matrix of the current interaction. In this way, the concept of the interaction between the SPC decoding and the BCH decoding can be further expanded. In particular, this can lead to further improvements in performance and/or code rate by using extended BCH codes of a higher code dimension k, i. H. with less redundancy overhead.
Ein dritter Aspekt der vorliegenden Erfindung betrifft eine Codierungsvorrichtung, insbesondere eine Halbleitervorrichtung mit einem Speichercontroller. Die Codierungsvorrichtung ist eingerichtet, das Codierungsverfahren gemäß dem ersten Aspekt und/oder das Decodierungsverfahren gemäß dem zweiten Aspekt auszuführen, jeweils vorzugsweise gemäß einer oder mehrerer der hierin jeweils beschriebenen bevorzugten Ausführungsformen.A third aspect of the present invention relates to a coding device, in particular a semiconductor device having a memory controller. The coding device is set up to carry out the coding method according to the first aspect and/or the decoding method according to the second aspect, each preferably according to one or more of the preferred embodiments described herein.
Gemäß einer bevorzugten Ausführungsform davon weist die Codierungsvorrichtung ein oder mehrere Prozessoren, einen Speicher sowie ein oder mehrere in dem Speicher abgelegte Programme auf, die bei ihrer Ausführung auf dem einen bzw. den mehreren Prozessoren die Codierungsvorrichtung veranlassen, das genannte Codierungsverfahren und/oder das genannte Decodierungsverfahren auszuführen.According to a preferred embodiment thereof, the coding device has one or more processors, a memory and one or more programs stored in the memory which, when executed on the one or more processors, cause the coding device, said coding method and/or said perform the decoding process.
Ein vierter Aspekt der vorliegenden Erfindung betrifft ein Computerprogramm, welches Anweisungen enthält, die eine Codierungsvorrichtung, bevorzugt die Codierungsvorrichtung gemäß dem dritten Aspekt, veranlassen, dass Codierungsverfahren gemäß dem ersten Aspekt und/oder das Decodierungsverfahren gemäß dem zweiten Aspekt auszuführen wobei die Codierungsvorrichtung sowie jedes der genannten Verfahren vorzugsweise gemäß einer oder mehrerer ihrer zugehörigen hierin beschriebenen bevorzugten Ausführungsformen ausgebildet sind.A fourth aspect of the present invention relates to a computer program which contains instructions which cause a coding device, preferably the coding device according to the third aspect, to carry out the coding method according to the first aspect and/or the decoding method according to the second aspect, the coding device and each of the said methods are preferably formed in accordance with one or more of their associated preferred embodiments described herein.
Das Computerprogramm kann insbesondere in Form eines Datenträgers implementiert sein, auf dem ein oder mehrere Programme zur Ausführung des bzw. der Verfahren gespeichert sind. Vorzugsweise handelt es sich dabei um einen Datenträger in der Art einer CD, einer DVD oder eines Flashspeichermoduls. Dies kann vorteilhaft sein, wenn das Programm dafür vorgesehen ist, als individuelles Produkt unabhängig von der Prozessorplattform gehandelt zu werden, auf der das eine bzw. die mehreren Programme auszuführen sind. In einer anderen Implementierung wird das Computerprogramm als eine Datei auf einer Datenverarbeitungseinheit, vorzugsweise auf einem Server, bereitgestellt und kann über eine Datenverbindung, beispielsweise über das Internet oder eine dedizierte Datenverbindung, etwa über ein proprietäres oder lokales Netzwerk, heruntergeladen werden.The computer program can be implemented in particular in the form of a data carrier on which one or more programs for executing the method or methods are stored. This is preferably a data carrier in the form of a CD, a DVD or a flash memory module. This may be advantageous when the program is intended to be traded as a distinct product independent of the processor platform on which the one or more programs are to be executed. In another implementation, the computer program is provided as a file on a data processing unit, preferably on a server, and can be downloaded via a data connection, for example via the Internet or a dedicated data connection, for example via a proprietary or local area network.
Dementsprechend treffen die hier beschriebenen Eigenschaften und Vorteile der Verfahren gemäß dem ersten und/oder den zweiten Aspekt der Erfindung mutatis mutandis auch auf die Codierungsvorrichtung gemäß dem dritten Aspekt sowie das Computerprogramm gemäß dem vierten Aspekt zu.Accordingly, the properties and advantages described here of the methods according to the first and/or the second aspect of the invention also apply mutatis mutandis to the coding device according to the third aspect and the computer program according to the fourth aspect.
Die vorliegende Erfindung ermöglicht insbesondere hochratige Codes. Darüber hinaus ermöglicht es die Verwendung von erweiterten BCH-Codes, Decodierfehler bei den inneren Codes festzustellen. Diese Fehler können unter Verwendung der Tatsache ausgenutzt werden, dass die algebraischen Decodierverfahren für die relevanten äußeren Codes, insbesondere für RS-Codes, sowohl Fehler als auch Löschungen korrigieren können. Wenn die äußere RS-Decodierung konfiguriert ist bis zu t Fehler zu korrigieren, kann sie bis zu 2t Löschungen korrigieren. Des Weiteren sind diese GC-Codes grundsätzlich in der Lage, Burstfehler zu korrigieren. Die vorgeschlagenen GC-Codes sind gut zur Fehlerkorrektur bei Flashspeichern für hoch zuverlässige Datenspeicherung geeignet, weil sehr geringe Restfehlerwahrscheinlichkeiten erreicht werden können. Die GC-Codes weisen eine Performanz ähnlich der von reinen BCH-Codes auf, sie können jedoch schneller und mit einer geringeren Decoder-Komplexität decodiert werden (vgl. [4]). Des Weiteren können die GC-Codes Zuverlässigkeitsinformationen bezüglich des Kanals verwerten [17].In particular, the present invention enables high-rate codes. In addition, the use of extended BCH codes makes it possible to detect decoding errors in the inner codes. These errors can be using exploit the fact that the algebraic decoding methods for the relevant outer codes, especially for RS codes, can correct both errors and erasures. If outer RS decoding is configured to correct up to t errors, it can correct up to 2t erasures. Furthermore, these GC codes are basically able to correct burst errors. The proposed GC codes are well suited for error correction in flash memory for high reliability data storage because very low residual error probabilities can be achieved. The GC codes have a performance similar to that of pure BCH codes, but they can be decoded faster and with a lower decoder complexity (cf. [4]). Furthermore, the GC codes can use reliability information regarding the channel [17].
Figurenlistecharacter list
Weitere Vorteile, Merkmale und Anwendungsmöglichkeiten der vorliegenden Erfindung ergeben sich aus der nachfolgenden detaillierten Beschreibung im Zusammenhang mit den angehängten Figuren, wobei:
-
1 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung schematisch eine Codierungsvorrichtung in Form eines Speichercontrollers innerhalb eines Speichersystems illustriert; -
2 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung schematisch ein Codierungsschema für die Transformation einer Datenmatrix, welche zu codierende Informationen enthält, in eine korrespondierende Codewortmatrix illustriert; -
3 gemäß einer bevorzugten Ausführungsform der Erfindung schematisch eine vereinfachte Version desCodierungsschemas aus 2 in größeren Detail illustriert; -
4 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung schematisch ein Decodierungsschema für eine Codewortmatrix illustriert, die gemäßdem Codierungsschema aus 2 erhältlich ist; und -
5 ein Diagramm zeigt, welches gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung die Coderate gegenüber dem Signal-zu-Rauschverhältnis für beispielhafte GC-Codes im Vergleich zu langen BCH-Codes bei algebraischer Decodierung zeigt.
-
1 Figure 12 schematically illustrates an encoding device in the form of a memory controller within a memory system, according to a preferred embodiment of the present invention; -
2 according to a preferred embodiment of the present invention, schematically illustrates a coding scheme for the transformation of a data matrix, which contains information to be coded, into a corresponding codeword matrix; -
3 according to a preferred embodiment of the invention, schematically shows a simplified version of thecoding scheme 2 illustrated in greater detail; -
4 according to a preferred embodiment of the present invention schematically illustrates a decoding scheme for a codeword matrix coded according to the coding scheme from2 is available; and -
5 Figure 12 is a graph showing code rate versus signal-to-noise ratio for exemplary GC codes versus long BCH codes when algebraically decoded, in accordance with a preferred embodiment of the present invention.
DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Der Speichercontroller 2 ist auch als Codierungsvorrichtung konfiguriert und daher eingerichtet, die Codierungs- und Decodierungsverfahren der vorliegenden Erfindung auszuführen, insbesondere wie nachfolgend unter Bezugnahme auf die
Die in den
Nachfolgend wird auf
Die schraffierte Fläche in
Somit ist ein Code einer höheren Ebene ein Subcode seines Vorgängers, wobei die höheren Ebenen höhere Fehlerkorrekturfähigkeiten aufweisen, d.h. tb,L-1 ≥ tb,L-2 ≥ ... ≥, tb,0, wobei tb,i die Fehlerkorrekturfähigkeit der Ebene i ist. Die Codedimensionen sind k(0) = Lm, k(1) = (L - 1)m, ..., k(L-1) = m.Thus, a higher level code is a subcode of its predecessor, with the higher levels having higher error correction capabilities, ie t b , L-1 ≥ t b,L-2 ≥ ... ≥, t b,0 , where t b,i is the level i error correction capability. The code dimensions are k (0) =Lm, k (1) =(L-1)m,..., k (L-1) =m.
Das Codewort bj derj-ten Spalte ist die Summe der L Codeworte.
Diese Codeworte
In dem Schritt S2 zur äußeren Codierung wird die Information in jeder der beiden Ebenen i = 0 und i = 1 mittels eines entsprechenden RS-Codes codiert, wobei die Code Dimension des äußeren RS-Codes für die Ebene 0 nur ka (0) = 3 beträgt, während die Code Dimension der Ebene 1 auf ka (1) = 5 erhöht ist. Die äußere Codierung im Schritt S2 resultiert in einer Zwischenmatrix A, welche die Codesymbole ai,j aufweist, wobei jedes dieser Symbole ai,j m1 = 3 Bits aufweist und die Zeilen der Matrix A Codewörter des äußeren Codes sind.In step S2 for outer coding, the information is encoded in each of the two levels i=0 and i=1 using a corresponding RS code, the code dimension of the outer RS code for
Bei dem Schritt S3 zur inneren Codierung wird jedes der Symbole ai,j der Zwischenmatrix A individuell mittels eines korrespondierenden inneren Codes in Form eines erweiterten BCH-Codes B(i) codiert. In der ersten Ebene i = 0 ist der entsprechende erweiterte BCH-Code B(0) nur ein Einfachparitätsprüfungs-(SPC) Code. Dementsprechend wird, wie in
In der zweiten Ebene i = 1 wird der entsprechende erweiterte BCH-Code B(1), der anders als der SPC-Code eine Fehlerkorrekturfähigkeit von 1 Bit aufweist, in jeder Spalte der Matrix A auf das entsprechende Symbol aj,1 angewandt. Da dies in diesem einfachen Beispiel bereits die letzte Ebene ist, ist ein Voranstellen von „0“-Symbolen nicht erforderlich. Wiederum wird ein SPC-Code auf das resultierende BCH-Codeword angewendet und in der letzten Zeile der entsprechenden Spalte j hinzugefügt.In the second level i=1, the corresponding extended BCH code B (1) which, unlike the SPC code, has an error correction capability of 1 bit, is applied in each column of the matrix A to the corresponding symbol a j,1 . Since this is already the last level in this simple example, there is no need to prepend "0" symbols. Again an SPC code is applied to the resulting BCH codeword and added to the last row of the corresponding column j.
Um die abschließende GC-Codewortmatrix C zu erhalten, werden Spalte für Spalte sämtliche der individuellen Codeworte bj (i) aller Ebenen die der Spalte j gemäß der vorstehenden Formel (2) addiert, um das korrespondierende Codewort bj zu erhalten, das dann die Spalte j der sich ergebenden GC-Codewortmatrix C darstellt, wie nochmals beispielhaft in
In einem weiteren Beispiel (Beispiel 2), das zu
Die äußeren RS-Codes sind über dem Galois-Feld GF(29) konstruiert. Somit wird die Codedimension der inneren Codes von Ebene zu Ebene um m1 = 9 Bits reduziert. Der GC-Code wird aus L = 13 äußeren RS-Codes der Länge na = 152 konstruiert. Die Parameter der Codes sind in Tabelle I zusammengefasst, wobei wir in jeder der Ebenen 4 bis 12 dieselben RS-Codes verwenden. Der Code hat insgesamt die Codedimension
Parameter des Beispielscodes. kb,j und db,j sind die Codedimension und die minimale Hammingdistanz des binären inneren Codes der Ebene j. ka,j und da,j sind die Codedimension und die minimale Hammingdistanz der äußeren RS-Codes.The outer RS codes are constructed over the Galois field GF(2 9 ). Thus the code dimension of the inner codes is reduced by m 1 = 9 bits from level to level. The GC code is constructed from L=13 outer RS codes of length na =152. The parameters of the codes are summarized in Table I, where we use the same RS codes in each of
Parameters of the example code. k b,j and db , j are the code dimension and minimum Hamming distance of the binary inner code of level j. k a,j and d a,j are the code dimension and minimum Hamming distance of the outer RS codes.
Dieser Code hat eine Coderate R = 0,915. Er ist auch in der Lage, Burstfehler zu korrigieren. Die minimale Distanz aller äußeren RS-Codes ist größer oder gleich 5. Folglich kann jeder der äußeren Codes wenigstens zwei fehlerhafte Symbole korrigieren, und somit können zwei Spalten der Codewortmatrix durch eine beliebige Anzahl von Fehlern korrumpiert sein.This code has a code rate R = 0.915. It is also able to correct burst errors. The minimum distance of all outer RS codes is greater than or equal to 5. Consequently, each of the outer codes can correct at least two erroneous symbols, and thus two columns of the codeword matrix can be corrupted by any number of errors.
Der Decoder, z.B. die Codierungsvorrichtung im Speichercontroller 2 aus
Ein ähnlicher Codierungs- und Decodierungsprozess ist im Detail auch in [14] beschrieben. Allerdings kann in Abweichung davon gemäß der vorliegenden Erfindung in der ersten Ebene i = 0 nur eine Fehlererkennung für die einfachen Paritätsprüfungscodes angewandt werden (S0-1). Der einfache Paritätsprüfungscode kann jeden Fehler ungeraden Gewichts erkennen. Wenn in der Spalte j ein Fehler detektiert wird, wird das korrespondierende Symbol a0,j als Löschung betrachtet. Nach der Auswertung des Fehlers beim einfachen Paritätsprüfungscode kann eine Lösch-Decodierung für den RS-Code angewandt werden (vgl. [15]). Beginnend mit der zweiten Ebene, kann die Struktur der verschachtelten BCH-Codes ausgenutzt werden, d. h. ein BCH-Code kann decodiert werden, der einen Einzelbit-Fehler pro Codeword korrigieren kann aufgrund der Erweiterung des BCH-Codes kann jeder Fehler vom Gewicht 2 detektiert werden. In diesem Fall wird ein Decodierungsfehler für den inneren Code erklärt, wobei die Decodierungsfehler der inneren Codes als gelöschte Symbole des RS-Codes betrachtet werden. Dementsprechend werden Fehler- und Lösch-Decodierung auf allen Ebenen des RS-Codes verwendet.A similar coding and decoding process is also described in detail in [14]. However, in deviation from this, according to the present invention, in the first level i=0 only error detection can be applied for the simple parity check codes (S0-1). The simple parity check code can detect any odd weight error. If an error is detected in column j, the corresponding symbol a 0,j is considered an erasure. After evaluating the error in the simple parity check code, erasure decoding can be applied to the RS code (cf. [15]). Starting with the second level, the structure of the interleaved BCH codes can be exploited, ie a BCH code can be decoded that can correct a single bit error per codeword due to the expansion of the BCH code any error of
Sämtliche individuellen Codes dieses beispielhaften GC-Codes werden ähnlich dem vorausgehend in Beispiel 2 dargestellten Code konstruiert. Insbesondere werden die inneren Codes gemäß der obigen Tabelle / gewählt, während die Fehlerkorrekturfähigkeit der äußeren Codes so angepasst ist, dass für eine Fehlerwahrscheinlichkeit im Kanal die höchstmögliche Coderate erhalten wird. Es ist zu vermerken, dass in diesem Beispiel aufgrund der Wahl der inneren Codes die Gesamt-Coderate des GC-Codes höchstens R = 0,99 beträgt. Im Gegensatz dazu, weisen die in [2], [4] beschriebenen Codes nur eine Coderate von 0,9 oder darunter auf.All of the individual codes of this example GC code are constructed similar to the code presented in Example 2 above. In particular, the inner codes are chosen according to Table / above, while the error correction capability of the outer codes is adjusted to obtain the highest possible code rate for an error probability in the channel. It should be noted that in this example, due to the choice of the inner codes, the overall code rate of the GC code is at most R=0.99. In contrast, the codes described in [2], [4] only have a code rate of 0.9 or below.
LITERATURANGABENREFERENCES
- [1] A. Fahrner, H. Griesser, R. Klarer, und V. Zyablov, „Low-complexity GEL codes for digital magnetic storage systems,“ IEEE Transactions on Magnetics, Bd. 40, Nr. 4, S. 3093-3095, Juli 2004.[1] A. Fahrner, H. Griesser, R. Klarer, and V. Zyablov, "Low-complexity GEL codes for digital magnetic storage systems," IEEE Transactions on Magnetics, Vol. 40, No. 4, pp. 3093- 3095, July 2004.
- [2] J. Freudenberger, U. Kaiser, und J. Spinner, „Concatenated code constructions for error correction in non-volatile memories,“ in Int. Symposium on Signals, Systems, and Electronics (ISSSE), Potsdam, Oktober 2012, S. 1-6.[2] J. Freudenberger, U. Kaiser, and J. Spinner, "Concatenated code constructions for error correction in non-volatile memories," in Int. Symposium on Signals, Systems, and Electronics (ISSSE), Potsdam, October 2012, pp. 1-6.
- [3] J. Freudenberger, J. Spinner, und S. Shavgulidze, „Generalized concatenated codes for correcting two-dimensional clusters of errors and independent errors,“ in Int. Conference on Communication and Signal Processing (CSP), Castelldefels-Barcelona, Feb. 2014, S. 1-5.[3] J. Freudenberger, J. Spinner, and S. Shavgulidze, "Generalized concatenated codes for correcting two-dimensional clusters of errors and independent errors," in Int. Conference on Communication and Signal Processing (CSP), Castelldefels-Barcelona, Feb. 2014, pp. 1-5.
- [4] J. Spinner und J. Freudenberger, „Decoder architecture for generalized concatenated codes,“ IET Circuits, Devices & Systems, Bd. 9, Nr. 5, S. 328-335, 2015.[4] J. Spinner and J. Freudenberger, "Decoder architecture for generalized concatenated codes," IET Circuits, Devices & Systems, Vol. 9, No. 5, pp. 328-335, 2015.
- [5] I. Dumer, Concatenated codes and their multilevel generalizations, in Handbook of Coding Theory, Bd. II, Elsevier, Amsterdam, 1998.[5] I. Dumer, Concatenated codes and their multilevel generalizations, in Handbook of Coding Theory, Vol. II, Elsevier, Amsterdam, 1998.
- [6] M. Bossert, Channel coding for telecommunications, Wiley, 1999.[6] M. Bossert, Channel coding for telecommunications, Wiley, 1999.
- [7] V. Zyablov, S. Shavgulidze, und M. Bossert, „An introduction to generalized concatenated codes,“ European Transactions on Telecommunications, Bd. 10, Nr. 6, S. 609-622, 1999.[7] V Zyablov, S Shavgulidze, and M Bossert, "An introduction to generalized concatenated codes," European Transactions on Telecommunications, vol. 10, no. 6, pp. 609-622, 1999.
- [8] R. Micheloni, A. Marelli, und R. Ravasio, Error Correction Codes for Non-Volatile Memories, Springer, 2008.[8] R Micheloni, A Marelli, and R Ravasio, Error Correction Codes for Non-Volatile Memories, Springer, 2008.
- [9] X. Zhang und K. K. Parhi, „High-speed architectures for parallel long BCH encoders,“ IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Bd. 13, Nr. 7, S. 872-877, 2005.[9] Zhang X and Parhi KK, "High-speed architectures for parallel long BCH encoders," IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 13, No. 7, pp. 872-877, 2005.
- [10] F. Sun, S. Devarajan, K. Rose, und T. Zhang, „Design of on-chip error correction systems for multilevel NOR and NAND flash memories,“ IET Circuits, Devices Systems, Bd. 1, Nr. 3, S. 241 -249, Juni 2007.[10] F Sun, S Devarajan, K Rose, and T Zhang, "Design of on-chip error correction systems for multilevel NOR and NAND flash memories," IET Circuits, Devices Systems, Vol. 1, No. 3, pp. 241-249, June 2007.
- [11] E. Yaakobi, J. Ma, L. Grupp, P. Siegel, S. Swanson, und J. Wolf, „Error characterization and coding schemes for flash memories,“ in IEEE GLOBECOM Workshops, Dez. 2010, S. 1856-1860.[11] E Yaakobi, J Ma, L Grupp, P Siegel, S Swanson, and J Wolf, "Error characterization and coding schemes for flash memories," in IEEE GLOBECOM Workshops, Dec 2010, p. 1856-1860.
- [12] E. Yaakobi, L. Grupp, P. Siegel, S. Swanson, und J. Wolf, „Characterization and errorcorrecting codes for TLC flash memories,“ in Computing, Networking and Communications (ICNC), 2012 International Conference on, Jan. 2012, S. 486-491.[12] E Yaakobi, L Grupp, P Siegel, S Swanson, and J Wolf, "Characterization and error-correcting codes for TLC flash memories," in Computing, Networking and Communications (ICNC), 2012 International Conference on, Jan 2012, pp. 486-491.
- [13] J. Freudenberger und J. Spinner, „A configurable Bose-Chaudhuri- Hocquenghem codec architecture for flash controller applications,“ Journal of Circuits, Systems, and Computers, Bd. 23, Nr. 2, S. 1-15, Feb. 2014.[13] J. Freudenberger and J. Spinner, "A configurable Bose-Chaudhuri-Hocquenghem codec architecture for flash controller applications," Journal of Circuits, Systems, and Computers, Vol. 23, No. 2, pp. 1-15, Feb 2014.
- [14] J. Spinner und J. Freudenberger, „Design and implementation of a pipelined decoder for generalized concatenated codes,“ in Proceedings of 27th Symposium on Integrated Circuits and Systems Design (SBCCI), Aracaju, Brazil, Sept. 2014, S. 1-16.[14] J. Spinner and J. Freudenberger, "Design and implementation of a pipelined decoder for generalized concatenated codes," in Proceedings of 27th Symposium on Integrated Circuits and Systems Design (SBCCI), Aracaju, Brazil, Sept. 2014, p. 1-16
- [15] L. Weiburn und J. Cavers, „Improved performance of Reed-Solomon decoding with the use of pilot signals for erasure generation,“ in Vehicular Technology Conference, 1998. VTC 98. 48th IEEE, Bd. 3, Mai 1998, S. 1930-1934 Bd.3.[15] L. Weiburn and J. Cavers, "Improved performance of Reed-Solomon decoding with the use of pilot signals for erasure generation," in Vehicular Technology Conference, 1998. VTC 98. 48th IEEE, Vol. 3, May 1998, pp. 1930-1934 Vol.3.
- [16] U. Wachsmann, R. Fischer, und J. Huber, „Multilevel codes: theoretical concepts and practical design rules,“ IEEE Transactions on Information Theory, Bd. 45, Nr. 5, S. 1361-1391, Juli 1999.[16] U. Wachsmann, R. Fischer, and J. Huber, "Multilevel codes: theoretical concepts and practical design rules," IEEE Transactions on Information Theory, Vol. 45, No. 5, pp. 1361-1391, July 1999 .
- [17] J. Spinner und J. Freudenberger, „Soft input decoding of generalized concatenated codes using a stack decoding algorithm,“ in Proceedings of 2nd BW-CAR Symposium on Information and Communication Systems (SlnCom), Dez. 2015, S. 1-5.[17] J. Spinner and J. Freudenberger, "Soft input decoding of generalized concatenated codes using a stack decoding algorithm," in Proceedings of 2nd BW-CAR Symposium on Information and Communication Systems (SlnCom), Dec. 2015, p. 1 -5.
BezugszeichenlisteReference List
- 11
- Speichersystemstorage system
- 22
- Speichercontroller, einschließlich CodierungsvorrichtungMemory controller including encoding device
- 2a2a
- Prozessoreinheitprocessor unit
- 2b2 B
- eingebetteter (embedded) Speicher des Speichercontrollersembedded memory of the memory controller
- 33
- nichtflüchtiger Speicher, insbesondere Flashspeichernon-volatile memory, in particular flash memory
- 44
- Hosthost
- A1A1
- Adressleitung(en)address line(s)
- D1D1
- Datenleitung(en)data line(s)
- C1C1
- Steuerleitung(en)control line(s)
- A2A2
- Adressbusaddress bus
- D2D2
- Datenbusdata bus
- C2C2
- Steuerbuscontrol bus
Claims (14)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/593,973 US10320421B2 (en) | 2016-05-13 | 2017-05-12 | Method and device for error correction coding based on high-rate generalized concatenated codes |
US16/395,046 US10790855B2 (en) | 2016-05-13 | 2019-04-25 | Method and device for error correction coding based on high-rate Generalized Concatenated Codes |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016005985 | 2016-05-13 | ||
DE102016005985.0 | 2016-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102017107431A1 DE102017107431A1 (en) | 2017-11-16 |
DE102017107431B4 true DE102017107431B4 (en) | 2022-05-25 |
Family
ID=81452845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017107431.7A Active DE102017107431B4 (en) | 2016-05-13 | 2017-04-06 | Methods and devices for error correction coding based on high rate generalized concatenated codes |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102017107431B4 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017110389B4 (en) | 2016-05-13 | 2020-02-13 | Hyperstone Gmbh | Method and decoder for soft input decoding of generalized chained codes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296212B1 (en) | 2002-11-15 | 2007-11-13 | Broadwing Corporation | Multi-dimensional irregular array codes and methods for forward error correction, and apparatuses and systems employing such codes and methods |
-
2017
- 2017-04-06 DE DE102017107431.7A patent/DE102017107431B4/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296212B1 (en) | 2002-11-15 | 2007-11-13 | Broadwing Corporation | Multi-dimensional irregular array codes and methods for forward error correction, and apparatuses and systems employing such codes and methods |
Also Published As
Publication number | Publication date |
---|---|
DE102017107431A1 (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102017110389B4 (en) | Method and decoder for soft input decoding of generalized chained codes | |
DE102015201384B4 (en) | Apparatus and method for improving data storage by data inversion | |
DE3486408T2 (en) | Method and device for decoding an error-correcting code. | |
DE112011101116B4 (en) | Two-level BCH codes for solid-state storage devices | |
DE69121307T2 (en) | Multi-level error correction system | |
DE3854393T2 (en) | METHOD AND DEVICE FOR ERROR CORRECTION WITH MULTIPLE RUNNING FOR PRODUCT CODE. | |
DE112012000385T5 (en) | Correct Erasures in Storage Arrays | |
DE102017103347B4 (en) | PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY | |
DE102011085602B4 (en) | Apparatus and method for correcting at least one bit error in a coded bit sequence | |
DE102007038114A1 (en) | Error correction circuit for correction of error in memory cell e.g. read only memory, has main control unit is formed for determining definite error location based on error type and output is determined by two error locating detectors | |
DE102007058828A1 (en) | Memory element for error corection, has error examination and correction coder for producing syndrome data, which is based on information data and for display of coded data | |
DE102013215055A1 (en) | Circuit arrangement and method with modified error syndrome for error detection of permanent errors in memories | |
DE3231956A1 (en) | ARRANGEMENT FOR TRANSMITTING BINARY DATA ON A VARIETY OF CHANNELS WITH THE AID OF A FOLDING CODE | |
DE102013016681B4 (en) | Encoding and decoding data to make adjustments for memory cells with stuck faults | |
EP0545498B1 (en) | Method and circuit for decoding RS-coded data signals | |
DE102005022107B4 (en) | Apparatus and method for determining a position of a bit error in a bit string | |
DE102015215401A1 (en) | A memory device and method for correcting a stored bit string | |
DE112020003489T5 (en) | MEMORY CONTROL AND METHOD FOR DECODING MEMORY DEVICES WITH PREMATURE HARD DECODING ABORT | |
DE112011101852T5 (en) | Decode LDPC code | |
DE3882175T2 (en) | Error correction code for a B-bit-per-chip memory with reduced redundancy. | |
DE3702574A1 (en) | MEMORY ARRANGEMENT WITH THREE MODULES, WITH SYMBOL-WIDTH MEMORY CHIPS AND WITH AN ERROR PROTECTION, WHICH EACH SYMBOL CONSISTS OF 2 (ARROW UP) I (ARROW UP) +1 BITS | |
DE102017107431B4 (en) | Methods and devices for error correction coding based on high rate generalized concatenated codes | |
DE102016104012A1 (en) | Processing a data word | |
DE102020110787B3 (en) | CIRCUIT AND PROCEDURE FOR ENCODING OR DECODING A DATA WORD | |
DE112019001968B4 (en) | COMMON CORRECTION LOGIC FOR HIGH AND LOW RANDOM BIT ERROR RATES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |