Patent ID: 8448047

Claim:
A storage device comprising: a data transfer unit configured to store to-be-transferred data into a nonvolatile memory, when an abnormal end occurs, the to-be-transferred data including to-be-saved data stored in a cache memory and parity data for correcting a data error in the to-be-saved data; a data reading unit configured to read stripes from the nonvolatile memory when power is supplied to the storage device after an abnormal end, the stripes being formed by dividing the to-be-transferred data by a predetermined stripe size; an additional data adding unit configured to, when the data reading unit does not finish reading one of the stripes within a predetermined period of time, add additional data to the one of the stripes until a size of the one of the stripes becomes equal to the stripe size; a data error checking unit configured to detect whether a data error exists in the stripes read out by the data reading unit; a data correcting unit configured to, when the data error checking unit detects the data error, correct the detected data error, based on the stripes related to an error data stripe to which the detected data error belongs; and a data writing unit configured to write into the cache memory data contained in the stripes not including the data error detected by the data error checking unit, and write into the cache memory data contained in the corrected error data stripe including the data error corrected by the data correcting unit.