IP Library › Granted Patent US 10,511,326
Granted Patent B2
US 10,511,326 · App. 15/812,808 · Granted Dec 17, 2019

Systems and methods for decoding error correcting codes

Inventors: Yuan-mao Chang (Hsinchu, TW); Jie Chen (Milpitas, CA); Chung-Li Wang (Fremont, CA)
Assignee: Nyquist Semiconductor Limited
H03M13/1108H03M13/1111H03M13/3715H03M13/658
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 10,511,326
App. No.
15/812,808
Granted
Dec 17, 2019
Kind
B2
Abstract

Systems and methods are provided for decoding a codeword encoded by a linear block code. A method may comprise performing a soft decision decoding on a codeword, generating a hard decision for each bit of the codeword at an end of the soft decision decoding, generating a hard decision for each bit of the codeword at an end of the soft decision decoding, generating a reliability determination for each hard decision and performing a hard decision decoding using the hard decision for each bit and reliability determination for each hard decision.

Claims (43)

1. A method, comprising:

performing a soft decision decoding on a codeword;

generating a hard decision for each bit of the codeword at an end of the soft decision decoding;

generating a reliability determination for each hard decision based on a configurable threshold, the configurable threshold being determined based on a bit error rate of a communication channel or a storage device from which the codeword is received; and

performing a hard decision decoding using the hard decision for each bit and reliability determination for each hard decision.

2. The method of claim 1 , further comprising scheduling a bit node processing order based on check nodes satisfaction information at the end of the soft decision decoding, wherein the hard decision decoding is performed according to the bit node processing order.

3. The method of claim 2 , further comprising:

performing a first round of hard decision decoding on the codeword before performing the soft decision decoding;

determining which check nodes are satisfied and which check nodes are unsatisfied after the first round of hard decision decoding; and

scheduling a check node processing order for the soft decision decoding, wherein the soft decision decoding processes check nodes in batches and the check node processing order arranges batch(es) of check nodes containing one or more unsatisfied check nodes ahead of batch(es) of check nodes containing no unsatisfied check nodes, and the soft decision decoding is performed according to the check node processing order.

4. The method of claim 3 , further comprising updating the check node processing order after each iteration of the soft decision decoding with updated check nodes satisfaction information.

5. The method of claim 1 , further comprising:

performing a first round of hard decision decoding on the codeword before performing the soft decision decoding;

determining, for a symbol value of the codeword, a number of satisfied check nodes and a number of unsatisfied check nodes for a decoding result of the first round of hard decision decoding; and

generating a soft log-likelihood ratio (LLR) for the symbol value based on the number of satisfied check nodes and the number of unsatisfied check nodes, wherein the soft decision decoding is performed on the codeword using the soft LLR as an input.

6. The method of claim 5 , wherein the soft LLR for the symbol value is generated based on a difference between the number of satisfied check nodes and the number of unsatisfied check nodes.

