Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes
10243588 ยท 2019-03-26
Assignee
Inventors
Cpc classification
G06F11/106
PHYSICS
G06F11/1076
PHYSICS
H03M13/15
ELECTRICITY
G06F11/1016
PHYSICS
International classification
H03M13/15
ELECTRICITY
G11C29/00
PHYSICS
Abstract
An error correction code (ECC) decoder includes a finite state machine (FSM) controller and a shared logic circuit. The FSM controller generates a first control signal and a second control signal each corresponding to a certain state. The shared logic circuit includes a plurality of shared Galois field (GF) multipliers, a plurality of shared XOR arithmetic elements, and a plurality of shared multiplexers (MUXs), which are used for an operation selected between a syndrome operation, an error location polynomial operation, an error location operation and an error correction operation, in response to the first and second control signals.
Claims
1. An error correction code (ECC) decoder comprising: a finite state machine (FSM) controller configured to generate a first control signal and a second control signal each corresponding to a certain state of a plurality of states; and a shared logic circuit configured to include a plurality of shared Galois field (GF) multipliers, a plurality of shared XOR arithmetic elements, and a plurality of shared multiplexers (MUXs), which are used for an operation selected between a syndrome operation, an error location polynomial operation, an error location operation, and an error correction operation, in response to the first and second control signals.
2. The ECC decoder of claim 1, wherein the FSM controller circularly operates based on the plurality of states including a first state defined as an initialized state, a second state defined as a syndrome operation state, a third state defined as an error location polynomial operation state, a fourth state defined as an error location operation state, and a fifth state defined as an error correction operation state.
3. The ECC decoder of claim 2, wherein the FSM controller generates the first and second control signals maintaining a current state or transitioning to a next state in response to an input control signal.
4. The ECC decoder of claim 2, wherein the FSM controller: generates the first and second control signals during the first state so that the shared logic circuit maintains a standby state; generates the first and second control signals during the second state so that the shared logic circuit performs the syndrome operation; generates the first and second control signals during the third state so that the shared logic circuit performs the error location polynomial operation; generates the first and second control signals during the fourth state so that the shared logic circuit performs the error location operation; and generates the first and second control signals during the fifth state so that the shared logic circuit performs the error correction operation.
5. The ECC decoder of claim 1, wherein the shared GF multipliers and the shared XOR arithmetic elements are used to perform any one of the syndrome operation, the error location polynomial operation, and the error location operation, according to the first control signal.
6. The ECC decoder of claim 1, wherein the shared MUXs are used to perform any one operation of the error location polynomial operation and the error correction operation according to the second control signal.
7. The ECC decoder of claim 1, wherein each of the plurality of shared GF multipliers includes: a first MUX including an input terminal receiving the first control signal from the FSM controller, a first state input terminal receiving first syndrome operation data to be used for the syndrome operation, a second state input terminal receiving first error location polynomial operation data to be used for the error location polynomial operation, a third state input terminal receiving first error location operation data to be used for the error location operation, and an output terminal; a second MUX including an input terminal receiving the first control signal from the FSM controller, a first state input terminal receiving second syndrome operation data to be used for the syndrome operation, a second state input terminal receiving second error location polynomial operation data to be used for the error location polynomial operation, a third state input terminal receiving second error location operation data to be used for the error location operation, and an output terminal; and a GF multiplier configured to perform a GF multiplying operation on output signals output through the output terminals of the first and second MUXs to output the result of the GF multiplying operation.
8. The ECC decoder of claim 7, wherein: the first syndrome operation data is one of data bits included in a codeword; the second syndrome operation data is one of GF primitive elements; the first and second error location polynomial operation data are one of control signals and one of error location polynomial coefficients, respectively; the first error location operation data is one of the error location polynomial coefficients; and the second error location operation data is one of the GF primitive elements.
9. The ECC decoder of claim 1, wherein each of the plurality of shared XOR arithmetic elements includes: a first MUX including an input terminal receiving the first control signal from the FSM controller, a first state input terminal receiving third syndrome operation data to be used for the syndrome operation, a second state input terminal receiving third error location polynomial operation data to be used for the error location polynomial operation, a third state input terminal receiving third error location operation data to be used for the error location operation, and an output terminal; a second MUX including an input terminal receiving the first control signal from the FSM controller, a first state input terminal receiving fourth syndrome operation data to be used for the syndrome operation, a second state input terminal receiving fourth error location polynomial operation data to be used for the error location polynomial operation, a third state input terminal receiving fourth error location operation data to be used for the error location operation, and an output terminal; and an XOR arithmetic element configured to perform an XOR operation on output signals output through the output terminals of the first and second MUXs to output the result of the XOR operation.
10. The ECC decoder of claim 9, wherein: the third and fourth syndrome operation data are output signals of first and second shared GF multipliers, respectively, used in the syndrome operation, among the plurality of shared GF multipliers; the third and fourth error location polynomial operation data are output signals of first and second shared GF multipliers, respectively, used in the error location polynomial operation, among the plurality of shared GF multipliers; the third error location operation data is one of error location polynomial coefficients; and the fourth error location operation data is one of output signals of the shared GF multipliers used in the error location operation, among the plurality of shared GF multipliers.
11. The ECC decoder of claim 1, wherein the shared logic circuit receives a codeword, and wherein if the number of bits included in the codeword is n and the maximum number of error correctable bits is t, the number of the shared GF multipliers is 2t(n1), the number of the shared XOR arithmetic elements is 2t(n1), and the number of the shared MUXs is n.
12. The ECC decoder of claim 11, wherein: all of the 2t(n1) shared GF multipliers and all of the 2t(n1) shared XOR arithmetic elements are used in the syndrome operation; 2(3t+1) shared GF multipliers among the 2t(n1) shared GF multipliers, 3t+1 shared XOR arithmetic elements among the 2t(n1) shared XOR arithmetic elements, and three shared MUXs among the n shared MUXs are used in the error location polynomial operation; t(n1) shared GF multipliers among the 2t(n1) shared GF multipliers and tn shared XOR arithmetic elements among the 2t(n1) shared XOR arithmetic elements are used in the error location operation; and all of the n shared MUXs are used in the error correction operation.
13. A method of decoding error correction codes, the method comprising: providing a shared logic circuit including a plurality of shared Galois field (GF) multipliers, a plurality of shared XOR arithmetic elements, and a plurality of shared multiplexers (MUXs); providing a finite state machine (FSM) controller generating a first control signal and a second control signal each corresponding to a certain state of a plurality of states; and driving the shared logic circuit including the plurality of shared GF multipliers, the plurality of shared XOR arithmetic elements and the plurality of shared MUXs to perform an operation selected between a syndrome operation, an error location polynomial operation, an error location operation, and an error correction operation, in response to the first and second control signals.
14. The method of claim 13, wherein the FSM controller circularly operates based on the plurality of states including a first state defined as an initialized state, a second state defined as a syndrome operation state, a third state defined as an error location polynomial operation state, a fourth state defined as an error location operation state, and a fifth state defined as an error correction operation state.
15. The method of claim 14, wherein the FSM controller generates the first and second control signals maintaining a current state or transitioning to a next state in response to an input control signal.
16. The method of claim 14, wherein the FSM controller: generates the first and second control signals during the first state so that the shared logic circuit maintains a standby state; generates the first and second control signals during the second state so that the shared logic circuit performs the syndrome operation; generates the first and second control signals during the third state so that the shared logic circuit performs the error location polynomial operation; generates the first and second control signals during the fourth state so that the shared logic circuit performs the error location operation; and generates the first and second control signals during the fifth state so that the shared logic circuit performs the error correction operation.
17. The method of claim 13, wherein the shared GF multipliers and the shared XOR arithmetic elements are used to perform any one of the syndrome operation, the error location polynomial operation, and the error location operation, according to the first control signal.
18. The method of claim 13, wherein the shared MUXs are used to perform any one operation of the error location polynomial operation and the error correction operation according to the second control signal.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Various embodiments of the present disclosure will become more apparent in view of the attached drawings and accompanying detailed description, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
DETAILED DESCRIPTION
(20) In the following description of the embodiments, it will be understood that the terms first and second are intended to identify an element, but not used to define only the element itself or to mean a particular sequence. In addition, when an element is referred to as being located on, over, above, under or beneath another element, it is intended to mean relative position relationship, but not used to limit certain cases that the element directly contacts the other element, or at least one intervening element is present therebetween. Accordingly, the terms such as on, over, above, under, beneath, below and the like that are used herein are for the purpose of describing particular embodiments only and are not intended to limit the scope of the present disclosure. Further, when an element is referred to as being connected or coupled to another element, the element may be electrically or mechanically connected or coupled to the other element directly, or may form a connection relationship or coupling relationship by replacing the other element therebetween.
(21)
(22)
(23)
(24) If a level of the input control signal X changes from a logic low(0) level into a logic high(1) level, a state of the FSM controller 220 may change from the first state ST0 into the second state ST1. The second state ST1 may be defined as a syndrome operation state. After the FSM controller 220 enters the second state ST1, the input control signal X may turn into a logic low(0) level. While the input control signal X has a logic low(0) level after the FSM controller 220 enters the second state ST1, the FSM controller 220 may maintain the second state ST1. While being in the second state ST1, the FSM controller 220 may output the first control signal Y1 having a logic level combination 01 and the second control signal Y2 having a logic level combination 00. The shared logic circuit 210 may perform the syndrome operation in response to the first control signal Y1 having a logic level combination 01 and the second control signal Y2 having a logic level combination 00.
(25) If a logic level of the input control signal X changes from a logic low(0) level into a logic high(1) level, a state of the FSM controller 220 may change from the second state ST1 into the third state ST2. The third state ST2 may be defined as an error location polynomial operation state. After the FSM controller 220 enters the third state ST2, the input control signal X may turn into a logic low(0) level. While the input control signal X has a logic low(0) level after the FSM controller 220 enters the third state ST2, the FSM controller 220 may maintain the third state ST2. While being in the third state ST2, the FSM controller 220 may output the first control signal Y1 having a logic level combination 10 and the second control signal Y2 having a logic level combination 01. The shared logic circuit 210 may perform the error location polynomial operation in response to the first control signal Y1 having a logic level combination 10 and the second control signal Y2 having a logic level combination 01.
(26) If a logic level of the input control signal X changes from a logic low(0) level into a logic high(1) level, a state of the FSM controller 220 may change from the third state ST2 into the fourth state ST3. The fourth state ST3 may be defined as an error location operation state. After the FSM controller 220 enters the fourth state ST3, the input control signal X may turn into a logic low(0) level. While the input control signal X has a logic low(0) level after the FSM controller 220 enters the fourth state ST3, the FSM controller 220 may maintain the fourth state ST3. While being in the fourth state ST3, the FSM controller 220 may output the first control signal Y1 having a logic level combination 11 and the second control signal Y2 having a logic level combination 00. The shared logic circuit 210 may perform the error location operation in response to the first control signal Y1 having a logic level combination 11 and the second control signal Y2 having a logic level combination 00.
(27) If a level of the input control signal X changes from a logic low(0) level into a logic high(1) level, a state of the FSM controller 220 may change from the fourth state ST3 into the fifth state ST4. The fifth state ST4 may be defined as an error correction operation state. After the FSM controller 220 enters the fifth state ST4, the input control signal X may turn into a logic low(0) level. While the input control signal X has a logic low(0) level after the FSM controller 220 enters the fifth state ST4, the FSM controller 220 may maintain the fifth state ST4. While being in the fifth state ST4, the FSM controller 220 may output the first control signal Y1 having a logic level combination 00 and the second control signal Y2 having a logic level combination 10. The shared logic circuit 210 may perform the error correction operation in response to the first control signal Y1 having a logic level combination 00 and the second control signal Y2 having a logic level combination 10. If the input control signal X having a logic high(1) level is input to the FSM controller 220 while the FSM controller 220 maintains the fifth state ST4, a state of the FSM controller 220 may change from the fifth state ST4 into the first state ST0.
(28)
(29)
(30) Each of the first to (n1).sup.th shared GF multipliers 401(1)-1, 401(2)-1, . . . , 401(n2)-1 and 401(n1)-1 included in the first syndrome calculating block 450-1 may receive any one among bit data D<1>, D<2>, . . . , D<n2> and D<n1> other than a least significant bit (LSB) D<0> in the n-bit codeword D<0:n1>, and may receive any one among GF primitive elements .sup.1, .sup.2, . . . , .sup.(n2) and .sup.(n1). In such a case, the exponents 1, 2, . . . , (n2) and (n1) of the GF primitive elements input to the first syndrome calculating block 450-1 may be equal to the bit numbers 1, 2, . . . , (n2) and (n1) of the codeword D<0:n1>, respectively. For example, the second bit D<1> of the codeword D<0:n1> and the GF primitive element .sup.1 may be input to the first shared GF multiplier 401(1)-1, and the third bit D<2> of the codeword D<0:n1> and the GF primitive element .sup.2 may be input to the second shared GF multiplier 401(2)-1. Similarly, the (n1).sup.th bit D<n2> of the codeword D<0:n1> and the GF primitive element .sup.(n2) may be input to the (n2).sup.th shared GF multiplier 401(n2)-1, and the n.sup.th bit datum D<n1> of the codeword D<0:n1> and the GF primitive element .sup.(n1) may be input to the (n1).sup.th shared GF multiplier 401(n1)-1.
(31) Each of first to (n1).sup.th shared GF multipliers 401(1)-2t, 401(2)-2t, . . . , 401(n2)-2t and 401(n1)-2t included in the (2t).sup.th syndrome calculating block 450-2t may receive any one among the bit data D<1>, D<2>, . . . , D<n2> and D<n1> other than the LSB D<0> in the n-bit codeword D<0:n1>, and may receive any one among elements (.sup.1).sup.2t, (.sup.2).sup.2t, . . . , (.sup.(n2)).sup.2t and (.sup.(n1)).sup.2t corresponding to the GF primitive elements (.sup.1, .sup.2, . . . , .sup.(n2) and .sup.(n1)) to the 2t.sup.th. In such a case, the exponents 1, 2, . . . , (n2) and (n1) of the GF primitive elements input to the (2t).sup.th syndrome calculating block 450-2t may be equal to the bit numbers 1, 2, . . . , (n2) and (n1) of the codeword D<0:n1>, respectively. For example, the second bit D<1> of the codeword D<0:n1> and the GF primitive element (.sup.1).sup.2t may be input to the first shared GF multiplier 401(1)-2t, and the third bit D<2> of the codeword D<0:n1> and the GF primitive element (.sup.2).sup.2t may be input to the second shared GF multiplier 401(2)-2t. Similarly, the (n1).sup.th bit D<n2> of the codeword D<0:n1> and the GF primitive element (.sup.(n2)).sup.2t may be input to the (n2).sup.th shared GF multiplier 401(n2)-2t, and the n.sup.th bit D<n1> of the codeword D<0:n1> and the GF primitive element (.sup.(n1)).sup.2t may be input to the (n1).sup.th shared GF multiplier 401(n1)-2t.
(32) Each of the first to (2t).sup.th syndrome calculating blocks 450-1, . . . , and 450-2t may include a plurality of shared XOR arithmetic elements 411-1, 411-2, . . . , and 411-f, which are hierarchically arranged from a first level corresponding to the highest-order level to a f.sup.th level corresponding to the lowest-order level. The shared XOR arithmetic elements 411-1 may be at the first level, and the shared XOR arithmetic element 411-f may be at the f.sup.th level. The first to (2t).sup.th syndrome calculating blocks 450-1, 450-2, . . . , and 450-2t have substantially the same configuration as those described above. Thus, each of the second to (2t).sup.th syndrome calculating blocks 450-2, . . . , and 450-2t may also include a plurality of shared XOR arithmetic elements 411-1, 411-2, . . . , and 411-f, which are hierarchically arranged from a first level corresponding to the highest-order level to the f.sup.th level corresponding to the lowest-order level. Accordingly, a configuration and an operation of only the shared XOR arithmetic elements 411-1, 411-2, . . . , and 411-f included in the first syndrome calculating block 450-1 will be described in detail hereinafter.
(33) Each of the shared XOR arithmetic elements 411-1 at the first level may perform an XOR operation on two output signals output from two of the first to (n1).sup.th shared GF multipliers 401(1)-1, . . . , and 401(n1)-1, and may output the result of the XOR operation. For example, the first shared XOR arithmetic elements 411-1 at the first level (e.g., the leftmost shared XOR arithmetic elements 411-1 in the drawing) may receive output signals A and B of the first and second shared GF multipliers 401(1)-1 and 401(2)-1, and may perform an XOR operation on the output signals A and B to output the result of the XOR operation. Since one of the shared XOR arithmetic elements 411-1 receives output signals of two of the first to (n1).sup.th shared GF multipliers 401(1)-1, 401(2)-1, . . . , 401(n2)-1 and 401(n1)-1, the rightmost shared XOR arithmetic elements 411-1 at the first level in the drawing may receive an output signal of the (n1).sup.th shared GF multiplier 401(n1)-1 receiving the n.sup.th bit D<n1> (e.g., a most significant bit [MSB]) of the codeword D<0:n1> and an output signal of the (n2).sup.th shared GF multiplier 401(n2)-1 receiving the (n1).sup.th bit D<n2> of the codeword D<0:n1>. The number of the shared XOR arithmetic elements 411-1 at the first level may be expressed by an equation of (n1)/2 (where n is the number of bits in the codeword D<0:n1>). In an embodiment, if the n is thirty one, each of the syndrome calculating blocks 450-1, . . . and 450-2t may have fifteen shared XOR arithmetic elements 411-1 at the first level.
(34) Each of the shared XOR arithmetic elements 411-2 at the second level may perform an XOR operation on two output signals output from two of the shared XOR arithmetic elements 411-1 at the first level, and may output the result of the XOR operation. The number of the shared XOR arithmetic elements 411-2 at the second level may be expressed by an equation of z1/2 if the number of the shared XOR arithmetic elements 411-1 at the first level is an even number z1. If the number of the shared XOR arithmetic elements 411-1 at the first level is an odd number z2, the number of the shared XOR arithmetic elements 411-2 at the second level may be expressed by an equation of (z21)/2. In such a case, none of the shared XOR arithmetic elements 411-2 at the second level receives an output signal of one (e.g., a rightmost XOR arithmetic element) of the shared XOR arithmetic elements 411-1 at the first level. In an embodiment, if the n is thirty one, each of the syndrome calculating blocks 450-1, . . . and 450-2t may have seven second shared XOR arithmetic elements 411-2 at the second level ((151)/2=7) because the number of the first shared XOR arithmetic elements 411-1 at the first level is fifteen, which is an odd number.
(35) Configurations and operations of the XOR arithmetic elements at a third level and a fourth level may be the same as those described above. Only a single shared XOR arithmetic element 411-(f1) may be at the (f1).sup.th level, and only a single shared XOR arithmetic element 411-f may also be at the f.sup.th level corresponding to the last level. The (f1).sup.th shared XOR arithmetic element 411-(f1) may perform an XOR operation on output signals of the XOR arithmetic elements at a previous level (e.g., (f2).sup.th level) of the (f1).sup.th level, and may output the result of the XOR operation. The f.sup.th shared XOR arithmetic element 411-f may perform an XOR operation on an output signal of the (f1).sup.th shared XOR arithmetic element 411-(f1) and the LSB D<0> of the codeword D<0:n1>, and may output the result of the XOR operation as a first syndrome S.sub.1. Similarly, in the (2t).sup.th syndrome calculating block 450-2t, the f.sup.th shared XOR arithmetic element 411-f may perform an XOR operation on an output signal of the (f1).sup.th shared XOR arithmetic element 411-(f1) and the LSB D<0> of the codeword D<0:n1>, and may output the result of the XOR operation as a (2t).sup.th syndrome S.sub.2t.
(36) Since each of the first to (2t).sup.th syndrome calculating blocks 450-1, 450-2, . . . , and 450-2t includes (n1) shared XOR arithmetic elements, the number of all of the shared XOR arithmetic elements used in the syndrome operation may be expressed by an equation of 2t(n1). In an embodiment, if the maximum number t of error correctable bits is two, and if the n (i.e., the number of bits included in the codeword) is thirty one, the number of all of the shared XOR arithmetic elements used in the syndrome calculator 211 may be one hundred and twenty (2230=120). In an embodiment, if the maximum number t of error correctable bits is two, and if the n is thirty, the number of all of the shared XOR arithmetic elements used in the syndrome calculator 211 may be one hundred and sixteen (2229=116).
(37)
(38) First, referring to
(39) The second MUX 501-2 may have an input terminal, a first state input terminal ST21, a second state input terminal ST22, and a third state input terminal ST23. The second MUX 501-2 may receive the first control signal Y1 from the FSM controller 220 through the input terminal. The second MUX 501-2 may receive the GF primitive element .sup.1 necessary to the syndrome operation through the first state input terminal ST21. The second MUX 501-2 may receive an error location polynomial coefficient .sub.1(r), which will be used for the error location polynomial operation, through the second state input terminal ST22. The second MUX 501-2 may receive the GF primitive element .sup.1, which will be used for the error location operation, through the third state input terminal ST23. The second MUX 501-2 may output one of the GF primitive element .sup.1 and the error location polynomial coefficient .sub.1(r) according to the first control signal Y1.
(40) If the first control signal Y1 output from the FSM controller 220 has a logic level combination 01, both of the first and second MUXs 501-1 and 501-2 may operate in a syndrome operation mode. That is, the first MUX 501-1 may output the second bit D<1> of the codeword D<0:n1> input through the first state input terminal ST11 in response to the first control signal Y1 having a logic level combination 01, and the second MUX 501-2 may output the GF primitive element .sup.1 input through the first state input terminal ST21 in response to the first control signal Y1 having a logic level combination 01. The second bit D<1> of the codeword D<0:n1> output from the first MUX 501-1 and the GF primitive element .sup.1 output from the second MUX 501-2 may be input to the GF multiplier 501-3. The GF multiplier 501-3 may perform a GF multiplying operation on the second bit D<1> of the codeword D<0:n1> and the GF primitive element .sup.1 to generate the output signal A (D<1>.Math..sup.1).
(41) Next, referring to
(42) The second MUX 502-2 may have an input terminal, a first state input terminal ST21, a second state input terminal ST22, and a third state input terminal ST23. The second MUX 502-2 may receive the first control signal Y1 from the FSM controller 220 through the input terminal. The second MUX 502-2 may receive the GF primitive element .sup.2, which will be used for the syndrome operation, through the first state input terminal ST21. The second MUX 502-2 may receive a control signal .sub.0(r), which will be used for the error location polynomial operation, through the second state input terminal ST22. The second MUX 502-2 may receive the GF primitive element .sup.2, which will be used for the error location operation, through the third state input terminal ST23. The second MUX 502-2 may output one of the GF primitive element .sup.2 and the control signal .sub.0(r) according to the first control signal Y1.
(43) As illustrated in
(44) Each of the remaining shared GF multipliers 401(3)-1, . . . , 401(n2)-1, 401(n1)-1, . . . , 401(1)-2t, 401(2)-2t, . . . , 401(n2)-2t and 401(n1)-2t included in the syndrome calculator 211 may have the same or substantially the same configuration as the first shared GF multiplier 401(1)-1 illustrated in
(45) If the number of bits included in the codeword D<0:n1> is n and the bits of the codeword D<0:n1> are r.sub.0, r.sub.1, r.sub.2, . . . , r.sub.n2 and r.sub.n1, syndromes Si may be calculated by the following equation 1.
Si=r.sub.0+r.sub.1.sup.i+r.sub.2(.sup.2).sup.i+r.sub.3(.sup.3).sup.i+ . . . +r.sub.n1(.sup.(n1)).sup.i(Equation 1)
(46) In the equation 1, a variable number i=1, 2, . . . or 2t1, and equation, and t denotes the maximum number of error-correctable bits.
(47) If the variable number i in the syndrome equation 1 is one, the shared GF multipliers 401(1)-1, 401(2)-1, . . . , 401(n2)-1 and 401(n1)-1 in the first syndrome calculating block 450-1 of the syndrome calculator 211 may calculate and output values of r.sub.1.sup.1, r.sub.2.sup.2, . . . , r.sub.n2.sup.n2 and r.sub.n1.sup.n1, respectively. Similarly, if the variable i in the above syndrome equation 1 is 2t, the shared GF multipliers 401(1)-2t, 401(2)-2t, . . . , 401(n2)-2t and 401(n1)-2t in the (2t).sup.th syndrome calculating block 450-2t of the syndrome calculator 211 may calculate and output values of r.sub.1(.sup.1).sup.2t, r.sub.2(.sup.2).sup.2t, . . . , r.sub.n2(.sup.n2).sup.2t and r.sub.n1(.sup.n1).sup.2t, respectively.
(48)
(49) The second MUX 601-2 may have an input terminal, a first state input terminal ST21, a second state input terminal ST22, and a third state input terminal ST23. The second MUX 601-2 may receive the first control signal Y1 from the FSM controller 220 through the input terminal. The second MUX 601-2 may receive an output signal B of the second shared GF multiplier 401(2)-1 through the first state input terminal ST21. The second MUX 601-2 may receive an output signal D of the shared GF multiplier through the second state input terminal ST22 in the error location polynomial operation mode. The second MUX 601-2 may receive an output signal E of the shared GF multiplier through the third state input terminal ST23 during an error location operation. The second MUX 601-2 may output one of the output signals B, D, and E according to the first control signal Y1.
(50) As illustrated in
(51) Each of the remaining shared XOR arithmetic elements may have the same configuration as the first shared XOR arithmetic elements 411-1 except the data input to the first state input terminals ST11 of the first MUXs 601-1 and the first state input terminals ST21 of the second MUXs 601-2. If the variable number i in the syndrome equation 1 is one, the shared XOR arithmetic element 411-f at the f.sup.th level corresponding to the last level of the first syndrome calculating block 450-1 of
(52)
(53) First, as illustrated in
(54) The shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 belonging to the first group may receive in common a control signal (r) (where r is 0, 1, . . . or 2t1), which will be used for the error location polynomial operation, and the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 belonging to the first group may also receive the error location polynomial coefficients .sub.1(r), .sub.2(r), .sub.3(r), . . . , .sub.3t+1(r) (where r is 0, 1, . . . or 2t1), respectively. The first shared GF multiplier 431(1)-1 among the first group of the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 may perform a GF multiplying operation on the control signal (r) and the error location polynomial coefficient .Math..sub.1(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The second shared GF multiplier 431(2)-1 among the first group of the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 may perform a GF multiplying operation on the control signal (r) and the error location polynomial coefficient .sub.2(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The third shared GF multiplier 431(3)-1 among the first group of the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 may perform a GF multiplying operation on the control signal (r) and the error location polynomial coefficient .sub.3(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The (3t+1).sup.th shared GF multiplier 431(3t+1)-1 among the first group of the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 may perform a GF multiplying operation on the control signal (r) and the error location polynomial coefficient .sub.3t+1(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation.
(55) The second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may receive an error location polynomial coefficient .sub.0(r) (where, r=0, 1, . . . or 2t1) in common, and the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may also receive control signals .sub.0(r), .sub.1(r), .sub.2(r), . . . , .sub.3t(r) (where r is 0, 1, . . . or 2t1), respectively, necessary for the error location polynomial operation. The first shared GF multiplier 431(1)-2 among the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may perform a GF multiplying operation on the error location polynomial coefficient .sub.0(r) and the control signal .sub.0(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The second shared GF multiplier 431(2)-2 among the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may perform a GF multiplying operation on the error location polynomial coefficient .sub.0(r) and the control signal .sub.1(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The third shared GF multiplier 431(3)-2 among the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may perform a GF multiplying operation on the error location polynomial coefficient .sub.0(r) and the control signal .sub.2(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation. The (3t+1).sup.th shared GF multiplier 431(3t+1)-2 among the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 may perform a GF multiplying operation on the error location polynomial coefficient .sub.0(r) and the control signal .sub.3t(r) (where r is 0, 1, . . . or 2t1) to output the result of the GF multiplying operation.
(56) The number of the shared XOR arithmetic elements in the first error location polynomial calculator 212A may be (3t+1). That is, the first error location polynomial calculator 212A may include first to (3t+1).sup.th shared XOR arithmetic elements 441-1(1), 441-1(2), 441-1(3), . . . , and 441-1(3t+1). Each of the first to (3t+1).sup.th shared XOR arithmetic elements 441-1(1), 441-1(2), 441-1(3), . . . , and 441-1(3t+1) may perform an XOR operation on an output signal of one of the first group of the shared GF multipliers 431(1)-1, 431(2)-1, 431(3)-1, . . . , and 431(3t+1)-1 and an output signal of one of the second group of the shared GF multipliers 431(1)-2, 431(2)-2, 431(3)-2, . . . , and 431(3t+1)-2 to output one of error location polynomial coefficients .sub.0(r+1), .sub.1(r+1), .sub.2(r+1), . . . , and .sub.3t(r+1) (where r is 0, 1, . . . , or 2t1).
(57) The first shared XOR arithmetic element 441-1(1) may perform an XOR operation on an output signal C of the first shared GF multiplier 431(1)-1 belonging to the first group and an output signal D of the first shared GF multiplier 431(1)-2 belonging to the second group to output the error location polynomial coefficient .sub.0(r+1). The second shared XOR arithmetic element 441-1(2) may perform an XOR operation on an output signal of the second shared GF multiplier 431(2)-1 belonging to the first group and an output signal of the second shared GF multiplier 431(2)-2 belonging to the second group to output the error location polynomial coefficient .sub.1(r+1). The third shared XOR arithmetic element 441-1(3) may perform an XOR operation on an output signal of the third shared GF multiplier 431(3)-1 belonging to the first group and an output signal of the third shared GF multiplier 431(3)-2 belonging to the second group to output the error location polynomial coefficient .sub.2(r+1). The (3t+1).sup.th shared XOR arithmetic element 441-1(3t+1) may perform an XOR operation on an output signal of the (3t+1).sup.th shared GF multiplier 431(3t+1)-1 belonging to the first group and an output signal of the (3t+1).sup.th shared GF multiplier 431(3t+1)-2 belonging to the second group to output the error location polynomial coefficient .sub.3t(r+1).
(58) As illustrated in
(59) The first shared MUX 451 may have a first input terminal receiving the error location polynomial coefficient .sub.0(r), a second input terminal receiving the control signal (r), and an output terminal outputting the control signal (r+1). The first shared MUX 451 may output the error location polynomial coefficient .sub.0(r) or the control signal (r) as the control signal (r+1) in response to a MUX control signal Mcont. That is, the control signal (r+1) output from the first shared MUX 451 may have the same value as the error location polynomial coefficient .sub.0(r) or the control signal (r).
(60) The second shared MUX 452 may have a first input terminal receiving a control signal k(r)1, a second input terminal receiving a control signal k(r)+1, and an output terminal outputting a control signal k(r+1) (where r is 0, 1, . . . , or 2t1). The second shared MUX 452 may output the control signal k(r)1 or the control signal k(r)+1 as the control signal k(r+1) in response to the MUX control signal Mcont. That is, the control signal k(r+1) output from the second shared MUX 452 may have the same value as the control signal k(r)1 or the control signal k(r)+1.
(61) The third shared MUX 453 may have a first input terminal receiving an error location polynomial coefficient .sub.i+1(r), a second input terminal receiving a control signal .sub.i(r), and an output terminal outputting a control signal .sub.i(r+1) (where i is 0, 1, . . . , 3t, and r is 0, 1, . . . , or 2t1). The third shared MUX 453 may output the error location polynomial coefficient .sub.i+1(r) or the control signal .sub.i(r) as the control signal .sub.i(r+1) in response to the MUX control signal Mcont. That is, the control signal .sub.i(r+1) output from the third shared MUX 453 may have the same value as the error location polynomial coefficient .sub.i+1(r) or the control signal .sub.i(r).
(62) The first to third shared MUXs 451, 452, and 453 may receive the MUX control signal Mcont in common. A level of the MUX control signal Mcont may be determined according to whether a condition of .sub.0(r)0 and k(r)0 is satisfied. In an embodiment, if the condition of .sub.0(r)0 and k(r)0 is satisfied, the MUX control signal Mcont may have a logic low(0) level. In such a case, the first to third shared MUXs 451, 452, and 453 may output the error location polynomial coefficient .sub.0(r), the control signal k(r)1, and the error location polynomial coefficient .sub.i+1(r), which are input through the first input terminals of the first to third shared MUXs 451, 452, and 453, respectively. In contrast, if the condition of .sub.0(r)0 and k(r)0 is not satisfied, the MUX control signal Mcont may have a logic high(1) level. In such a case, the first to third shared MUXs 451, 452, and 453 may output the control signal (r), the control signal k(r)+1, and the control signal .sub.i(r), which are input through the second input terminals of the first to third shared MUXs 451, 452, and 453, respectively. The control signal (r+1), the control signal k(r+1), and the control signal .sub.i(r+1) output from the first to third shared MUXs 451, 452, and 453 may be used as input data of the first and second groups of the shared GF multipliers in the first error location polynomial calculator 212A.
(63)
(64) First, referring to
(65) As illustrated in
(66) Next, referring to
(67) As illustrated in
(68)
(69) Referring to
(70)
(71) In
(72) In
(73)
(74) An LSB X(_0) of the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may be generated by the shared XOR arithmetic elements 461(1)-1, 461(1)-2, . . . , and 461(1)-t belonging to the first group. A second bit X(_1) of the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may be generated by the shared XOR arithmetic elements 461(2)-1, 461(2)-2, . . . , and 461(2)-t belonging to the second group and the shared GF multipliers 471(1)-1, 471(1)-2, . . . , and 471(1)-t belonging to the first group. A third bit X(_2) of the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may be generated by the shared XOR arithmetic elements 461(3)-1, 461(3)-2, . . . , and 461(3)-t belonging to the third group and the shared GF multipliers 471(2)-1, 471(2)-2, . . . , and 471(2)-t belonging to the second group. Similarly, an n.sup.th bit X(_n1) of the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may be generated by the shared XOR arithmetic elements 461(n)-1, 461(n)-2, . . . , and 461(n)-t belonging to the n.sup.th group and the shared GF multipliers 471(n1)-1, 471(n1)-2, . . . , and 471(n1)-t belonging to the (n1).sup.th group.
(75) The error location polynomial coefficient .sub.0(t) may be input to the first shared XOR arithmetic elements 461(1)-1, 461(2)-1, 461(3)-1, . . . , and 461(n)-1 belonging to the first to n.sup.th groups of the shared XOR arithmetic elements. In each group of the shared XOR arithmetic elements, an M.sup.th shared XOR arithmetic element may receive an output signal of an (M1).sup.th shared XOR arithmetic element (where M is a natural number larger than or equal to two). For example, the second shared XOR arithmetic element 461(1)-2 belonging to the first group of the shared XOR arithmetic elements may receive an output signal of the first shared XOR arithmetic element 461(1)-1 belonging to the first group of the shared XOR arithmetic elements. In addition, an output signal of the second shared XOR arithmetic element 461(1)-2 belonging to the first group of the shared XOR arithmetic elements may be input to the third shared XOR arithmetic element 461(1)-3 belonging to the first group of the shared XOR arithmetic elements. Moreover, the last (i.e., the t.sup.th) shared XOR arithmetic element 461(1)-t belonging to the first group of the shared XOR arithmetic elements may receive an output signal of the (n1).sup.th shared XOR arithmetic element 461(1)-(t-1) belonging to the first group of the shared XOR arithmetic elements. An output signal of the t.sup.th shared XOR arithmetic element 461(1)-t belonging to the first group of the shared XOR arithmetic elements may correspond to the LSB X(_0) of the n-bit output data.
(76) An output signal of the first shared GF multiplier 471(1)-1 belonging to the first group of the shared GF multipliers may be input to the first shared XOR arithmetic element 461(2)-1 belonging to the second group of the shared XOR arithmetic elements. An output signal of the second shared GF multiplier 471(1)-2 belonging to the first group of the shared GF multipliers may be input to the second shared XOR arithmetic element 461(2)-2 belonging to the second group of the shared XOR arithmetic elements. In this way, an output signal of the t.sup.th shared GF multiplier 471(1)-t belonging to the first group of the shared GF multipliers may be input to the t.sup.th shared XOR arithmetic element 461(2)-t belonging to the second group of the shared XOR arithmetic elements. Output signals of the shared GF multipliers 471(2)-1, 471(2)-2, . . . , and 471(2)-t belonging to the second group of the shared GF multipliers may be input to the second shared XOR arithmetic elements 461(3)-1, 461(3)-2, . . . , and 461(3)-t belonging to the third group of the shared XOR arithmetic elements, respectively. Similarly, output signals of the shared GF multipliers 471(2)-1, 471(2)-2, . . . , and 471(2)-t belonging to the (n1).sup.th group of the shared GF multipliers may be input to the shared XOR arithmetic elements 461(n)-1, 461(n)-2, . . . , and 461(n)-t belonging to the n.sup.th group of the shared XOR arithmetic elements, respectively.
(77) Hereinafter, a generation procedure of the LSB X(_0) will be descried. The error location polynomial coefficients .sub.0(t) and .sub.1(t) may be input to the first shared XOR arithmetic element 461(1)-1 belonging to the first group of the shared XOR arithmetic elements. The first shared XOR arithmetic element 461(1)-1 belonging to the first group of the shared XOR arithmetic elements may perform an XOR operation on the error location polynomial coefficients .sub.0(t) and .sub.1(t) to output the result of the XOR operation to the second shared XOR arithmetic element 461(1)-2 belonging to the first group of the shared XOR arithmetic elements. The second shared XOR arithmetic element 461(1)-2 belonging to the first group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the first shared XOR arithmetic element 461(1)-1 and the error location polynomial coefficient .sub.2(t) to output the result of the XOR operation to the third shared XOR arithmetic element 461(1)-3 belonging to the first group of the shared XOR arithmetic elements. In this way, the t.sup.th shared XOR arithmetic element 461(1)-t belonging to the first group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the (t1).sup.th shared XOR arithmetic element 461(1)-(t-1) and the error location polynomial coefficient .sub.t(t) to output the result of the XOR operation as the LSB X(_0).
(78) Hereinafter, a generation procedure of the second bit X(_1) will be descried. The first shared GF multiplier 471(1)-1 belonging to the first group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.1(t) and the GF primitive element .sup.1 to output the result of the GF multiplying operation to the first shared XOR arithmetic element 461(2)-1 belonging to the second group of the shared XOR arithmetic elements. The first shared XOR arithmetic element 461(2)-1 belonging to the second group of the shared XOR arithmetic elements may perform an XOR operation on an output signal E of the first shared GF multiplier 471(1)-1 and the error location polynomial coefficient .sub.0(t) to output the result of the XOR operation to the second shared XOR arithmetic element 461(2)-2 belonging to the second group of the shared XOR arithmetic elements. The second shared GF multiplier 471(1)-2 belonging to the first group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.2(t) and the GF primitive element (.sup.1).sup.2 to output the result of the GF multiplying operation to the second shared XOR arithmetic element 461(2)-2 belonging to the second group of the shared XOR arithmetic elements. The second shared XOR arithmetic element 461(2)-2 belonging to the second group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the second shared GF multiplier 471(1)-2 and an output signal of the first shared XOR arithmetic element 461(2)-1 to output the result of the XOR operation to the third shared XOR arithmetic element belonging to the second group of the shared XOR arithmetic elements. In this way, the t.sup.th shared GF multiplier 471(1)-t belonging to the first group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.t(t) and the GF primitive element (.sup.1).sup.t to output the result of the GF multiplying operation to the t.sup.th shared XOR arithmetic element 461(2)-t belonging to the second group of the shared XOR arithmetic elements. The t.sup.th shared XOR arithmetic element 461(2)-t belonging to the second group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the t.sup.th shared GF multiplier 471(1)-t and an output signal of the (t1).sup.th shared XOR arithmetic element 461(2)-(t-1) to output the result of the XOR operation as the second bit X(_1).
(79) Similarly, a generation procedure of the n.sup.th bit X(_n1) will be descried hereinafter. The first shared GF multiplier 471(n1)-1 belonging to the (n1).sup.th group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.1(t) and the GF primitive element .sup.n1 to output the result of the GF multiplying operation to the first shared XOR arithmetic element 461(n)-1 belonging to the n.sup.th group of the shared XOR arithmetic elements. The first shared XOR arithmetic element 461(n)-1 belonging to the n.sup.th group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the first shared GF multiplier 471(n1)-1 and the error location polynomial coefficient .sub.0(t) to output the result of the XOR operation to the second shared XOR arithmetic element 461(n)-2 belonging to the n.sup.th group of the shared XOR arithmetic elements. The second shared GF multiplier 471(n1)-2 belonging to the (n1).sup.th group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.2(t) and the GF primitive element (.sup.n1).sup.2 to output the result of the GF multiplying operation to the second shared XOR arithmetic element 461(n)-2 belonging to the n.sup.th group of the shared XOR arithmetic elements. The second shared XOR arithmetic element 461(n)-2 belonging to the n.sup.th group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the second shared GF multiplier 471(n1)-2 and an output signal of the first shared XOR arithmetic element 461(n)-1 to output the result of the XOR operation to the third shared XOR arithmetic element belonging to the n.sup.th group of the shared XOR arithmetic elements. In this way, the t.sup.th shared GF multiplier 471(n1)-t belonging to the (n1).sup.th group of the shared GF multipliers may perform a GF multiplying operation on the error location polynomial coefficient .sub.t(t) and the GF primitive element (.sup.n1).sup.t to output the result of the GF multiplying operation to the t.sup.th shared XOR arithmetic element 461(n)-t belonging to the n.sup.th group of the shared XOR arithmetic elements. The t.sup.th shared XOR arithmetic element 461(n)-t belonging to the n.sup.th group of the shared XOR arithmetic elements may perform an XOR operation on an output signal of the t.sup.th shared GF multiplier 471(n1)-t and an output signal of the (t1).sup.th shared XOR arithmetic element 461(n)-(t1) to output the result of the XOR operation as the n.sup.th bit X(_n1).
(80) A logic level of an erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) output from the error location calculator 213 may be set according the embodiments. For example, in an embodiment, an erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may have a logic high(1) level and a non-erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may have a logic low(0) level. Alternatively, an erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may have a logic low(0) level and a non-erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may have a logic high(1) level.
(81)
(82) First, referring to
(83) As illustrated in
(84) Next, referring to
(85) As illustrated in
(86)
(87) Referring to
(88)
(89) Each of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n) may have a first input terminal, a second input terminal, a third input terminal, and an output terminal. Data of the codeword D<0:n1> may be input to the first input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. That is, the data bits from the LSB D<0> to the MSB D<n1> of the codeword D<0:n1> may be input to the first input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. Inverted data bits of the codeword D<0:n1> may be input to the second input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. That is, inverted data bits from an inverted data bit DB<0> to an inverted data bit DB<n1> of the data bits from the LSB D<0> to the MSB D<n1> constituting the codeword D<0:n1> may be input to the second input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. The n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) may be input to the third input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. That is, data bits from the LSB X(_0) to the MSB X(_n1) of the n-bit output data may be input to the third input terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively. A decoded output signal may be output through the output terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n). That is, an LSB DEC_OUT<0> to an MSB DEC_OUT<n1> of the decoded output signal may be output through the output terminals of the first to n.sup.th shared MUXs 454(1), . . . , 454(n1) and 454(n), respectively.
(90) An error correction operation will be described hereinafter in conjunction with an example in which an erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) output from the error location calculator 213 has a logic high(1) level and a non-erroneous bit among the n-bit output data X(_0), X(_1), X(_2), . . . , and X(_n1) output from the error location calculator 213 has a logic low(0) level. If the LSB and the (n1).sup.th bit of the codeword D<0:n1> are erroneous bits, the LSB X(_0) having a logic high(1) level may be input to the third input terminal of the first shared MUX 454(1) and the (n1).sup.th bit X(_n2) having a logic high(1) level may be input to the third input terminal of the (n1).sup.th shared MUX 454(n1). In such a case, the output data having a logic low(0) level may be input to the third input terminals of the remaining shared MUXs 454(2), . . . , 454(n2) and 454(n). The first shared MUX 454(1) may output the inverted LSB DB<0> of the codeword D<0:n1> input through the second input terminal of the first shared MUX 454(1) as the LSB DEC_OUT<0> of the decoded output signal to correct an error of the LSB of the codeword D<0:n1>. Similarly, the (n1).sup.th shared MUX 454(n1) may output the inverted (n1).sup.th bit DB<n2> of the codeword D<0:n1> input through the second input terminal of the (n1).sup.th shared MUX 454(n1) as the (n1).sup.th bit DEC_OUT<n2> of the decoded output signal to correct an error of the (n1).sup.th bit of the codeword D<0:n1>. In contrast, each of the remaining shared MUXs 454(2), . . . , 454(n2) and 454(n) may output the bit of the codeword D<0:n1> input through the first input terminal thereof as the corresponding bit of the decoded output signal.
(91) As described above, in terms of the number of the shared XOR arithmetic elements, 2t(n1) shared XOR arithmetic elements may be used to perform XOR operations as a part of the syndrome operation, and 3t+1 shared XOR arithmetic elements may be used to perform XOR operations as a part of the error location polynomial operation. In addition, tn shared XOR arithmetic elements may be used to perform XOR operations as a part of the error location operation. Thus, if logic circuits are not shared, 2t(n1)+(3t+1)+tn shared XOR arithmetic elements may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. However, according to the embodiments using the shared logic circuit 210, only 2t(n1) shared XOR arithmetic elements may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. For example, if the number n of the bits included in the codeword is thirty one and the maximum number t of error correctable bits is two, one hundred and eighty nine XOR arithmetic elements may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation if the shared logic circuit 210 is not used. However, according to the embodiments using the shared logic circuit 210, only one hundred and twenty shared XOR arithmetic elements may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. As a result, according to the embodiments, the number of the XOR arithmetic elements may be reduced by about 36.5%.
(92) In terms of the number of the shared GF multipliers, 2t(n1) shared GF multipliers may be used to perform the syndrome operation, and 2(3t+1) shared GF multipliers may be used to perform the error location polynomial operation. In addition, t(n1) shared GF multipliers may be used to perform the error location operation. Thus, if logic circuits are not shared, 2t(n1)+2(3t+1)+t(n1) shared GF multipliers may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. However, according to the embodiments using the shared logic circuit 210, only 2t(n1) shared GF multipliers may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. For example, if the number n of the bits included in the codeword is thirty one and the maximum number t of error correctable bits is two, one hundred and ninety six GF multipliers may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation if the shared logic circuit 210 is not used. However, according to the embodiments using the shared logic circuit 210, only one hundred and twenty shared GF multipliers may be required to perform the syndrome operation, the error location polynomial operation, and the error location operation. As a result, according to the embodiments, the number of the GF multipliers may be reduced by about 38.8%.
(93) In terms of the number of the shared MUXs, three shared MUXs may be used to perform the error location polynomial operation, and n shared MUXs may be used to perform the error correction operation. Thus, if the shared logic circuit 210 is not used, 3+n shared MUXs may be required to perform the error location polynomial operation and the error correction operation. However, according to the embodiments using the shared logic circuit 210, only n shared MUXs may be required to perform the error location polynomial operation and the error correction operation. For example, if the number n of the bits included in the codeword is thirty one and the maximum number t of error correctable bits is two, thirty four MUXs may be required to perform the error location polynomial operation and the error correction operation if the shared logic circuit 210 is not used. However, according to the embodiments using the shared logic circuit 210, only thirty one shared MUXs may be required to perform the error location polynomial operation and the error correction operation. As a result, according to the embodiments, the number of the MUXs may be reduced by about 9%.
(94) The embodiments of the present disclosure have been disclosed above for illustrative purposes. Those of ordinary skill in the art will appreciate that various modifications, additions, and substitutions are possible, without departing from the scope and spirit of the present disclosure as disclosed in the accompanying claims.