Patent attributes
A non-volatile storage system is proposed with an efficient process for recovering from programming failures. In response to determining that a program fault occurred, and prior to completing the programming, the system programs data associated with the program fault to a back-up location. After programming the data associated with the program fault to the back-up location, the system continues programming including programming data that has not yet been subject of a programming process to the back-up location. After completing the programming process, the system moves already programmed data near the location of the program fault to the back-up location.