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
48 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, 46)
-
-
8. 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. - View Dependent Claims (9, 10, 11, 12)
-
-
13. 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.
-
-
14. 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 (15, 16, 17, 18)
-
-
19. 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 (20, 21, 22)
-
-
23. 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 (24, 25, 26, 27)
-
-
28. 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.
-
-
29. 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.
-
-
30. 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.
-
-
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; 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.
-
-
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) 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.
-
-
33. 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.
-
-
34. 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.
-
-
35. A computer program product comprising a computer useable medium having computer readable program code embodied therein for reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer 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 computer readable program code for causing the computer to 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 neighbors of said first cell and said second plurality of boundary points depends on at least one charge level of at least one neighbors of said second cell such that said first and second pluralities of boundary points differ.
-
-
36. 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.
-
-
37. A computer program product comprising a computer useable medium having computer readable program code embodied therein for determining program levels useful for reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer to detect charge levels for said cells; computer readable program code for causing the computer to obtain joint conditional probability densities for a plurality of combinations of program levels of said cells; and computer readable program code for causing the computer to determine program levels for said cells respectively such that an aggregated joint probability value of said joint conditional probability densities is maximized.
-
-
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.
-
-
39. A computer program product comprising a computer useable medium having computer readable program code embodied therein for determining program levels useful for reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer to detect charge levels for said cells; computer readable program code for causing the computer to obtain a linear dependency function which refers to at least one of the cells and at least one cell coupled thereto; computer readable program code for causing the computer to compute an estimated charge level based on the linear dependency function; and computer readable program code for causing the computer to 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.
-
-
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; 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.
-
-
41. A computer program product comprising a computer useable medium having computer readable program code embodied therein for determining program levels useful for reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer to obtain charge level initial threshold values; computer readable program code for causing the computer to detect charge levels for said cells using said initial threshold values; and computer readable program code for causing the computer to 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.
-
-
42. 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.
-
-
43. A computer program product comprising a computer useable medium having computer readable program code embodied therein for determining program levels useful for reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer to obtain charge level initial threshold values; computer readable program code for causing the computer to detect charge levels for said cells using said initial threshold values; computer readable program code for causing the computer to determine voltage regions for each of said cells based on the detected charge levels, computer readable program code for causing the computer to perform iteratively, at least once, for each of at least one individual of said cells; 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 computer readable program code for causing the computer to determine the program levels based on the last determined voltage regions.
-
-
44. 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.
-
-
45. A computer program product comprising a computer useable medium having computer readable program code embodied therein of reading cells of a flash memory, said computer program product comprising:
-
computer readable program code for causing the computer to 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 computer readable program code for causing the computer to 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.
-
-
47. 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; - View Dependent Claims (48)
-
Specification