Non-Volatile Memory with Soft Bit Data Transmission for Error Correction Control
First Claim
1. A non-volatile memory system, comprising:
- a set of non-volatile storage elements;
managing circuitry in communication with the set of non-volatile storage elements, the managing circuitry reads the set of non-volatile storage elements by;
reading user data from the set of non-volatile storage elements using a first plurality of read compare points, each compare point corresponding to a programmable state of the storage elements;
reading a set of soft data from the set of storage elements at a higher bit resolution than said user data using a second plurality of read compare points having a larger number of read compare points than the first plurality; and
decoding the user data using a first subset of the soft data while reading to determine a second subset of the soft data.
3 Assignments
0 Petitions
Accused Products
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.
132 Citations
32 Claims
-
1. A non-volatile memory system, comprising:
-
a set of non-volatile storage elements; managing circuitry in communication with the set of non-volatile storage elements, the managing circuitry reads the set of non-volatile storage elements by; reading user data from the set of non-volatile storage elements using a first plurality of read compare points, each compare point corresponding to a programmable state of the storage elements; reading a set of soft data from the set of storage elements at a higher bit resolution than said user data using a second plurality of read compare points having a larger number of read compare points than the first plurality; and decoding the user data using a first subset of the soft data while reading to determine a second subset of the soft data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 27, 28, 29)
-
-
20. 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. - View Dependent Claims (23, 26)
-
-
30. A non-volatile memory system, comprising:
-
a plurality of non-volatile storage elements; managing circuitry in communication with the plurality of non-volatile storage elements, wherein the managing circuitry reads the non-volatile storage elements by; performing a read operation on a plurality of non-volatile storage elements using a first set of read compare points having a single compare point corresponding to each potential state of programming for said storage elements, providing a first set of data for said storage elements based on said read operation to correction circuitry, performing probabilistic decoding to determine a state of each non-volatile storage element based on said read operation, performing a second read operation on the plurality of non-volatile storage elements using a second set of read compare points having a first compare point and a second compare point corresponding to each potential state, wherein said second read operation senses at said first compare points prior to sensing at said second compare points.
-
-
31. A non-volatile memory system, comprising:
-
a plurality of non-volatile storage elements; managing circuitry in communication with the plurality of non-volatile storage elements, the managing circuitry reads the non-volatile storage elements by; providing a first logarithmic likelihood ratio table to iteratively decode a set of data read from a plurality of non-volatile storage elements using a first set of compare points, providing a second logarithmic likelihood ratio table to iteratively decode the first set of data using a second set of data read from the storage elements using a second set of compare points, providing a third logarithmic likelihood ratio table to iteratively decode the first set of data using the second set of data and a third set of data read from the storage elements, providing a fourth logarithmic likelihood ratio table to iteratively decode the first set of data using the second set of data, the third set of data, and a fourth set of data read from the storage elements.
-
-
32. A non-volatile memory system, comprising:
-
a set of non-volatile storage elements; and managing circuitry in communication with the set of non-volatile storage elements that reads the set of storage elements by; sensing a threshold voltage of a set of non-volatile storage elements using a first plurality of reference levels corresponding to a plurality of programmable states of the storage elements, iteratively decoding a first set of data resulting from sensing at the first plurality of reference levels, sensing, while iteratively decoding the first set of data, the threshold voltage of the set using a second plurality of reference levels corresponding to the plurality of programmable states by sensing at a first subset of reference levels equal in number to the first plurality prior to sensing at a second subset of reference levels equal in number to the first plurality, iteratively decoding the first set of data using a second set of data resulting from sensing at the first subset of reference levels while sensing at the second subset of reference levels, iteratively decoding the first set of data using the second set of data and a third set of data resulting from sensing at the second subset of reference levels.
-
Specification