Patent ID: 9053810
Filing Date: 2015-06-09
Classification: G11C

Abstract:
1. A method for operating a non-volatile storage device, comprising: storing write data in a plurality of sets of latches, the plurality of sets of latches comprise a set of latches for each non-volatile storage element of a plurality of non-volatile storage elements; performing each program-verify iteration of a plurality of program-verify iterations in a programming operation by applying a program pulse to the plurality of non-volatile storage elements followed by performing a program-verify test involving the non-volatile storage elements; updating the set of latches based on results of the program-verify tests; and if a number of the non-volatile storage elements which have not completed programming falls below a first threshold number: setting a program status=pass to indicate that the programming operation has completed, reconstructing the write data from the sets of latches as reconstructed write data, performing a read operation involving the non-volatile storage elements to obtain read data, determining a number of mismatches between the read data and the reconstructed write data, and determining whether re-writing of the write data is required based on the number of the mismatches, wherein: each set of latches stores an N-bit combination which is among 2^N unique N-bit combinations, N is an integer and N≧3; and the reconstructing the write data from the sets of latches comprises performing logical operations on bits stored in the sets of latches, and performing at least one read operation to distinguish among non-volatile storage elements of the plurality of non-volatile storage elements which have sets of latches having a same N-bit combination but which are in different data states of a plurality of data states, wherein the different data states are separated from one another by at least one other data state of the plurality of data states.