IP Library Granted Patent US 9,959,168
Granted Patent B2
US 9,959,168 · App. 15/177,822 · Granted May 1, 2018

ECC and RAID-type decoding

Inventors: Stella Achtenberg (Netanya, IL); Eran Sharon (Rishon Lezion, IL); Idan Alrod (Herzliya, IL)
Assignee: SanDisk Technologies LLC
G06F11/1076G06F3/064G06F3/0619G06F3/0644G06F3/0689H03M13/1102H03M13/1515
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,959,168
App. No.
15/177,822
Granted
May 1, 2018
Kind
B2
Abstract

A device includes a memory and a controller. The controller is configured to read codewords of a data structure from the memory. The codewords include a number of undecodable codewords that are undecodable at an error correction coding (ECC) decoder according to a first correction scheme. The controller includes a stripe generator and a stripe decoder. The stripe generator is configured, in response to the number of undecodable codewords exceeding an erasure correction capacity of a stripe correction scheme, to generate trial data for a stripe of the data structure, the trial data including at least one element that corresponds to erased data and at least another element that is associated with an undecodable codeword and that corresponds to valid data of the stripe. The stripe decoder is configured to initiate a stripe decode operation of the trial data.

Claims (40)

1. A device comprising:

a memory; and

a controller configured to read codewords of a data structure from the memory, wherein the codewords include a number of undecodable codewords that are undecodable at an error correction coding (ECC) decoder according to a first correction scheme, the controller including:

a stripe generator configured to generate trial data for a stripe of the data structure in response to the number of undecodable codewords exceeding an erasure correction capacity of a stripe correction scheme, the trial data including at least one element that corresponds to erased data and at least another element that is associated with an undecodable codeword and that corresponds to valid data of the stripe; and

a stripe decoder configured to initiate a stripe decode operation of the trial data.

2. The device of claim 1 , wherein

the stripe generator is further configured to:

group first portions of each of the codewords to form a stripe codeword; and

select a second number of the undecodable codewords to correspond to the erased data.

3. The device of claim 2 , wherein the second number matches the erasure correction capacity of the stripe correction scheme.

4. The device of claim 1 , wherein the controller is further configured to test different combinations of the undecodable codewords as erased data until the stripe is decoded or until all distinct combinations of the undecodable codewords as erased data have been tested.

5. The device of claim 4 , wherein the controller is further configured to, in response to at least one stripe being undecodable after decode processing of each stripe of the data structure, initiate a decode operation of a modified version of a first undecodable codeword of the undecodable codewords according to the first correction scheme, the modified version including an error-corrected version of a portion of the first undecodable codeword.

6. The device of claim 1 , wherein the controller is further configured to alternate between codeword processing using the first correction scheme and stripe processing using the stripe correction scheme.

7. The device of claim 1 , wherein the first correction scheme includes a low density parity check (LDPC) scheme, and wherein the stripe correction scheme includes a Reed-Solomon scheme.

8. The device of claim 1 , wherein at least one of the codewords includes parity data for multiple stripes of the data structure.

9. A data storage device comprising:

means for storing data in a memory; and

means for controlling operations and configured to read data of a data structure from the memory, the data structure including codewords encoded according to a first error correction coding (ECC) scheme and stripes of the codewords encoded according to an erasure coding scheme, to generate trial data for a stripe of the data structure in response to a number of undecodable codewords of the data structure exceeding an erasure correction capacity of the erasure coding scheme, the trial data generated by including a portion of at least one of the undecodable codewords, and to initiate a stripe decode operation of the trial data.

10. The data storage device of claim 9 , wherein:

the first ECC scheme includes a low density parity check (LDPC) scheme, and

the erasure coding scheme includes a Reed-Solomon scheme.

11. The data storage device of claim 9 , wherein the means for controlling is configured to, for each undecoded stripe of the data structure, test sets of trial data that include different combinations of the undecodable codewords until the stripe is decoded or until all distinct combinations of the undecodable codewords have been tested.

12. The data storage device of claim 9 , wherein the memory includes a flash memory.

13. A method comprising:

reading, by a controller, codewords of a data structure from a memory, wherein the codewords include a number of undecodable codewords that are undecodable at an error correction coding (ECC) decoder according to a first correction scheme;

generating, by the controller, trial data for a stripe of the data structure in response to determining that the number of undecodable codewords exceeds an erasure correction capacity of a stripe correction scheme, the trial data including at least one element that corresponds to erased data and at least another element that is associated with an undecodable codeword and that corresponds to valid data of the stripe; and

initiating, by the controller a stripe decode operation of the trial data using the stripe correction scheme.

14. The method of claim 13 , wherein generating the trial data includes:

grouping first portions of the codewords to form a stripe codeword; and

selecting a second number of the undecodable codewords to correspond to the erased data.

15. The method of claim 14 , wherein the second number equals the erasure correction capacity of the stripe correction scheme.

16. The method of claim 13 , further comprising testing different combinations of the undecodable codewords as erased data until the stripe is decoded or until all distinct combinations of the undecodable codewords as erased data have been tested.

17. The method of claim 16 , further comprising, in response to at least one stripe being undecodable after decode processing of each stripe of the data structure, initiating a decode operation of a modified version of a first undecodable codeword of the undecodable codewords according to the first correction scheme, the modified version including an error-corrected version of a portion of the first undecodable codeword.

18. The method of claim 13 , further comprising:

receiving a request for data, wherein the data is encoded in a particular codeword of the undecodable codewords; and

alternating between codeword processing using the first correction scheme and stripe processing using the stripe correction scheme.

19. The method of claim 13 , wherein:

the first correction scheme includes a low density parity check (LDPC) scheme, and

the stripe correction scheme includes a Reed-Solomon scheme.

20. The method of claim 13 , wherein at least one of the codewords includes parity data for multiple stripes of the data structure.

Assignments (4)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: ACHTENBERG, STELLA; SHARON, ERAN; ALROD, IDAN
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038944/0762 →
Continuity (2)
Provisional Application 62303844 · Mar 4, 2016
Related Publication 20170255517A1 · Sep 7, 2017