IP Library Granted Patent US 7,551,482
Granted Patent B2
US 7,551,482 · App. 11/616,647 · Granted Jun 23, 2009

Method for programming with initial programming voltage based on trial

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,551,482
App. No.
11/616,647
Granted
Jun 23, 2009
Kind
B2
Abstract

A trial programming process is performed for a first set of one or more non-volatile storage elements to test usage of the non-volatile storage system. Based on this trial programming, a programming signal is calibrated by adjusting its initial magnitude. The calibrated programming signal is then used to program a second set of non-volatile storage elements (which may or may not include the first set).

Claims (86)

1. A method for programming non-volatile storage, comprising:

performing at least partial programming on a first set of one or more non-volatile storage elements;

classifying said first set of one or more non-volatile storage elements into ranges of threshold voltages after said performing at least partial programming;

dynamically determining and setting a magnitude of a first pulse of a set of programming pulses based on said classifying; and

programming a second set of non-volatile storage elements using said set of programming pulses with said first pulse having said magnitude.

2. A method according to claim 1 , wherein:

said performing at least partial programming includes applying a program pulse to control gates for said first set of one or more non-volatile storage elements;

said classifying includes performing sense operations using multiple threshold voltage compare values and choosing ranges based on said sensing;

said set of programming pulses is associated with different first pulse magnitudes, each of said different first pulse magnitudes is associated with one of said threshold voltage ranges; and

said setting said magnitude of said first pulse chooses one of said different first pulse magnitudes based on said sense operations.

3. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements includes multiple non-volatile storage elements; and

said initial magnitude is set based on a range that indicates fastest programming.

4. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements includes multiple non-volatile storage elements; and

said magnitude is set based on an average of said classified ranges.

5. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements includes multiple non-volatile storage elements; and

said magnitude is set based on a mathematical function of said classified ranges.

6. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements do not store user data; and

said second set of one or more non-volatile storage elements store user data.

7. A method according to claim 6 , wherein:

said first set of one or more non-volatile storage elements are connected to said second set of one or more non-volatile storage elements.

8. A method according to claim 6 , wherein:

said first set of one or more non-volatile storage elements and said second set of one or more non-volatile storage elements are connected to a common word line.

9. A method according to claim 8 , wherein:

said first set of one or more non-volatile storage elements and said second set of one or more non-volatile storage elements store data in a common page.

10. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements store user data.

11. A method according to claim 1 , wherein:

said first set of one or more non-volatile storage elements are connected to a selected word line and are in a particular block; and

said second set of one or more non-volatile storage elements are in said particular block and are connected to a first word line for said particular block.

12. A method according to claim 1 , wherein:

said step of programming said second set of non-volatile storage elements also programs said first set of non-volatile storage elements.

13. A method according to claim 1 , wherein:

said second set of non-volatile storage elements includes said first set of non-volatile storage elements and additional non-volatile storage elements.

14. A method according to claim 1 , wherein:

said performing at least partial programming, classifying, determining, setting, and programming a second set are performed in response to a particular request to program particular data.

15. A method according to claim 1 , wherein:

said first set of non-volatile storage elements and said second set of non-volatile storage elements are NAND flash memory devices.

16. A method according to claim 1 , wherein: p 1 said first set of non-volatile storage elements and said second set of non-volatile storage elements are multi-state flash memory devices.

17. A method according to claim 1 , wherein:

each programming pulse of said set of programming pulses has a different magnitude; and

each programming pulse of said set of programming pulses differs in magnitude from a previous programming pulse by a constant amount.

18. A method according to claim 1 , wherein:

said performing at least partial programming includes applying a program pulse to a word line connected to said first set of one or more non-volatile storage elements and said second set of non-volatile storage elements while inhibiting at least some of said second set of non-volatile storage elements from programming; and

said programming said second set of non-volatile storage elements includes applying said set of programming pulses with said initial magnitude to said word line connected to said first set of one or more non-volatile storage elements and said second set of non-volatile storage elements.

