Patent ID: 6986095

Claim:
An error correction device comprising: a buffer memory for storing at least one sector of data comprising N words of error correcting code, each of such N words comprising a data unit, an inner code parity unit, and one error detecting code; a syndrome calculating means for generating syndrome for data read from said buffer memory; an error correcting means for correcting error-containing data in said buffer memory by detecting an error position from the syndrome generated by said syndrome calculating means and by calculating an error value; an error detecting means for detecting an error, individually for each sector, in error-corrected data generated by said error correcting means; a storing means for storing mid-term results of an error detecting process in said error detecting means, in code word units; a bus control means for controlling data transfer between said buffer memory, said syndrome calculating means, said error correcting means, and said error detecting means; and a system control means for performing processes for error correction in predetermined procedures at least one time, wherein said bus control means comprises: a before-syndrome data transfer sub means for transferring data to be corrected from said buffer memory to said syndrome calculating means and to said error detecting means concurrently in code word units until said syndrome calculating means detects an error-containing code; an after-syndrome data transfer sub means for, when said syndrome calculating means detects an error-containing code, transferring subsequent data in said buffer memory only to said syndrome calculating means in code word units; and an error-detecting data transfer sub means for transferring error-corrected data from said buffer memory to said error detecting means in code word units for error detection, after said error correcting means corrects an error contained in data in said buffer memory based on the syndrome transmitted by said syndrome calculating means, said transferred error-corrected data including a code word from which the error-containing data has been detected up to and a final code word; said error detecting means comprises: a parallel process sub means for, until said syndrome calculating means detects an error-containing code, storing the mid-term results of the error detecting process to said storing means in code word units, and executing error detection of a code word transmitted from said buffer memory in parallel with syndrome calculation done by said syndrome calculating means; and an after-correction error detecting sub means for executing error detection after said syndrome calculating means detects an error-containing data, for data transferred from said buffer memory after an error correction done by said error correcting means, following a code word at which an error code is detected using mid-term results already stored in said storing means, of code words before detection of an error code.