IP Library › Granted Patent US 7,453,737
Granted Patent B2
US 7,453,737 · App. 11/810,725 · Granted Nov 18, 2008

Program method with optimized voltage level for flash memory

Assignee: Micron Technology, Inc.
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,453,737
App. No.
11/810,725
Granted
Nov 18, 2008
Kind
B2
Abstract

A non-volatile memory device and programming process is described that increases the programming voltage of successive programming cycles in relation to the percentage of the data bits that failed programming verification during the previous programming cycle and were not correctly programmed into the memory array. This allows for a faster on average program operation and a more accurate match of the subsequent increase in the programming voltage to the non-volatile memory device, the specific region or row being programmed and any changes due to device wear. In one embodiment of the present invention the manufacturing process/design and/or specific memory device is characterized by generating a failed bit percentage to programming voltage increase profile to set the desired programming voltage delta/increase. In another embodiment of the present invention, methods and apparatus are related for the programming of data into non-volatile memory devices and, in particular, NAND and NOR architecture Flash memory.

Claims (63)

1. A method of operating a non-volatile memory, comprising:

calculating a number of data bits from data to be programmed into a non-volatile memory in a program operation;

programming the data into the non-volatile memory;

verifying the data programmed into the non-volatile memory and calculating a number of data bits that failed to program; and

increasing a programming voltage in response to a comparison of the number of data bits in the data and the number of data bits from the data that failed to program.

2. The method of claim 1 , wherein increasing a programming voltage in response to a comparison of the number of data bits in the data and the number of data bits from the data that failed to program further comprises increasing a programming voltage in response to the percentage of the data bits of the data that failed to correctly program.

3. The method of claim 1 , further comprising:

disabling programming of one or more memory cells that correctly programmed; and

applying the increased programming voltage to program the data bits of the data that failed to program correctly.

4. The method of claim 1 , further comprising:

repeating for one or more iteration cycles,

programming the data into the non-volatile memory;

verifying the data programmed into the non-volatile memory and calculating a number of data bits that failed to program; and

increasing a programming voltage in response to a comparison of the number of data bits in the data and the number of data bits from the data that failed to program.

5. The method of claim 1 , further comprising:

profiling the non-volatile memory to determine a profile of a programming voltage increase for a given percentage of the number of data bits from the data to be programmed and the number of data bits that failed to program.

6. The method of claim 5 , wherein profiling the non-volatile memory to determine a profile of a programming voltage increase for a given percentage of the number of data bits from the data to be programmed and the number of data bits that failed to program further comprises profiling the non-volatile memory by one of profiling the non-volatile memory to determine a profile of a programming voltage increase for a given comparison of the number of data bits of the data to be programmed and the number of data bits that failed to program for the non-volatile memory manufacturing process or the non-volatile memory design, profiling the non-volatile memory device to determine a profile of a programming voltage increase for a given comparison of the number of data bits of the data to be programmed and the number of data bits that failed to program for a specific non-volatile memory or specific non-volatile memory region of a non-volatile memory.

7. The method of claim 1 , wherein the non-volatile memory stores multiple bits in a single cell by one of multiple threshold levels and storing data trapped in a charge trapping layer near each of the sources/drains of one or more memory cell FETs.

8. The method of claim 1 , wherein the non-volatile memory is one of a NAND architecture memory and a NOR architecture memory.

9. A method of operating a non-volatile memory, comprising:

programming a plurality of data bits of data to be programmed into the non-volatile memory by applying a programming voltage to a plurality of memory cells;

verifying the programmed data in the non-volatile memory; and

increasing the programming voltage in a selected relation to the number of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory.

10. The method of claim 9 , further comprising:

disabling programming of one or more memory cells that correctly programmed; and

applying the increased programming voltage to program one or more bits of the data that failed to program correctly.

11. The method of claim 9 , wherein increasing the programming voltage in a selected relation to the number of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory further comprises increasing the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory.

12. The method of claim 9 , further comprising:

