# US RE45,544 E1 · Saw-shaped multi-pulse programming for program noise reduction in memory

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US RE45,544 E1
- Document ID: USRE45544E1
- Status: Granted
- Kind: E1
- Application number: 14/177,739
- Filed: 2014-02-11
- Granted: 2015-06-02
- Earliest claimed: 2010-04-09
- Assignees: SanDisk Technologies LLC
- Applicants: Sandisk Technologies Inc.
- Inventors: Yingda Dong; Yupin K. Fong; Gerrit Jan Hemink
- Web page: https://patentgrep.com/patent/USRE45544E1

## CPC

- G11C 16/04: using variable threshold transistors, e.g. FAMOS
- G11C 16/06: Auxiliary circuits, e.g. for writing into memory
- G11C: STATIC STORES (semiconductor memory devices H10B)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 4)

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.

### Claim 6 (depends on 4)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 9)

The method of claim 9, wherein:
the transitioning occurs based on an extent to which programming to a target data state has been completed.

### Claim 11 (depends on 9)

The method of claim 9, wherein:
the transitioning occurs based on a number of the sets of program sub-pulses which have been applied.

### Claim 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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 12)

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.

### Claim 15 (depends on 12)

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.

### Claim 16 (depends on 12)

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.

### Claim 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.

### Claim 18 (depends on 17)

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.

### Claim 19 (depends on 17)

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.

### Claim 20 (depends on 17)

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.

### Claim 21 (depends on 1)

The method of claim 1, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.

### Claim 22 (depends on 1)

The method of claim 1, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.

### Claim 23 (depends on 12)

The non-volatile storage system of claim 12, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.

### Claim 24 (depends on 12)

The non-volatile storage system of claim 12, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.

### Claim 25 (depends on 17)

The method of claim 17, wherein:
the set of non-volatile storage elements comprises a three-dimensional array of storage elements.

### Claim 26 (depends on 17)

The method of claim 17, wherein:
the set of non-volatile storage elements are arranged in a three-dimensional memory structure.
