IP Library Granted Patent US 8,811,091
Granted Patent B2
US 8,811,091 · App. 13/329,103 · Granted Aug 19, 2014

Non-volatile memory and method with improved first pass programming

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,811,091
App. No.
13/329,103
Granted
Aug 19, 2014
Kind
B2
Abstract

A nonvolatile memory with a multi-pass programming scheme enables a page of multi-level memory cells to be programmed with reduced floating-gate to floating-gate perturbations (Yuping effect). The memory cells operate within a common threshold voltage range or window, which is partitioned into multiple bands to denote a series of increasingly programmed states. The series is divided into two halves, a lower set and a higher set. The memory cells are programmed in a first, coarse programming pass such that the memory cells of the page with target states from the higher set are programmed to a staging area near midway in the threshold window. In particular, they are programmed closer to their targeted destinations than previous schemes, without incurring much performance penalty. Subsequent passes will then complete the programming more quickly. Yuping effect is reduced since the threshold voltage change in subsequent passes are reduced.

Claims (58)

1. A method of programming a nonvolatile memory, comprising:

providing the nonvolatile memory with an array of memory cells, each memory cell having a common range of threshold voltages defining a threshold window;

configuring each memory cell to store N bits of data by partitioning the threshold window into 2 N =k+1 bands of threshold voltages using k demarcation points D(i), where a lowest band denotes an erased state and is followed by k increasing bands that denotes k increasing programmed states P(i);

providing a programming voltage as a series of pulses;

programming in multiple programming passes a page of memory cells on a selected word line to respective target states;

said multiple programming passes including a first programming pass and one of more subsequent programming passes to program all memory cells of the page to respective target states; and wherein the first programming pass further comprises:

programming and verifying pulse by pulse a first set memory cells of the page having target states among an upper half of the k increasing programmed states, beginning with P([k+1]/2) and ending with P(k);

said verifying is relative to a predetermined threshold voltage, the predetermined verify threshold voltage is such that it enables verifying of programming of all the memory cells having target states being one of P([k+1]/2) to P(k) to be placed near the middle of the threshold window while not exceeding D([k+1]/2+1);

inhibiting programming of each memory cell of the first set that has been program-verified relative to the predetermined verify threshold voltage; and

after all memory cells of the first set have been program-verified relative to the predetermined verify threshold,

selectively disabling said inhibiting programming of each memory cell having a target state P([k+1]/2+x) to programming with additional x pulses, without intervening program-verifying.

2. The method as in claim 1 , wherein:

the programming voltage in the first programming pass has pulses that programs at a faster rate than that of the subsequent programming pass.

3. The method as in claim 1 , wherein N=2.

4. The method as in claim 1 , wherein N=3.

5. The method as in claim 1 , wherein the nonvolatile memory is flash memory.

6. The method as in any claim 1 , wherein the array of memory cells has NAND architecture.

7. The method as in claim 1 , wherein the nonvolatile memory is embodiment in a memory card.

8. A method of programming a nonvolatile memory, comprising:

providing the nonvolatile memory with an array of memory cells, each memory cell having a common range of threshold voltages defining a threshold window;

configuring each memory cell to store N bits of data by partitioning the threshold window into 2 N =k+1 bands of threshold voltages using k demarcation points D(i), where a lowest band denotes an erased state and is followed by k increasing bands that denotes k increasing programmed states P(i);

providing a programming voltage as a series of pulses;

programming in multiple programming passes a page of memory cells on a selected word line to respective target states;

said multiple programming passes including a first programming pass and one of more subsequent programming passes to program all memory cells of the page to respective target states; and wherein the first programming pass further comprises:

programming and verifying pulse by pulse a first set memory cells of the page having target states among an upper half of the k increasing programmed states, beginning with P([k+1]/2) and ending with P(k);

said verifying is relative to a predetermined threshold voltage, the predetermined verify threshold voltage is such that it enables verifying of programming of all the memory cells having target states being one of P([k+1]/2) to P(k) to be placed near the middle of the threshold window while not exceeding D([k+1]/2+1);

