IP Library Granted Patent US 9,143,166
Granted Patent B1
US 9,143,166 · App. 13/405,331 · Granted Sep 22, 2015

Adaptive scheduling of turbo equalization based on a metric

Inventors: Xiangyu Tang (San Jose, CA); Yu Kou (San Jose, CA); Lingqi Zeng (Turlock, CA)
Assignee: SK hynix memory solutions inc.
H03M13/09
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 9,143,166
App. No.
13/405,331
Granted
Sep 22, 2015
Kind
B1
Abstract

Turbo equalization is performing by using a soft output detector to perform decoding. At least a portion of a local iteration of decoding is performed using a soft output decoder. A metric associated with decoding progress is generated and it is determined whether to perform another local iteration of decoding based at least in part on the metric.

Claims (80)

1. A method, comprising:

selecting a value for a window size and a value for a threshold, including by:

obtaining a cost function, wherein the cost function:

inputs a number of iterations performed by a soft output detector and a number of iterations performed by a soft output decoder; and

generates a cost by combining an input number of soft output detector iterations and an input number of soft output decoder iterations using a ratio associated with an amount of resources which would be consumed by a single soft output decoder iteration, if performed, compared to an amount of resources which would be consumed by a single soft output detector iteration, if performed;

obtaining a first possible value for the window size and a first possible value for the threshold;

determining a first number of soft output detector iterations and a first number of soft output decoder iterations to properly decode a test signal if the first possible value for the window size and the first possible value for the threshold were used;

determining a first cost using the cost function, the first number of soft output detector iterations, and the first number of soft output decoder iterations;

obtaining a second possible value for the window size and a second possible value for the threshold;

determining a second number of soft output detector iterations and a second number of soft output decoder iterations to properly decode the same test signal if the second possible value for the window size and the second possible value for the threshold were used;

determining a second cost using the cost function, the second number of soft output detector iterations, and the second number of soft output decoder iterations;

in the event the first cost is the lowest cost, selecting the first possible value for the window size and the first possible value for the threshold; and

in the event the second cost is the lowest cost, selecting the second possible value for the window size and the second possible value for the threshold;

performing decoding using the soft output detector, wherein the soft output detector includes a soft output Viterbi detector;

performing at least a portion of a local iteration of decoding using the soft output decoder, wherein the soft output decoder includes a low-density parity-check (LDPC) decoder;

generating a metric associated with decoding progress, including by determining a difference between a most recent iteration associated with the LDPC decoder and a previous iteration associated with the LDPC decoder corresponding to the selected value for the window size; and

for a next iteration, deciding between: (1) performing decoding using the soft output Viterbi detector and (2) performing decoding using the LDPC decoder based at least in part on the metric, including by comparing the metric against the selected value for the threshold.

2. The method recited in claim 1 , wherein generating includes using one or more of the following over a window: a moving average, a minimum, or a maximum.

3. The method recited in claim 1 , wherein generating includes generating the metric based at least in part on one or more of the following: a magnitude of a message, a number of times a sign of a message exchanged between the one or more variable nodes and the one or more check nodes has flipped, or a number of unsatisfied parity checks.

4. The method recited in claim 1 , wherein determining is further based at least in part on one or more of the following: a minimum number of local iterations or a maximum number of local iterations.

5. The method recited in claim 1 , wherein:

a local iteration includes a plurality of decoding steps; and

generating includes subtracting a first number of unsatisfied parity checks associated with a first decoding step from a second number of unsatisfied parity checks associated with a second decoding step.

6. The method recited in claim 1 , wherein:

a local iteration includes a plurality of decoding steps; and

generating includes setting the metric to be a number of unsatisfied parity checks associated with a decoding step from the plurality of decoding steps.

7. The method recited in claim 1 further comprising performing decoding again using the soft output detector in the event it is determined to not perform another local iteration of decoding.

8. The method recited in claim 1 , wherein the ratio includes a ratio between: (1) an amount of power consumed by an iteration of the soft output Viterbi detector and (2) an amount of power consumed by an iteration of the LDPC decoder.

9. The method recited in claim 1 , wherein the ratio includes a ratio between: (1) an amount of time consumed by an iteration of the soft output Viterbi detector and (2) an amount of time consumed by an iteration of the LDPC decoder.

10. The method recited in claim 1 , wherein the metric is further based at least in part on: (1) a number of iterations performed by the soft output Viterbi detector and (2) a number of iterations performed by the LDPC decoder.

11. A system, comprising:

a processor configured to select a value for a window size and a value for a threshold, including by:

obtaining a cost function, wherein the cost function:

inputs a number of iterations performed by a soft output detector and a number of iterations performed by a soft output decoder; and

generates a cost by combining an input number of soft output detector iterations and an input number of soft output decoder iterations using a ratio associated with an amount of resources which would be consumed by a single soft output decoder iteration, if performed, compared to an amount of resources which would be consumed by a single soft output detector iteration, if performed;

obtaining a first possible value for the window size and a first possible value for the threshold;

determining a first number of soft output detector iterations and a first number of soft output decoder iterations to properly decode a test signal if the first possible value for the window size and the first possible value for the threshold were used;

determining a first cost using the cost function, the first number of soft output detector iterations, and the first number of soft output decoder iterations;

obtaining a second possible value for the window size and a second possible value for the threshold;

determining a second number of soft output detector iterations and a second number of soft output decoder iterations to properly decode the same test signal if the second possible value for the window size and the second possible value for the threshold were used;

determining a second cost using the cost function, the second number of soft output detector iterations, and the second number of soft output decoder iterations;

in the event the first cost is the lowest cost, selecting the first possible value for the window size and the first possible value for the threshold; and

