IP Library Granted Patent US 12706615
Granted Patent B2
US 12706615 · App. 18/784,646 · Granted Aug 11, 2026

Iterative error decoding with early termination of decoding process

Inventors: Mustafa N. Kaynak (San Diego, CA); Sivagnanam Parthasarathy (Carlsbad, CA)
Assignee: MICRON TECHNOLOGY, INC.
H03M13/1125H03M13/255H03M13/2948
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12706615
App. No.
18/784,646
Granted
Aug 11, 2026
Kind
B2
Abstract

A method for decoding data is disclosed. The method includes determining that a codeword received from a memory device has errors and initiating a soft decoding process to decode embedded data from the codeword based on assigning respective LLR values to bits of the codeword and based on updating LLR values of the bits at each iteration of the soft decoding process. The method also includes incrementing an iteration counter at each iteration of the soft decoding process and determining that the soft decoding process will be unable to decode the embedded data before the iteration counter achieves a maximum iteration count based on the updated LLR values of the bits. The method further includes terminating the soft decoding process at an iteration count that is less than the maximum iteration count in response to the determination that the soft decoding process will be unable to decode the embedded data.

Claims (64)

1 . A method for decoding data, comprising:

determining, by an error-handling module of a controller, that a codeword received from a memory device has errors;

initiating a first soft decoding process, by the controller, to decode embedded data from the codeword based on respective log-likelihood ratio (LLR) values of a first LLR set assigned to bits of the codeword, wherein bits identified as having a highest reliability level are assigned first LLR values of a first magnitude and bits identified as having a lowest reliability level are assigned first LLR values of a second magnitude less than the first magnitude and based on updating the first LLR values of the bits at each iteration of the first soft decoding process;

incrementing, by the controller, an iteration counter at each iteration of the first soft decoding process;

determining, by the controller, that the first soft decoding process will be unable to decode the embedded data before the iteration counter achieves a maximum iteration count based on the updated first LLR values of the bits;

terminating the first soft decoding process at an iteration count that is less than the maximum iteration count in response to the determination that the first soft decoding process will be unable to decode the embedded data; and

initiating a second soft decoding process to decode the embedded data from the codeword based on respective second LLR values of a second LLR set assigned to the bits of the codeword in response to terminating the first soft decoding process, wherein bits identified as having the highest reliability level are assigned second LLR values of a third magnitude less than the first magnitude and bits identified as having the lowest reliability level are assigned second LLR values of a fourth magnitude greater than the second magnitude.

2 . The method of claim 1 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining a minimum iteration threshold corresponding to a quantity of initial iterations of the first soft decoding process; and

determining that the first soft decoding process will be unable to decode the embedded data after the iteration count of the iteration counter is greater than the initial iterations of the minimum iteration threshold and before the iteration counter achieves the maximum iteration count based on the updated LLR values of the bits.

3 . The method of claim 1 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining an updated LLR value threshold;

determining a quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count.

4 . The method of claim 3 , wherein determining that the first soft decoding process will be unable to decode the embedded data further comprises:

defining an unreliable bit population threshold corresponding to a threshold quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold; and

determining if the quantity of bits of the codeword having the respective updated LLR values that that the first soft decoding process will be unable to decode the embedded data based on determining that the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold exceed the unreliable bit population threshold before the iteration counter achieves the maximum iteration count.

5 . The method of claim 3 , wherein determining that the first soft decoding process will be unable to decode the embedded data further comprises:

defining at least one occurrence count threshold that defines a respective at least one condition for terminating the first soft decoding process based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count and based on the iteration count relative to the at least one occurrence count threshold.

6 . The method of claim 5 , wherein the at least one occurrence count threshold comprises at least one of:

a first predefined quantity of iterations of the first soft decoding process having an occurrence in which the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold is greater than an unreliable bit population threshold before the iteration counter achieves the maximum iteration count;

a second predefined quantity of iterations of the first soft decoding process having an occurrence in which the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold is greater than the unreliable bit population threshold within a predefined iteration count range; and

a third predefined quantity of consecutive iterations of the first soft decoding having an occurrence in which the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold is greater than the unreliable bit population threshold.

7 . The method of claim 1 , wherein the first soft decoding process utilizes a low density parity-check (LDPC) decoding process.

8 . The method of claim 1 , wherein the first soft decoding process is a soft redundant array of independent NAND (RAIN) low density parity-check (LDPC) decoding process.

9 . A system for decoding data, comprising:

a memory device; and

a processing device coupled to the memory device, the processing device to perform operations comprising:

