IP Library Granted Patent US 11,663,079
Granted Patent B2
US 11,663,079 · App. 17/540,059 · Granted May 30, 2023

Data recovery using a combination of error correction schemes

Inventors: Dung V. Nguyen (San Jose, CA); Phong Sy Nguyen (Livermore, CA); Sivagnanam Parthasarathy (Carlsbad, CA)
Assignee: MICRON TECHNOLOGY, INC.
G06F11/1076G06F11/076G06F11/0772H03M13/1575
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 11,663,079
App. No.
17/540,059
Granted
May 30, 2023
Kind
B2
Abstract

Exemplary methods, apparatuses, and systems include receiving a request for a segment of data. The requested segment data is one of a plurality of segments of data in a stripe of data. A failure to decode the requested segment is detected. Each of the plurality of segments in the stripe other than the requested segment are read. Reading each segment includes reading raw encoded data and attempting to decode the raw encoded data, the result of reading each segment including decoded data when decoding is successful and the raw encoded data when decoding fails. A combined result of each read is generated. The combining includes combining decoded data for segments that were successfully decoded and the raw encoded data for segments for which decoding failed. A statistical model for the requested segment is updated using the combined result. The requested segment is decoded using the updated statistical model.

Claims (57)

1. A method comprising:

receiving a request for a segment of data, wherein the requested segment data is one of a plurality of segments of data in a stripe of data distributed across a redundant array of storage nodes;

detecting a failure to decode the requested segment of data;

reading each of the plurality of segments in the stripe other than the requested segment of data, wherein reading each segment includes reading raw encoded data and attempting to decode the raw encoded data, the result of reading each segment including decoded data when decoding is successful and the raw encoded data when decoding fails;

generating a combined result of each read, the generating including combining decoded data for segments that were successfully decoded and the raw encoded data for segments for which decoding failed;

updating a statistical model for the requested segment using the combined result; and

decoding the requested segment using the updated statistical model.

2. The method of claim 1 , wherein the statistical model includes a likelihood of the raw encoded data being correct based on a read voltage level used to read the raw encoded data.

3. The method of claim 2 , wherein updating the statistical model includes applying a scaling factor to the likelihood of the raw encoded data being correct based on the read voltage level used to read the raw encoded data.

4. The method of claim 3 , further comprising:

selecting the scaling factor from a lookup table using a syndrome weight for the requested segment of data and a number of failures in the stripe.

5. The method of claim 1 , wherein the statistical model includes a likelihood of the raw encoded data being correct based on an error correction scheme used to decode the raw encoded data.

6. The method of claim 1 , wherein generating a combined result of each read includes combining bits using an exclusive-or operation.

7. The method of claim 1 , further comprising:

compressing or removing statistical model data from a result of a read prior to combining the result of the read with the results of other reads.

8. The method of claim 1 , further comprising:

detecting a second failure to decode the requested segment of data;

in response to detecting the second failure, selecting a second segment of the plurality of segments in the stripe for which decoding failed;

updating a second statistical model for the second segment using a combined result of reads of other segments in the stripe; and

decoding the second segment using the second statistical model, wherein the combined result of reads used to update the statistical model for the requested segment is based upon the decoded second segment.

9. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

receive a request for a segment of data, wherein the requested segment data is one of a plurality of segments of data in a stripe of data distributed across a redundant array of storage nodes;

detect a failure to decode the requested segment of data;

read each of the plurality of segments in the stripe other than the requested segment of data, wherein reading each segment includes reading raw encoded data and attempting to decode the raw encoded data, the result of reading each segment including decoded data when decoding is successful and the raw encoded data when decoding fails;

generate a combined result of each read, the generating including combining decoded data for segments that were successfully decoded and the raw encoded data for segments for which decoding failed;

update a statistical model for the requested segment using the combined result; and

decode the requested segment using the updated statistical model.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the statistical model includes a likelihood of the raw encoded data being correct based on a read voltage level used to read the raw encoded data.

11. The non-transitory computer-readable storage medium of claim 10 , wherein updating the statistical model includes applying a scaling factor to the likelihood of the raw encoded data being correct based on the read voltage level used to read the raw encoded data.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the processing device is further to:

select the scaling factor from a lookup table using a syndrome weight for the requested segment of data and a number of failures in the stripe.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the statistical model includes a likelihood of the raw encoded data being correct based on an error correction scheme used to decode the raw encoded data.

14. The non-transitory computer-readable storage medium of claim 9 , wherein generating a combined result of each read includes combining bits using an exclusive-or operation.

15. The non-transitory computer-readable storage medium of claim 9 , wherein the processing device is further to:

compress or remove statistical model data from a result of a read prior to combining the result of the read with the results of other reads.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the processing device is further to:

detect a second failure to decode the requested segment of data;

in response to detecting the second failure, select a second segment of the plurality of segments in the stripe for which decoding failed;

update a second statistical model for the second segment using a combined result of reads of other segments in the stripe; and

decode the second segment using the second statistical model, wherein the combined result of reads used to update the statistical model for the requested segment is based upon the decoded second segment.

17. A system comprising:

a plurality of memory devices; and

a processing device, operatively coupled with the plurality of memory devices, to:

receive a request for a segment of data, wherein the requested segment data is one of a plurality of segments of data in a stripe of data distributed across a redundant array of storage nodes;

detect a failure to decode the requested segment of data;

read each of the plurality of segments in the stripe other than the requested segment of data, wherein reading each segment includes reading raw encoded data and attempting to decode the raw encoded data, the result of reading each segment including decoded data when decoding is successful and the raw encoded data when decoding fails;

generate a combined result of each read, the generating including combining decoded data for segments that were successfully decoded and the raw encoded data for segments for which decoding failed;

update a statistical model for the requested segment using the combined result wherein the statistical model includes a likelihood of the raw encoded data being correct based on a read voltage level used to read the raw encoded data; and

decode the requested segment using the updated statistical model.

18. The system of claim 17 , wherein updating the statistical model includes applying a scaling factor to the likelihood of the raw encoded data being correct based on the read voltage level used to read the raw encoded data.

19. The system of claim 18 , wherein the processing device is further to:

select the scaling factor from a lookup table using a syndrome weight for the requested segment of data and a number of failures in the stripe.

20. The system of claim 17 , wherein the processing device is further to:

detect a second failure to decode the requested segment of data;

in response to detecting the second failure, select a second segment of the plurality of segments in the stripe for which decoding failed;

update a second statistical model for the second segment using a combined result of reads of other segments in the stripe; and

decode the second segment using the second statistical model, wherein the combined result of reads used to update the statistical model for the requested segment is based upon the decoded second segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2021
From: NGUYEN, DUNG V.; NGUYEN, PHONG SY; PARTHASARATHY, SIVAGNANAM
To: MICRON TECHNOLOGY, INC.
Reel/Frame 058261/0934 →
Continuity (2)
Provisional Application 63146676 · Feb 7, 2021
Related Publication 20220253354A1 · Aug 11, 2022
Cited By (1)
US 12,298,852