IP Library Granted Patent US 8,284,609
Granted Patent B2
US 8,284,609 · App. 13/151,938 · Granted Oct 9, 2012

Compensation of non-volatile memory chip non-idealities by program pulse adjustment

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,284,609
App. No.
13/151,938
Granted
Oct 9, 2012
Kind
B2
Abstract

To program a set of non-volatile storage elements, a set of programming pulses are applied to the control gates (or other terminals) of the non-volatile storage elements. The programming pulses have pulse widths that vary as a function of simulated pulse magnitude data. The programming pulses can also have pulse magnitudes that vary based on measurements taken while testing the set of non-volatile storage elements. In one embodiment, the pulse widths are determined after simulation performed prior to fabrication of the non-volatile storage elements. In another embodiment, the pulse magnitudes are calculated after fabrication of the non-volatile storage elements.

Claims (31)

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

determining pulse widths for a plurality of memory devices including determining pulse widths for multiple programming pulses of a programming signal based on a simulation of said plurality of memory devices;

calculating pulse magnitudes for said multiple programming pulses of said programming signal for a particular memory device from said plurality of memory devices, said calculating is performed subsequent to fabrication of said particular memory device; and

applying said programming signal to said particular memory device.

2. A method according to claim 1 , wherein:

said step of applying said programming signal is concurrently performed for multiple non-volatile storage elements of said particular memory device.

3. A method according to claim 1 , wherein:

said step of determining pulse widths includes determining pulse widths based on pulse magnitudes observed during simulation of said plurality of memory devices; and

said step of applying said programming signal includes applying multiple programming pulses with pulse widths that vary as a function of said pulse magnitudes observed during simulation.

4. A method according to claim 1 , wherein:

said step of calculating pulse magnitudes includes calculating pulse magnitudes for individual pulses of said multiple programming pulses.

5. A method according to claim 1 , wherein:

said step of calculating pulse magnitudes includes calculating pulse magnitudes based on a physical test of said particular memory device.

6. A method according to claim 1 , wherein:

said step of calculating pulse magnitudes includes calculating pulse magnitudes based on measured changes in threshold voltage for said particular memory device; and

said step of applying said programming signal includes applying multiple programming pulses with pulse magnitudes that vary as a function of said measured changes in threshold voltage for said particular memory device.

7. A non-volatile storage system, comprising:

a particular memory device from a plurality of memory devices; and

one or more managing circuits in communication with said particular memory device, said one or more managing circuits program said particular memory device by applying programming pulses with pulse widths determined based on a simulation of said plurality of memory devices, said one or more managing circuits apply said programming pulses with pulse magnitudes calculated subsequent to fabrication of said particular memory device.

8. A non-volatile storage system according to claim 7 , wherein:

said one or more managing circuits concurrently apply said programming pulses to multiple non-volatile storage elements of said particular memory device.

9. A non-volatile storage system according to claim 7 , wherein:

said one or more managing circuits apply said programming pulses with pulse widths determined based on pulse magnitudes observed during simulation of said plurality of memory devices; and

said one or more managing circuits apply said programming pulses with pulse widths that vary as a function of said pulse magnitudes observed during simulation.

10. A non-volatile storage system according to claim 7 , wherein:

said one or more managing circuits apply said programming pulses with pulse magnitudes calculated for individual pulses of said programming pulses.

11. A non-volatile storage system according to claim 7 , wherein:

said one or more managing circuits apply said programming pulses with pulse magnitudes calculated based on a physical test of said particular memory device.

12. A non-volatile storage system according to claim 7 , wherein:

said one or more managing circuits apply said programming pulses with pulse magnitudes calculated based on measured changes in threshold voltage for said particular memory device; and

said one or more managing circuits apply said programming pulses with pulse magnitudes that vary as a function of said measured changes in threshold voltage for said particular memory device.

Assignments (3)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026905/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2011
From: MOKHLESI, NIMA; ZHAO, DENGTAO; CHIN, HENRY; SAMADDAR, TAPAN
To: SANDISK CORPORATION
Reel/Frame 026379/0959 →