Dynamic Bit Line Bias For Programming Non-Volatile Memory
First Claim
1. A method for programming in a non-volatile storage device, comprising:
- in a program operation, applying one or more initial program pulses to one non-volatile storage element;
during each program pulse of the one or more initial program pulses, setting a voltage of a bit line associated with the one non-volatile storage element at an initial level (0 V) which allows programming of the one non-volatile storage element;
determining when a threshold voltage of the one non-volatile storage element exceeds a lower verify level (VvaL, VvbL, VvcL) of a target data state (A, B, C) of the one non-volatile storage element; and
when the threshold voltage of the one non-volatile storage element exceeds the lower verify level, applying additional program pulses to the one non-volatile storage element, maintaining a count of a number of the additional program pulses which are applied to the one non-volatile storage element, and during the additional program pulses, setting the voltage of the bit line at one or more stepped up levels as a function of the count, the one or more stepped up levels are stepped up from the initial level and allow programming of the one non-volatile storage element.
2 Assignments
0 Petitions
Accused Products
Abstract
A program operation for a set of non-volatile storage elements. A count is maintained of a number of program pulses which are applied to an individual storage element in a slow programming mode, and an associated bit line voltage is adjusted based on the count. Different bit line voltages can be used, having a common step size or different steps sizes. As a result, the change in threshold voltage of the storage element within the slow programming mode, with each program pulse can be made uniform, resulting in improved programming accuracy. Latches maintain the count of program pulses experienced by the associated storage element, while in the slow programming mode. The storage element is in a fast programming mode when its threshold voltage is below a lower verify level, and in the slow programming mode when its threshold voltage is between the lower verify level and a higher verify level.
-
Citations
20 Claims
-
1. A method for programming in a non-volatile storage device, comprising:
-
in a program operation, applying one or more initial program pulses to one non-volatile storage element; during each program pulse of the one or more initial program pulses, setting a voltage of a bit line associated with the one non-volatile storage element at an initial level (0 V) which allows programming of the one non-volatile storage element; determining when a threshold voltage of the one non-volatile storage element exceeds a lower verify level (VvaL, VvbL, VvcL) of a target data state (A, B, C) of the one non-volatile storage element; and when the threshold voltage of the one non-volatile storage element exceeds the lower verify level, applying additional program pulses to the one non-volatile storage element, maintaining a count of a number of the additional program pulses which are applied to the one non-volatile storage element, and during the additional program pulses, setting the voltage of the bit line at one or more stepped up levels as a function of the count, the one or more stepped up levels are stepped up from the initial level and allow programming of the one non-volatile storage element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-volatile storage system, comprising:
-
a set of non-volatile storage elements in communication with a word line; a respective bit line associated with each non-volatile storage element; and a control circuit, the control circuit;
sets a voltage of one of the respective bit lines which is associated with one non-volatile storage element at an initial level which allows programming of the one non-volatile storage element during one or more initial program pulses which are applied to the word line when a threshold voltage of the one non-volatile storage element is verified to be below a lower verify level, and sets the voltage of the bit line at different stepped up levels which allow programming of the one non-volatile storage element during additional program pulses which are applied to the word line when the threshold voltage of the one non-volatile storage element is verified to be between the lower verify level and a higher verify level. - View Dependent Claims (15, 16, 17)
-
-
18. A method for programming in a non-volatile storage device, comprising:
-
performing one or more program-verify iterations for a non-volatile storage element in a program operation, each program-verify iteration comprising a program portion and a verify portion; applying an initial voltage to a bit line associated with the non-volatile storage element during the program portion of each of the one or more program-verify iterations; detecting when the non-volatile storage element passes a first verify test of one of the verify portions of the one or more program-verify iterations; and in response to the detecting when the non-volatile storage element passes the first verify test; performing a first next program-verify iteration of the program operation, the first next program-verify iteration comprising a program portion and a verify portion; applying a first stepped up voltage to the bit line during the program portion of the first next program-verify iteration; performing a second next program-verify iteration of the program operation, the second next program-verify iteration comprising a program portion and a verify portion; and applying a second stepped up voltage to the bit line during the program portion of the second next program-verify iteration, where the initial voltage, the first stepped up voltage and the second stepped up voltage allow programming of the non-volatile storage element. - View Dependent Claims (19, 20)
-
Specification