Patent ID: 7453724

Claim:
A method for programming a group of non-volatile memory cells in an array of non-volatile memory cells, comprising: receiving a programming window that identifies a plurality of memory cells in the array of non-volatile memory cells, where the programming window identifies fewer than one half of a total number of non-volatile memory cells in a row of memory cells in the array or more than one half of the total number of non-volatile memory cells in the row of memory cells in the array; identifying a group of non-volatile memory cells to be programmed from the plurality of memory cells in the programming window; programming the group of non-volatile memory cells; determining a programming state for each memory cell in the group of non-volatile memory cells; storing, in a buffer, the programming state for each memory cell in the group of non-volatile memory cells; identifying non-programmed memory cells in the group of non-volatile memory cells based on the programming state for each memory cell in the group of non-volatile memory cells stored in the buffer; and reprogramming the non-programmed memory cells.