Optimization of flash storage
View Patent ↗A method, system, and computer program product for increasing the life of a NAND flash, the method comprising selecting a set of internal control parameters for the NAND flash and optimizing the set of internal control parameters with a genetic algorithm to find an improved set of control parameters.
1. A computer implemented method for increasing the life of a NAND flash, the method comprising:
selecting a set of internal control parameters for the NAND flash;
mapping the set of internal control parameters to a bit stream; and
optimizing the set of internal control parameters with a genetic algorithm to find an improved set of control parameters, wherein the optimizing affects the threshold voltage distribution of at least one memory cell in the NAND flash, wherein the improved set of internal control parameters are run iteratively through a software model and the genetic algorithm until a stopping criteria is met, wherein the software model evaluates how the improved set of control parameters predict a number of errors in the memory cells of the NAND flash.
2. The method of claim 1 further comprising:
running the improved set of control parameters through an accelerated hardware test.
3. The method of claim 1 further comprising:
pruning the set of internal control parameters through the use of a mathematical model.
4. The method of claim 1 further comprising:
running the improved set of internal control parameters through a hardware test simulating constant usage of the parameters in a NAND Flash.
5. The method of claim 1 further comprising:
loading the parameters into a set of hardware NAND flash; and
running an endurance retention test on the set of parameters.
6. The method of claim 1 wherein the genetic algorithm optimizes parameter solutions by encoding parameter sets into members of a population, evaluates the members of the population, and selects the members of the population with best fitnesses.
7. The method of claim 6 wherein the genetic algorithm encodes variations of the members of the populations with the best fitness into a new population, evaluates the new population, and selects the members of the new population with the best fitness.
8. The method of claim 7 wherein the encoding of variations of the members of the populations include crossing the parameter set of members of the population with the parameter set of others of the population and mutating members of the population.
9. The method of claim 1 wherein the genetic algorithm runs several populations of parameters through the software model to determine a best performing set of parameter values.
10. A computer program product comprising:
a non-transitory computer readable medium encoded with computer executable program code, the code:
selecting a set of internal control parameters for a NAND flash;
mapping the set of internal control parameters to a bit stream; and
optimizing the set of internal control parameters with a genetic algorithm to find an improved set of control parameters, wherein the optimizing affects the threshold voltage distribution of at least one memory cell in the NAND flash, wherein the improved set of internal control parameters are run iteratively through a software model and the genetic algorithm until a stopping criteria is met, wherein the software model evaluates how the improved set of control parameters predict a number of errors in the memory cells of the NAND flash.
11. The computer program product of claim 10 , wherein the code further enables:
running the improved set of control parameters through an accelerated hardware test.
12. The computer program product of claim 10 , wherein the code further enables:
pruning the set of internal control parameters through the use of a mathematical model.
13. The computer program product of claim 10 , wherein the code further enables:
running the improved set of internal control parameters through a hardware test simulating constant usage of the parameters in a NAND Flash.
14. The computer program product of claim 10 , wherein the code further enables:
loading the parameters into a set of hardware NAND flash; and
running an endurance retention test on the set of parameters.
15. An apparatus for optimization of a NAND flash, the apparatus comprising:
computer-executable program code stored in memory of the device, wherein the computer-executable program code is configured for execution on one or more processors of the following:
selecting a set of internal control parameters for the NAND flash;
mapping the set of internal control parameters to a bit stream; and
optimizing the set of internal control parameters with a genetic algorithm to find an improved set of control parameters, wherein the optimizing affects the threshold voltage distribution of at least one memory cell in the NAND flash, wherein the improved set of internal control parameters are run iteratively through a software model and the genetic algorithm until a stopping criteria is met, wherein the software model evaluates how the improved set of control parameters predict a number of errors in the memory cells of the NAND flash.
16. The apparatus of claim 15 , further comprising:
a hardware testing platform;
wherein the code further enables:
running the improved set of control parameters through an accelerated hardware test on the hardware testing platform.
17. The apparatus of claim 15 , wherein the code further enables:
pruning the set of internal control parameters through the use of a mathematical model.
18. The apparatus of claim 15 , further comprising:
a hardware testing platform;
wherein the code further enables:
running the improved set of internal control parameters through a hardware test simulating constant usage of the parameters in a NAND Flash with the hardware testing platform.
19. The apparatus of claim 15 , further comprising:
a hardware testing platform;
wherein the code further enables:
loading the parameters into a set of hardware NAND flash; and
running an endurance retention test on the set of parameters.