IP Library Granted Patent US 9,559,727
Granted Patent B1
US 9,559,727 · App. 14/720,566 · Granted Jan 31, 2017

Stopping rules for turbo product codes

Inventors: Naveen Kumar (San Jose, CA); Zheng Wu (San Jose, CA); Jason Bellorado (San Jose, CA)
Assignee: SK hynix memory solutions Inc.
H03M13/2975H03M13/2948H03M13/2963
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,559,727
App. No.
14/720,566
Granted
Jan 31, 2017
Kind
B1
Abstract

Row decoding is performed on row codewords in an array in order to produce a row decoded array that includes row decoded column codewords. Column decoding is performed on the row decoded column codewords in order to produce a row and column decoded array that includes row and column decoded row codewords and row and column decoded column codewords. The number of row and column decoded row codewords that are not in a row codebook is determined and the number of row and column decoded column codewords that are not in a column codebook are determined. If the number not in the row codebook equals 0 and the number not in the column codebook equals 1, at least a data portion of the row and column decoded array is output.

Claims (52)

1. A system, comprising:

a row decoder configured to perform row decoding on a plurality of row codewords in an array in order to produce a row-decoded array that includes a plurality of row-decoded column codewords;

a column decoder configured to perform column decoding on the plurality of row-decoded column codewords in order to produce a row-decoded and column-decoded array that includes: (1) a plurality of row-decoded and column-decoded row codewords and (2) a plurality of row-decoded and column-decoded column codewords; and

a turbo product code (TPC) decoding controller configured to:

determine a number of row-decoded and column-decoded row codewords that are not in a row codebook;

determine a number of row-decoded and column-decoded column codewords that are not in a column codebook; and

output at least a data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0 and (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1.

2. The system of claim 1 , wherein the system includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

3. The system of claim 1 , wherein the TPC decoding controller is further configured to output at least the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0 and (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 0.

4. The system of claim 3 , wherein:

the system further includes a multiplexer that is configured to select between (1) read data from storage and (2) the row-decoded and column-decoded array output by the column decoder, wherein the row decoder inputs output of the multiplexer; and

the TPC decoding controller is further configured to:

determine if a maximum number of decoding attempts has been reached;

in the event it is determined that the maximum number of decoding attempts has been reached, declare a decoding failure; and

in the event it is determined that the maximum number of decoding attempts has not been reached, configure the multiplexer to select the row-decoded and column-decoded array output by the column decoder, wherein the row decoder performs row decoding on the plurality of row codewords in the row-decoded and column-decoded array.

5. The system of claim 1 , wherein a number of columns combined to generate a column codeword is less than a threshold.

6. The system of claim 1 , wherein the TPC decoding controller is further configured to:

perform error checking on a data portion of the row-decoded and column-decoded array;

output at least the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0, (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1, and (3) the data portion passes the error check; and

not output the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0, (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1, and (3) the data portion does not pass the error check.

7. The system of claim 6 , wherein a number of columns combined to generate a column codeword is greater than or equal to a threshold.

8. The system of claim 6 , wherein:

the plurality of row codewords include cyclic redundancy check (CRC) bits such that the row decoder is configured to perform row decoding on the CRC bits; and

the plurality of column codewords include the CRC bits such that the column decoder is configured to perform column decoding on the CRC bits.

9. A method, comprising:

performing row decoding on a plurality of row codewords in an array in order to produce a row-decoded array that includes a plurality of row-decoded column codewords;

performing column decoding on the plurality of row-decoded column codewords in order to produce a row-decoded and column-decoded array that includes: (1) a plurality of row-decoded and column-decoded row codewords and (2) a plurality of row-decoded and column-decoded column codewords;

determining a number of row-decoded and column-decoded row codewords that are not in a row codebook;

determining a number of row-decoded and column-decoded column codewords that are not in a column codebook; and

outputting at least a data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0 and (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1.

10. The method of claim 9 , wherein the method is performed by a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

11. The method of claim 9 , wherein the TPC decoding controller is further configured to output at least the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0 and (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 0.

12. The method of claim 11 , further comprising:

selecting between (1) read data from storage and (2) the row-decoded and column-decoded array output by the column decoder, wherein the row decoder inputs output of the multiplexer;

determining if a maximum number of decoding attempts has been reached;

in the event it is determined that the maximum number of decoding attempts has been reached, declaring a decoding failure; and

in the event it is determined that the maximum number of decoding attempts has not been reached, configuring the multiplexer to select the row-decoded and column-decoded array output by the column decoder, wherein the row decoder performs row decoding on the plurality of row codewords in the row-decoded and column-decoded array.

13. The method of claim 9 , wherein a number of columns combined to generate a column codeword is less than a threshold.

14. The method of claim 9 , wherein the TPC decoding controller is further configured to:

performing error checking on a data portion of the row-decoded and column-decoded array;

outputting at least the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0, (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1, and (3) the data portion passes the error check; and

not outputting the data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0, (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1, and (3) the data portion does not pass the error check.

15. The method of claim 14 , wherein a number of columns combined to generate a column codeword is greater than or equal to a threshold.

16. The method of claim 14 , wherein:

the plurality of row codewords include cyclic redundancy check (CRC) bits such that the row decoder is configured to perform row decoding on the CRC bits; and

the plurality of column codewords include the CRC bits such that the column decoder is configured to perform column decoding on the CRC bits.

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

performing row decoding on a plurality of row codewords in an array in order to produce a row-decoded array that includes a plurality of row-decoded column codewords;

performing column decoding on the plurality of row-decoded column codewords in order to produce a row-decoded and column-decoded array that includes: (1) a plurality of row-decoded and column-decoded row codewords and (2) a plurality of row-decoded and column-decoded column codewords;

determining a number of row-decoded and column-decoded row codewords that are not in a row codebook;

determining a number of row-decoded and column-decoded column codewords that are not in a column codebook; and

outputting at least a data portion of the row-decoded and column-decoded array in the event: (1) the number of row-decoded and column-decoded row codewords not in the row codebook equals 0 and (2) the number of row-decoded and column-decoded column codewords not in the column codebook equals 1.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: KUMAR, NAVEEN; WU, ZHENG; BELLORADO, JASON
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 036192/0822 →
Continuity (1)
Provisional Application 62025939 · Jul 17, 2014