Patent ID: 8190963

Claim:
An apparatus comprising: an error detection encoder configured to produce n error detection codewords based on user data, where n is an integer greater than one, and wherein each of the n error detection codewords comprises (i) a portion of the user data, and (ii) one or more error detection bits based on the portion of the user data; an error correction encoder configured to (i) detect errors of each of the n error detection codewords based on the one or more error detection bits in the error detection codewords, and (ii) produce an error correction codeword based on the n error detection codewords, wherein the error correction codeword comprises (i) the n error detection codewords, and (ii) one or more error correction bits; a channel encoder (i) generating a channel codeword based on the error correction codeword, and (ii) storing the channel codeword in a storage medium; a channel detector configured to (i) detect a signal on a channel of the storage medium, (ii) output a detected sequence representing the detected signal, and (iii) generate one or more error indications for the detected sequence based on the channel codeword, wherein the detected signal comprises the channel codeword; and an error correction code circuit connected to the channel detector and configured to (i) correct errors in the detected sequence based on the one or more error indications, and (ii) decode the detected sequence based on the one or more error correction bits in the error correction codeword.