The present invention provides a method of programming, into a computer, a memory
array having a plurality of memory cells, including a verification step 1 of
verifying whether a memory cell has been already programmed or it has not been
programmed yet per memory cell to be programmed, a flagging step 2 of flagging
the memory cell in the case where it is verified that the memory cell has not been
programmed yet in the several verifying steps, to which the memory cell is subjected
thereafter, even if it is verified that the memory cell has been already programmed,
a first application step 3 of applying a programming pulse having a programming
level to the not-programmed memory cell without any flag, a repeat step 4 of
repeating the verification step 1, the flagging step 2 and the first
application step 3 until it is verified that all of the memory cells have
been already programmed at least once, and a second application step 5 of
applying a boost pulse having a boost programming level lower than that of the
programming level to the memory cell with the flag.