| CPC G06F 11/1076 (2013.01) | 20 Claims |

|
1. A method for improving performance of an iterative decoder in a non-volatile memory, comprising:
receiving a noisy codeword that is based on a transmitted codeword generated from an irregular low-density parity-check (LDPC) code;
performing, in a first mode of the iterative decoder and on the noisy codeword for a number of iterations, a message passing algorithm between a plurality of variable nodes and a plurality of check nodes that represent a parity matrix of the irregular LDPC code,
wherein, as part of performing the message passing algorithm, at least one check node of the plurality of check nodes is configured to:
receive each of a plurality of messages from a corresponding variable node of a subset of the plurality of variable nodes connected to the at least one check node, each of the plurality of messages comprising a sign and a magnitude,
identify (i) a first minimum value corresponding to a smallest magnitude amongst the plurality of messages, (ii) a second minimum value, greater than the first minimum value, corresponding to a second smallest magnitude amongst the plurality of messages, (iii) a first index of the corresponding variable node associated with the first minimum value, and (iv) a second index of the corresponding variable node associated with the second minimum value, and
store (i) a magnitude of the first minimum value, (ii) a difference between a magnitude of the second minimum value and the magnitude of the first minimum value, and (iii) the first index for the first minimum value;
determining, subsequent to performing the number of iterations, a candidate version of the transmitted codeword.
|