Reconstructive error recovery procedure (ERP) using reserved buffer
First Claim
1. A system for reading data, the system comprising:
- a processor and logic that is integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic causing the processor to;
read a data set one or more times, the data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of the data set, settings are changed in an attempt to better read the data set;
store all portions of the data set to a reserved data buffer read during a first reading of the data set;
determine whether the stored data set is correctable using at least one of C1-error correction code (ECC) and C2-ECC, wherein the stored data set is recovered in response to the data set being correctable using at least one of C1-ECC and C2-ECC;
recover the stored data set in response to a determination that the data set is correctable using at least one of C1-ECC and C2-ECC;
reread portions assumed to be in the data set in response to a determination that the data set is not correctable using at least one of C1-ECC and C2-ECC;
perform a validity check to determine whether a currently read portion is in the data set;
determine that the currently read portion of the data set is correctable using C1-ECC using a syndrome check in response to a determination that the validity check confirms that the portion is from the data set;
store one or more of the portions of the data set to the reserved data buffer after subsequent readings of the data set in response to a determination that the one or more portions are correctable using C1-ECC;
aggregate the one or more portions of the data set in the reserved data buffer to form an assembled data set, wherein each of the one or more portions are correctable using C1-ECC;
determine whether C2-ECC is capable of correcting all errors in the assembled data set;
correct any remaining errors in the assembled data set using C2-ECC to form a reconstructed data set and send the reconstructed data set to a host in response to a determination that C2-ECC is capable of correcting all errors in the assembled data set; and
reread the data set using a different setting in an error recovery procedure (ERP) when an error in the assembled data set is not correctable using C2-ECC.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one embodiment, a method for reading data includes reading a data set repeatedly using different settings until either: a reconstructed data set is sent to a host and/or stored, or a maximum number of rereads has been reached, after each reading of the data set, storing each row to a reserved data buffer that has no errors or errors in the row are correctable using C1-error correction code (ECC) unless a matching row already exists in the reserved data buffer that has fewer corrected errors therein, assembling the data set from the rows stored in the reserved data buffer to form an assembled data set, correcting any remaining errors in the assembled data set using C2-ECC to form the reconstructed data set, and sending the reconstructed data set to the host and/or storing the reconstructed data set.
56 Citations
12 Claims
-
1. A system for reading data, the system comprising:
a processor and logic that is integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic causing the processor to; read a data set one or more times, the data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of the data set, settings are changed in an attempt to better read the data set; store all portions of the data set to a reserved data buffer read during a first reading of the data set; determine whether the stored data set is correctable using at least one of C1-error correction code (ECC) and C2-ECC, wherein the stored data set is recovered in response to the data set being correctable using at least one of C1-ECC and C2-ECC; recover the stored data set in response to a determination that the data set is correctable using at least one of C1-ECC and C2-ECC; reread portions assumed to be in the data set in response to a determination that the data set is not correctable using at least one of C1-ECC and C2-ECC; perform a validity check to determine whether a currently read portion is in the data set; determine that the currently read portion of the data set is correctable using C1-ECC using a syndrome check in response to a determination that the validity check confirms that the portion is from the data set; store one or more of the portions of the data set to the reserved data buffer after subsequent readings of the data set in response to a determination that the one or more portions are correctable using C1-ECC; aggregate the one or more portions of the data set in the reserved data buffer to form an assembled data set, wherein each of the one or more portions are correctable using C1-ECC; determine whether C2-ECC is capable of correcting all errors in the assembled data set; correct any remaining errors in the assembled data set using C2-ECC to form a reconstructed data set and send the reconstructed data set to a host in response to a determination that C2-ECC is capable of correcting all errors in the assembled data set; and reread the data set using a different setting in an error recovery procedure (ERP) when an error in the assembled data set is not correctable using C2-ECC. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A method for reading data, the method comprising:
-
reading a data set one or more times, the data set comprising a plurality of portions which combine together to wholly form the data set, wherein during each read of the data set, settings are changed in an attempt to better read the data set; storing all portions of the data set to a reserved data buffer read during a first reading of the data set; determining whether the stored data set is correctable using at least one of C1-error correction code (ECC) and C2-ECC, wherein the stored data set is recovered in response to the data set being correctable using at least one of C1-ECC and C2-ECC; recovering the stored data set in response to a determination that the data set is correctable using at least one of C1-ECC and C2-ECC; rereading portions assumed to be in the data set in response to a determination that the data set is not correctable using at least one of C1-ECC and C2-ECC; performing a validity check to determine whether a currently read portion is in the data set; determining that the currently read portion of the data set is correctable using C1-ECC using a syndrome check in response to a determination that the validity check confirms that the portion is from the data set; storing one or more of the portions of the data set to the reserved data buffer after subsequent readings of the data set in response to a determination that the one or more portions are correctable using C1-ECC; aggregating the one or more portions of the data set in the reserved data buffer to form an assembled data set, wherein each of the one or more portions are correctable using C1-ECC; determining whether C2-ECC is capable of correcting all errors in the assembled data set; correcting any remaining errors in the assembled data set using C2-ECC to form a reconstructed data set and sending the reconstructed data set to a host in response to a determination that C2-ECC is capable of correcting all errors in the assembled data set; and rereading the data set using a different setting in an error recovery procedure (ERP) in response to a determination that an error in the assembled data set is not correctable using C2-ECC. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification