CPC H03M 13/1108 (2013.01) [H03M 13/015 (2013.01); H03M 13/1128 (2013.01)] | 18 Claims |
1. A method comprising:
receiving a codeword from a memory device, the codeword including a plurality of bits;
flipping, by a bit flipping decoder using a first plurality of bit flipping rules, one or more of the plurality of bits in the codeword in each of a plurality of error correction iterations responsive to the one or more of the plurality of bits in the codeword satisfying the first plurality of bit flipping rules;
detecting a stall condition in the plurality of error correction iterations;
selecting a second plurality of bit flipping rules in response to detecting the stall condition; and
flipping, by the bit flipping decoder using the second plurality of bit flipping rules, one or more of the plurality of bits in the codeword in each of one or more subsequent error correction iterations responsive to the one or more of the plurality of bits in the codeword satisfying the first plurality of bit flipping rules, wherein the second plurality of bit flipping rules differs from the first plurality of bit flipping rules in two or more of:
use of channel information,
an order the bit flipping decoder evaluates the plurality of bits of the codeword for flipping, and
a bit flipping threshold, wherein the bit flipping threshold is compared against an energy function of each of the plurality of bits of the codeword in determining which bits to flip.
|