IP Library Granted Patent US 7,894,273
Granted Patent B2
US 7,894,273 · App. 12/407,665 · Granted Feb 22, 2011

Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits

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 7,894,273
App. No.
12/407,665
Granted
Feb 22, 2011
Kind
B2
Abstract

A group of non-volatile memory cells are programmed in a programming pass by a series of incremental programming pulses where each pulse is followed by a program-verify and possibly program-inhibition step. Performance is improved during the programming pass by delayed starting and prematurely terminating the various verify levels that demarcate the multiple memory states. This amounts to skipping the verifying and inhibiting steps of the fastest and slowest programming (fringe) cells of the group. A reference pulse is established when the fastest cells have all been program-verified relative to a first verify level. The starting of what verify level at what pulse will then be delayed relative to the reference pulse. Verifying stops for a given verify level when only a predetermined number of cells remain unverified relative to that given level. Any errors arising from over- or under-programming of the fringe cells are corrected by an error correction code.

Claims (48)

1. A method of programming a group of memory cells in parallel, comprising:

performing a first programming pass on the group by applying a programming voltage incremented pulse by pulse from a first starting voltage;

verifying the cells relative to a lowest of a set of verify levels in between pulses;

after a predetermined number of cells have been verified to programmed passed the lowest verify level of the set, verifying the cells relative to one or more of other verify levels of the set, each of the other verify levels being scheduled for inclusion in said verifying as a function of each verify level; and

performing one or more subsequent programming pass on the group by applying a programming voltage incremented pulse by pulse from a second starting voltage, wherein the second starting voltage is the programming voltage in the first programming pass at which the predetermined number of cells have been verified to programmed passed the lowest verify level of the set.

2. The method as in claim 1 , wherein:

the lowest verify level distinguishes an erased state from a first programmed memory state.

3. The method as in claim 1 , wherein:

the first predetermined number of cells is about 0.02% of a population of cells formed by the group of memory cells.

4. The method as in claim 1 , further comprising:

providing an error correction code for correcting errors arising from said programming method.

5. The method as in claim 1 , wherein:

said verifying excludes verifying relative to a given verify level whenever the group of memory cells still under programming no longer requires verifying relative to the given verify level.

6. The method as in claim 1 , wherein:

each of the programming passes terminates when for each verify level of the set relative to which a second predetermined number of cells remains to be verified, the second predetermined number of cells are not verified but treated as if verified relative to that verify level.

7. The method as in claim 6 , wherein:

the second predetermined number of cells are not verified but treated as if verified relative to that verify level.

8. The method as in claim 6 , wherein:

the second predetermined number of cells is one.

9. The method as in claim 6 , wherein:

the second predetermined number of cells not verified for all verify levels amounts to about 0.02% of a population of cells formed by the group of memory cells.

10. The method as in claim 6 , further comprising:

providing an error correction code for correcting errors arising from said programming method.

11. A nonvolatile memory, comprising:

a group of memory cells;

circuits for performing programming, verifying and inhibiting on the group of memory cells in parallel, wherein said circuits:

perform a first programming pass on the group by applying a programming voltage incremented pulse by pulse from a first starting voltage;

verify the cells relative to a lowest of a set of verify levels in between pulses;

after a predetermined number of cells have been verified to programmed passed the lowest verify level of the set, verify the cells relative to one or more of other verify levels of the set, each of the other verify levels being scheduled for inclusion in said verifying as a function of each verify level; and

perform one or more subsequent programming pass on the group by applying a programming voltage incremented pulse by pulse from a second starting voltage, wherein the second starting voltage is the programming voltage in the first programming pass at which the predetermined number of cells have been verified to programmed passed the lowest verify level of the set.

12. The nonvolatile memory as in claim 11 , wherein:

the lowest verify level distinguishes an erased state from a first programmed memory state.

13. The nonvolatile memory as in claim 11 , wherein:

the first predetermined number of cells is about 0.02% of a population of cells formed by the group of memory cells.

14. The nonvolatile memory as in claim 11 , further comprising:

an error correction code for correcting errors arising from said programming passes.

15. The nonvolatile memory as in claim 11 , wherein said circuits have:

said verifying excluding verifying relative to a given verify level whenever the group of memory cells still under programming no longer requires verifying relative to the given verify level.

16. The nonvolatile memory as in claim 11 , wherein said circuits have:

each of the programming passes terminating when for each verify level of the set relative to which a second predetermined number of cells remains to be verified.

17. The nonvolatile memory as in claim 16 , wherein:

the second predetermined number of cells are not verified but treated as if verified relative to that verify level.

18. The nonvolatile memory as in claim 16 , wherein:

the second predetermined number of cells is one.

19. The nonvolatile memory as in claim 16 , wherein:

the second predetermined number of cells not verified for all verify levels amounts to about 0.02% of a population of cells formed by the group of memory cells.

20. The nonvolatile memory as in claim 16 , further comprising:

an error correction code for correcting errors arising from said programming passes.

Assignments (5)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 038809/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026270/0581 →