Systems and methods for determining logical values of coupled flash memory cells
First Claim
Patent Images
1. A method for reading cells of a flash memory, said method comprising:
- comparing a charge level of a first individual cell to a first plurality of charge level boundary points, thereby to determine a first program level of said first individual cell, and subsequently comparing a second charge level of a second individual cell to a second plurality of charge level boundary points, wherein said first plurality of boundary points depends on at least one charge level of at least one neighbor of said first cell and said second plurality of boundary points depends on at least one charge level of at least one neighbor of said second cell such that said first and second pluralities of boundary points differ.
9 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for determining program levels useful for reading cells of a flash memory, such as but not limited to detecting charge levels for the cells, obtaining joint conditional probability densities for a plurality of combinations of program levels of the cells; and determining program levels for the cells respectively such that an aggregated joint probability value of the joint conditional probability densities is maximized.
-
Citations
41 Claims
-
1. A method for reading cells of a flash memory, said method comprising:
comparing a charge level of a first individual cell to a first plurality of charge level boundary points, thereby to determine a first program level of said first individual cell, and subsequently comparing a second charge level of a second individual cell to a second plurality of charge level boundary points, wherein said first plurality of boundary points depends on at least one charge level of at least one neighbor of said first cell and said second plurality of boundary points depends on at least one charge level of at least one neighbor of said second cell such that said first and second pluralities of boundary points differ. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. The method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) detecting charge levels for said cells;
b) obtaining joint conditional probability densities for a plurality of combinations of program levels of said cells; and
c) determining program levels for said cells respectively such that an aggregated joint probability value of said joint conditional probability densities is maximized. - View Dependent Claims (10, 11, 12, 13)
- a) detecting charge levels for said cells;
-
14. A method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) detecting charge levels for said cells;
b) obtaining a linear dependency function which refers to at least one of the cells and at least one cell coupled thereto;
c) computing an estimated charge level based on the linear dependency function; and
d) determining program levels for said cells respectively such that the aggregated standard variation between a corresponding estimated charge level and the detected charge level of each cell is minimized.
- a) detecting charge levels for said cells;
-
15. A method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) obtaining charge level initial threshold values;
b) detecting charge levels for said cells using said initial threshold values;
c) determining a program level for each of said cells based on the detected charge levels, including, for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) computing new threshold values for the measurement of charge level of said individual cell based on the previous detected charge level of said individual cell and on previous determined program levels of said individual cell and of at least one cell adjacent thereto;
ii) detecting charge levels for said individual cell based on said new threshold values;and iii) determining a new program level for said individual cell based on the last detected charge levels of said individual cell. - View Dependent Claims (16, 17, 18, 19)
- a) obtaining charge level initial threshold values;
-
20. A method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) obtaining charge level initial threshold values;
b) detecting charge levels for said cells using said initial threshold values;
c) determining voltage regions for each of said cells based on the detected charge levels, d) for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) computing new threshold values for the measurement of charge levels of said individual cell based on the detected voltage regions of said individual cell and at least one cell adjacent thereto;
ii) detecting charge levels for said individual cell based on said new threshold values; and
iii) determining a new voltage region for at least said individual cell based on the last determined charge level of said individual cell and the determined voltage regions of at least one other cell, and e) determining the program levels based on the last determined voltage regions. - View Dependent Claims (21, 22, 23)
- a) obtaining charge level initial threshold values;
-
24. A method of reading cells of a flash memory, said method comprising:
- sorting each of a plurality of cells into several categories depending on whether the cells'"'"' charge levels are above or below predetermined charge level boundary points, wherein said boundary points are independent of the charge levels in said cells; and
determining each cell'"'"'s program level as a function of at least the category to which it and at least one neighboring cell thereof, belong. - View Dependent Claims (25, 26, 27, 28)
- sorting each of a plurality of cells into several categories depending on whether the cells'"'"' charge levels are above or below predetermined charge level boundary points, wherein said boundary points are independent of the charge levels in said cells; and
-
29. A method for determining program levels useful for reading cells of a flash memory, said method comprising:
-
a) detecting charge levels for said cells; b) obtaining a set of coefficients α
j that minimize the aggregated standard variation (L1−
{circumflex over (L)}1);c) iteratively, as long as a criterion is met;
computing an estimation of the charge level for each of said cells according to;
-
-
30. A system for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;compare a charge level of a first individual cell to a first plurality of charge level boundary points, thereby to determine a first program level of said first individual cell, and subsequently compare a second charge level of a second individual cell to a second plurality of charge level boundary points, wherein said first plurality of boundary points depends on at least one charge level of at least one neighbor of said first cell and said second plurality of boundary points depends on at least one charge level of at least one neighbor of said second cell such that said first and second pluralities of boundary points differ.
- a micro-controller; and
-
31. A system for determining program levels useful for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;
detect charge levels for said cells;
obtain joint conditional probability densities for a plurality of combinations of program levels of said cells; and
determine program levels for said cells respectively such that an aggregated joint probability value of said joint conditional probability densities is maximized.
- a micro-controller; and
-
32. A system for determining program levels useful for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;
a) detect charge levels for said cells;
b) obtain a linear dependency function which refers to at least one of the cells and at least one cell coupled thereto;
c) compute an estimated charge level based on the linear dependency function;
d) determine program levels for said cells respectively such that the aggregated standard variation between a corresponding estimated charge level and the detected charge level of each cell is minimized.
- a micro-controller; and
-
33. A system for determining program levels useful for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;
a) obtain charge level initial threshold values;
b) detect charge levels for said cells using said initial threshold values;
c) determine a program level for each of said cells based on the detected charge levels, including, for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) compute new threshold values for the measurement of charge level of said individual cell based on the previous detected charge level of said individual cell and on previous determined program levels of said individual cell and of at least one cell adjacent thereto;
ii) detect charge levels for said individual cell based on said new threshold values; and
iii) determine a new program level for said individual cell based on the last detected charge levels of said individual cell.
- a micro-controller; and
-
34. A system for determining program levels useful for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;
a) obtain charge level initial threshold values;
b) detect charge levels for said cells using said initial threshold values;
c) determine voltage regions for each of said cells based on the detected charge levels, d) for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) compute new threshold values for the measurement of charge levels of said individual cell based on the detected voltage regions of said individual cell and at least one cell adjacent thereto;
ii) detect charge levels for said individual cell based on said new threshold values; and
iii) determine a new voltage region for at least said individual cell based on the last determined charge level of said individual cell and the determined voltage regions of at least one other cell, and e) determine the program levels based on the last determined voltage regions.
- a micro-controller; and
-
35. A system for reading cells of a flash memory, said system comprising:
- a micro-controller; and
an array of cells wherein said micro-controller is operatively configured to;
a) sort each of a plurality of cells into several categories depending on whether the cells'"'"' charge levels are above or below predetermined charge level boundary points, wherein said boundary points are independent of the charge levels in said cells; and
b) determine each cell'"'"'s program level as a function of at least the category to which it and at least one neighboring cell thereof, belong.
- a micro-controller; and
-
36. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for reading cells of a flash memory, said method comprising:
- comparing a charge level of a first individual cell to a first plurality of charge level boundary points, thereby to determine a first program level of said first individual cell, and subsequently comparing a second charge level of a second individual cell to a second plurality of charge level boundary points, wherein said first plurality of boundary points depends on at least one charge level of at least one neighbor of said first cell and said second plurality of boundary points depends on at least one charge level of at least one neighbor of said second cell such that said first and second pluralities of boundary points differ.
-
37. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) detecting charge levels for said cells;
b) obtaining joint conditional probability densities for a plurality of combinations of program levels of said cells; and
c) determining program levels for said cells respectively such that an aggregated joint probability value of said joint conditional probability densities is maximized.
- a) detecting charge levels for said cells;
-
38. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) detecting charge levels for said cells;
b) obtaining a linear dependency function which refers to at least one of the cells and at least one cell coupled thereto;
c) computing an estimated charge level based on the linear dependency function; and
d) determining program levels for said cells respectively such that the aggregated standard variation between a corresponding estimated charge level and the detected charge level of each cell is minimized.
- a) detecting charge levels for said cells;
-
39. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) obtaining charge level initial threshold values;
b) detecting charge levels for said cells using said initial threshold values; and
c) determining a program level for each of said cells based on the detected charge levels, including, for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) computing new threshold values for the measurement of charge level of said individual cell based on the previous detected charge level of said individual cell and on previous determined program levels of said individual cell and of at least one cell adjacent thereto;
ii) detecting charge levels for said individual cell based on said new threshold values; and
iii) determining a new program level for said individual cell based on the last detected charge levels of said individual cell.
- a) obtaining charge level initial threshold values;
-
40. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for determining program levels useful for reading cells of a flash memory, said method comprising:
- a) obtaining charge level initial threshold values;
b) detecting charge levels for said cells using said initial threshold values;
c) determining voltage regions for each of said cells based on the detected charge levels, d) for each of at least one individual of said cells, performing the following operations iteratively, at least once;
i) computing new threshold values for the measurement of charge levels of said individual cell based on the detected voltage regions of said individual cell and at least one cell adjacent thereto;
ii) detecting charge levels for said individual cell based on said new threshold values; and
iii) determining a new voltage region for at least said individual cell based on the last determined charge level of said individual cell and the determined voltage regions of at least one other cell, and e) determining the program levels based on the last determined voltage regions.
- a) obtaining charge level initial threshold values;
-
41. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method of reading cells of a flash memory, said method comprising:
- sorting each of a plurality of cells into several categories depending on whether the cells'"'"' charge levels are above or below predetermined charge level boundary points, wherein said boundary points are independent of the charge levels in said cells; and
determining each cell'"'"'s program level as a function of at least the category to which it and at least one neighboring cell thereof, belong.
- sorting each of a plurality of cells into several categories depending on whether the cells'"'"' charge levels are above or below predetermined charge level boundary points, wherein said boundary points are independent of the charge levels in said cells; and
Specification