IP Library Granted Patent US 9,496,040
Granted Patent B2
US 9,496,040 · App. 14/602,468 · Granted Nov 15, 2016

Adaptive multi-page programming methods and apparatus for non-volatile memory

Inventors: Rajan Paudel (Fremont, CA); Jagdish Sabde (Fremont, CA); Sagar Magia (Milpitas, CA)
Assignee: SanDisk Technologies LLC
G11C16/10
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 9,496,040
App. No.
14/602,468
Granted
Nov 15, 2016
Kind
B2
Abstract

A method is provided for programming a memory cell connected to a selected word line in a memory device. The method includes performing one programming pass of a multi-pass programming operation for the memory cell, wherein a first set of program pulses is applied to the selected word line during the one programming pass, determining a number of the program pulses applied to the selected word line during the one programming pass, determining a difference between the determined number of program pulses applied to the selected word line during the one programming pass and a predetermined number of program pulses, adjusting a parameter of a second set of program pulses for the another programming pass based on the determined difference, and performing the another programming pass for the set of memory cells, wherein the second set of program pulses is applied to the selected word line during the another programming pass.

Claims (41)

1. A method comprising:

performing one programming pass of a multi-pass programming operation of a memory cell by applying a set of program pulses to the memory cell;

determining a number of program pulses applied to the memory cell during the one programming pass;

determining that the memory cell is a slow-to-program memory cell by determining that a difference between the determined number of program pulses and a predetermined number of program pulses exceeds a first predetermined threshold;

and

performing another programming pass on the memory cell by applying a set of adjusted program pulses to the memory cell, wherein the adjusted program pulses comprise a parameter that is adjusted based on the difference to reduce a number of adjusted program pulses applied to the memory cell during the another programming pass.

2. The method of claim 1 , further comprising programming the memory cell to a predetermined programming state during the one programming pass.

3. The method of claim 2 , wherein the predetermined number of program pulses comprises an average number of program pulses required to program a plurality of memory cells to the predetermined programming state.

4. The method of claim 2 , wherein the predetermined number of program pulses comprises a user-specified value.

5. The method of claim 1 , wherein the set of adjusted program pulses comprises one or more user-specified adjusted program pulses.

6. The method of claim 1 , wherein the adjusted parameter comprises an amplitude of one or more program pulses.

7. The method of claim 6 , wherein the amplitude of the one or more program pulses is adjusted based the determined difference.

8. The method of claim 1 , wherein the set of adjusted program pulses comprises one or more user-specified adjusted program pulses.

9. The method of claim 8 , wherein the pulse width of the one or more program pulses is adjusted based the determined difference.

10. The method of claim 1 , wherein the one programming pass is a first programming pass of the multi-pass programming operation, and the another programming pass is a second programming pass of the multi-pass programming operation.

11. The method of claim 1 , wherein the one programming pass is a second programming pass of the multi-pass programming operation and the another programming pass is a third programming pass of the multi-pass programming operation.

12. A device comprising:

a memory cell; and

a control circuit configured to:

perform one programming pass of a multi-pass programming operation of the memory cell a by applying set of program pulses to the memory cell;

determine a number of the program pulses applied to the memory cell during the one programming pass;

determine a difference between the determined number of program pulses and a predetermined number of program pulses;

and

perform another programming pass on the memory cell by applying set of adjusted program pulses to the memory cell, wherein the adjusted program pulses comprise a parameter that is adjusted based on the difference to reduce or increase a number of adjusted program pulses applied to the memory cell during the another programming pass.

13. The memory device of claim 12 , wherein the control circuit programs the memory cell to a predetermined programming state during the one programming pass.

14. The memory device of claim 13 , wherein the control circuit calculates the predetermined number of program pulses by averaging a number of program pulses required to program a plurality of memory cells to the predetermined programming state.

15. The memory device of claim 12 , wherein the control circuit adjusts an amplitude of one or more program pulses of the adjusted program pulses.

16. The memory device of claim 12 , wherein the control circuit adjusts a pulse width of one or more program pulses of the adjusted program pulses.

17. A method comprising:

performing one programming pass of a multi-pass programming operation of a memory cell by applying first program pulses to the memory cell;

determining a number of the first program pulses applied to the memory cell during the one programming pass;

determining that the memory cell is a slow-to-program memory cell or a fast-to-program memory cell by:

determining a first difference between the determined number of first program pulses applied to the memory cell during the one programming pass and a predetermined number of program pulses; and

determining a second difference between the predetermined number of program pulses and the determined number of first program pulses applied to the memory cell during the one programming pass;

and

performing the another programming pass of the memory cell by applying second program pulses to the memory cell, wherein the second program pulses comprise a pulse amplitude that is adjusted based on one of the determined first difference and the determined second difference.

18. The method of claim 17 , further comprising programming the memory cell to a predetermined programming state during the one programming pass.

19. The method of claim 18 , wherein the predetermined number of program pulses comprises an average number of program pulses required to program a plurality of memory cells to the predetermined programming state.

20. The method of claim 18 , wherein the predetermined number of first program pulses comprises a user-specified value.

21. The method of claim 17 , wherein the one programming pass is a first programming pass of the multi-pass programming operation, and the another programming pass is a second programming pass of the multi-pass programming operation.

22. The method of claim 17 , wherein the one programming pass is a second programming pass of the multi-pass programming operation and the another programming pass is a third programming pass of the multi-pass programming operation.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2016
From: PAUDEL, RAJAN; SABDE, JAGDISH; MAGIA, SAGAR
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 039717/0546 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
Continuity (1)
Related Publication 20160217857A1 · Jul 28, 2016