An error correction processor for correcting errors in binary data read from a disk storage medium, wherein the binary data comprises a first and second set of intersecting ECC codewords of a multi-dimensional codeword, the error correction processor comprising:
- (a) a data buffer for storing the ECC codewords read from the disk storage medium;
- (b) a syndrome generator for generating ECC syndromes in response to an ECC codeword in the second set;
- (c) an error-locator polynomial generator for generating an error locator polynomial .sigma.(x) in response to the ECC syndromes;
- (d) a selector for selecting between the error-locator polynomial .sigma.(x) and an erasure polynomial .sigma.(x).sub.EP, wherein:
- (i) the erasure polynomial .sigma.(x).sub.EP is generated while processing the first set codewords;
- and
- (ii) the erasure polynomial .sigma.(x).sub.EP is used to correct at least two codewords in the second set;
- and
- (e) an error corrector for generating correction values in response to either the error-locator polynomial .sigma.(x) or the erasure polynomial .sigma.(x).sub.EP output by the selector, the correction values for correcting errors in the ECC codeword in the second set.