Patent ID: 7643348

Claim:
In a nonvolatile memory having an array of memory cells, wherein the memory cells are individually programmable to one of a range of threshold voltage levels, a method of programming a memory cell to a target threshold voltage level, comprising: providing a predetermined function for a memory cell under programming, the function yielding programming voltage value as a function of threshold voltage level a memory cell is targeted to be programmed thereto; programming the memory cell to the target threshold voltage level with a programming voltage having increasing amplitude; and stopping programming of the memory cell after the programming voltage has substantially reached a value as determined by the predetermined function evaluated at the target threshold voltage level; and wherein said providing a predetermined function includes: designating a checkpoint of the function as a designated checkpoint threshold voltage level programmable by a corresponding checkpoint programming voltage value; determining the corresponding checkpoint programming voltage value by alternately programming and verifying until the checkpoint threshold voltage level is program-verified; and calibrating the predetermined function to yield the checkpoint programming voltage value when evaluated at the checkpoint threshold voltage level before being used to determine a programming voltage value for programming the memory cell to the target threshold voltage level.