Adaptive programming method and apparatus for flash memory analog storage
First Claim
1. A method of programming an analog storage memory cell to provide a cell read voltage in accordance with an analog voltage to be stored in the cell comprising:
- (a) selecting a parameter effecting an analog voltage stored in the cell;
(b) modeling the cell programming characteristics as responsive to that programming parameter;
(c) applying the programming parameter to the cell using at least one value in the model selected to under-program the cell;
(d) determining the change in the cell read voltage;
(e) revising the value(s) in the model to more accurately reflect the actual cell programming characteristics; and
, (f) again applying the programming parameter to the cell using the revised value(s) in the model.
2 Assignments
0 Petitions
Accused Products
Abstract
Adaptive programming method and apparatus for flash memory analog storage. The present invention method is to adjust the voltage of the programming pulse each time based on the result of the previous pulse. The expected change in the programmed value is compared to the measured change, and the difference used to improve the model of that cell after each programming pulse. The algorithm is “adaptive” because the voltage of each pulse is adapted to whatever the cell needs. If the cell is programming too slowly, the voltage is increased dramatically to make it faster. Conversely if the results show that a particular cell is programming too fast, the next voltage pulse is increased by only a small amount (or even decreased if necessary). Because the response of the cell is non-linear, a special analog circuit is used to calculate the optimum voltage for each pulse. As one alternative, a digital calculation may also be used to program the cells. Because of the programming speed of the exemplary method, a voice signal may be sampled and stored in flash memory one cell at a time. Variable programming parameters other than voltage may be used if desired.
259 Citations
25 Claims
-
1. A method of programming an analog storage memory cell to provide a cell read voltage in accordance with an analog voltage to be stored in the cell comprising:
-
(a) selecting a parameter effecting an analog voltage stored in the cell;
(b) modeling the cell programming characteristics as responsive to that programming parameter;
(c) applying the programming parameter to the cell using at least one value in the model selected to under-program the cell;
(d) determining the change in the cell read voltage;
(e) revising the value(s) in the model to more accurately reflect the actual cell programming characteristics; and
,(f) again applying the programming parameter to the cell using the revised value(s) in the model. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of storing an audio signal in a plurality of flash memory cells to allow reconstructing the audio signal by reading the analog voltages in each cell and successively concatenating the voltages read from the cells comprising:
-
(a) selecting a parameter effecting an analog voltage stored in flash memory cells;
(b) modeling the flash memory cells programming characteristics as responsive to that programming parameter;
(c) periodically sampling the audio signal, and for each flash memory cell and the respective sample to be stored in that cell;
(1) applying the programming parameter to the flash memory cell using at least one value in the model selected to under-program the flash memory cell;
(2) determining the change in the flash memory cell read voltage;
(3) revising the value(s) in the model to more accurately reflect the actual flash memory cell programming characteristics; and
,(4) again applying the programming parameter to the flash memory cell using the revised value(s) in the model. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A method of programming an analog storage memory cell to provide a cell read voltage in accordance with an analog voltage to be stored in the cell comprising:
-
(a) modeling the cell programming characteristics as responsive to a programming voltage pulse;
(b) applying the programming voltage pulse to the cell using a programming voltage pulse selected to under-program the cell;
(c) determining the change in the cell read voltage;
(d) revising the value(s) in the model to more accurately reflect the actual cell programming characteristics; and
,(e) again applying the programming voltage pulse to the cell using the revised value(s) in the model. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method of storing an audio signal in a plurality of flash memory cells to allow reconstructing the audio signal by reading the analog voltages in each cell and successively concatenating the voltages read from the cells comprising:
-
(a) modeling the flash memory cells programming characteristics as responsive to a programming voltage pulse;
(b) periodically sampling the audio signal, and for each flash memory cell and the respective sample to be stored in that cell;
(1) applying the programming voltage pulse to the flash memory cell using at least one value in the model selected to under-program the flash memory cell;
(2) determining the change in the flash memory cell read voltage;
(3) revising the value(s) in the model to more accurately reflect the actual flash memory cell programming characteristics; and
,(4) again applying the programming voltage pulse to the flash memory cell using the revised value(s) in the model. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
Specification