Non-volatile memory with guided simulated annealing 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 information from the set of storage elements by;
reading a set of user data from the set of non-volatile storage elements;
detecting one or more errors associated with the set of user data; and
iteratively decoding the user data using reliability metrics for portions of the set of user data, the decoding includes simulating annealing for one or more portions of user data to cause a change in one or more of the corresponding reliability metrics;
wherein simulating annealing includes guiding the simulated annealing based on a predetermined characterization of the set of non-volatile storage elements; and
wherein the predetermined characterization of the set of non-volatile storage elements includes a predetermined characterization of shifts in threshold voltage of the set of non-volatile storage elements.
3 Assignments
0 Petitions
Accused Products
Abstract
Data 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 elements. The decoding attempts to converge by adjusting the reliability metrics for bits in code words which represent the sensed state. Simulated annealing using an adjustable temperature parameter based on a level of error in the data can be performed to. The simulated annealing can introduce randomness, as noise for example, into the decoding process. Moreover, knowledge of the device characteristics can be used to guide the simulated annealing process rather than introducing absolute randomness. The introduction of a degree of randomness adds flexibility that permits possible faster convergence times and convergence in situations where data may otherwise be uncorrectable.
92 Citations
19 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 information from the set of storage elements by; reading a set of user data from the set of non-volatile storage elements; detecting one or more errors associated with the set of user data; and iteratively decoding the user data using reliability metrics for portions of the set of user data, the decoding includes simulating annealing for one or more portions of user data to cause a change in one or more of the corresponding reliability metrics; wherein simulating annealing includes guiding the simulated annealing based on a predetermined characterization of the set of non-volatile storage elements; and wherein the predetermined characterization of the set of non-volatile storage elements includes a predetermined characterization of shifts in threshold voltage of the set of non-volatile storage elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-volatile memory system, comprising:
-
a set of non-volatile storage elements; and managing circuitry in communication with the set of storage elements, the managing circuitry reads the set of storage elements by; detecting state information for the set of non-volatile storage elements; providing one or more code words based on the state information; detecting one or more errors associated with the one or more code words; performing a number of iterations of decoding for the one or more code words, wherein decoding includes assigning reliability metrics to bits of the one or more code words and adjusting the reliability metrics for subsequent decoding iterations in an attempt to decrease the one or more errors; and after the number of iterations, simulating annealing for the one or more code words, wherein simulating annealing includes providing at least a pseudo-random adjustment to one or more of the reliability metrics, the pseudo-random adjustment being based on the one or more errors associated with the one or more code words and a predetermined characterization of shifts in threshold voltage of the set of non-volatile storage elements.
-
-
19. 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 performs one or more read operations that include; detecting state information for the set of non-volatile storage elements; providing one or more code words based on the state information; detecting one or more errors associated with the one or more code words; and performing a number of iterations of decoding for the one or more code words, wherein decoding includes assigning reliability metrics to bits of the one or more code words and adjusting the reliability metrics for subsequent decoding iterations in an attempt to decrease the one or more errors, wherein at least one of the iterations includes guiding an adjustment to at least one reliability metric based on a predetermined characterization of the set of non-volatile storage elements; and wherein the predetermined characterization of the set of non-volatile storage elements includes a predetermined characterization of shifts in threshold voltage of the set of non-volatile storage elements.
-
Specification