METHOD FOR DECODING DATA IN NON-VOLATILE STORAGE USING RELIABILITY METRICS BASED ON MULTIPLE READS
First Claim
1. A method for decoding data in non-volatile storage, comprising:
- performing multiple sense operations on at least one non-volatile storage element; and
determining a programming state of the at least one non-volatile storage element using iterative probabilistic decoding, the iterative probabilistic decoding uses reliability metrics which are based on the multiple sense operations.
3 Assignments
0 Petitions
Accused Products
Abstract
Data stored in non-volatile storage is decoded using iterative probabilistic decoding and multiple read operations to achieve greater reliability. 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 read data 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. If convergence does not occur, e.g., within a set time period, the state of the non-volatile storage element is sensed again, current values of the reliability metrics in the decoder are adjusted, and the decoding again attempts to converge. In another approach, the initial reliability metrics are based on multiple reads. Tables which store the reliability metrics and adjustments based on the sensed states can be prepared before decoding occurs.
161 Citations
77 Claims
-
1. A method for decoding data in non-volatile storage, comprising:
-
performing multiple sense operations on at least one non-volatile storage element; and determining a programming state of the at least one non-volatile storage element using iterative probabilistic decoding, the iterative probabilistic decoding uses reliability metrics which are based on the multiple sense operations. - View Dependent Claims (2, 4, 5, 6, 9, 10, 12, 14, 15, 16)
-
-
3. (canceled)
-
7. (canceled)
-
8. (canceled)
-
11. (canceled)
-
13. (canceled)
-
17. A method for decoding data in non-volatile storage, comprising:
-
performing a first sense operation on at least one non-volatile storage element; providing a first code word based on the first sense operation; performing a decoding process for the first code word using a first set of reliability metrics which is based on the first code word; and if the decoding process does not meet a first condition, performing a second sense operation on the at least one non-volatile storage element and adjusting the decoding process based on the second sense operation. - View Dependent Claims (21, 24, 25, 26, 31)
-
-
18. (canceled)
-
19. (canceled)
-
20. (canceled)
-
22. (canceled)
-
23. (canceled)
-
27. (canceled)
-
28. (canceled)
-
29. (canceled)
-
30. (canceled)
-
32. (canceled)
-
33. A method for decoding data in non-volatile storage, comprising:
-
performing a first sense operation on at least one non-volatile storage element; providing first data based the first sense operation which represents a sensed programming state of the at least one non-volatile storage element; starting an iterative decoding process for the first data using probability metrics which are based on the first data; performing a second sense operation on the at least one non-volatile storage element; providing second data based on the second sense operation which represents a sensed programming state of the at least one non-volatile storage element; and continuing the iterative decoding process by adjusting most recently used values of the probability metrics based on the second data. - View Dependent Claims (34, 37, 40)
-
-
35. (canceled)
-
36. (canceled)
-
38. (canceled)
-
39. (canceled)
-
41. A method for decoding data in non-volatile storage, comprising:
-
performing a first sense operation on at least one non-volatile storage element; providing first data based the first sense operation which represents a sensed programming state of the at least one non-volatile storage element; starting an iterative decoding process for the first data using probability metrics which are based on the first data; providing a metric which indicates a progress of the iterative decoding process; and if the metric indicates the progress is unsatisfactory, providing second data based on a second sense operation which represents a sensed programming state of the at least one non-volatile storage element, and restarting the iterative decoding process using probability metrics which are based on the first and second data. - View Dependent Claims (44)
-
-
42. (canceled)
-
43. (canceled)
-
45. (canceled)
-
46. (canceled)
-
47. A method for operating non-volatile storage, comprising:
-
performing a plurality of sense operations on a set of non-volatile storage elements; providing a set of reliability metrics based on the sense operations; and storing the set of reliability metrics for use by an iterative probabilistic decoding process in determining a programming state of at least one non-volatile storage element in the set of non-volatile storage elements based on at least first and second subsequent sense operations. - View Dependent Claims (48, 52)
-
-
49. (canceled)
-
50. (canceled)
-
51. (canceled)
-
53. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements; and one or more control circuits in communication with the set of non-volatile storage elements, the one or more control circuits perform multiple sense operations on at least one non-volatile storage element of the set and determine a programming state of the at least one non-volatile storage element using iterative probabilistic decoding, the iterative probabilistic decoding uses reliability metrics which are based on the multiple sense operations. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
-
-
64. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements; and one or more control circuits in communication with the set of non-volatile storage elements, the one or more control circuits perform a first sense operation on at least one non-volatile storage element of the set, provide a first code word based on the first sense operation, perform a decoding process for the first code word using a first set of reliability metrics which is based on the first code word, and if the decoding process does not meet a first condition, perform a second sense operation on the at least one non-volatile storage element and adjust the decoding process based on the second sense operation. - View Dependent Claims (65, 66, 67, 68, 69)
-
-
70. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements; and one or more control circuits in communication with the set of non-volatile storage elements, the one or more control circuits perform a first sense operation on at least one non-volatile storage element of the set, provide first data based the first sense operation which represents a sensed programming state of the at least one non-volatile storage element, start an iterative decoding process for the first data using probability metrics which are based on the first data, perform a second sense operation on the at least one non-volatile storage element, provide second data based on the second sense operation which represents a sensed programming state of the at least one non-volatile storage element, and continue the iterative decoding process by adjusting most recently used values of the probability metrics based on the second data. - View Dependent Claims (71, 72)
-
-
73. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements; and one or more control circuits in communication with the set of non-volatile storage elements, the one or more control circuits perform a first sense operation on at least one non-volatile storage element, provide first data based the first sense operation which represents a sensed programming state of the at least one non-volatile storage element, start an iterative decoding process for the first data using probability metrics which are based on the first data, provide a metric which indicates a progress of the iterative decoding process, and if the metric indicates the progress is unsatisfactory, provide second data based on a second sense operation which represents a sensed programming state of the at least one non-volatile storage element, and restart the iterative decoding process using probability metrics which are based on the first and second data.
-
-
74. The non-volatile storage system of claim 93, wherein the metric is based on whether or not the iterative decoding process approaches convergence within a given time period, whether or not the iterative decoding process approaches convergence within a given number of iterations, or a number of satisfied parity checks in the iterative decoding process.
-
75. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements; and one or more control circuits in communication with the set of non-volatile storage elements, the one or more control circuits perform a plurality of sense operations on a set of non-volatile storage elements, provide a set of reliability metrics based on the sense operations, and store the set of reliability metrics for use by an iterative probabilistic decoding process in determining a programming state of at least one non-volatile storage element in the set of non-volatile storage elements based on at least first and second subsequent sense operations. - View Dependent Claims (76, 77)
-
Specification