Systems and methods are disclosed to detect and correct errors in a flash
memory using an error correction cache that provides error correction
information by accessing data from a physical block number (PBN) of the
flash memory; and if a data error occurred, applying error correction
information stored in the cache corresponding to the accessed PBN to
correct the data error.