Patent ID: 9417962
Filing Date: 2016-08-16
CPC Classification: G06F,H03M

Claim Text:
1. A method for recovering data in a storage device, wherein the storage device comprises a controller and a plurality of storage units, and wherein the method is performed by the controller and comprises: receiving a data stream; dividing the data stream into a plurality of data blocks, wherein each data block comprises data that comprises a plurality of bits; obtaining a code block using the plurality of data blocks; storing the plurality of data blocks and the code block in the plurality of storage units separately; determining a position of damaged data from among the plurality of data blocks and the code block; obtaining a sub-block from each block in the plurality of data blocks and the code block when there are one or more blocks with the damaged data in the plurality of data blocks and the code block, wherein the sub-block spans from an Mth bit to an Nth bit of the block, wherein the Mth bit and the Nth bit are each positive integers, wherein the Mth bit and the Nth bit are determined according to the position of the damaged data, wherein a number of sub-blocks contains damaged data is no greater than a number of code blocks, and wherein a size of the sub-block is less than a size of each of the plurality of data blocks and the code block; and reconstructing data in one or more sub-blocks that contain the damaged data using other sub-blocks with undamaged data.