Patent ID: 8400854

Claim:
A method for detecting at-risk non-volatile storage elements, comprising: programming first data into a first set of non-volatile storage elements; after successfully completing the programming, determining whether the first set of non-volatile storage elements are prone to fail; and if the first set of non-volatile storage elements are prone to fail, re-programming the first data to a second set of non-volatile storage elements that are different than the first set of non-volatile storage elements; wherein the determining whether the first set of non-volatile storage elements are prone to fail comprises: performing a first test on the first set of non-volatile storage elements to determine whether the first set of non-volatile storage elements are prone to fail, if the first set of non-volatile storage elements fail the first test, performing a second test on the first set of non-volatile storage elements to determine whether the first set of non-volatile storage elements are prone to fail, and concluding that the first set of non-volatile storage elements are prone to fail if the first set of non-volatile storage elements fail the second test; wherein the programming includes performing multiple iterations of a programming operation and maintaining a particular programming loop counter for the first set of non-volatile storage elements; wherein the performing the first test comprises comparing the particular memory loop counter to data based on other memory loop counters.