IP Library Granted Patent US 9,935,659
Granted Patent B2
US 9,935,659 · App. 15/158,416 · Granted Apr 3, 2018

Performance optimization in soft decoding for turbo product codes

Inventors: Aman Bhatia (San Jose, CA); Naveen Kumar (San Jose, CA); Yi-Min Lin (San Jose, CA); Lingqi Zeng (San Jose, CA)
Assignee: SK Hynix Inc.
H03M13/2963H03M13/2927H03M13/2948H03M13/453
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,935,659
App. No.
15/158,416
Granted
Apr 3, 2018
Kind
B2
Abstract

Systems for performing turbo product code decoding includes an error intersection identifier determining a set of one or more error intersections using a set of error-containing codewords, and updating, based at least in part on Chase decoding performed on the set of error-containing codewords, the set of error intersections to obtain an updated set of one or more error intersections, a bit location selector suitable for selecting, from the set of error intersections, a set of one or more least reliable bit locations using soft information associated with the set of error-containing codewords, and a Chase decoder performing Chase decoding on the set of error-containing codewords based on a first value being a number of least reliable bit locations and a second value being a maximum number of allowable flips allowed out of the number of least reliable bit locations.

Claims (44)

1. A system for performing turbo product code (TPC) decoding, comprising:

a memory device:

a processor; and

a non-transitory computer readable storage medium coupled to the processor, embedding computer program products executed by the processor, including computer instructions configured to:

control the memory device including

a solid state storage, and

a read controller coupled with the solid state storage, wherein the read controller comprises:

an error intersection identifier configured to:

determine a set of one or more error intersections using a set of error-containing codewords, and

update, based at least in part on Chase decoding performed on the set of error-containing codewords, the set of one or more error intersections to obtain an updated set of one or more error intersections, wherein the Chase decoding is decoding upon combinatorically flipping certain least reliable bits;

a bit location selector configured to:

select from the set of one or more error intersections, a set of one or more least reliable bit locations using soft information associated with the set of error-containing codewords; and

a decoder configured to:

perform the Chase decoding on the set of error-containing codewords based on a first value being a number of least reliable bit locations and a second value being a maximum number of allowable flips allowed out of the number of least reliable bit locations.

2. The system of claim 1 , wherein a number of erroneous bits in the set of least reliable bit locations is less than a correction capability of the system plus the second value.

3. The system of claim 2 , wherein the number of erroneous bits is at least equal to the second value.

4. The system of claim 1 , wherein the Chase decoder performs the Chase decoding in at least an initial iteration and a subsequent iteration.

5. The system of claim 4 , wherein the first value is increased at the subsequent iteration.

6. The system of claim 4 , wherein the second value is decreased at the subsequent iteration.

7. A method for performing turbo product code (TPC) decoding in a memory device including an error intersection identifier, a bit location selector and a decoder, comprising:

determining, with the error intersection identifier, a set of one or more error intersections using a set of error-containing codewords;

updating, with the error intersection identifier, the set of one or more error intersections based at least in part on Chase decoding performed on the set of error-containing codewords to obtain an updated set of one or more error intersections, wherein the Chase decoding is decoding upon combinatorically flipping certain least reliable bits;

selecting, with the bit location selector, from the set of error intersections, a set of one or more least reliable bit locations using soft information associated with the set of error-containing codewords; and

performing the Chase decoding, with the decoder, on the set of error-containing codewords based on a first value being a number of least reliable bit locations and a second value being a maximum number of allowable flips allowed out of the number of least reliable bit locations.

8. The method of claim 7 , wherein a number of erroneous bits in the set of least reliable bit locations is less than a correction capability plus the second value.

9. The method of claim 8 , wherein the number of erroneous bits is at least equal to the second value.

10. The method of claim 7 , wherein the decoder performs the Chase decoding in at least an initial iteration and a subsequent iteration.

11. The method of claim 10 , wherein the first value is increased at the subsequent iteration.

12. The method of claim 10 , wherein the second value is decreased at the subsequent iteration.

13. A memory device for performing turbo product code (TPC) decoding, comprising:

a solid state storage; and

a read controller coupled with the solid state storage, wherein the read controller comprises:

an error intersection identifier configured to:

determine a set of one or more error intersections using a set of error-containing codewords; and

update, based at least in part on Chase decoding performed on the set of error-containing codewords, the set of one or more error intersections to obtain an updated set of one or more error intersections, wherein the Chase decoding is decoding upon combinatorically flipping certain least reliable bits;

a bit location selector configured to:

select, from the set of one or more error intersections, a set of one or more least reliable bit locations using soft information associated with the set of error-containing codewords; and

a decoder configured to:

perform the Chase decoding on the set of error-containing codewords based on a first value being a number of least reliable bit locations and a second value being a maximum number of allowable flips allowed out of the number of least reliable bit locations.

14. The memory device of claim 13 , wherein a number of erroneous bits in the set of least reliable bit locations is less than a correction capability of the memory device plus the second value.

15. The memory device of claim 14 , wherein the number of erroneous bits is at least equal to the second value.

16. The memory device of claim 13 , wherein the Chase decoder performs the Chase decoding in at least an initial iteration and a subsequent iteration.

17. The memory device of claim 16 , wherein the first value is increased at the subsequent iteration.

18. The memory device of claim 16 , wherein the second value is decreased at the subsequent iteration.

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 Jun 14, 2016
From: BHATIA, AMAN; KUMAR, NAVEEN; LIN, YI-MIN; ZENG, LINGQI
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 038912/0044 →
Continuity (2)
Provisional Application 62163288 · May 18, 2015
Related Publication 20160344426A1 · Nov 24, 2016