A machine-implementable method for managing detection and correction of errors and erasures in product-coded data arrays in a storage subsystem, said subsystem having a cyclic, tracked medium for storing the data arrays, an accessing mechanism, a local memory, and a processor coupling the mechanism and the memory and responsive to extrinsic commands for (1) causing the mechanism to read selected array data from the medium and write into the local memory, (2) ascertain and correct the error and erasure state from syndromes derived from said array data in row and column directions orthogonally, and (3) stage the corrected data from said subsystem, comprising the steps of:
- (a) iteratively syndrome processing the array data written into the memory in t1 row major order including (1) classifying each row as containing either no errors, random errors, or erasure errors;
- (2) forming a map (table 1) of indicia and correction patterns for each row containing random errors;
- (3) forming a pointer to each row containing erasure errors;
- and (4) effectuating the row array random error corrections in the memory according to the row map;
- and
- (b) iteratively syndrome processing the array data written into the memory in column major order including (1) forming a map (table 2) of indicia and correction patterns for each pair adjacent position within a column containing erasure errors as indexed by the row pointer, (2) forming a map for each position within a column containing random errors, and (3) effectuating the column array erasure corrections and the random error corrections in the memory according to the column map.