inhibiting programming of each memory cell of the first set that has been program-verified relative to the predetermined verify threshold voltage; and

while ongoing programming pulses are still being applied to the page of memory cells until all memory cells of the first set have been program-verified relative to the predetermined verify threshold,

selectively disabling said inhibiting programming of each memory cell having a target state P([k+1]/2+x) to programming with up to x additional ongoing programming pulses, without intervening program-verifying.

9. The method as in claim 8 , wherein:

the programming voltage in the first programming pass has pulses that programs at a faster rate than that of the subsequent programming pass.

10. The method as in claim 8 , wherein N=2.

11. The method as in claim 8 , wherein N=3.

12. The method as in claim 8 , wherein the nonvolatile memory is flash memory.

13. The method as in any claim 8 , wherein the array of memory cells has NAND architecture.

14. The method as in claim 8 , wherein the nonvolatile memory is embodiment in a memory card.

15. A nonvolatile memory, comprising:

an array of memory cells, each memory cell having a common range of threshold voltages defining a threshold window;

each memory cell configured to store N bits of data by having the threshold window partitioned into 2 N =k+1 bands of threshold voltages using k demarcation points D(i), where a lowest band denotes an erased state and is followed by k increasing bands that denotes k increasing programmed states P(i);

a power supply for providing a programming voltage as a series of pulses;

a control circuit for controlling programming in multiple programming passes a page of memory cells on a selected word line to respective target states;

said multiple programming passes including a first programming pass and one of more subsequent programming passes to program all memory cells of the page to respective target states; and wherein the first programming pass further comprises:

programming and verifying pulse by pulse a first set memory cells of the page having target states among an upper half of the k increasing programmed states, beginning with P([k+1]/2) and ending with P(k);

said verifying is relative to a predetermined threshold voltage, the predetermined verify threshold voltage is such that it enables verifying of programming of all the memory cells having target states being one of P([k+1]/2) to P(k) to be placed near the middle of the threshold window while not exceeding D([k+1]/2+1);

inhibiting programming of each memory cell of the first set that has been program-verified relative to the predetermined verify threshold voltage; and

after all memory cells of the first set have been program-verified relative to the predetermined verify threshold,

selectively disabling said inhibiting programming of each memory cell having a target state P([k+1]/2+x) to programming with additional x pulses, without intervening program-verifying.

16. A nonvolatile memory, comprising:

an array of memory cells, each memory cell having a common range of threshold voltages defining a threshold window;

each memory cell configured to store N bits of data by having the threshold window partitioned into 2 N =k+1 bands of threshold voltages using k demarcation points D(i), where a lowest band denotes an erased state and is followed by k increasing bands that denotes k increasing programmed states P(i);

a power supply for providing a programming voltage as a series of pulses;

a control circuit for controlling programming in multiple programming passes a page of memory cells on a selected word line to respective target states;

said multiple programming passes including a first programming pass and one of more subsequent programming passes to program all memory cells of the page to respective target states; and wherein the first programming pass further comprises:

programming and verifying pulse by pulse a first set memory cells of the page having target states among an upper half of the k increasing programmed states, beginning with P([k+1]/2) and ending with P(k);

said verifying is relative to a predetermined threshold voltage, the predetermined verify threshold voltage is such that it enables verifying of programming of all the memory cells having target states being one of P([k+1]/2) to P(k) to be placed near the middle of the threshold window while not exceeding D([k+1]/2+1);

inhibiting programming of each memory cell of the first set that has been program-verified relative to the predetermined verify threshold voltage; and

while ongoing programming pulses are still being applied to the page of memory cells until all memory cells of the first set have been program-verified relative to the predetermined verify threshold,

selectively disabling said inhibiting programming of each memory cell having a target state P([k+1]/2+x) to programming with up to x additional ongoing programming pulses, without intervening program-verifying.

Assignments (5)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2011
From: LI, YAN; HSU, CYNTHIA; OOWADA, KEN
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 027396/0605 →