Patent ID: 8223554

Claim:
A non-volatile storage apparatus, comprising: a plurality of non-volatile storage elements; and one or more managing circuits in communication with the plurality of non-volatile storage elements, the one or more managing circuits perform multiple programming processes for the plurality of non-volatile storage elements, each of the programming processes operates to program at least a subset of the non-volatile storage elements to a respective set of target conditions using program pulses, for at least a subset of the programming processes the one or more managing circuits identify a program pulse associated with achieving a particular result for a respective programming process and perform one or more sensing operations at one or more alternative results for the non-volatile storage elements, the one or more managing circuits use a first alternative result of the one or more alternative results and the identification of the program pulse to adjust programming for a subsequent programming process for the non-volatile storage elements if the one or more sensing operations determined that greater than a predetermined number of non-volatile storage elements achieved the first alternative result, the one or more managing circuits use the identification of the program pulse to adjust programming for the subsequent programming process for the non-volatile storage elements if the one or more sensing operations determined that less than a required number of non-volatile storage elements achieved any of the alternative results.