Intelligent bit recovery for flash memory
First Claim
1. A method of recovery of bits in a flash memory device, the method performed by a controller of the flash memory device, the method comprising:
- at the controller of the flash memory device;
determining N bits of data for recovery, wherein the N bits of data comprise a subset of bits of data read in a read operation and N is an integer greater than 1;
selecting, based at least in part on one or more aspects of the flash memory device, a plurality of potential bit patterns of the N bits, wherein a count of plurality of potential bit patterns is less than 2N; and
after selecting the plurality of potential bit patterns, iteratively determining whether a potential bit pattern of the plurality of potential bit patterns enables recovery of at least one or more of the N bits.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for intelligent bit recovery identifies toggling bits, which change in value from one read to the next, and examines a subset of potential bit patterns. The subset is a fraction of the potential bit patterns, and is based on an understanding of the flash memory and the problems that may cause the toggling bits. The intelligent bit recovery may analyze at least one aspect of the flash memory to identify a problem, or plurality of problems, that is potentially causing the toggling bits, and to select the subset of potential bit patterns as potential solutions. The subset of potential bit patterns examined by the intelligent bit recovery is a small fraction of the entire set of potential bit patterns.
221 Citations
30 Claims
-
1. A method of recovery of bits in a flash memory device, the method performed by a controller of the flash memory device, the method comprising:
at the controller of the flash memory device; determining N bits of data for recovery, wherein the N bits of data comprise a subset of bits of data read in a read operation and N is an integer greater than 1; selecting, based at least in part on one or more aspects of the flash memory device, a plurality of potential bit patterns of the N bits, wherein a count of plurality of potential bit patterns is less than 2N; and after selecting the plurality of potential bit patterns, iteratively determining whether a potential bit pattern of the plurality of potential bit patterns enables recovery of at least one or more of the N bits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A method of recovering bits in a flash memory device, the method performed by a controller of the flash memory device, the method comprising:
at the controller of the flash memory device; determining N bits of data for recovery wherein the N bits of data comprise a subset of bits of data read in a read operation and N is an integer greater than 1; selecting a plurality of potential bit patterns for correction of one or more potential flash memory problems with the N bits, wherein a count of the plurality of potential bit patterns is less than 2N; after selecting the plurality of potential bit patterns, iteratively determining whether a potential bit pattern of the plurality of potential bit patterns enables recovery of at least one or more of the N bits and recovering a subset of the N bits using a selected bit pattern of the plurality of potential bit patterns; and after recovering the subset of the N bits, recovering remaining bits of the N bits using ECC correction. - View Dependent Claims (13, 14, 15)
-
16. A flash memory device comprising:
-
a memory; and a controller in communication with the memory, the controller configured to; determine N bits of data in the memory for recovery, wherein the N bits of data comprise a subset of bits of data read in a read operation and N is an integer greater than 1; select, based at least in part on one or more aspects of the flash memory device, a plurality of potential bit patterns of the N bits, wherein a count of the plurality of potential bit patterns is less than 2N; and after selecting the plurality of potential bit patterns, iteratively determine whether a potential bit pattern of the plurality of potential bit patterns enables recovery of at least one or more of the N bits. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A flash memory device comprising
a memory; - and
a controller in communication with the memory, the controller configured to; determine N bits of data for recovery, wherein the N bits of data comprise a subset of bits of data read in a read operation and N is an integer greater than 1; select a plurality of potential bit patterns for correction of the one or more potential flash memory problems with the N bits, wherein a count of the plurality of potential bit patterns is less than 2N; after selecting the plurality of potential bit patterns, iteratively determine whether a potential bit pattern of the plurality of potential bit patterns enables recovery of at least one or more of the N bits and recovering a subset of the N bits using a selected bit pattern of the plurality of potential bit patterns; and after recovering the subset of the N bits, recovering remaining bits of the N bits using ECC correction. - View Dependent Claims (28, 29, 30)
- and
Specification