Patent ID: 8892981

Claim:
A method for correcting for program disturbs in a non-volatile memory (“NVM”), the non-volatile memory comprising a plurality of super blocks, the method comprising: programming user data to a page of a super block of the plurality of super blocks, wherein the page is located in a first portion of the NVM; updating a first outer codeword of a plurality of outer codewords that is associated with the first portion of the NVM, wherein the first outer codeword is stored in volatile memory, wherein outer codewords are generated by applying an error correction code to user data; detecting if a program disturb has occurred in the super block; in response to detecting that the program disturb has occurred, performing garbage collection on the super block; and using at least the updated first outer codeword to recover from uncorrectable error correction code (“uECC”) errors detected in the super block.