Efficient read and recovery with outer code
AssigneeSeagate Technology LLC
InventorsDeepak Sridhara, Ara Patapoutian, Prafulla B Reddy
Life of this patent
Estimating the term…
Abstract
An apparatus may include a circuit configured to initialize a read operation to read one or more requested data segments of a respective data unit having a plurality of data segments. Based on a number of failed data segments of the requested data segments and an erasure capability of an outer code error correction scheme, the circuit may perform erasure recovery to recover the failed data segments. Based on the number of failed data segments, the erasure capability of the outer code error correction scheme, and a threshold value, the circuit may perform iterative outer code recovery to recover the failed data segments.
Claims18
An apparatus comprising:
- a circuit configured to:
- initialize a read operation to read multiple data segments of a respective data unit having a plurality of data segments;
- perform an inner decoder iterative decoding to recover data from a first data segment of the multiple data segments;
- determine if the first data segment has been recovered;
- when the first data segment has not been recovered, increment a fail counter;
- determine if a value of the fail counter is less than or equal to a threshold representing a sum of an erasure capability of an outer code error recovery and a number of hardware buffers available to store failed sample segments in a deferred decoding buffer;
- when the value of the fail counter is less than or equal to the threshold, store a sample of a respective failed segment in the deferred decoding buffer;
- when the value of the fail counter is greater than the threshold, discard the sample of the respective failed segment;
- once all segments of the plurality of data segments have had recovery attempted by the above process, perform deferred decoding of the failed sample segments stored in the deferred decoding buffer, the deferred decoding including variable-length decoding;
- decrement the value of the fail counter for each segment stored in the deferred decoding buffer that is successfully decoded via the deferred decoding;
- determine whether the fail counter is less than or equal to the erasure capability of the outer code recovery;
- when the value of the fail counter is less than the erasure capability, attempt to recover any remaining failed segments via erasure recovery including a segment-wise implementation of outer code recovery;
- and
- when the value of the fail counter is greater than the erasure capability, perform iterative outer code recovery via a symbol-wise implementation of outer code recovery to recover the failed data segments.
A method of recovering data comprising:
- receiving one or more data segments of a respective data unit having a plurality of data segments;
- performing inner code iterative decoding to recover data from the data segments and increment a fail counter for each failed segment;
- for each failed segment, determining if a value of the fail counter is less than a threshold representing a sum of an erasure capability of an outer code error recovery and a number of hardware buffers available to store failed segments in a buffer;
- when the value of the fail counter is less than the threshold, storing a sample of a respective failed segment in the buffer;
- when the value of the fail counter is greater than the threshold, discarding the sample of the respective failed segment;
- performing deferred decoding of the failed segments stored in the buffer and decrement the value of the fail counter for each segment stored in the buffer that is successfully decoded via the deferred decoding, the deferred decoding including variable-length decoding and occurring before erasure recovery and iterative outer code recovery are attempted;
- determining whether the fail counter is less than the erasure capability of the outer code error correction scheme;
- when the value of the fail counter is less than the erasure capability, performing erasure recovery to recover the failed data segments;
- and
- when the value of the fail counter is greater than the erasure capability, performing iterative outer code recovery to recover the failed data segments.
A device comprising:
- a buffer circuit;
- a data channel circuit configured to:
- initialize a read operation to read one or more requested data segments of a respective data unit having a plurality of data segments;
- perform inner code iterative decoding to recover data from the data segments, and and increment a fail counter for each failed segment;
- for each failed segment, determine if a value of the fail counter is less than a threshold representing a sum of an erasure capability of an outer code error recovery and a number of hardware buffers available to store failed segments in a buffer;
- when the value of the fail counter is less than the threshold, store a sample of a respective failed segment in the buffer;
- when the value of the fail counter is greater than the threshold, discard the sample of the respective failed segment;
- perform deferred decoding of the failed segments stored in the buffer and decrement the value of the fail counter for each segment stored in the buffer that is successfully decoded via the deferred decoding, the deferred decoding including variable-length decoding;
- determine whether the fail counter is less than the erasure capability of the outer code error correction scheme;
- when the value of the fail counter is less than the erasure capability, perform erasure recovery to recover the failed data segments still in the buffer;
- and
- when the value of the fail counter is greater than the erasure capability, perform iterative outer code recovery to recover the failed data segments still stored in the buffer.
Dependencies are inferred from the claim text.