7. The method of claim 6 , wherein the soft LLR for the symbol value is generated according to an equation P=((#S−#U)*Q+1)*D*X, in which #S is the number of satisfied check nodes, #U is the number of unsatisfied check nodes, Q is a scaling factor, D is the symbol value, X is an original LLR magnitude assigned to the symbol value, “*” is a multiplication sign, and the scaling factor Q and the original LLR magnitude X are selected to satisfy a hardware constraint.

8. A method, comprising:

performing a first round of hard decision decoding on a codeword;

performing a soft decision decoding on a codeword in response to the first round of hard decision decoding fails to successfully decode the codeword;

generating a hard decision for each bit of the codeword at an end of the soft decision decoding;

generating a reliability determination for each hard decision based on a configurable threshold, the configurable threshold being determined based on a bit error rate of a communication channel or a storage device from which the codeword is received; and

performing a second round of hard decision decoding using the hard decision for each bit and reliability determination for each hard decision.

9. The method of claim 8 , further comprising scheduling a bit node processing order based on check nodes satisfaction information at the end of the soft decision decoding, wherein the second round of hard decision decoding is performed according to the bit node processing order.

10. The method of claim 8 , further comprising:

determining which check nodes are satisfied and which check nodes are unsatisfied after the first round of hard decision decoding; and

scheduling a check node processing order for the soft decision decoding, wherein the soft decision decoding processes check nodes in batches and the check node processing order arranges batch(es) of check nodes containing one or more unsatisfied check nodes ahead of batch(es) of check nodes containing no unsatisfied check nodes, and the soft decision decoding is performed according to the check node processing order.

11. The method of claim 10 , further comprising updating the check node processing order after each iteration of the soft decision decoding with updated check nodes satisfaction information.

12. The method of claim 8 , further comprising:

determining, for a symbol value of the codeword, a number of satisfied check nodes and a number of unsatisfied check nodes for a decoding result of the first round of hard decision decoding; and

generating a soft log-likelihood ratio (LLR) for the symbol value based on the number of satisfied check nodes and the number of unsatisfied check nodes, wherein the soft decision decoding is performed on the codeword using the soft LLR as an input.

13. The method of claim 12 , wherein the soft LLR for the symbol value is generated based on a difference between the number of satisfied check nodes and the number of unsatisfied check nodes.

14. A system, comprising:

a soft decision decoder comprising circuitry configured to perform a soft decision decoding on the codeword and generate a hard decision for each bit of the codeword at an end of the soft decision decoding;

a reliability determination generator comprising circuitry configured to generate a reliability determination for each hard decision generated by the soft decision decoder, wherein the reliability determination for each hard decision is generated based on a configurable threshold, the configurable threshold is determined based on a bit error rate of a communication channel or a storage device from which the codeword is received; and

a hard decision decoder comprising circuitry configured to perform a hard decision decoding on the codeword using the hard decision for each bit of the codeword generated by the soft decision decoder and the reliability determination for each hard decision generated by the reliability determination generator.

15. The system of claim 14 , wherein the hard decision decoder further comprises circuitry to schedule a bit node processing order based on check nodes satisfaction information at the end of the soft decision decoding, and the hard decision decoding is performed according to the bit node processing order.

16. The system of claim 14 , further comprising a soft log-likelihood ratio (LLR) generator comprising circuitry configured to:

determine, for a symbol value of the codeword, a number of satisfied check nodes and a number of unsatisfied check nodes for a decoding result of a first round of hard decision decoding generated by the hard decision decoder before the soft decision decoder performs the soft decision decoding; and

generate a soft log-likelihood ratio (LLR) for the symbol value based on a difference between the number of satisfied check nodes and the number of unsatisfied check nodes, wherein the soft decision decoder further comprises circuitry to perform the soft decision decoding on the codeword using the soft LLR as an input.

17. The system of claim 14 , wherein the soft decision decoder comprises circuitry further configured to:

determine which check nodes are satisfied and which check nodes are unsatisfied after a first round of hard decision decoding before the soft decision decoder performs the soft decision decoding; and

schedule a check node processing order for the soft decision decoding, wherein the soft decision decoding processes check nodes in batches and the check node processing order arranges batch(es) of check nodes containing one or more unsatisfied check nodes ahead of batch(es) of check nodes containing no unsatisfied check nodes, and the soft decision decoder performs the soft decision decoding on the codeword according to the check node processing order.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2020
From: NYQUIST SEMICONDUCTOR LIMITED
To: INNOGRIT TECHNOLOGIES CO., LTD.
Reel/Frame 052333/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2017
From: CHANG, YUAN-MAO; CHEN, JIE; WANG, CHUNG-LI
To: NYQUIST SEMICONDUCTOR LIMITED
Reel/Frame 044752/0450 →
Continuity (1)
Related Publication 20190149168A1 · May 16, 2019
Cited By (1)
US 12,525,994