19. A method according to claim 1 , wherein:

said second set of one or more non-volatile storage elements is a different set than said first set of one or more non-volatile storage elements.

20. A method according to claim 1 , wherein:

said first pulse is a first programming pulse applied to program said second set of non-volatile storage elements during said programming of said second set of non-volatile storage elements.

21. A method for programming non-volatile storage, comprising:

applying one or more programming pulses to control gates of a first set of non-volatile storage elements;

performing one or more sensing operations on said first set of non-volatile storage elements to determine magnitude information for threshold voltages of said first non-volatile storage elements;

classifying said first set of non-volatile storage elements into threshold voltage ranges after said performing said one or more sensing operations;

dynamically setting an initial magnitude value of a set of programming pulses based on said classifying; and

programming a second set of non-volatile storage elements using said set of programming pulses with said initial magnitude value, said second set of non-volatile storage elements is a different set than said first set of non-volatile storage elements.

22. A method according to claim 21 , wherein:

said first set of one or more non-volatile storage elements and said second set of one or more non-volatile storage elements store data in a common block; and

said steps of applying, performing, sefting and programming are performed in response to a particular request to program particular data.

23. A method according to claim 21 , wherein:

said first set of one or more non-volatile storage elements do not store user data; and

said second set of one or more non-volatile storage elements store user data.

24. A method according to claim 21 , wherein:

said programming said second set of non-volatile storage elements includes applying a first pulse during said programming said second set of non-volatile storage elements, said first pulse is applied at said initial magnitude value based on said classifying and said setting.

25. A method according to claim 21 , wherein:

said first set of one or more non-volatile storage elements and said second set of one or more non-volatile storage elements are connected to a common word line.

26. A method according to claim 21 , wherein:

said second set of one or more non-volatile storage elements are connected to a selected word line and are in a particular block; and

said first set of one or more non-volatile storage elements are in said particular block and are connected to a first word line for said particular block.

27. A method for programming non-volatile storage, comprising:

performing at least partial programming for a first set of one or more non-volatile storage elements;

sensing magnitude information for one or more threshold voltages of said first set of non-volatile storage elements, said sensed magnitude information corresponds to at least a first result or a second result for said first set of non-volatile storage elements, said first result is associated with a first initial pulse magnitude value, said second result is associated with a second initial pulse magnitude value; and programming a second set of non-volatile storage elements by applying a set of programming pulses to said second set of non-volatile storage elements, a first programming pulse applied to said second set of non-volatile storage elements during said programming of said second set of non-volatile storage elements is at said first initial pulse magnitude value if said sensed magnitude information corresponds to said first result, said first programming pulse applied to said second set of non-volatile storage elements during said programming of said second set of non-volatile storage elements is at said second initial pulse magnitude value if said sensed magnitude information corresponds to said second result.

28. A method according to claim 27 , wherein:

said first set of non-volatile storage elements and said set of second non-volatile storage elements are connected by a common control line.

29. A method according to claim 27 , wherein:

said sensing magnitude information includes classifying said first set of non-volatile storage elements into threshold voltage ranges, a first threshold voltage range corresponds to said first result, a second threshold voltage range corresponds to said second result.

30. A method according to claim 29 , wherein:

said first set of non-volatile storage elements do not store user data; and

said second set of non-volatile storage elements store user data.

31. A method for programming non-volatile storage, comprising:

performing at least partial programming on a first set of one or more non-volatile storage elements;

classifying said first set of one or more non-volatile storage elements into ranges of threshold voltages after said performing at least partial programming;

dynamically determining and setting an initial magnitude of a programming signal based on said classifying; and

programming a second set of non-volatile storage elements using said programming signal with said initial magnitude.

Assignments (6)
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/0472 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026226/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2007
From: KAMEI, TERUHIKO; LI, YAN
To: SANDISK CORPORATION
Reel/Frame 018753/0113 →