repeating for one or more iteration cycles,

programming one or more of the plurality of data bits of data to be programmed into the non-volatile memory by applying the programming voltage to one or more of the plurality of memory cells;

verifying the programmed data in the non-volatile memory; and

increasing the programming voltage in a selected relation to the number of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory.

13. The method of claim 12 , wherein repeating for one or more iteration cycles further comprises iterating until a maximum number of iterations and/or a maximum programming voltage is reached.

14. The method of claim 9 , further comprising:

profiling the non-volatile memory to determine a profile of a programming voltage increase for a given percentage of the number of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory; and

referring to the profile to determine the programming voltage increase for the number of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory.

15. The method of claim 9 , further comprising:

keeping programming statistics on the non-volatile memory to determine a profile of a programming voltage increase for a given percentage of the number of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory; and

referring to the profile to determine the programming voltage increase for the number of the plurality of data bits that failed to correctly program into the plurality of memory cells of the non-volatile memory.

16. A non-volatile memory device comprising:

a non-volatile memory array;

wherein the non-volatile memory device is adapted to program a plurality of data bits into the non-volatile memory array by,

applying a programming voltage to a plurality of memory cells that are selected to be programmed with the plurality of data bits,

verifying the plurality of data bits programmed into the plurality of memory cells of the non-volatile memory array, and

increasing the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells.

17. The non-volatile memory device of claim 16 , wherein the non-volatile memory device is further adapted to program the plurality of data bits into the non-volatile memory array by,

disabling programming of one or more memory cells that correctly programmed, and

applying the increased programming voltage to program one or more bits of the data that failed to program correctly.

18. The non-volatile memory device of claim 16 , wherein the non-volatile memory device is adapted to repeat programming the plurality of data bits into the non-volatile memory array for one or more iteration cycles, until none of the plurality of data bits fail to verify or a maximum number of iterations is reached.

19. The non-volatile memory device of claim 16 , wherein the non-volatile memory device is adapted to increase the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells by referring to a profile table to determine the programming voltage increase for the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells, where the profile table is specified by profiling the non-volatile memory device to determine the desired programming voltage delta increase for subsequent programming cycles for a given failing percentage of data bits that are being programmed into the non-volatile memory device.

20. The non-volatile memory device of claim 19 , wherein the non-volatile memory device is adapted to increase the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells by referring to memory cell programming statistics of the non-volatile memory array and the profile table to determine the programming voltage increase for the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells.

21. A system comprising:

a host coupled to one or more non-volatile memory devices, wherein the system is adapted to program a plurality of data bits into a selected non-volatile memory device in a programming operation by,

applying a programming voltage to a plurality of memory cells of the selected non-volatile memory device that are selected to be programmed with the plurality of data bits,

verifying the plurality of data bits programmed into the plurality of memory cells of the selected non-volatile memory device, and

increasing the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells.

22. The system of claim 21 , wherein the system is adapted to attempt to program any memory cells of the plurality of memory cells that failed to program correctly by,

disabling programming of one or more memory cells that verified as correctly programmed, and

applying the increased programming voltage in a programming operation to one or more bits of the data that failed to verify.

23. The system of claim 21 , wherein the system is adapted to repeat the programming operation for one or more iteration cycles, until all of the plurality of data bits verify correctly or a maximum number of iterations is reached.

24. The system of claim 21 , wherein the system is adapted to increase the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells by referring to a profile table to determine the programming voltage increase for the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells.

25. The system of claim 21 , wherein the non-volatile memory device is adapted to increase the programming voltage in a selected relation to the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells by referring to a memory cell wear level of the non-volatile memory device and a profile table to determine the programming voltage increase for the percentage of the plurality of data bits that failed to correctly program into the plurality of memory cells.

26. The system of claim 21 , wherein the host is one of a processor and a memory controller.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
Continuity (2)
Continuation 1115622300 · Jun 17, 2005
Related Publication 20080031047A1 · Feb 7, 2008