Patent ID: 8248850

Claim:
A method for programming a set of storage elements in a non-volatile storage system, the method comprising: providing write data in data latches associated with storage elements in a first subset of the set which are to be kept in an erased state, and write data in data latches associated with storage elements in a second subset of the set which are to be programmed to respective target data states; in a programming operation, programming the storage elements in the second subset; updating the write data of the data latches associated with the storage elements in the second subset based on a progress of the storage elements in the second subset during the programming, thereby providing a same updated write data for storage elements in the second subset which reach their respective target data states; determining that no more than a maximum number of the storage elements in the second subset have failed to reached their respective target data states, so that the programming of the storage elements in the second subset is considered to be successfully completed; and responsive to the successful completion of the programming of the storage elements in the second subset, identifying the storage elements in the first subset based on the write data in the data latches associated with storage elements in the first subset, the write data in the data latches associated with the storage elements in the first subset is distinguishable from the same updated write data for the storage elements in the second subset which reach their respective target data states, and determining a number of the storage elements in the first subset which have an error by performing a read operation for the storage elements in the first subset which distinguishes between the erased state and an adjacent state of the respective target data states.