A method of wear leveling in a flash storage device comprising a plurality
of data blocks is provided. The method comprises the steps of detecting a
data error in a read of dynamic data from a first data segment of a first
data block of the plurality of data blocks, correcting the data error,
and moving the dynamic data from the first data segment to a second data
segment in a second one of the plurality of data blocks.