Program method with optimized voltage level for flash memory
First Claim
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.
7 Assignments
0 Petitions
Accused Products
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.
94 Citations
26 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
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. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
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. - View Dependent Claims (17, 18, 19, 20)
-
-
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. - View Dependent Claims (22, 23, 24, 25, 26)
Specification