Methods of increasing the reliability of a flash memory
First Claim
1. A method of operating a flash memory cell, comprising the steps of:
- (a) programming the cell to store data; and
(b) subsequent to said programming, reading the cell by steps including;
(i) comparing a threshold voltage of the cell to at least one integral reference voltage; and
(ii) comparing said threshold voltage of the cell to at least one fractional reference voltage.
2 Assignments
0 Petitions
Accused Products
Abstract
A multi-level flash memory cell is read by comparing the cell'"'"'s threshold voltage to a plurality of integral reference voltages and to a fractional reference voltage. Multi-level cells of a flash memory are programmed collectively with data and redundancy bits at each significance level, preferably with different numbers of data and redundancy bits at each significance level. The cells are read collectively, from lowest to highest significance level, by correcting the bits at each significance level according to the redundancy bits and adjusting the bits of the higher significance levels accordingly. The adjustment following the correction of the least significant bits is in accordance with comparisons of a cell'"'"'s threshold voltages to fractional reference voltages.
181 Citations
20 Claims
-
1. A method of operating a flash memory cell, comprising the steps of:
-
(a) programming the cell to store data; and (b) subsequent to said programming, reading the cell by steps including; (i) comparing a threshold voltage of the cell to at least one integral reference voltage; and (ii) comparing said threshold voltage of the cell to at least one fractional reference voltage. - View Dependent Claims (2, 3)
-
-
4. A flash memory device, comprising:
-
(a) at least one flash memory cell; and (b) a controller operative to operate each said flash memory cell by steps including; (i) programming the cell to store data, and (ii) subsequent to said programming, reading the cell by steps including; (A) comparing a threshold voltage of said each flash memory cell to at least one integral reference voltage, and (B) comparing said threshold voltage of said each flash memory cell to at least one fractional reference voltage.
-
-
5. A method of storing data, comprising the steps of:
-
(a) providing n cells, of a multi-level flash memory, that are operative to store at least m>
1 bits each; and(b) for each integer p from 0 through m−
1;(i) programming a number k(p)≦
n of said cells to store k(p) bits of the data as bits of significance level p, and(ii) if k(p)<
n, programming a remaining n−
k(p) of said cells to store n−
k(p) corresponding redundancy bits as bits of significance level p;wherein said number k(p), for at least one value of said integer p, has a value different from that of said number k(p) for at least one other value of said integer p.
-
-
6. A flash memory device, comprising:
-
(a) n flash memory cells operative to store at least m>
1 bits each; and(b) a controller operative to store data in said cells by, for each integer p from 0 through m−
1;(i) programming a number k(p)≦
n of said cells to store k(p) bits of the data as bits of significance level p, and(ii) if k(p)<
n, programming a remaining n−
k(p) of said cells to store n−
k(p) corresponding redundancy bits as bits of significance level p;with said number k(p), for at least one value of said integer p, having a value different from that of said number k(p) for at least one other value of said integer p.
-
-
7. A method of storing and retrieving data, comprising the steps of:
-
(a) providing n cells, of a multi-level flash memory, that are operative to store at least m>
1 bits each;(b) for each integer p from 0 through m−
1;(i) programming a number k(p)≦
n of said cells to store k(p) bits of the data as bits of significance level p, and(ii) if k(p)<
n, programming a remaining n−
k(p) of said cells to store n−
k(p) corresponding redundancy bits as bits of significance level p;(c) reading said n cells to determine provisional retrieved values of said stored bits; and (d) for each integer p from 0 through m−
1;
if k(p)<
n;(i) correcting said provisional retrieved values of said bits of significance level p according to said provisional retrieved values of said redundancy bits of significance level p, thereby providing final retrieved values of said bits of significance level p, and (ii) if p is less than m−
1, adjusting said provisional retrieved values of said bits of significance levels p+1 through m−
1 contingent on said final retrieved values of said bits of significance level p. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A flash memory device, comprising:
-
(a) n flash memory cells operative to store at least m>
1 bits each; and(b) a controller operative to store and retrieve data from said cells by; (i) for each integer p from 0 through m−
1;(A) programming a number k(p)≦
n of said cells to store k(p) bits of the data as bits of significance level p, and(B) if k(p)<
n, programming a remaining n−
k(p) of said cells to store n−
k(p) corresponding redundancy bits as bits of significance level p,(ii) reading said n cells to determine provisional retrieved values of said stored bits, and (iii) for each integer p from 0 through m−
1;
if k(p)<
n;(A) correcting said provisional retrieved values of said bits of significance level p according to said provisional retrieved values of said redundancy bits of significance level p, thereby providing final retrieved values of said bits of significance level p, and (B) if p is less than m−
1, adjusting said provisional retrieved values of said bits of significance levels p+1 through m−
1 contingent on said final retrieved values of said bits of significance level p.
-
-
15. A method of storing data, comprising the steps of:
-
(a) providing n cells, of a multi-level flash memory, that are operative to store at least two significance groups of bits, each said significance group including bits of a respective number q≧
1 of consecutive significance levels; and(b) for each said significance group; (i) programming said cells to store a respective number k≦
nq bits of the data as bits having significance levels within said each significance group, and(ii) if k is less than nq, programming said cells to store nq−
k corresponding redundancy bits as bits having significance levels within said each significance group;wherein said number k, for at least one said significance group, has a value different from that of said number k for at least one other said significance group.
-
-
16. A flash memory device, comprising:
-
(a) n flash memory cells operative to store at least two significance groups of bits, each said significance group including bits of a respective number q≧
1 of consecutive significance levels; and(b) a controller operative to store and retrieve data from said cells by, for each said significance group; (i) programming said cells to store a respective number k≦
nq bits of said data as bits having significance levels within said each significance group, and(ii) if k is less than nq, programming said cells to store nq−
k corresponding redundancy bits as bits having significance levels within said each significance group;with said number k, for at least one said significance group, having a value different from that of said number k for at least one other said significance group.
-
-
17. A method of storing and retrieving data, comprising the steps of:
-
(a) providing n cells, of a multi-level flash memory, that are operative to store at least two significance groups of bits, each said significance group including bits of a respective number q≧
1 of consecutive significance levels;(b) for each said significance group; (i) programming said cells to store a respective number k≦
nq bits of the data as bits having significance levels within said each significance group, and(ii) if k is less than nq, programming said cells to store nq−
k corresponding redundancy bits as bits having significance levels within said each significance group;(c) reading said n cells to determine provisional retrieved values of said stored bits; and (d) for each said significance group;
if said respective number k is less than nq;(i) correcting said provisional retrieved values of said bits that have significance levels within said each significance group according to said provisional retrieved values of said redundancy bits that have significance levels within said each significance group, thereby providing final retrieved values of said bits that have significance levels within said each significance group, and (ii) for each said significance group other than a most significant said significance group, adjusting said provisional retrieved values of said bits of significance groups more significant than said each significance group contingent on said final retrieved values of said bits that have significance levels within said each significance group.
-
-
18. A flash memory device, comprising:
-
(a) n flash memory cells operative to store at least two significance groups of bits, each said significance group including bits of a respective number q≧
1 of consecutive significance levels; and(b) a controller operative to store and retrieve data from said cells by; (i) for each said significance group; (A) programming said cells to store a respective number k≦
nq bits of said data as bits having significance levels within said each significance group, and(B) if k is less than nq, programming said cells to store nq−
k corresponding redundancy bits as bits having significance levels within said each significance group,(ii) reading said n cells to determine provisional retrieved values of said stored bits, and (iii) for each said significance group;
if said respective number k is less than nq;(A) correcting said provisional retrieved values of said bits that have significance levels within said each significance group according to said provisional retrieved values of said redundancy bits that have significance levels within said each significance group, thereby providing final retrieved values of said bits that have significance levels within said each significance group, and (B) for each said significance group other than a most significant said significance group, adjusting said provisional retrieved values of said bits of significance groups more significant than said each significance group contingent on said final retrieved values of said bits that have significance levels within said each significance group.
-
-
19. A method for storing and retrieving a binary number, comprising the steps of:
-
(a) providing a memory including a number n, greater than 1, of cells, each said cell having a respective adjustable threshold voltage; (b) setting said threshold voltages to collectively represent the number; (c) estimating said threshold voltages by steps including comparing said threshold voltages to at least one fractional reference voltage; and (d) decoding said estimated threshold voltages collectively to recover the number.
-
-
20. A storage device for storing a binary number of b bits, comprising:
-
(a) a memory having a plurality n of m-bits-per-cell cells, n being smaller than b/m; (b) a plurality of adjustable threshold voltages used to represent the bits; (c) a storing mechanism to collectively set said adjustable threshold voltages to store the number in said memory; and (d) a retrieving mechanism to collectively estimate said threshold voltages by steps including comparing said threshold voltages to at least one fractional reference voltage in order to retrieve the number from said memory.
-
Specification