IP Library Granted Patent US 10,817,373
Granted Patent B2
US 10,817,373 · App. 16/151,064 · Granted Oct 27, 2020

Soft chip-kill recovery using concatenated codes

Inventors: Naveen Kumar (San Jose, CA); Aman Bhatia (San Jose, CA); Fan Zhang (Fremont, CA)
Assignee: SK Hynix Inc.
G06F11/1068G06F11/1012G11C7/1006H03M13/1105H03M13/1111H03M13/253H03M13/255H03M13/2906H03M13/2927G11C8/10G11C16/08G11C29/42G11C29/52G11C2029/0411
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,817,373
App. No.
16/151,064
Granted
Oct 27, 2020
Kind
B2
Abstract

Techniques are described for memory writes and reads according to a chip-kill scheme that allows recovery of multiple failed wordlines. In an example, when writing data to a superblock of the memory, a wordline of the superblock stores “D+P” parity bits that protect “D” data bits of a codeword having a length of “2D+P.” Other wordlines of the superblock store codewords each having a length of “D+P” (e.g., “D” data bits and “P” parity bits). If the decoding of any of these codewords of length “D+P” fails, the “D+P” parity bits are used to re-decode the failed wordline.

Claims (82)

1. A method implemented on a computer system to output data from superblocks of a memory, the method comprising:

generating “D” intermediary data bits by at least performing one or more XOR operations on data bits from wordlines of a superblock, wherein:

the wordlines comprise a first wordline and a second wordline, the superblock comprises a first block on a first memory die and a second block on a second memory die,

the first block comprises the first wordline and the second block comprises the second wordline, and

each of the first wordline and the second wordline is configured to store “D” data bits and “P” parity bits,

generating “K” parity bits that protect the “D” intermediary data bits, wherein “K” is equal to the sum of “D” and “P”;

storing the “K” parity bits in an additional wordline of the superblock other than the wordlines; and

outputting decoded data bits from the superblock based on a decoding procedure that uses the “K” parity bits stored in the additional wordline.

2. The method of claim 1 , wherein outputting the decoded data bits from the superblock comprises:

decoding the wordlines with a first decoder;

determining that a number of error bits in the first wordline is larger than a threshold; and

decoding the first wordline with a second decoder based on the number of error bits being larger than the threshold, wherein the second decoder is associated with a higher error correction capability than the first decoder.

3. The method of claim 2 , wherein the “D” data bits and “P” parity bits in each of the wordlines form an error correction code associated with a D/(D+P) code rate, wherein the “D” intermediary data bits and the “K” parity bits form a different error correction code associated with a D/(2D+P) code rate, and wherein the higher error correction capability of the second decoder is based on the D/(2D+P) code rate.

4. The method of claim 1 , wherein outputting the decoded data bits from the superblock comprises:

determining a number of failed wordlines;

determining whether the number is equal to or greater than one; and

upon determining that the number is equal to one, performing a first decoding procedure that does not rely on soft information of other wordlines,

upon determining that the number is greater than one, performing a second decoding procedure that relies on soft information of one or more other failed wordlines.

5. The method of claim 1 , wherein outputting the decoded data bits from the superblock comprises:

determining that decoding the first wordline failed based on a number of error bits in the decoding of the first wordline;

generating the “D” intermediary data bits again by at least re-performing the one or more XOR operations; and

decoding the first wordline again based on a decoding of the “D” intermediary data bits, wherein the decoding of the “D” intermediary data bits is based on the “K” parity bits.

6. The method of claim 1 , wherein outputting the decoded data bits from the superblock comprises:

decoding the first wordline with a first decoder;

determining that the decoding of the first wordline with the first decoder failed;

decoding the “D” intermediary data bits with a second decoder based on the “K” parity bits stored in the additional wordline of the superblock;

generating a second “D” intermediary data bits by at least performing one or more XOR operations on a subset of the wordlines of the superblock, wherein the subset excludes the first wordline; and

decoding the “D” data bits of the first wordline based on the “D” decoded intermediary data bits and the second “D” intermediary data bits.

7. The method of claim 1 , wherein outputting the decoded data bits from the superblock comprises:

decoding, in a first iteration, the first wordline and the second wordline with a first decoder;

determining that the decoding of the first wordline and the second wordline with the first decoder failed;

decoding the “D” intermediary data bits with a second decoder based on the “K” parity bits stored in the additional wordline of the superblock; and

decoding, in a second iteration, the first wordline with the first decoder based on soft information associated with the second wordline and information associated with the “D” decoded intermediary data bits, wherein the soft information associated with the second wordline is an output from the first decoder in the first iteration, and wherein the information associated with the “D” decoded intermediary data bits is available from the second decoder.

8. The method of claim 7 , wherein decoding the first wordline in the second iteration comprises erasing soft information that is associated with the first wordline and that is another output of the first decoder in the first iteration.

9. The method of claim 7 , wherein outputting the decoded data bits from the superblock further comprises:

decoding, in the second iteration and subsequent to the decoding of the first wordline in the second iteration, the second wordline with the first decoder based on soft information associated with the first wordline and the information associated with the “D” decoded intermediary data bits, wherein the soft information associated with the first wordline is another output from the first decoder in the second iteration.

