Method and device for error correction coding based on high-rate generalized concatenated codes
10320421 ยท 2019-06-11
Assignee
Inventors
- JUERGEN FREUDENBERGER (RADOLFZELL, DE)
- CHRISTOPH BAUMHOF (RADOLFZELL, DE)
- Jens Spinner (Constance, DE)
Cpc classification
G11C29/52
PHYSICS
International classification
H03M13/00
ELECTRICITY
H03M13/29
ELECTRICITY
G11C29/52
PHYSICS
H03M13/15
ELECTRICITY
Abstract
Field error correction coding is particularly suitable for applications in non-volatile flash memories. We describe a method for error correction encoding of data to be stored in a memory device, a corresponding method for decoding a codeword matrix resulting from the encoding method, a coding device, and a computer program for performing the methods on the coding device, using a new construction for high-rate generalized concatenated (GC) codes. The codes, which are well suited for error correction in flash memories for high reliability data storage, are constructed from inner nested binary Bose-Chaudhuri-Hocquenghem (BCH) codes and outer codes, preferably Reed-Solomon (RS) codes. For the inner codes extended BCH codes are used, where only single parity-check codes are applied in the first level of the GC code. This enables high-rate codes.
Claims
1. A method of decoding of a codeword matrix, wherein: the codeword matrix is constructed from L inner nested binary extended Bose-Chaudhuri-Hocquenghem (BCH) codes and L outer codes; the extended BCH code in a lowest nesting-level of the inner nested BCH codes is a mere single parity-check (SPC) code; and the extended BCH code in at least one higher nesting-level of the inner nested BCH codes has an error correction capability and is a sub-code of the BCH code of the lowest nesting level; the decoding comprising: a first iteration corresponding to the lowest nesting level of the inner extended BCH codes of the codeword matrix and having the following: applying 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 in order to obtain an intermediate decoding data matrix of the first iteration and to determine erasure information characterizing lines of the second dimension of the codeword matrix in which an erasure has been detected based on the SPC-decoding; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the first iteration in order to retrieve code symbols of the outer codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer decoding corresponding to the respective codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the first iteration in order to obtain a partial decoding result matrix of the first iteration, wherein the erasure information is used during outer decoding to identify erroneous symbols in the intermediate decoding data matrix of the first iteration; re-encoding said partial decoding result matrix of the first iteration by applying SPC-encoding to the second dimension of this matrix to obtain are encoded matrix of the first iteration; and subtracting there-encoded matrix of the first iteration from the codeword matrix in order to obtain a start matrix for a subsequent further iteration; and for each of the further nesting levels of the inner extended BCH codes of the codeword matrix, a respective further iteration having the following processes: applying extended BCH-decoding to the lines of the second dimension of the start matrix of the present iteration with respect to the present nesting level of the inner nested extended BCH codes in which the lines of a second dimension of the start matrix of the present iteration are encoded in order to obtain an intermediate decoding data matrix of the present iteration; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the present iteration in order to retrieve code symbols of the outer codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer decoding corresponding to the respective outer codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the present iteration in order to obtain a partial decoding result matrix of the present iteration; if the present 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 present iteration as a data matrix resulting from the decoding, and otherwise, re-encoding the partial decoding result matrix of the present iteration by applying extended BCH-encoding corresponding to the present nesting level to the second dimension of this matrix to obtain are-encoded matrix of the present iteration, and subtracting the re-encoded matrix of the present iteration from the start matrix of the present iteration in order to obtain a start matrix for a subsequent further iteration.
2. The method according to claim 1, wherein in at least one of the further iterations includes: a first process of applying extended BCH-decoding further comprises determining erasure information characterizing lines of the second dimension of the start matrix of the present iteration in which an erasure has been detected based on SPC-decoding a SPC-parity bit contained in the extended BCH code of the present iteration; and a second process of applying outer decoding comprises using the erasure information of the present iteration during outer decoding to identify erroneous symbols in the intermediate decoding data matrix of the present iteration.
3. The method according to claim 1, the method further comprising: accessing the codeword matrix from one or more memory devices.
4. The method according to claim 1, wherein the outer codes are Reed-Solomon (RS) codes, and wherein the outer decoding is RS decoding.
5. The method according to claim 1, wherein L is a positive integer, and L is greater than two.
6. The method according to claim 1, wherein the codeword matrix is arranged as a two-dimensional data matrix having a first dimension n.sub.a equal to a length of the outer codes and a second dimension n.sub.b equal to a length of the inner extended BCH codes, wherein a line of a first dimension of a matrix is a row of the matrix and a line of a second dimension thereof is a column of the matrix, or vice versa, and the outer RS codes are defined over a Galois-Field GF(2.sup.m1) with m.sub.1 elements of each line of the second dimension representing one symbol of the Galois-Field GF(2.sup.m1), wherein m.sub.1 is a positive integer.
7. The method according to claim 6, wherein the cordeword matrix is formed by: applying the L outer codes to respective L*m.sub.1 lines of the first dimension of the data matrix such that each of the L outer codes yields a codeword from respective m.sub.1 lines of the second dimension and in total L*m.sub.1 lines of the resulting intermediate matrix are protected by the outer codes; and applying the inner nested extended BCH codes to the lines of the second dimension of the intermediate matrix to obtain a codeword matrix comprising the encoded data, with n.sub.bL*m.sub.1 lines of the first dimension of the codeword matrix being used for a coding redundancy of the inner nested extended BCH codes and each line of the second dimension of the codeword matrix being a sum of the L codewords of the individual nested extended BCH codes for the respective line.
8. The method according to claim 7, wherein a codeword b.sub.j of a j-th line of the second dimension of the codeword matrix is determined by the following formula:
9. The method according to claim 7, wherein the outer codes are RS codes, and wherein the code rate of the first RS codeword defined along the direction of the second dimension of the intermediate matrix is lower than the code rate of the L.sup.th RS codeword defined along that direction.
10. A decoding device, the decoding device comprising: a memory controller configured to perform decoding of a codeword matrix wherein: the codeword matrix is constructed from L inner nested binary extended Bose-Chaudhuri-Hocquenghem (BCH) codes and L outer codes; the extended BCH code in a lowest nesting-level of the inner nested BCH codes is a mere single parity-check (SPC) code; and the extended BCH code in at least one higher nesting-level of the inner nested BCH codes has an error correction capability and is a sub-code of the BCH code of the lowest nesting level; the decoding comprising: a first iteration corresponding to the lowest nesting level of the inner extended BCH codes of the codeword matrix and having the following processes: applying 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 in order to obtain an intermediate decoding data matrix of the first iteration and to determine erasure information characterizing lines of the second dimension of the codeword matrix in which an erasure has been detected based on the SPC-decoding; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the first iteration in order to retrieve code symbols of the outer codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer decoding corresponding to the respective codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the first iteration in order to obtain a partial decoding result matrix of the first iteration, wherein the erasure information is used during outer decoding to identify erroneous symbols in the intermediate decoding data matrix of the first iteration; re-encoding said partial decoding result matrix of the first iteration by applying SPC-encoding to the second dimension of this matrix to obtain are encoded matrix of the first iteration; and subtracting there-encoded matrix of the first iteration from the codeword matrix in order to obtain a start matrix for a subsequent further iteration; and for each of the further nesting levels of the inner extended BCH codes of the codeword matrix, a respective further iteration having the following processes: applying extended BCH-decoding to the lines of the second dimension of the start matrix of the present iteration with respect to the present nesting level of the inner nested extended BCH codes in which the lines of a second dimension of the start matrix of the present iteration are encoded in order to obtain an intermediate decoding data matrix of the present iteration; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the present iteration in order to retrieve code symbols of the outer RS codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer RS-decoding corresponding to the respective outer RS codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the present iteration in order to obtain a partial decoding result matrix of the present iteration; if the present 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 present iteration as a data matrix resulting from the decoding, and otherwise, re-encoding the partial decoding result matrix of the present iteration by applying extended BCH-encoding corresponding to the present nesting level to the second dimension of this matrix to obtain are-encoded matrix of the present iteration, and subtracting the re-encoded matrix of the present iteration from the start matrix of the present iteration in order to obtain a start matrix for a subsequent further iteration.
11. The decoding device according to claim 10, wherein the outer codes are Reed-Solomon (RS) codes, and wherein the outer decoding is RS decoding.
12. The decoding device according to claim 10, wherein L is a positive integer, and L is greater than two.
13. The decoding device according to claim 10, wherein the codeword matrix is arranged as a two-dimensional data matrix having a first dimension n.sub.a equal to a length of the outer codes and a second dimension n.sub.b equal to a length of the inner extended BCH codes, wherein a line of a first dimension of a matrix is a row of the matrix and a line of a second dimension thereof is a column of the matrix, or vice versa, and the outer RS codes are defined over a Galois-Field GF(2.sup.m1) with m.sub.1 elements of each line of the second dimension representing one symbol of the Galois-Field GF(2.sup.m1), wherein m.sub.1 is a positive integer.
14. The decoding device according to claim 13, wherein the cordeword matrix is formed by: applying the L outer codes to respective L*m.sub.1 lines of the first dimension of the data matrix such that each of the L outer codes yields a codeword from respective m.sub.1 lines of the second dimension and in total L*m.sub.1 lines of the resulting intermediate matrix are protected by the outer codes; and applying the inner nested extended BCH codes to the lines of the second dimension of the intermediate matrix to obtain a codeword matrix comprising the encoded data, with n.sub.bL*m.sub.1 lines of the first dimension of the codeword matrix being used for a coding redundancy of the inner nested extended BCH codes and each line of the second dimension of the codeword matrix being a sum of the L codewords of the individual nested extended BCH codes for the respective line.
15. The decoding device according to claim 14, wherein a codeword b.sub.j of a j-th line of the second dimension of the codeword matrix is determined by the following formula:
16. The decoding device according to claim 14, wherein the outer codes are RS codes, and wherein the code rate of the first RS codeword defined along the direction of the second dimension of the intermediate matrix is lower than the code rate of the L.sup.th RS codeword defined along that direction.
17. A decoding system, the decoding system comprising: non-transitory computer readable medium storing instructions executable by a processor to decode a codeword matrix wherein: the codeword matrix is constructed from L inner nested binary extended Bose-Chaudhuri-Hocquenghem (BCH) codes and L outer codes; the extended BCH code in a lowest nesting-level of the inner nested BCH codes is a mere single parity-check (SPC) code; and the extended BCH code in at least one higher nesting-level of the inner nested BCH codes has an error correction capability and is a sub-code of the BCH code of the lowest nesting level; and wherein decoding the codeword matrix includes: a first iteration corresponding to the lowest nesting level of the inner extended BCH codes of the codeword matrix and having the following processes: applying 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 in order to obtain an intermediate decoding data matrix of the first iteration and to determine erasure information characterizing lines of the second dimension of the codeword matrix in which an erasure has been detected based on the SPC-decoding; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the first iteration in order to retrieve code symbols of the outer codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer decoding corresponding to the respective codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the first iteration in order to obtain a partial decoding result matrix of the first iteration, wherein the erasure information is used during outer decoding to identify erroneous symbols in the intermediate decoding data matrix of the first iteration; re-encoding said partial decoding result matrix of the first iteration by applying SPC-encoding to the second dimension of this matrix to obtain are encoded matrix of the first iteration; and subtracting there-encoded matrix of the first iteration from the codeword matrix in order to obtain a start matrix for a subsequent further iteration; and for each of the further nesting levels of the inner extended BCH codes of the codeword matrix, a respective further iteration having the following processes: applying extended BCH-decoding to the lines of the second dimension of the start matrix of the present iteration with respect to the present nesting level of the inner nested extended BCH codes in which the lines of a second dimension of the start matrix of the present iteration are encoded in order to obtain an intermediate decoding data matrix of the present iteration; inferring the information bits contained in the lines of the second dimension of the intermediate decoding data matrix of the present iteration in order to retrieve code symbols of the outer RS codes in which the lines of a first dimension of the codeword matrix are encoded; applying outer RS-decoding corresponding to the respective outer RS codes used for obtaining the original codeword matrix during encoding, to the retrieved code symbols in the lines of the first dimension of the intermediate decoding data matrix of the present iteration in order to obtain a partial decoding result matrix of the present iteration; if the present 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 present iteration as a data matrix resulting from the decoding, and otherwise, re-encoding the partial decoding result matrix of the present iteration by applying extended BCH-encoding corresponding to the present nesting level to the second dimension of this matrix to obtain are-encoded matrix of the present iteration, and subtracting the re-encoded matrix of the present iteration from the start matrix of the present iteration in order to obtain a start matrix for a subsequent further iteration.
18. The decoding system according to claim 17, wherein the outer codes are Reed-Solomon (RS) codes, and wherein the outer decoding is RS decoding.
19. The decoding system according to claim 17, wherein L is a positive integer, and L is greater than two.
20. The decoding system according to claim 17, wherein the codeword matrix is arranged as a two-dimensional data matrix having a first dimension n.sub.a equal to a length of the outer codes and a second dimension n.sub.b equal to a length of the inner extended BCH codes, wherein a line of a first dimension of a matrix is a row of the matrix and a line of a second dimension thereof is a column of the matrix, or vice versa, and the outer RS codes are defined over a Galois-Field GF(2.sup.m1) with m.sub.1 elements of each line of the second dimension representing one symbol of the Galois-Field GF(2.sup.m1), wherein m.sub.1 is a positive integer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
(6) Referring now to the figures of the drawing in detail and first, particularly, to
(7) The memory controller 2 is also configured as a coding device and thus adapted to perform the encoding and decoding methods of the present invention, particularly as described below with reference to
(8) The coding methods illustrated by
(9) Reference is now made to
(10) The shaded area in
B.sup.(L-1)B.sup.(L-2) . . . B.sup.(0)(1)
(11) Hence, a higher level code is a sub-code of its predecessor, where the higher levels have higher error correcting capabilities, i.e., t.sub.b,L-1t.sub.b,L-2 . . . , t.sub.b,0, where t.sub.b,i is the error correcting capability of level i. The code dimensions are k.sup.(0)=Lm, k.sup.(1)=(L1)m, . . . , k.sup.(L-1)=m.
(12) The codeword b.sub.j of the j-th column is the sum of L codewords.
(13)
(14) These codewords b.sub.j.sup.(i) are formed by encoding the symbols a.sub.j,i with the corresponding sub-code B.sup.(i), where a.sub.j,i is the j-th symbol (m bits) of the outer code A.sup.(i). For this encoding (Li1)m zero bits are prefixed onto the symbol a.sub.j,i. Note that the j-th column b.sub.j is a codeword of B.sup.(0), because of the linearity of the nested codes.
(15)
(16) In the outer encoding step S2, the information in each of the two levels i=0 and i=1 is encoded by a respective RS code, wherein the code dimension of the outer RS code for level 0 is only k.sub.a.sup.(0)=3 while the code dimension of level 1 is increased to k.sub.a.sup.(1)=5. Performing the outer encoding step S2 results in an intermediate matrix A comprising the code symbols a.sub.i,j, wherein each of these symbols a.sub.i,j comprises m.sub.1=3 bits and the rows of the matrix A are codewords of the outer code.
(17) In the second level i=1, the respective extended BCH code B.sup.(1), which unlike the SPC code does have an error correction capability of 1 Bit, is applied in each column of the matrix A to the respective symbol a.sub.j,1. As in this simple example this is already the final level, no prefixing of 0 symbols is necessary. Again, an SPC code is applied to the resulting BCH codeword and added in the final row of the respective column j.
(18) In order to arrive at the final GC codeword matrix C, on a column by column basis all of the individual codewords b.sub.j.sup.(i) of all levels i of column j are added according to formula (2) above in order to receive the corresponding codeword b.sub.j which then forms column j of the resulting GC codeword matrix C, as again exemplarily illustrated in
(19) In a further example (Example 2) corresponding to
(20) The outer RS codes are constructed over the Galois field GF (2.sup.9). Hence, the code dimension of the inner codes is reduced by m.sub.1=9 bits with each level. The GC code is constructed from L=13 outer RS codes of length n.sub.a=152. The parameters of the codes are summarized in Table I, where we use the same RS code in each of levels 4 to 12. The code has overall code dimension k=m .sub.f=0.sup.L-1k.sub.a,j=16416 and length n=n.sub.a.Math.n.sub.b=17936.
(21) In the inner encoding step S3 each of the symbols a.sub.i,j of the intermediate matrix A is individually encoded by a corresponding inner code in the form of an extended BCH code B.sup.(i). In the first level i=0, the respective extended BCH code B.sup.(0) is a mere Single Parity Check (SPC) code. Accordingly, as exemplarily illustrated in
(22) TABLE-US-00002 TABLE I j k.sub.b,j d.sub.b,j k.sub.a,j d.sub.a,j 0 117 2 84 69 1 108 4 130 23 2 99 6 136 17 3 90 8 142 11 4-12 81 12 148 5
(23) Table I shows parameters of the example code. In the table, k.sub.b,j and d.sub.b,j are the code dimension and minimum Hamming Distance of the binary inner code of level j. The terms k.sub.a,j and d.sub.a,j are the code dimension and minimum Hamming Distance of the outer RS codes.
(24) This code has a code rate R=0.915. It is also able to correct burst errors. The minimum distance of all outer RS code is greater than or equal to five. Hence, each outer code can correct at least two erroneous symbols and consequently two columns of the codeword matrix may be corrupted by an arbitrary number of errors.
(25)
(26) The decoder, e.g. of the coding device in memory controller 2 of
(27) A similar encoding and decoding process is also described in detail in [14]. However, in deviation thereof, according to the present invention in the first level i=0, only error detection for the single parity-check codes can be applied (S0-1). The single parity-check code can detect any error of odd weight. If an error is detected in column j, the corresponding symbol a.sub.0,j is considered an erasure. After the evaluation of the single parity-check codes error and erasure decoding for the RS code can be applied (cf. [15]). Starting with the second level, the structure of the nested-BCH codes can be exploited, i.e. a BCH code can be decoded that can correct a single bit error per codeword. Due to the extension of the BCH code any error of weight two can be detected. In this case, a decoding failure is declared for the inner code, where the decoding failures of the inner codes are regarded as erased symbols of the RS code. Hence, error and erasure decoding is used in all levels of the RS code.
(28)
(29) All individual codes of this exemplary GC code are constructed similar to the code presented in Example 2 above. In particular, the inner codes are chosen according to Table I above, whereas the error correcting capability of the outer codes is adapted to obtain the highest possible code rate for a channel error probability. Note that in this example, the overall code rate of the GC code is at most R=0.99, because of the choice of the inner code. In contrast, the codes presented in [2], [4] only have a code rate less than or equal to 0.9.
(30) While above at least one exemplary embodiment of the present invention has been described, it has to be noted that a great number of variations thereto exists. Furthermore, it is appreciated that the described exemplary embodiments only illustrate non-limiting examples of how the present invention can be implemented and that it is not intended to limit the scope, the application or the configuration of the herein-described apparatus' and methods. Rather, the preceding description will provide the person skilled in the art with constructions for implementing at least one exemplary embodiment of the invention, wherein it is understood that various changes of functionality and the arrangement of the elements of the exemplary embodiment can be made, without deviating from the subject-matter defined by the appended claims and their legal equivalents.
REFERENCES
(31) [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, 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, 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, February 2014, pp. 1-5. [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, Vol. II, Elsevier, Amsterdam, 1998. [6] M. Bossert, Channel coding for telecommunications, Wiley, 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, and R. Ravasio, Error Correction Codes for Non-Volatile Memories, Springer, 2008. [9] X. Zhang and K. K. Parhi, 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, 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, and J. Wolf, Error characterization and coding schemes for flash memories, in IEEE GLOBECOM Workshops, December 2010, pp. 1856-1860. [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, January 2012, pp. 486-491. [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, February 2014. [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, September 2014, pp. 1-16. [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, 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 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), December 2015, pp. 1-5.
(32) The following is a summary list of reference numerals and the corresponding structure used in the above description of the invention: 1 memory system 2 memory controller, including coding device 2a processing unit 2b embedded memory of memory controller 3 nonvolatile memory, particularly flash memory 4 host A1 address line(s) D1 data line(s) C1 control line(s) A2 address bus D2 data bus C2 control bus