IP Library Granted Patent US 8,995,197
Granted Patent B1
US 8,995,197 · App. 13/595,782 · Granted Mar 31, 2015

System and methods for dynamic erase and program control for flash memory device memories

Inventors: Avi Steiner (Kiryat Motzkin, IL); Hanan Weingarten (Herzelia, IL)
Assignee: Densbits Technologies Ltd.
G06F12/0246
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,995,197
App. No.
13/595,782
Granted
Mar 31, 2015
Kind
B1
Abstract

A computer readable medium, a system and a method for flash memory device parameter optimization, the method may include: receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device, and finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate of the wear level.

Claims (67)

1. A non-transitory computer readable medium for flash memory device parameter optimization, the non-transitory computer readable medium stores instructions for: receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate the wear level;

wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters;

wherein the non-transitory computer readable medium further stores instructions for executing at least one out of:

(a) ignoring sets of erase parameters that once applied result in an average duration of erase operations that exceeds an erase duration threshold,

(b) ignoring sets of programming parameters that once applied result in an average duration of programming operations that exceeds a programming duration threshold,

(c) selecting a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters,

(d) selecting a set of evaluated parameters that once applied results in (i) a higher bit error rate and a lower programming duration at low wear levels and (ii) a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters, and

(e) selecting a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and at a lower increment rate of bit error rates per wear level in relation to a reference set of parameters that is expected to be applied regardless of a wear level of the at least one group of flash memory cells.

2. The non-transitory computer readable medium according to claim 1 , that stores instructions for evaluating sets of erase parameters by erasing different groups of flash memory blocks of the flash memory device that have substantially a same weal level.

3. The non-transitory computer readable medium according to claim 1 , that stores instructions for evaluating sets of programming parameters by programming different groups of flash memory blocks of the flash memory device that have substantially a same weal level.

4. A The non-transitory computer readable medium according to claim 1 , wherein values of the evaluated parameters of each of the different sets of evaluated parameters are within sub-ranges of possible ranges of values of the evaluated parameters.

5. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of evaluated parameters that minimize a formation of traps.

6. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of erase parameters that minimize a wear of the group of flash memory cells resulting from erase processes.

7. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of erase parameters that comprises at least one of a minimal start erase voltage, minimal number of maximal allowable erase pulses, minimal erase pulse width, minimal erase voltage step, erase verify level, maximal number of non-erased cells and maximal erase voltage level.

8. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of programming parameters that comprises at least one of a maximal start programming voltage, minimal number of maximal allowable programming pulses, minimal programming voltage step, minimal programming pulse width, program verify levels, maximal number of non-verified cells, and minimal program bias voltage.

9. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a selected set of evaluated parameters that has a smallest effect on the wear of the group of flash memory cells out of a plurality of sets of evaluated parameters that once applied introduce a tolerable deviation in a voltage threshold distribution.

10. The non-transitory computer readable medium according to claim 1 , that stores instructions for evaluating sets of evaluated parameters wherein each set of erase parameters is sub-optimal in a context of voltage threshold distribution.

11. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of erase parameters in response to a duration attribute of erase operations to be obtained when applying the set of erase parameters.

12. The non-transitory computer readable medium according to claim 1 , that stores instructions for ignoring the sets of erase parameters that once applied result in the average duration of erase operations that exceeds the erase duration threshold.

13. The non-transitory computer readable medium according to claim 12 , that stores instructions for altering a value of the erase duration threshold in response to values of the wear level.

14. The non-transitory computer readable, medium according to claim 1 , that stores instructions for finding a set of programming parameters in response to a duration attribute of programming operations to be obtained when applying the set of programming parameters.

15. The non-transitory computer readable medium according to claim 1 , that stores instructions for ignoring the sets of programming parameters that once applied result in the average duration of programming operations that exceeds the programming duration threshold.

16. The non-transitory computer readable medium according to claim 15 , that stores instructions for altering a value of the programming length threshold in response to values of the wear level.

17. The non-transitory computer readable medium according to claim 1 , wherein the evaluating of the plurality of sets of evaluated parameters comprises calculating a score per each set of evaluated parameter.

