Systems and methods for decoding codewords
Disclosed herein are systems and methods that can avoid fruitless decoding iterations by terminating fruitless decoding iterations at an early stage. A method comprises: iteratively decoding a codeword by a decoder until a number of iterations at which a syndrome weight of the codeword exceeds a predetermined threshold. The method may further comprise: comparing the syndrome weight of the codeword with a decoder syndrome weight threshold for the decoder; in response to that the syndrome weight of the codeword is greater than or no less than the decoder syndrome weight threshold, terminating decoding of the codeword by the decoder.
1. A method comprising:
iteratively decoding a codeword by a decoder until a number of iterations at which a syndrome weight of the codeword is greater than or no less than a predetermined threshold;
comparing the syndrome weight with a decoder syndrome weight threshold for the decoder; in response to that the syndrome weight of the codeword is greater than or no less than the decoder syndrome weight threshold, terminating decoding of the codeword by the decoder;
wherein the decoder is selected from a group consisting of a bit-flipping decoder, a min-sum decoder, a sum-product decoder, and a belief-propagation decoder.
2. The method of claim 1 , further comprising: calculating the syndrome weight at each of the iterations.
3. The method of claim 1 , further comprising: determining whether the codeword is fully decoded by the decoder; in response to that the codeword is fully decoded, terminating decoding of the codeword by the decoder.
4. The method of claim 1 , wherein the codeword is a low-density parity check (LDPC) code, a convolutional code, a Turbo code or a Polar code.
5. The method of claim 1 , further comprising decoding the codeword by another decoder.
6. A system comprising a processor configured to execute the method of claim 1 , wherein the system is a solid-state drive (SSD), a flash drive, a mother board, a processor, a computer, a server, a gaming device, or a mobile device.
7. A non-transitory machine-readable medium having information, wherein the information, when read by a hardware processor system, causes the hardware processor system to perform the method of claim 1 .
8. A method, comprising:
step S 1 : comparing a syndrome weight of a codeword being decoded by a first decoder with a syndrome weight threshold for an iterative calculation of the first decoder;
step S 2 : in response to that the syndrome weight is less than or no greater than the syndrome weight threshold, performing step S 5 ; otherwise performing step S 3 ;
step S 3 : adding a counter value by an increment and comparing the counter value with a predetermined value;
step S 4 : in response to that the counter value is greater than or no less than a predetermined value, performing step S 7 ; otherwise performing step S 5 ;
step S 5 : decoding the codeword by the iterative calculation;
step S 6 : in response to that the codeword is not fully decoded by the iterative calculation and that the iterative calculation is the last iterative calculation of the first decoder, performing step S 7 ;
step S 7 : terminating decoding of the codeword by the first decoder;
wherein the decoder is selected from a group consisting of a bit-flipping decoder, a min-sum decoder, a sum-product decoder, and a belief-propagation decoder.
9. The method of claim 8 , further comprising: calculating the syndrome weight of the codeword before step S 1 .
10. The method of claim 8 , wherein the codeword is a low-density parity check (LDPC) code, a convolutional code, a Turbo code or a Polar code.
11. The method of claim 8 , further comprising decoding the codeword by a second decoder after step S 7 .
12. The method of claim 8 , further comprising, before step S 1 :
step S 0 : comparing the syndrome weight of the codeword with a decoder syndrome weight threshold for the first decoder; in response to that the syndrome weight of the codeword is greater than or no less than the decoder syndrome weight threshold for the first decoder, performing step S 7 .
13. A system comprising a processor configured to execute the method of claim 8 , wherein the system is a solid-state drive (SSD), a flash drive, a mother board, a processor, a computer, a server, a gaming device, or a mobile device.
14. A non-transitory machine-readable medium having information, wherein the information, when read by a hardware processor system, causes the hardware processor system to perform the method of claim 8 .