Patent ID: 8694849

Claim:
A system comprising: a data storage module comprising a first storage block and a second storage block, the first storage block comprising a first memory page, the second storage block comprising a first memory page; and a data storage controller coupled to the data storage module, the data storage controller further comprising an error correction module configured to generate a first error correction code unit for a first data unit, the first error correction code unit having an error correction capacity and a second error correction code unit for the first data unit, the second error correction code unit having an error correction capacity, wherein the error correction capacity of the first error correction code unit is distinct from the error correction capacity of the second error correction code unit, the data storage controller configured to store the first data unit into the first memory page of the first storage block, store the first error correction code unit for the first data unit into the first memory page of the first storage block, and store the second error correction code unit for the first data unit into the first memory page of the second storage block, wherein the first memory page of the first storage block does not have a storage capacity sufficient for storing the first data unit, the first error correction code unit for the first data unit and the second error correction code unit for the first data unit.