18. The non-transitory computer readable medium according to claim 17 , wherein a score of a set of evaluated parameter is responsive to number of corrected read errors resulting from a read operation that follows a programming operation that was executed by applying programming parameters of the set of the evaluated parameter.

19. The non-transitory computer readable medium according to claim 1 , that stores instructions for calculating a score of a set of evaluated parameters in response to at least one value of at least one parameter of the set of evaluated parameters.

20. The non-transitory computer readable medium according to claim 1 , that stores instructions for calculating a score of a set of evaluated parameters in response to the wear level.

21. The non-transitory computer readable medium according to claim 1 , that stores instructions for calculating a score of a set of evaluated parameters in response to statistical attribute of the voltage threshold distribution resulting from applying the set of evaluated parameters.

22. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of evaluated parameters that once applied results in manageable level of bit error rates that exceeds a minimal allowable level of bit error rates.

23. The non-transitory computer readable medium according to claim 1 , that stores instructions for selecting a set of evaluated parameters that once applied results in manageable level of bit error rates and has a smallest contribution to a wear level of the at least one group of flash memory cells.

24. The non-transitory computer readable medium according to claim 1 , that stores instructions for selecting the set of evaluated parameters that once applied results in the higher bit error rate at low wear levels and the lower increment rate of bit error rates per wear level in relation to the at least one other set of evaluated parameters.

25. The non-transitory computer readable medium according to claim 1 , that stores instructions for selecting the set of evaluated parameters that once applied results in (a) the higher bit error rate and the lower programming duration at low wear levels and (b) the lower increment rate of bit error rates per wear level in relation to the at least one other set of evaluated parameters.

26. The non-transitory computer readable medium according to claim 1 , that stores instructions for selecting the set of evaluated parameters that once applied results in the higher bit error rate at low wear levels and at the lower increment rate of bit error rates per wear level in relation to the reference set of parameters that is expected to be applied regardless of the wear level of the at least one group of flash memory cells.

27. The non-transitory computer readable medium according to claim 1 , wherein each set of evaluated parameters comprises erase and programming parameters of values that once applied will not result in a corruption of data programmed to the flash memory device.

28. The non-transitory computer readable medium according to claim 1 , wherein each set of evaluated parameters comprises programming parameters that are applied during programming operations of information that is not related to the finding of the erase parameters and the programming parameters.

29. The non-transitory computer readable medium according to claim 1 , wherein the finding comprises applying a steepest decent algorithm.

30. The non-transitory computer readable medium according to claim 1 , wherein the finding comprises changing a value of a single evaluated parameter between one set of evaluated parameter to another.

31. The non-transitory computer readable medium according to claim 1 , that stores instructions for evaluating a single set of evaluated parameters based upon an outcome of multiple read attempts.

32. The non-transitory computer readable medium according to claim 1 , wherein the finding is triggered when a bit error rate, which is calculated during a read operation, is associated with information programmed to at least one group of flash memory cells reaches a predetermined value.

33. The non-transitory computer readable medium according to claim 1 , that stores instructions for finding a set of erase parameters that once applied minimizes a wear level increment resulting from a programming operation.

34. A non-transitory computer readable medium for flash memory device parameter optimization, the non-transitory computer readable medium stores instructions for: receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate the wear level;

wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters:

wherein possible values of the estimate of the wear level belong to a range of wear levels that comprises multiple non-overlapping sub-ranges of wear levels;

wherein the finding is executed at least once for each one for each sub-range of wear levels.

35. The non-transitory computer readable medium according to claim 34 , that stores instructions for finding at a beginning of each sub-range of wear levels, erase parameters and programming parameters to be applied during the entire sub-range of wear levels.

36. The non-transitory computer readable medium according to claim 34 , wherein sub-ranges of higher order are associated with higher wear levels; wherein the non-transitory computer readable medium stores instructions for modifying at least one parameter out of a number of maximal allowable programming pulses, start program voltage, programming voltage step, programming window, number of non-verified programmed cells, program pulse width and program bias voltage with an increase of an order to the sub-range.

