Patent ID: 7076723

Claim:
A method of correcting data stored on a storage medium, comprising: retrieving a plurality of data blocks from the storage medium, wherein the plurality of data blocks retrieved from the storage medium form a first logical data array having rows and columns, wherein a row corresponds to a data block and a column corresponds to a data set; retrieving a plurality of error correction codes (ECCs) from the storage medium, wherein an ECC corresponds to a data set having data from multiple data blocks, wherein the ECCs were generated prior to storing the data blocks and the ECCs in the storage medium; identifying a data set in the first logical data array as having an error based on the data in the data set and the ECC corresponding to the data set, wherein an error indicates that the data in the data set retrieved from the storage medium is different from the data in the data set at the time the data was originally stored in the storage medium; forming a second logical data array from the first logical data array, wherein the second logical data array only includes columns from the first logical data array corresponding to data sets identified as having an error; and correcting data in the data set in the second logical data array using the ECC corresponding to the data set.