The present application claims priority under 35 U.S.C. §119(a) to Korean patent application number 10-2014-0004690, filed on Jan. 14, 2014, in the Korean Intellectual Property Office, which is incorporated herein by reference in its entirety as set forth in full.
1. Technical Field
The present disclosure relates to an encoding device, a decoding device, and an operation method thereof. Particularly, embodiments of the present disclosure relate to an encoding device, a decoding device, and an operation method thereof, in which a message matrix including a plurality of message blocks and a parity block for the message blocks is generated, and an error of a message block having the error is corrected using the parity block during decoding of the message matrix.
2. Related Art
For error detection and correction, various block-based coding technologies are used, and a concatenation Bose-Chaudhuri-Hocquenghem (BCH) code technology is a representative example thereof.
In general, in a coding technology having a matrix of blocks and row and column parities for protecting the blocks, a (1,1) error pattern, where decoding failure occurs at one row parity, one column parity and one message block, has a large influence on an error floor. Such a (1,1) error pattern may indicate an error block having an error, but the coding technology may not provide information sufficient to determine a bit of the error block at which the error has occurred.
To this end, in a prior art for detecting and correcting errors in data read from a memory device, a corresponding memory area is read several times while changing a threshold value in order to determine the reliability of individual bits, and correct data is estimated using a decision result. However, such a prior art may cause the read performance of the memory device to deteriorate due to a plurality of read and check operations.
Embodiments of the present disclosure are directed to an encoding device, a decoding device, and operation methods thereof, by which it is possible to quickly correct a (1,1) error pattern that is a main cause of an error floor without passing through a plurality of read and check operations.
In one embodiment of the present disclosure, an encoding device includes: a first encoder that generates a message matrix from a plurality of message blocks and a parity block having a first parity information of the plurality of message blocks; and a second encoder that adds a second parity parity information to the message matrix.
In another embodiment, a decoding device includes: an error detector that decodes a message matrix including a plurality of message blocks and a parity block, and parity information of the message matrix, and detects an error message block having an error in the message matrix; and an error corrector that corrects the error of the error message block from the plurality of message blocks and s the parity block.
In another embodiment, an encoding method includes: a first step of receiving a message, and generating a message matrix including a plurality of message blocks and a parity block having a first parity information of the plurality of message blocks; and a second step of adding a second parity information to the message matrix.
In another embodiment, a decoding method includes: an error detection step of decoding a message matrix including a plurality of message blocks and a parity block, and an encoded is message including parity information of the message matrix, and detecting an error message block having an error in the message matrix; and an error correction step of correcting the error of the error message block from the plurality of message blocks and the parity block.
According to the present technology, it is possible to quickly correct a (1,1) error pattern that is a main cause of an error floor without performing a plurality of read and check operations, and thus to improve the performance of a memory device or a communication device employing the corresponding technology.
Features, aspects, and embodiments are described in conjunction with the attached drawings, in which:
Hereinafter, an encoding device, a decoding device, and operation methods thereof according to the present disclosure will be described in detail with reference to the accompanying drawings through an illustrative embodiment.
The message matrix 100 includes a plurality of row message blocks 110i and a plurality of column message blocks 120j, wherein, for a number of rows Nr and a number of columns Nc, i=1 . . . Nr and j=1 . . . Nc. A row message block 110i includes a plurality of message blocks arranged along a row i, and a column message block 120j includes a plurality of message blocks arranged along a column j. Thus, a specific message block Bij is located at an intersection of the row i and the column j. The message block Bi,j in the message matrix 100 may be protected by one row parity block 200i and one column parity block 300j.
Hereinafter, embodiments of the present disclosure are not dependent on a detailed code technology for generating a row or column parity block. For example, the row or column parity block may also be generated by applying a BCH code, a Hamming code, or a Reed-Solomon (RS) code, or may also be generated by applying another type of code technology.
The present disclosure is related to the structure of the message matrix 100 before a row or column parity is added. The message matrix 100 according to the present disclosure includes a plurality of message blocks 100k and a parity block 130 including parity information of the plurality of message blocks 100k (1≦k≦M−1 and M=Nr×Nc).
The parity block 130 may include single parity information of the plurality of message blocks 100k.
The message matrix 100 according to the embodiment of the present disclosure is designed in consideration of the lengths of the message blocks 100k and the length of the parity block 130.
For example, when all of the plurality of message blocks 100k include N (N is a natural number) bits, the parity block 130 may also be set to include N bits. An nth bit (0≦n≦N−1) of the parity block 130 may be decided by performing an XOR operation on respective nth bits of the message blocks 100k.
If the lengths of the message blocks 100k are different from one another and the maximum length among the lengths of the plurality of message blocks 100k is N, the length of the parity block 130 may be set to N. In this case, the nth bit (0≦n≦N−1) of the parity block 130 may be decided by performing an XOR operation on the respective nth bits of the message blocks 100k. If there is no nth bit in one of the message blocks 100k, a corresponding bit may be assumed to 0.
For example, when an error having a (1,1) pattern occurs in an ith row and a jth column in the process of decoding data concatenated in the parallel manner illustrated in
In order to correct the error of the message block Bi,j, the information of the parity block 130 may be used. For example, the nth bit of the message block Bi,j may be corrected by performing an XOR operation on nth bits of the other message blocks 100k, except for the message block having an error, and an nth bit of the parity block 130. That is, the bits of the error message block Bi,j are reconstructed using the normal message blocks and the parity block 130, wherein the normal message blocks includes all of the message blocks 100k except for the error message block Bi,j. In other embodiments, the value of an nth bit of the message block Bi,j having the error may be indirectly corrected by performing an XOR operation on nth bits of all the message blocks 100k and by comparing the result with the nth bit of the parity block 130.
In this way, when an error due to the (1,1) error pattern is corrected, because it is not necessary to check the reliability of each bit's information, a plurality of memory read operations may be omitted.
Similarly to the case of the parallel concatenation, in the serial concatenation, a row parity block 200i is also generated in correspondence with each row of the message matrix 100. A column parity block 300j is generated for the message matrix 100 and the entire row parity 200.
In the serial concatenation according to the present embodiment, each row parity block Ri is coupled to a corresponding message block Bi,6 of one column of the message matrix 100.
In this case, since the sixth column is longer than the first through fifth columns, it may not be preferable to generate a column parity block for each of the columns. In an embodiment, the columns of the message matrix 100 are rearranged in order to generate the column parity 300. An example of a schema for rearranging the columns of the message matrix 100 is illustrated in
In
In
C
j
=[B
1,f(j)
B
2,f(j−1)
. . . B
N,f(j-30 N
−1)
R
f(j+N
−1)], where f(x)={(x−1)modNc}+1 Equation 1
The first encoder 1100 generates a message matrix 100, in which a plurality of message blocks 100k are arranged in a lattice form, from a message, wherein the message matrix 100 further includes a parity block 130 including parity information of the message blocks 100k.
The first encoder 1100 may generate the message matrix 100 in consideration of the length of the message and the length of the parity block 130. The message blocks 100k and the parity block 130 included in the message matrix 100 may have the same length or not.
Once the number of rows and the number of columns of the message matrix 100 have been determined, processes for distributing and arranging bits included in a message input with or without zero padding into the message blocks 100k are known to those skilled in s the art from the prior art.
In the present disclosure, one block of the message matrix 100 is set as the parity block 130. The parity block 130 stores parity information of the other message blocks 100k.
Since an embodiment of a process of generating the parity block 130 has been described with reference to
The second encoder 1200 adds a row parity 200 and a column parity 300 to the message matrix 100 including the message blocks 100k and the parity block 130, and outputs an encoded message. A person of skill in the art in light of the teachings and disclosure herein would understand how to implement the second encoder 1100 by using a digital electronic circuit, or a processor executing computer programming instructions stored on non-transitory computer-readable media, or a combination of both.
The row parity 200 and the column parity 300 may be used for error detection and error correction in a decoding process. In order to generate the row parity 200 and the column parity 300, various code technologies may be applied.
For example, a code technology of a BCH code, an RS code, a Hamming code or the like may be applied to generate a row parity block and/or a column parity block, and the row parity block and the column parity block may be added to the message matrix 100, so that an encoded message may be output.
The encoded message may be written in a cell array of a memory device or may be transmitted through a communication channel.
In the process of adding the row parity 200 and the column parity 300 to the message matrix 100, the second encoder 1200 may is use a parallel concatenation scheme or a serial concatenation scheme. Since the parallel concatenation and the serial concatenation have been described with reference to
The encoding process according to the embodiment includes step S110 of generating a message matrix including a plurality of message blocks and a parity block having parity information of the plurality of message blocks from a message, and step S120 of generating a row parity and a column parity by applying a coding technology, such as a BCH code, an RS code, a Hamming code, or the like, to the message matrix.
Since step S110 corresponds to the operation of the first s encoder 1100 of
The decoding device 2000 according to the embodiment includes an error detector 2100 and an error corrector 2200.
The error detector 2100 detects an error existing in a message matrix 100 by using a row parity 200 and a column parity 300 obtained by decoding a received encoded message. For example, is when an error occurs in an it” row parity block 200i and a jth column parity block 300j, the error detector 2100 detects that an error of a (1,1) pattern has occurred in the message block Bi,j. A person of skill in the art in light of the teachings and disclosure herein would understand how to implement the error detector 2100 by using a digital electronic circuit, or a processor executing computer programming instructions stored on non-transitory computer-readable media, or a combination of both.
When the error detector 2100 detects a message block having an error, the error corrector 2200 corrects the error of the message block having the error by using other message blocks and the parity block 130 of the message matrix 100.
When an error is detected, the error corrector 2200 checks whether the corresponding error is correctable, and corrects the error if the error is correctable. For example, when it is detected that an error pattern having occurred in the message block Bi,j is a (1,1) pattern, the error corrector 2200 corrects the error by using message blocks, except for the message block Bi,j having the error, and the parity block 130.
If the parity block 130 has a single parity check function for the message blocks 100k, a value of an nth bit of the message block Bi,j having the error may be directly corrected by performing an XOR operation on nth bits of the other message blocks 100k, except for the message block Bi,j, and an nth bit of the parity block 130. In other embodiments, the value of an nth bit of the message block Bi,j having the error may be indirectly corrected by performing an XOR operation on nth bits of all the message blocks 100k and by comparing the result with the nth bit of the parity block 130.
A person of skill in the art in light of the teachings and disclosure herein would understand how to implement the error corrector 2200 using a digital electronic circuit, or a processor executing computer programming instructions stored on non-transitory computer-readable media, or a combination of both.
The decoding process according to the embodiment includes a step S210 of decoding an encoded message to obtain a message matrix and a row parity and a column parity for the message matrix, and detecting an error message block having an error in the message matrix by using the row parity and the column parity, and a step S220 of correcting the error message block by using other message blocks and parity blocks of the message matrix.
The step S210 of decoding the encoded message and detecting the error message block corresponds to the operation of the error detector 2100 of
The graph of
In the embodiment of the present disclosure, a parity block different from row and column parity blocks of the prior art is further added to a message, and the length of the added parity block is 57 bits.
In
The message matrix 100 having no parity block 130 according to the prior art is organized as 18 rows having a length of 1928 bits and 16 rows having a length of 1927 bits, and the message matrix 100 having the parity block 130 according to the present embodiment is organized as 7 rows having a length of 1930 bits and 27 rows having a length of 1929 bits.
In
For example, when the single bit error rate is 3×10−3, the page error rate in the embodiment is reduced to about 1/1000th of the page error rate in the prior art. Consequently, it can be understood that the problem of the prior art, in which an error floor is not easily reduced due to the (1,1) error pattern, can be effectively solved through the present disclosure.
While certain embodiments have been described above, it will be understood to those skilled in the art that the embodiments described are by way of example only. Accordingly, the encoding device, decoding device, and operation methods thereof described herein should not be limited based on the described embodiments. Rather, the encoding device, decoding device, and operation methods thereof described herein should only be limited in light of the claims that follow when taken in conjunction with the above description and accompanying drawings.
Number | Date | Country | Kind |
---|---|---|---|
10-2014-0004690 | Jan 2014 | KR | national |