Saw-shaped multi-pulse programming for program noise reduction in memory
Abstract
In a memory system, a programming waveform reduces program noise by using sets of multiple adjacent sub-pulses which have a saw-tooth shape. In a set, an initial sub-pulse steps up from an initial level such as 0 V to a peak level, then steps down to an intermediate level, which is above the initial level. One or more subsequent sub-pulses of the set can step up from an intermediate level to a peak level, and then step back down to an intermediate level. A last sub-pulse of the set can step up from an intermediate level to a peak level, and then step back down to the initial level. A verify operation is performed after the set of sub-pulses. The number of sub-pulses per set can decrease in successive sets until a solitary pulse is applied toward the end of a programming operation.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for programming in a non-volatile storage system, comprising:
in connection with a programming operation involving selected non-volatile storage elements in a set of non-volatile storage elements, applying a plurality of sets of program sub-pulses to the selected non-volatile storage elements, the set of non-volatile storage elements is in communication with a set of word lines, and the plurality of sets of program sub-pulses are applied to the selected non-volatile storage elements via a selected word line of the set of word lines, each set of program sub-pulses comprises an initial sub-pulse which transitions from a common starting level to a respective peak level and then to a respective intermediate level between the common starting level and the respective peak level, without returning to the common starting level, and a final sub-pulse which transitions from a respective intermediate level to a respective peak level and then to the common starting level; and
performing a verify operation during the programming operation for at least one of the selected non-volatile storage elements following at least one of the sets of program sub-pulses.
2. The method of claim 1 , wherein:
no verify operation is performed for the selected non-volatile storage elements between the initial sub-pulse and the final sub-pulse of each set of program sub-pulses.
3. The method of claim 1 , wherein:
at least one of the sets of program sub-pulses comprises an additional sub-pulse between the initial sub-pulse and the final sub-pulse, the additional sub-pulse transitions from a respective intermediate level to a respective peak level and then back to the respective intermediate level of the additional sub-pulse.
4. The method of claim 1 , wherein:
at least one of the sets of program sub-pulses comprises an integer number N>1 of sub-pulses, and subsequently at least one other of the sets of program sub-pulses comprises an integer number M of sub-pulses, where 1<M<N.
5. The method of claim 4 , further comprising:
transitioning from the at least one of the sets of program sub-pulses to the at least one other of the sets of program sub-pulses based on an extent to which programming to a target data state has been completed.
6. The method of claim 4 , further comprising:
transitioning from the at least one of the sets of program sub-pulses to the at least one other of the sets of program sub-pulses when a specified number of the sets of program sub-pulses have been applied in the programming operation.
7. The method of claim 1 , wherein:
a number of sub-pulses in each set of program sub-pulses decreases incrementally over time in the programming operation.
8. The method of claim 1 , wherein:
an amplitude of sub-pulses in each set of program sub-pulses increases incrementally over time in the programming operation.
9. The method of claim 1 , further comprising, in connection with the programming operation:
transitioning from the applying a plurality of sets of program sub-pulses to the selected non-volatile storage elements to applying at least one solitary pulse; and
performing a verify operation for the at least one of the selected non-volatile storage elements following the at least one solitary pulse.
10. The method of claim 9 , wherein:
the transitioning occurs based on an extent to which programming to a target data state has been completed.
11. The method of claim 9 , wherein:
the transitioning occurs based on a number of the sets of program sub-pulses which have been applied.
12. A non-volatile storage system, comprising:
a set of non-volatile storage elements;
a set of word lines in communication with the set of non-volatile storage elements, including a selected word line in communication with selected non-volatile storage elements of the set of non-volatile storage elements; and
at least one control circuit in communication with the set of word lines, the at least one control circuit, in connection with a programming operation involving the selected non-volatile storage elements: applies a plurality of sets of program sub-pulses to the selected non-volatile storage elements, via the selected word line, each set of program sub-pulses comprises an initial sub-pulse which transitions from a common starting level to a respective peak level and then to a respective intermediate level between the common starting level and the respective peak level, without returning to the common starting level, and a final sub-pulse which transitions from a respective intermediate level to a respective peak level and then to the common starting level, and performs a verify operation during the programming operation for at least one of the selected non-volatile storage elements following at least one of the sets of program sub-pulses.
13. The non-volatile storage system of claim 12 , wherein:
no verify operation is performed for the selected non-volatile storage elements between the initial sub-pulse and the final sub-pulse of each set of program sub-pulses.
14. The non-volatile storage system of claim 12 , wherein:
a number of sub-pulses in each set of program sub-pulses decreases incrementally over time in the programming operation.
15. The non-volatile storage system of claim 12 , wherein:
an amplitude of sub-pulses in each set of program sub-pulses increases incrementally over time in the programming operation.
16. The non-volatile storage system of claim 12 , wherein the one or more control circuits, in connection with the programming operation:
transition from the applying a plurality of sets of program sub-pulses to the selected non-volatile storage elements to applying at least one solitary pulse; and
perform a verify operation for the at least one of the selected non-volatile storage elements following the at least one solitary pulse.
17. A method for programming in a non-volatile storage system, comprising:
applying one set of program sub-pulses to selected non-volatile storage elements in a set of non-volatile storage elements, the one set of program sub-pulses comprises multiple sub-pulses having a respective amplitude, including an initial sub-pulse which transitions from a common starting level to a respective peak level and then to a respective intermediate level between the common starting level and the respective peak level, without returning to the common starting level, and a final sub-pulse which transitions from a respective intermediate level to a respective peak level and then to the common starting level;
subsequently, applying another set of program sub-pulses to the selected non-volatile storage elements, the another set of program sub-pulses comprises multiple sub-pulses having a respective amplitude, but fewer sub-pulses than the one set of program sub-pulses, the multiple sub-pulses of the another set of program sub-pulses include an initial sub-pulse which transitions from the common starting level to a respective peak level and then to a respective intermediate level between the common starting level and the respective peak level, without returning to the common starting level, and a final sub-pulse which transitions from a respective intermediate level to a respective peak level and then to the common starting level; and
performing a verify operation during the programming operation for at least one of the selected non-volatile storage elements between the one set of program sub-pulses and the another set of program sub-pulses.
18. The method of claim 17 , wherein:
no verify operation is performed for the selected non-volatile storage elements between the initial sub-pulse and the final sub-pulse of the one set of program sub-pulses and the another set of program sub-pulses.
19. The method of claim 17 , wherein:
the respective amplitude of the sub-pulses in the one set of program sub-pulses is less than the respective amplitude of the sub-pulses in the another set of program sub-pulses.
20. The method of claim 17 , further comprising, in connection with the programming operation:
transitioning from the applying a plurality of sets of program sub-pulses to the selected non-volatile storage elements to applying at least one solitary pulse based on an extent to which programming to a target data state has been completed.
21. The method of claim 1, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.
22. The method of claim 1, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.
23. The non-volatile storage system of claim 12, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.
24. The non-volatile storage system of claim 12, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.
25. The method of claim 17, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.
26. The method of claim 17, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.