Claims
- 1. A method for encoding and decoding blocks having a predetermined number of sectors of data bytes to detect and correct data bytes in error in each sector of a block, the method comprising the steps of:
(a) generating sector level check bytes for each sector in the block responsive to the data bytes in each sector according to a first level of an error correction code, and generating block level check bytes for at least one sector in the block responsive to the sector level check bytes of at least two sectors, including the at least one sector, according to at least a second level of the error correction code; and (b) processing the block to detect and correct data bytes in error in each sector within the capability of the sector level check bytes, to detect and correct data bytes in error in the at least two sectors that exceed the correction capability of the sector level check bytes but within the correction capability of the block level check bytes, or to indicate that the data bytes in error in the at least two sectors exceed the correction capability of each of the sector level check bytes and the block level check bytes.
- 2. The method according to claim 1 further comprising the step of:
re-generating the block level check bytes for the at least one sector responsive to the data bytes in error detected in each sector.
- 3. The method according to claim 1 further comprising the step of:
disabling the step of generating the block level check bytes when the write command is fragmented and is less than or equal to one multi-sector block of data bytes.
- 4. The method according to claim 1 wherein each sector has 512 data bytes and each block has eight sectors.
- 5. The method according to claim 1 wherein the blocks represent audio and visual information.
- 6. The method according to claim 1 wherein the at least two sectors are adjacent to each other.
- 7. The method according to claim 1 further comprising the step of:
receiving logical block addresses (LBAs) from a host operating system for each write/read command, wherein the LBAs are translated into physical locations within blocks located on a track of a moving storage medium of a data storage device; controlling the step of generating when writing data bytes responsive to the LBAs; and controlling the step of processing when reading data bytes responsive to the LBAs.
- 8. A method for encoding and decoding blocks having a predetermined number of sectors of data bytes to detect and correct data bytes in error in each sector of a block, wherein each sector has 512 data bytes, wherein the blocks represent audio and visual information, the method comprising the steps of:
(a) receiving logical block addresses (LBAs) from a host operating system for each write command and each read command, wherein the LBAs are translated into physical assignment of each sector to corresponding blocks on tracks on a moving storage medium of a data storage device, wherein an integral multiple of blocks are written on each track; (b) writing data bytes to the moving storage medium responsive to the LBAs, wherein the step of writing further comprises the step of:
(b1) generating sector level check bytes for each sector in the block responsive to the data bytes in each sector according to a first level of an error correction code, and generating block level check bytes for at least one sector in the block responsive to the sector level check bytes of at least two sectors, including the at least one sector, according to at least a second level of the error correction code; (c) reading data bytes from the moving storage medium responsive to the LBAs, wherein the step of reading further comprises the step of:
(c 1) processing the block to detect and correct data bytes in error in each sector within the capability of the sector level check bytes, to detect and correct data bytes in error in the at least two sectors that exceed the correction capability of the sector level check bytes but within the correction capability of the block level check bytes, or to indicate that the data bytes in error in the at least two sectors exceed the correction capability of each of the sector level check bytes and the block level check bytes; (d) re-generating the block level check bytes for the at least one sector responsive to the data bytes in error detected in each sector during the step of reading.
- 9. In a data storage device, an apparatus for encoding and decoding blocks having a predetermined number of sectors of data bytes to detect and correct data bytes in error in each sector of a block, the apparatus comprises:
(a) an encoder for generating sector level check bytes for each sector in the block responsive to the data bytes in each sector according to a first level of an error correction code, and generating block level check bytes for at least one sector in the block responsive to the sector level check bytes of at least two sectors, including the at least one sector, according to at least a second level of the error correction code; and (b) a decoder for processing the block to detect and correct data bytes in error in each sector within the capability of the sector level check bytes, to detect and correct data bytes in error in the at least two sectors that exceed the correction capability of the sector level check bytes but within the correction capability of the block level check bytes, or to indicate that the data bytes in error in the at least two sectors exceed the correction capability of each of the sector level check bytes and the block level check bytes.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to U.S. Pat. No. 5,946,328, issued on Aug. 31, 1999, invented by Cox et al., and assigned to the assignee of the present invention, which is herein incorporated into the present application by this reference.