Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer
First Claim
1. A system for reading data, the system comprising:
- logic configured to read a plurality of data sets one or more times, each data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of at least one of the plurality of data sets, settings are changed in an attempt to better read the at least one of the plurality of data sets;
logic configured to store one or more of the portions of at least one of the plurality of data sets to a reserved data buffer when the one or more portions are correctable using C1-error correction code (ECC) to form one or more stored portions;
logic configured to aggregate, for each of the plurality of data sets that have all portions thereof stored to the reserved data buffer, all stored portions thereof to form one or more assembled data sets;
logic configured to determine whether C2-ECC is capable of correcting all errors in the one or more assembled data sets;
logic configured to correct any remaining errors in the one or more assembled data sets using C2-ECC to form one or more corrected data sets, and to send the one or more corrected data sets to a host when C2-ECC is capable of correcting all errors in the one or more assembled data sets; and
logic configured to reread at least a first uncorrected data set using a different setting in an error recovery procedure (ERP) when an error in the first uncorrected data set is not correctable using C2-ECC or an error in any portion of the first uncorrected data set is not correctable using C1-ECC, wherein the first uncorrected data set is positioned prior to any other uncorrected data set in a read direction.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a system includes logic adapted to read a plurality of data sets from a medium one or more times; logic adapted to store portions of some of the data sets to a reserved data buffer when the portions are correctable using C1-error correction code (ECC); logic adapted to aggregate all stored portions for each of the complete data sets to form assembled data sets; logic adapted to determine whether C2-ECC is capable of correcting all errors in the assembled data sets, to correct any remaining errors in the assembled data sets, and to send the corrected data sets to a host when C2-ECC is capable of correcting all errors in the assembled data sets; and logic adapted to reread at least a first uncorrected data set from the medium using a different setting when an error in the first uncorrected data set is not correctable.
17 Citations
25 Claims
-
1. A system for reading data, the system comprising:
-
logic configured to read a plurality of data sets one or more times, each data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of at least one of the plurality of data sets, settings are changed in an attempt to better read the at least one of the plurality of data sets; logic configured to store one or more of the portions of at least one of the plurality of data sets to a reserved data buffer when the one or more portions are correctable using C1-error correction code (ECC) to form one or more stored portions; logic configured to aggregate, for each of the plurality of data sets that have all portions thereof stored to the reserved data buffer, all stored portions thereof to form one or more assembled data sets; logic configured to determine whether C2-ECC is capable of correcting all errors in the one or more assembled data sets; logic configured to correct any remaining errors in the one or more assembled data sets using C2-ECC to form one or more corrected data sets, and to send the one or more corrected data sets to a host when C2-ECC is capable of correcting all errors in the one or more assembled data sets; and logic configured to reread at least a first uncorrected data set using a different setting in an error recovery procedure (ERP) when an error in the first uncorrected data set is not correctable using C2-ECC or an error in any portion of the first uncorrected data set is not correctable using C1-ECC, wherein the first uncorrected data set is positioned prior to any other uncorrected data set in a read direction. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A tape drive, comprising:
-
a data buffer comprising a reserved data buffer; logic configured to read an initial error data set followed by a plurality of data sets subsequent to the initial error data set once or more using different settings until; all rows of the initial error data set are assembled in a reserved data buffer and no uncorrectable errors remain, or at least one uncorrectable data set remains in a plurality of assembled data sets, or a maximum number of rereads has been reached; logic configured to, after each rereading of the initial error data set and one or more of the plurality of data sets subsequent to the initial error data set in the same forward motion, store rows of each data set which either have no errors or are correctable using C1-error correction code (ECC) to their respective reserved data buffer areas, unless a matching row already exists in the reserved data buffer that has fewer corrected errors therein; logic configured to assemble the initial error data set from the rows stored for the initial error data set in the reserved data buffer to form an initial assembled data set; logic configured to correct any remaining errors in the initial assembled data set using C2-ECC to form an initial reconstructed data set; and logic configured to send the initial reconstructed data set to a host and/or store the initial reconstructed data set to a memory. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method for reading data, the method comprising:
-
reading a plurality of data sets one or more times, each data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of at least one of the plurality of data sets, settings are changed in an attempt to better read the at least one of the plurality of data sets; storing one or more of the portions of at least one of the plurality of data sets to a reserved data buffer when the one or more portions are correctable using C1-error correction code (ECC) to form one or more stored portions; aggregating, for each of the plurality of data sets that have all portions thereof stored to the reserved data buffer, all stored portions thereof to form one or more assembled data sets; determining whether C2-ECC is capable of correcting all errors in the one or more assembled data sets; correcting any remaining errors in the one or more assembled data sets using C2-ECC to form one or more corrected data sets, and sending the one or more corrected data sets to a host when C2-ECC is capable of correcting all errors in the one or more assembled data sets; and rereading at least a first uncorrected data set using a different setting in an error recovery procedure (ERP) when an error in the first uncorrected data set is not correctable using C2-ECC or an error in any portion of the first uncorrected data set is not correctable using C1-ECC, wherein the first uncorrected data set is positioned prior to any other uncorrected data set in a read direction. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for reading data, the method comprising:
-
reading an initial error data set followed by a plurality of data sets subsequent to the initial error data set once or more using different settings until; all rows of the initial error data set are assembled in a reserved data buffer and no uncorrectable errors remain, or at least one uncorrectable data set remains in a plurality of assembled data sets, or a maximum number of rereads has been reached; after each rereading of the initial error data set and one or more of the plurality of data sets subsequent to the initial error data set in the same forward motion, storing rows of each data set which either have no errors or are correctable using C1-error correction code (ECC) to their respective reserved data buffer areas, unless a matching row already exists in the reserved data buffer that has fewer corrected errors therein; assembling the initial error data set from the rows stored for the initial error data set in the reserved data buffer to form an initial assembled data set; correcting any remaining errors in the initial assembled data set using C2-ECC to form an initial reconstructed data set; and sending the initial reconstructed data set to a host and/or storing the initial reconstructed data set to a memory. - View Dependent Claims (23, 24, 25)
-
Specification