determining that a codeword received from the memory device has errors;

initiating a first soft decoding process to decode embedded data from the codeword based on respective log-likelihood ratio (LLR) values of a first LLR set assigned to bits of the codeword, wherein bits identified as having a highest reliability level are assigned first LLR values of a first magnitude and bits identified as having a lowest reliability level are assigned first LLR values of a second magnitude less than the first magnitude and based on updating LLR values of the bits at each iteration of the first soft decoding process;

incrementing an iteration counter at each iteration of the first soft decoding process;

determining that the first soft decoding process will be unable to decode the embedded data before the iteration counter achieves a maximum iteration count based on the updated LLR values of the bits;

terminating the first soft decoding process at an iteration count that is less than the maximum iteration count in response to the determination that the first soft decoding process will be unable to decode the embedded data; and

initiating a second soft decoding process to decode the embedded data from the codeword based on respective second LLR values of a second LLR set assigned to the bits of the codeword in response to terminating the first soft decoding process, wherein bits identified as having the highest reliability level are assigned second LLR values of a third magnitude less than the first magnitude and bits identified as having the lowest reliability level are assigned second LLR values of a fourth magnitude greater than the second magnitude.

10 . The system of claim 9 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining a minimum iteration threshold corresponding to a quantity of initial iterations of the soft decoding process; and

determining that the first soft decoding process will be unable to decode the embedded data after the iteration count of the iteration counter is greater than the initial iterations of the minimum iteration threshold and before the iteration counter achieves the maximum iteration count based on the updated LLR values of the bits.

11 . The system of claim 9 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining an updated LLR value threshold;

defining an unreliable bit population threshold corresponding to a threshold quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold;

determining a quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold exceed the unreliable bit population threshold before the iteration counter achieves the maximum iteration count.

12 . The system of claim 11 , wherein determining that the first soft decoding process will be unable to decode the embedded data further comprises:

defining at least one occurrence count threshold that defines a respective at least one condition for terminating the first soft decoding process based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count and based on the iteration count relative to the at least one occurrence count threshold.

13 . A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

determining that a codeword received from a memory device has errors;

initiating a first soft decoding process to decode embedded data from the codeword based on log-likelihood ratio (LLR) values of a first LLR set assigned to bits of the codeword, wherein bits identified as having a highest reliability level are assigned first LLR values of a first magnitude and bits identified as having a lowest reliability level are assigned first LLR values of a second magnitude less than the first magnitude and based on updating LLR values of the bits at each iteration of the first soft decoding process;

incrementing an iteration counter at each iteration of the first soft decoding process;

determining that the first soft decoding process will be unable to decode the embedded data before the iteration counter achieves a maximum iteration count based on the updated LLR values of the bits;

terminating the first soft decoding process at an iteration count that is less than the maximum iteration count in response to the determination that the first soft decoding process will be unable to decode the embedded data; and

initiating a second soft decoding process to decode the embedded data from the codeword based on respective second LLR values of a second LLR set assigned to the bits of the codeword in response to terminating the first soft decoding process, wherein bits identified as having the highest reliability level are assigned second LLR values of a third magnitude less than the first magnitude and bits identified as having the lowest reliability level are assigned second LLR values of a fourth magnitude greater than the second magnitude.

14 . The medium of claim 13 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining a minimum iteration threshold corresponding to a quantity of initial iterations of the first soft decoding process; and

determining that the first soft decoding process will be unable to decode the embedded data after the iteration count of the iteration counter is greater than the initial iterations of the minimum iteration threshold and before the iteration counter achieves the maximum iteration count based on the updated LLR values of the bits.

15 . The medium of claim 13 , wherein determining that the first soft decoding process will be unable to decode the embedded data comprises:

defining an updated LLR value threshold;

defining an unreliable bit population threshold corresponding to a threshold quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold;

determining a quantity of bits of the codeword having the respective updated LLR values that are within the updated LLR value threshold; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold exceed the unreliable bit population threshold before the iteration counter achieves the maximum iteration count.

16 . The medium of claim 15 , wherein determining that the first soft decoding process will be unable to decode the embedded data further comprises:

defining at least one occurrence count threshold that defines a respective at least one condition for terminating the first soft decoding process based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count; and

determining that the first soft decoding process will be unable to decode the embedded data based on the quantity of the bits of the codeword having the respective updated LLR values within the updated LLR value threshold before the iteration counter achieves the maximum iteration count and based on the iteration count relative to the at least one occurrence count threshold.