37. The non-transitory computer readable medium according to claim 34 , wherein sub-ranges of higher order are associated with higher wear levels; wherein the non-transitory computer readable medium stores instructions for modifying at least one parameter out of a start erase voltage, a number of maximal allowable erase pulses, an erase voltage step and erase pulse width with an increase of an order to the sub-range.

38. A non-transitory computer readable medium for flash memory device parameter optimization, the non-transitory computer readable medium stores instructions for: receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate the wear level;

wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters;

wherein the finding comprising repetitively programming same information to multiple groups of flash memory cells while applying different sets of programming parameters that differ from each other.

39. The non-transitory computer readable medium according to claim 38 , that stores instructions for repetitively programming the same information to multiple groups of flash memory cells is a probability of a programming operation failure exceeds a threshold.

40. A non-transitory computer readable medium for flash memory device parameter optimization, the non-transitory computer readable medium stores instructions for receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate the wear level;

wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters;

wherein the finding comprising repetitively programming same pilot information to multiple groups of flash memory cells while applying different sets of programming parameters that differ from each other.

41. A non-transitory computer readable medium for flash memory device parameter optimization, the non-transitory computer readable medium stores instructions for receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate the wear level;

wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters;

evaluating a first set of evaluated parameters; calculating a first score; changing a single parameter of the first set to provide a second set of evaluated parameters that comprises a single changed parameter; wherein the changing is performed along a first change direction; evaluating the second set of evaluated parameters; calculating a second score; determining, in response to the first and second scores, whether the first set of evaluated parameters achieves better results than the second set of evaluated parameters; if it is determined that the first set of evaluated parameters achieves better results than the second set of evaluated parameters then changing the single changed parameter along a second change direction that differs from the first change direction to provide a third set of evaluated parameters; if it is determined that the first set of evaluated parameters achieves worse results than the second set of evaluated parameters then changing the single changed parameter along the first direction to provide the third set of evaluated parameters.

42. A method for flash memory device parameter optimization, the method comprises:

receiving or generating an estimate of a wear level of at least one group of flash memory cells of the flash memory device; and

finding erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate of the wear level; wherein the finding comprises evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters;

wherein the method comprises at least one out of:

(a) ignoring sets of erase parameters that once applied result in an average duration of erase operations that exceeds an erase duration threshold,

(b) ignoring sets of programming parameters that once applied result in an average duration of programming operations that exceeds a programming duration threshold,

(c) selecting a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters,

(d) selecting a set of evaluated parameters that once applied results in (i) a higher bit error rate and a lower programming duration at low wear levels and (ii) a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters, and

(e) selecting a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and at a lower increment rate of bit error rates per wear level in relation to a reference set of parameters that is expected to be applied regardless of a wear level of the at least one group of flash memory cells.

43. A flash memory controller that is arranged to receive or generate an estimate of a wear level of at least one group of flash memory cells of the flash memory device; and find erase parameters and programming parameters to be applied on one or more groups of flash memory cells of the flash memory device in response to estimate of the wear level; wherein the flash memory controller is arranged to find the erase parameters and the programming parameters by evaluating a plurality of sets of evaluated parameters that differ from each other by a value of at least one parameter, wherein each one of the plurality of sets of evaluated parameters comprise at least one out of a set of erase parameters and a set of programming parameters; wherein the flash memory controller is arranged perform at least one out of: (a) ignore sets of erase parameters that once applied result in an average duration of erase operations that exceeds an erase duration threshold, (b) ignore sets of programming parameters that once applied result in an average duration of programming operations that exceeds a programming duration threshold, (c) select a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters, (d) select a set of evaluated parameters that once applied results in (i) a higher bit error rate and a lower programming duration at low wear levels and (ii) a lower increment rate of bit error rates per wear level in relation to at least one other set of evaluated parameters, and (e) select a set of evaluated parameters that once applied results in a higher bit error rate at low wear levels and at a lower increment rate of bit error rates per wear level in relation to a reference set of parameters that is expected to be applied regardless of a wear level of the at least one group of flash memory cells.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2012
From: STEINER, AVI; WEINGARTEN, HANAN
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 029476/0526 →
Continuity (2)
Continuation In Part 12769208 · Apr 28, 2010
Provisional Application 61236911 · Aug 26, 2009