10. The method of claim 7 , wherein the information associated with the “D” decoded intermediary data bits comprises log likelihood ratios of the “D” decoded intermediary data bits.

11. The method of claim 7 , wherein the information associated with the “D” decoded intermediary data bits comprises hard information of the “D” decoded intermediary data bits.

12. A computer system comprising:

one or more processors; and

one or more memories communicatively coupled with the one or more processors and storing instructions that, upon execution by the one or more processors, configure the computer system to at least:

generate “D” intermediary data bits by at least performing one or more XOR operations on data bits from wordlines of a superblock, wherein:

the wordlines comprise a first wordline and a second wordline,

the superblock comprises a first block on a first memory die and a second block on a second memory die,

the first block comprises the first wordline and the second block comprises the second wordline, and

each of the first wordline and the second wordline is configured to store “D” data bits and “P” parity bits;

generate “K” parity bits that protect the “D” intermediary data bits, wherein “K” is equal to the sum of “D” and “P”;

store the “K” parity bits in an additional wordline of the superblock other than the wordlines; and

output decoded data bits from the superblock based on a decoding procedure that uses the “K” parity bits stored in the additional wordline.

13. The computer system of claim 12 , wherein outputting the decoded data bits from the superblock comprises:

determining a number of failed wordlines;

determining whether the number is equal to or greater than one; and

upon determining that the number is equal to one, performing a first decoding procedure that does not rely on soft information of other wordlines,

upon determining that the number is greater than one, performing a second decoding procedure that relies on soft information of one or more other failed wordlines.

14. The computer system of claim 12 , wherein outputting the decoded data bits from the superblock comprises:

determining that decoding the first wordline failed based on a number of error bits in the decoding of the first wordline;

generating the “D” intermediary data bits again by at least re-performing the one or more XOR operations; and

decoding the first wordline again based on a decoding of the “D” intermediary data bits, wherein the decoding of the “D” intermediary data bits is based on the “K” parity bits.

15. The computer system of claim 12 , wherein outputting the decoded data bits from the superblock comprises:

decoding the first wordline with a first decoder;

determining that the decoding of the first wordline with the first decoder failed;

decoding the “D” intermediary data bits with a second decoder based on the “K” parity bits stored in the additional wordline of the superblock;

generating a second “D” intermediary data bits by at least performing one or more XOR operations on a subset of the wordlines of the superblock, wherein the subset excludes the first wordline; and

decoding the “D” data bits of the first wordline based on the “D” decoded intermediary data bits and the second “D” intermediary data bits.

16. One or more non-transitory computer storage media comprising instructions that, upon execution on a computer system, configure the computer system to perform operations comprising:

generating “D” intermediary data bits by at least performing one or more XOR operations on data bits from wordlines of a superblock, wherein:

the wordlines comprise a first wordline and a second wordline,

the superblock comprises a first block on a first memory die and a second block on a second memory die,

the first block comprises the first wordline and the second block comprises the second wordline, and

each of the first wordline and the second wordline is configured to store “D” data bits and “P” parity bits;

generating “K” parity bits that protect the “D” intermediary data bits, wherein “K” is equal to the sum of “D” and “P”;

storing the “K” parity bits in an additional wordline of the superblock other than the wordlines; and

outputting decoded data bits from the superblock based on a decoding procedure that uses the “K” parity bits stored in the additional wordline.

17. The one or more non-transitory computer storage media of claim 16 , wherein outputting the decoded data bits from the superblock comprises:

decoding, in a first iteration, the first wordline and the second wordline with a first decoder;

determining that the decoding of the first wordline and the second wordline with the first decoder failed;

decoding the “D” intermediary data bits with a second decoder based on the “K” parity bits stored in the additional wordline of the superblock; and

decoding, in a second iteration, the first wordline with the first decoder based on soft information associated with the second wordline and information associated with the “D” decoded intermediary data bits, wherein the soft information associated with the second wordline is an output from the first decoder in the first iteration, and wherein the information associated with the “D” decoded intermediary data bits is available from the second decoder.

18. The one or more non-transitory computer storage media of claim 17 , wherein decoding the first wordline in the second iteration comprises erasing soft information that is associated with the first wordline and that is another output of the first decoder in the first iteration.

19. The one or more non-transitory computer storage media of claim 17 , wherein outputting the decoded data bits from the superblock further comprises:

decoding, in the second iteration and subsequent to the decoding of the first wordline in the second iteration, the second wordline with the first decoder based on soft information associated with the first wordline and the information associated with the “D” decoded intermediary data bits, wherein the soft information associated with the first wordline is another output from the first decoder in the second iteration.

20. The one or more non-transitory computer storage media of claim 17 , wherein the information associated with the “D” decoded intermediary data bits comprises log likelihood ratios of the “D” decoded intermediary data bits.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2020
From: SK HYNIX MEMORY SOLUTION AMERICA INC.
To: SK HYNIX INC.
Reel/Frame 053600/0826 →
CHANGE OF NAME Recorded Mar 6, 2019
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
Reel/Frame 048516/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2019
From: KUMAR, NAVEEN; BHATIA, AMAN; ZHANG, FAN
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 048465/0288 →
Continuity (2)
Provisional Application 62589471 · Nov 21, 2017
Related Publication 20190155686A1 · May 23, 2019