Methods and systems of stall mitigation in iterative decoders
Methods, systems, and apparatuses for stall mitigation in iterative decoders are described. A codeword is received from a memory device. The codeword is iteratively error corrected based on a first bit flipping criterion. A stall condition in the multiple error correction iterations is detected. In response to the detection, the codeword is error corrected based on a second bit flipping criterion that is different from the first bit flipping criterion.
1. A method comprising:
receiving a codeword comprising a plurality of bits from a memory device;
iteratively error correcting the codeword in a plurality of iterations based on a comparison between a first bit flipping criterion and an energy function of each of the plurality of bits of the codeword, wherein the first bit flipping criterion includes a first bit flipping threshold and wherein error correcting the codeword in an iteration of the plurality of iterations includes flipping one or more bits of the plurality of bits for the codeword that satisfy the first bit flipping threshold;
detecting a stall condition in the plurality of iterations; and
responsive to the detection, error correcting the codeword based on a comparison between a second bit flipping criterion and the energy function of each of the plurality of bits of the codeword, wherein the second bit flipping criterion includes a second bit flipping threshold and wherein the second bit flipping threshold is different from the first bit flipping threshold, wherein error correcting the codeword based on the second bit flipping threshold includes flipping one or more bits of the plurality of bits for the codeword that satisfy the second bit flipping threshold, wherein the second bit flipping threshold causes a bit to be flipped as a result of a comparison between the second bit flipping threshold and an energy function of the bit, wherein the bit was not flipped as a result of a comparison of the first bit flipping threshold and the energy function of the bit.
2. The method of claim 1 , wherein the flipping of the bits for the codeword that satisfy the second bit flipping threshold includes:
determining that energy functions of the bits are less than the second bit flipping threshold.
3. The method of claim 1 , wherein the detecting the stall condition includes:
monitoring syndromes that result from the error correction of the codeword in the plurality of iterations; and
detecting a stall pattern in syndromes that result from the error correction of the codeword in consecutive iterations from the plurality of iterations.
4. The method of claim 1 , wherein the detecting the stall condition includes:
hashing syndromes that result from the error correction of the codeword in the plurality of iterations.
5. The method of claim 1 , further comprising:
responsive to error correcting the codeword for a number of iterations using the second bit flipping threshold, error correcting the codeword using the first bit flipping threshold.
6. The method of claim 1 , further comprising:
detecting a subsequent stall condition in the plurality of iterations; and
responsive to detecting the subsequent stall condition, error correcting the codeword based on a comparison between a third bit flipping criterion and the energy function of each of the plurality of bits of the codeword, wherein the third bit flipping criterion includes a third bit flipping threshold different from the first bit flipping threshold and the second bit flipping threshold.
7. The method of claim 6 , wherein error correcting the codeword based on the third bit flipping threshold includes:
flipping one or more bits of the plurality of bits for the codeword that satisfy the third bit flipping threshold, wherein satisfying the third bit flipping threshold includes determining that energy functions of the bits are less than the third bit flipping threshold.
8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
receive a codeword comprising a plurality of bits from a memory device;
iteratively error correct the codeword in a plurality of iterations based on a comparison between a first bit flipping criterion and an energy function of each of the plurality of bits of the codeword, wherein the first bit flipping criterion includes a first bit flipping threshold and wherein error correcting the codeword in an iteration of the plurality of iterations includes flipping one or more bits of the plurality of bits for the codeword that satisfy the first bit flipping threshold;
detect a stall condition in the plurality of iterations; and
responsive to the detection, error correct the codeword based on a comparison between a second bit flipping criterion and the energy function of each of the plurality of bits of the codeword, wherein the second bit flipping criterion includes a second bit flipping threshold and wherein the second bit flipping threshold is different from the first bit flipping threshold, wherein error correcting the codeword based on the second bit flipping threshold includes flipping one or more bits of the plurality of bits for the codeword that satisfy the second bit flipping threshold, wherein the second bit flipping threshold causes a bit to be flipped as a result of a comparison between the second bit flipping threshold and an energy function of the bit, wherein the bit was not flipped as a result of a comparison of the first bit flipping threshold and the energy function of the bit.
9. The non-transitory computer-readable storage medium of claim 8 , wherein the flipping of the bits for the codeword that satisfy the second bit flipping threshold includes:
determining that energy functions of the bits are less than the second bit flipping threshold.
10. The non-transitory computer-readable storage medium of claim 8 , wherein to detect the stall condition includes to:
monitor syndromes that result from the error correction of the codeword in the plurality of iterations; and
detect a stall pattern in syndromes that result from the error correction of the codeword in consecutive iterations from the plurality of iterations.
11. The non-transitory computer-readable storage medium of claim 8 , wherein to detect the stall condition includes to:
hash syndromes that result from the error correction of the codeword in the plurality of iterations.
12. The non-transitory computer-readable storage medium of claim 8 , wherein the processing device is further to:
responsive to error correcting the codeword for a number of iterations using the second bit flipping threshold, error correct the codeword using the first bit flipping threshold.
13. The non-transitory computer-readable storage medium of claim 8 , wherein the processing device is further to:
detect a subsequent stall condition in the plurality of iterations; and
responsive to detecting the subsequent stall condition, error correct the codeword based on a comparison between a third bit flipping criterion and the energy function of each of the plurality of bits of the codeword, wherein the third bit flipping criterion includes a third bit flipping threshold different from the first bit flipping threshold and the second bit flipping threshold.
14. The non-transitory computer-readable storage medium of claim 13 , wherein to error correct the codeword based on the third bit flipping threshold includes to:
flip one or more bits of the plurality of bits for the codeword that satisfy the third bit flipping threshold, wherein satisfying the third bit flipping threshold includes determining that energy functions of the bits are less than the third bit flipping threshold.
15. A system comprising:
a memory device; and
a processing device, operatively coupled with the memory device, to:
receive a codeword comprising a plurality of bits from the memory device;
iteratively error correct the codeword in a plurality of iterations based on a comparison between a first bit flipping threshold and an energy function of each of the plurality of bits of the codeword, wherein the error correction of the codeword in an iteration from the plurality of iterations includes flipping one or more bits of the plurality of bits for the codeword that satisfy the first bit flipping threshold;
detect a stall condition in the plurality of iterations; and
responsive to the detection, error correct the codeword based on a comparison between a second bit flipping threshold and the energy function of each of the plurality of bits of the codeword, wherein the second bit flipping threshold is different from the first bit flipping threshold, wherein error correcting the codeword based on the second bit flipping threshold includes flipping one or more bits of the plurality of bits for the codeword that satisfy the second bit flipping threshold, wherein the second bit flipping threshold causes a bit to be flipped as a result of a comparison between the second bit flipping threshold and an energy function of the bit, wherein the bit was not flipped as a result of a comparison of the first bit flipping threshold and the energy function of the bit.
16. The system of claim 15 , wherein the flipping of the bits for the codeword that satisfy the second bit flipping threshold includes:
determining that energy functions of the bits are less than the second bit flipping threshold.
17. The system of claim 15 , wherein to detect the stall condition includes to:
monitor syndromes that result from the error correction of the codeword in the plurality of iterations; and
detect a stall pattern in syndromes that result from the error correction of the codeword in consecutive iterations from the plurality of iterations.
18. The system of claim 15 , wherein to detect the stall condition includes to:
hash syndromes that result from the error correction of the codeword in the plurality of iterations.
19. The system of claim 15 , wherein the processing device is further to:
responsive to error correcting the codeword for a number of iterations using the second bit flipping threshold, error correct the codeword using the first bit flipping threshold.
20. The system of claim 15 , wherein the processing device is further to:
detect a subsequent stall condition in the plurality of iterations; and
responsive to detecting the subsequent stall condition, error correct the codeword based on a comparison between a third bit flipping criterion and the energy function of each of the plurality of bits of the codeword, wherein the third bit flipping criterion includes a third bit flipping threshold different from the first bit flipping threshold and the second bit flipping threshold.