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.