in the event the second cost is the lowest cost, selecting the second possible value for the window size and the second possible value for the threshold;

the soft output detector configured to perform decoding, wherein the soft output detector includes a soft output Viterbi detector;

the soft output decoder configured to perform at least a portion of a local iteration of decoding, wherein the soft output decoder includes a low-density parity-check (LDPC) decoder; and

an adaptive scheduler configured to:

generate a metric associated with decoding progress, including by determining a difference between a most recent iteration associated with the LDPC decoder and a previous iteration associated with the LDPC decoder corresponding to the selected value for the window size; and

for a next iteration, decide between: (1) performing decoding using the soft output Viterbi detector and (2) performing decoding using the LDPC decoder based at least in part on the metric, including by comparing the metric against the selected value for the threshold.

12. The system recited in claim 11 , wherein the adaptive scheduler is configured to generate by generating the metric based at least in part on one or more of the following: a magnitude of a message, a number of times a sign of a message exchanged between the one or more variable nodes and the one or more check nodes has flipped, or a number of unsatisfied parity checks.

13. The system recited in claim 11 , wherein:

a local iteration includes a plurality of decoding steps; and

the adaptive scheduler is configured to generate, including by subtracting a first number of unsatisfied parity checks associated with a first decoding step from a second number of unsatisfied parity checks associated with a second decoding step.

14. The system recited in claim 11 , wherein:

a local iteration includes a plurality of decoding steps; and

the adaptive scheduler is configured to generate, including by setting the metric to be a number of unsatisfied parity checks associated with a decoding step from the plurality of decoding steps.

15. The system recited in claim 11 , wherein the soft output detector is further configured to perform decoding again in the event it is determined to not perform another local iteration of decoding.

16. The system recited in claim 11 , wherein the ratio includes a ratio between: (1) an amount of power consumed by an iteration of the soft output Viterbi detector and (2) an amount of power consumed by an iteration of the LDPC decoder.

17. The system recited in claim 11 , wherein the ratio includes a ratio between: (1) an amount of time consumed by an iteration of the soft output Viterbi detector and (2) an amount of time consumed by an iteration of the LDPC decoder.

18. The system recited in claim 11 , wherein the metric is further based at least in part on: (1) a number of iterations performed by the soft output Viterbi detector and (2) a number of iterations performed by the LDPC decoder.

19. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

selecting a value for a window size and a value for a threshold, including by:

obtaining a cost function, wherein the cost function:

inputs a number of iterations performed by a soft output detector and a number of iterations performed by a soft output decoder; and

generates a cost by combining an input number of soft output detector iterations and an input number of soft output decoder iterations using a ratio associated with an amount of resources which would be consumed by a single soft output decoder iteration, if performed, compared to an amount of resources which would be consumed by a single soft output detector iteration, if performed;

obtaining a first possible value for the window size and a first possible value for the threshold;

determining a first number of soft output detector iterations and a first number of soft output decoder iterations to properly decode a test signal if the first possible value for the window size and the first possible value for the threshold were used;

determining a first cost using the cost function, the first number of soft output detector iterations, and the first number of soft output decoder iterations;

obtaining a second possible value for the window size and a second possible value for the threshold;

determining a second number of soft output detector iterations and a second number of soft output decoder iterations to properly decode the same test signal if the second possible value for the window size and the second possible value for the threshold were used;

determining a second cost using the cost function, the second number of soft output detector iterations, and the second number of soft output decoder iterations;

in the event the first cost is the lowest cost, selecting the first possible value for the window size and the first possible value for the threshold; and

in the event the second cost is the lowest cost, selecting the second possible value for the window size and the second possible value for the threshold;

performing decoding using the soft output detector, wherein the soft output detector includes a soft output Viterbi detector;

performing at least a portion of a local iteration of decoding using the soft output decoder, wherein the soft output decoder includes a low-density parity-check (LDPC) decoder;

generating a metric associated with decoding progress, including by determining a difference between a most recent iteration associated with the LDPC decoder and a previous iteration associated with the LDPC decoder corresponding to the selected value for the window size; and

for a next iteration, deciding between: (1) performing decoding using the soft output Viterbi detector and (2) performing decoding using the LDPC decoder based at least in part on the metric, including by comparing the metric against the selected value for the threshold.

20. The computer program product recited in claim 19 , wherein the ratio includes a ratio between: (1) an amount of power consumed by an iteration of the soft output Viterbi detector and (2) an amount of power consumed by an iteration of the LDPC decoder.

21. The computer program product recited in claim 19 , wherein the ratio includes a ratio between: (1) an amount of time consumed by an iteration of the soft output Viterbi detector and (2) an amount of time consumed by an iteration of the LDPC decoder.

22. The computer program product recited in claim 19 , wherein the metric is further based at least in part on: (1) a number of iterations performed by the soft output Viterbi detector and (2) a number of iterations performed by the LDPC decoder.

23. The computer program product recited in claim 19 , wherein the computer instructions for generating include computer instructions for generating the metric based at least in part on one or more of the following: a magnitude of a message, a number of times a sign of a message exchanged between the one or more variable nodes and the one or more check nodes has flipped, or a number of unsatisfied parity checks.

Assignments (2)
CHANGE OF NAME Recorded Feb 26, 2013
From: LINK_A_MEDIA DEVICES CORPORATION
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 029881/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2012
From: TANG, XIANGYU; KOU, YU; ZENG, LINGQI
To: LINK_A_MEDIA DEVICES CORPORATION
Reel/Frame 028122/0646 →
Continuity (1)
Provisional Application 61466789 · Mar 23, 2011