A circuit comprising: an interface configured to receive a first block of data ; an error correction unit configured to perform a plurality of error correction schemes; and circuitry configured to: divide the first block of data into a first plurality of sub-blocks of data ; compare a portion of each of two or more sub-blocks of the first plurality of sub-blocks of data to one another; based at least in part on a determination that two or more compared portions of the two or more sub-blocks comprise the same data, generate a second block of data comprising a separate sub-block for each of the first plurality of sub-blocks of data of the first block of data, wherein the second block of data: comprises error correction data corresponding to one of the plurality of error correction schemes, wherein the error correction data is inserted to replace data removed from at least one of the two or more compared portions of the two or more sub-blocks that comprise the same data; and has a size that is no greater than a size of the first block of data; and convey the second block of data via an interface. an interface configured to receive a first block of data ; an error correction unit configured to perform a plurality of error correction schemes; and circuitry configured to: divide the first block of data into a first plurality of sub-blocks of data ; compare a portion of each of two or more sub-blocks of the first plurality of sub-blocks of data to one another; based at least in part on a determination that two or more compared portions of the two or more sub-blocks comprise the same data, generate a second block of data comprising a separate sub-block for each of the first plurality of sub-blocks of data of the first block of data, wherein the second block of data: comprises error correction data corresponding to one of the plurality of error correction schemes, wherein the error correction data is inserted to replace data removed from at least one of the two or more compared portions of the two or more sub-blocks that comprise the same data; and has a size that is no greater than a size of the first block of data; and convey the second block of data via an interface. divide the first block of data into a first plurality of sub-blocks of data ; compare a portion of each of two or more sub-blocks of the first plurality of sub-blocks of data to one another; based at least in part on a determination that two or more compared portions of the two or more sub-blocks comprise the same data, generate a second block of data comprising a separate sub-block for each of the first plurality of sub-blocks of data of the first block of data, wherein the second block of data: comprises error correction data corresponding to one of the plurality of error correction schemes, wherein the error correction data is inserted to replace data removed from at least one of the two or more compared portions of the two or more sub-blocks that comprise the same data; and has a size that is no greater than a size of the first block of data; and comprises error correction data corresponding to one of the plurality of error correction schemes, wherein the error correction data is inserted to replace data removed from at least one of the two or more compared portions of the two or more sub-blocks that comprise the same data; and has a size that is no greater than a size of the first block of data; and convey the second block of data via an interface. <EOS>