IP Library Granted Patent US 8,145,981
Granted Patent B2
US 8,145,981 · App. 13/164,401 · Granted Mar 27, 2012

Soft bit data transmission for error correction control in non-volatile memory

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 8,145,981
App. No.
13/164,401
Granted
Mar 27, 2012
Kind
B2
Abstract

Data stored in non-volatile storage is decoded using iterative probabilistic decoding. An error correcting code such as a low density parity check code may be used. In one approach, initial reliability metrics, such as logarithmic likelihood ratios, are used in decoding sensed states of a set of non-volatile storage element. The decoding attempts to converge by adjusting the reliability metrics for bits in code words which represent the sensed state. Soft data bits are read from the memory if the decoding fails to converge. Initial reliability metric values are provided after receiving the hard read results and at each phase of the soft bit operation(s). In one embodiment, a second soft bit is read from the memory using multiple subsets of soft bit compare levels. While reading at the second subset of compare levels, decoding can be performed based on the first subset data.

Claims (54)

1. A method of reading non-volatile storage, comprising:

providing a set of read compare points for a plurality of non-volatile storage elements as part of an error correction control process while reading a first set of data from the storage elements, the set of read compare points including a first subset of read compare points having one read compare point corresponding to each programmable state of the storage elements and a second subset of read compare points having one read compare point corresponding to each programmable state of the storage elements, wherein providing includes providing the first subset prior to the second subset;

determining a second set of data based on the first subset of read compare points; and

iteratively decoding the first set of data using the second set of data while providing the second subset of read compare points for the plurality of non-volatile storage elements.

2. The method of claim 1 , further comprising:

determining a third set of data based on the second subset of read compare points; and

iteratively decoding the first set of data using the third set of data and the second set of data.

3. The method of claim 2 , wherein the set of read compare points is a second set of read compare points, the method further comprising:

providing a first set of read compare points for the plurality of non-volatile storage elements prior to providing the second set of read compare points; and

determining the first set of data based on the first set of read compare points.

4. The method of claim 3 , further comprising, prior to providing the second set of read compare points:

providing a third set of read compare points including a single read compare point corresponding to each programmable state of the storage elements;

determining a fourth set of data based on the third set of read compare points; and

iteratively decoding the first set of data based on the fourth set of data while providing the first subset of read compare points to the storage elements.

5. The method of claim 1 , further comprising:

iteratively decoding the first set of data prior to providing the second set of read compare points;

wherein providing the second set of read compare points is performed in response to a determination that iteratively decoding the first set of data is not successful.

6. The method of claim 1 , wherein:

iteratively decoding the first set of data using the second set of data includes accessing reliability metrics based on the first set of data and the second set of data.

7. The method of claim 6 , wherein:

the reliability metrics include logarithmic likelihood ratios.

8. The method of claim 7 , wherein:

iteratively decoding the first set of data includes accessing a table of logarithmic likelihood ratios.

9. The method of claim 8 , wherein accessing the table includes, for each storage element of the plurality:

determining from the table an initial logarithmic likelihood ratio for the storage element based on its data from the first set of data and its data from the second set of data.

10. A non-volatile memory system, comprising:

a plurality of non-volatile storage elements; and

managing circuitry in communication with the set of non-volatile storage elements, the managing circuitry performs one or more operations that include:

providing a set of read compare points for the plurality of non-volatile storage elements as part of an error correction control process while reading a first set of data from the storage elements, the set of read compare points including a first subset of read compare points having one read compare point corresponding to each programmable state of the storage elements and a second subset of read compare points having one read compare point corresponding to each programmable state of the storage elements, wherein providing includes providing the first subset prior to the second subset,

determining a second set of data based on the first subset of read compare points, and

iteratively decoding the first set of data using the second set of data while providing the second subset of read compare points for the plurality of non-volatile storage elements.

11. The non-volatile memory system of claim 10 , wherein the one or more read operations further include:

determining a third set of data based on the second subset of read compare points; and

iteratively decoding the first set of data using the third set of data and the second set of data.

12. The non-volatile memory system of claim 11 , wherein the set of read compare points is a second set of read compare points, the one or more operations further include:

providing a first set of read compare points for the plurality of non-volatile storage elements prior to providing the second set of read compare points; and

determining the first set of data based on the first set of read compare points.

13. The non-volatile memory system of claim 12 , where the one or more operations further include, prior to providing the second set of read compare points:

providing a third set of read compare points including a single read compare point corresponding to each programmable state of the storage elements;

determining a fourth set of data based on the third set of read compare points; and

iteratively decoding the first set of data based on the fourth set of data while providing the first subset of read compare points to the storage elements.

14. The non-volatile memory system of claim 10 , wherein the one or more operations further include:

iteratively decoding the first set of data prior to providing the second set of read compare points;

wherein providing the second set of read compare points is performed in response to a determination that iteratively decoding the first set of data is not successful.

15. The non-volatile memory system of claim 10 , wherein:

iteratively decoding the first set of data using the second set of data includes accessing reliability metrics based on the first set of data and the second set of data.

16. The non-volatile memory system of claim 15 , wherein:

the reliability metrics include logarithmic likelihood ratios.

17. The non-volatile memory system of claim 16 , wherein:

iteratively decoding the first set of data includes accessing a table of logarithmic likelihood ratios.

18. The non-volatile memory system of claim 17 , wherein accessing the table includes, for each storage element of the plurality:

determining from the table an initial logarithmic likelihood ratio for the storage element based on its data from the first set of data and its data from the second set of data.

19. The non-volatile memory system of claim 10 , wherein:

the managing circuitry includes at least one of a controller and a state machine.

Assignments (3)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2011
From: MOKHLESI, NIMA; CHIN, HENRY; ZHAO, DENGTAO
To: SANDISK CORPORATION
Reel/Frame 026845/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026845/0056 →