Methods and device are provided for detecting and correcting errors in error correction coded (ECC) data sectors. The ECC data sectors are sequentially received as a data stream from a data storage medium. The device includes a buffer and an error detection and correction (EDAC) circuitry. The buffer is arranged to sequentially receive and store the ECC data sectors from the data storage medium. The EDAC circuitry is arranged to sequentially receive the ECC data sectors for sequentially generating a plurality of syndrome sets for the ECC data sectors with one syndrome set per ECC data sector. Each syndrome set includes a plurality of syndromes. The EDAC circuitry sequentially stores the syndrome sets into the buffer while accessing the stored syndrome sets sequentially to decode errors in the associated ECC data sectors. Preferably, erasure information containing one or more bad data byte locations is also generated and stored along with the syndromes for each ECC data sector. Then, the stored erasure information is accessed along with the syndromes for decoding errors in the ECC data sectors.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for detecting and correcting errors in error correction coded (ECC) data sectors, the ECC data sectors being sequentially received from a data storage medium, the method comprising the operations of: a) receiving a current ECC data sector, the current ECC data sector being an ECC data sector currently being received; b) while receiving the current ECC data sector, detecting errors in the current ECC data sector by generating a set of syndromes, the set of syndromes including non-zero syndromes indicating errors; c) storing the set of syndromes and erasure information for the current ECC data sector and the ECC data sector in a buffer upon receipt of the current ECC data sector; d) repeating the operations a) through c) for a next ECC data sector, wherein the current ECC data sector becomes a past sector and the next ECC data. sector becomes the current ECC data sector; and e) while repeating the operations a) through c) for the current sector, decoding the errors for the past ECC data sector by accessing the set of syndromes and the erasure information for the past ECC data sector without interrupting the receipt of the next ECC data sector, the accessing the set of syndromes and the erasure information further including: determining if a sector counter is equal to zero; if the sector counter is equal to zero, reading the set of syndromes and erasure information; and using the set of syndromes and the erasure information to decode the errors for the past ECC data sector.
2. The method as recited in claim 1 , wherein the buffer is configured to store a plurality of sets of syndromes, each set of syndromes being associated with an ECC data sector, wherein the sets of syndromes are sequentially accessed for decoding the syndromes.
3. The method as recited in claim 1 , wherein the data storage medium is a hard disk medium.
4. The method as recited in claim 1 , wherein the data storage medium is an optical medium.
5. The method as recited in claim 1 , wherein the operation e) further comprises the operation of: determining error locations and error patterns from the set of syndromes for the past ECC data sector.
6. The method as recited in claim 5 , wherein the operation e) further comprises the operation of: correcting the detected errors in the past ECC data sector by using the determined error locations and error patterns.
7. The method as recited in claim 1 , wherein the set of syndromes for the current ECC data sector is stored in a buffer so as to decouple syndrome generation from the operation of decoding the errors.
8. The method as recited in claim 7 , wherein the buffer is a circular buffer that is configured to contain a predetermined number of sets of syndromes.
9. A device for detecting and correcting errors in error correction coded (ECC) data sectors, the ECC data sectors being sequentially received as a data stream from a data storage medium, the device comprising: a buffer for sequentially receiving and storing the ECC data sectors from the data storage medium; an error detection and correction (EDAC) circuitry arranged to sequentially receive the ECC data sectors for sequentially generating a plurality of syndrome sets for the ECC data sectors to detect errors in the ECC data sector, one syndrome set per ECC data sector, each syndrome set including a plurality of syndromes the plurality of syndromes including non-zero syndromes indicating errors, the EDAC circuitry sequentially storing the syndrome sets into the buffer while accessing the stored syndrome sets sequentially to decode errors in the associated ECC data sectors without interrupting the receipt of the next ECC data sector; and a sector counter configured to indicate whether the buffer contains syndromes, the sector counter configured to be decremented after a read operation and incremented after a write operation.
10. The device as recited in claim 9 , wherein the device generates erasure information containing bad data byte locations, wherein the erasure information is stored along with each of the syndrome sets, and wherein the stored erasure information is accessed along with the associated syndrome set for decoding the errors in the associated ECC data sector.
11. The device as recited in claim 9 , wherein the EDAC circuitry decodes the errors in the ECC data sectors by generating error locations and error patterns from the accessed syndrome sets.
12. The device as recited in claim 9 , wherein the buffer is a circular buffer that is configured to contain a predetermined number of sets of syndromes.
13. The device as recited in claim 9 , wherein the data storage medium is a hard disk medium.
14. The device as recited in claim 9 , wherein the data storage medium is an optical medium.
15. The device as recited in claim 9 , further comprising: a buffer manager coupled between the EDAC circuitry and the buffer to sequentially transmit the generated syndrome sets for storage in the buffer, the buffer manager sequentially accessing and providing the stored syndrome sets in the buffer to the EDAC circuitry for decoding of the errors.
16. The device as recited in claim 15 , further comprising: a disk manager arranged to sequentially receive and provide the ECC data sectors to the buffer manager.
17. The device as recited in claim 16 , wherein the disk manager is coupled to provide the ECC data sectors to the EDAC circuitry for generating the syndrome. sets.
18. The device as recited in claim 16 , wherein the device generates erasure information containing bad data byte locations, wherein the erasure information is stored along with each of the syndrome sets, and wherein the stored erasure information is accessed along with the associated syndrome set for decoding the errors in the associated ECC data sector.
19. The device as recited in claim 9 , wherein the EDAC circuitry further comprises: a syndrome generator receiving the ECC data sectors and generating the syndrome sets from the received ECC data sectors, the syndrome generator transmitting the each of the syndrome sets to the buffer for storage; and an ECC decoder arranged to receive the syndrome sets from the buffer for decoding errors in the ECC data sectors.
20. The device as recited in claim 19 , wherein the ECC decoder determines error locations and error patterns for the ECC data sectors, wherein the device further comprises: a correction circuitry coupled to receive the error locations and the error patterns from the ECC decoder, the correction circuitry being arranged to correct the errors in the ECC data sectors.
21. A method for detecting and correcting errors in error correction coded (ECC) data sectors, the ECC data sectors being sequentially received as a data stream from a data storage medium, the method comprising: sequentially receiving and storing the ECC data sectors from the data storage medium; while receiving the ECC data sectors, sequentially generating a plurality of syndrome sets for the ECC data sectors to detect errors in the ECC data sector, one syndrome set per ECC data sector, each syndrome set including a plurality of syndromes, the plurality of syndromes including non-zero syndromes indicating errors; sequentially storing the syndrome sets; and accessing the stored syndrome sets sequentially to decode errors in the associated ECC data sectors, without interrupting the receipt of the next ECC data sector, the accessing the set of syndromes and the erasure information further including: determining if a sector counter is equal to zero; if the sector counter is equal to zero, reading the set of syndromes and erasure information; and using the set of syndromes and the erasure information to decode the errors for the past ECC data sector.
22. The method as recited in claim 21 , wherein erasure information containing bad data byte locations is generated and stored along with each of the syndrome sets, and wherein the stored erasure information is accessed along with the associated syndrome set for decoding the errors in the associated ECC data sector.
23. The method as recited in claim 21 , wherein the operation of accessing the stored syndrome sets further comprises the operations of: decoding the errors in the associated ECC data sectors; correcting the errors in the associated ECC data sectors.
24. The method as recited in claim 23 , wherein the errors are decoded by determining error locations and error patterns.
25. The method as recited in claim 21 , wherein the data storage medium is a hard disk medium.
26. The method as recited in claims 21 , wherein the data storage medium is an optical disk medium.
27. The method as recited in claim 23 , wherein the syndrome sets are stored in a buffer so as to decouple syndrome generation from the operation of decoding the errors.
28. The method as recited in claim 27 , wherein the buffer is configured to store the syndrome sets, wherein the syndrome sets are sequentially accessed for decoding the syndromes.
29. The method as recited in claim 27 , wherein the buffer is a circular buffer that is configured to contain a predetermined number of sets of syndromes.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
February 25, 1999
December 9, 2003
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.